질문 248
보안 관리자인 사무엘은 웹 서버의 구성을 평가하고 있습니다. 그는 해당 서버가 SSLv2 연결을 허용하고 있으며, 동일한 개인 키 인증서가 다른 서버에서 SSLv2 연결을 허용하는 데 사용된다는 것을 발견했습니다. 이 취약점은 SSLv2 서버가 키 정보를 유출할 수 있기 때문에 웹 서버를 공격에 취약하게 만듭니다.
위의 취약점을 익스플로잇하여 수행할 수 있는 공격은 다음 중 어느 것인가요?
DROWN은 인터넷 보안에 필수적인 암호화 프로토콜인 SSL과 TLS를 사용하는 HTTPS 및 기타 서비스에 영향을 미치는 심각한 취약점입니다. 이러한 프로토콜을 사용하면 인터넷상의 모든 사람이 인터넷을 검색하고, 이메일을 사용하고, 온라인을 검색하고, 인스턴트 메시지를 보낼 수 있지만 제3자는 통신 내용을 열람할 수 없습니다.
공격자는 DROWN을 통해 암호화를 해독하고 민감한 통신은 물론 비밀번호, 신용카드 번호, 영업 비밀 또는 금융 데이터를 읽거나 탈취할 수 있습니다. 2016년 3월 공개 당시 측정 결과 전체 HTTPS 서버의 1/3이 이 공격에 취약한 것으로 나타났습니다. 다행히도 현재는 이 취약점이 훨씬 덜 널리 퍼져 있습니다. 2019년 현재 SSL Labs는 HTTPS 서버의 1.2%가 취약한 것으로 추정합니다.
공격자는 무엇을 얻게 되나요?
사용자와 서버 간의 모든 통신. 여기에는 일반적으로 사용자 이름과 비밀번호, 신용카드 번호, 이메일, 인스턴트 메시지, 민감한 문서 등이 포함되지만 이에 국한되지 않습니다. 일부 일반적인 시나리오에서는 공격자가 보안 웹사이트를 사칭하여 사용자가 보는 콘텐츠를 가로채거나 변경할 수도 있습니다.
누가 취약한가요?
웹사이트, 메일 서버 및 기타 TLS 종속 서비스가 DROWN 공격의 위험에 노출되어 있습니다. 공개 당시 많은 인기 사이트가 영향을 받았으며, 인터넷 전체 스캔을 통해 얼마나 많은 사이트가 취약한지 파악했습니다:
취약한 서버의 운영자는 조치를 취해야 합니다. 브라우저나 최종 사용자가 이 공격으로부터 보호하기 위해 자체적으로 할 수 있는 실질적인 조치는 없습니다.
내 사이트가 취약한가요?
최신 서버와 쇼핑객은 TLS 암호화 프로토콜을 사용합니다. 그러나 잘못된 구성으로 인해 일부 서버는 여전히 1990년대 TLS의 전신인 SSLv2도 지원합니다. 최신 클라이언트는 실제로 SSLv2를 사용하지 않기 때문에 이러한 지원은 실제로는 중요하지 않습니다. 따라서 SSLv2가 매우 안전하지 않다고 여겨졌음에도 불구하고 지금까지는 단순히 SSLv2를 지원하는 것을 보안 문제로 생각하지 않았으며, 클라이언트가 이를 사용하지 않았기 때문입니다.
DROWN은 단순히 SSLv2를 지원하는 것만으로도 유행하는 서버와 클라이언트에 위협이 될 수 있음을 보여줍니다. 이 공격은 최신 클라이언트와 서버 간의 최신 유행하는 TLS 연결에 SSLv2를 지원하고 동일한 개인 키를 사용하는 서버로 프로브를 전송하여 공격자를 연결합니다.
서버는 다음과 같은 경우 DROWN에 취약합니다:
SSLv2 연결을 허용합니다. 이는 잘못된 구성과 부적절한 기본 설정으로 인해 의외로 흔히 발생합니다.
개인 키는 다른 프로토콜을 포함하여 SSLv2 연결을 허용하는 다른 모든 서버에서 사용됩니다. 예를 들어 많은 회사에서 웹 서버와 이메일 서버에서 동일한 인증서와 키를 재사용합니다. 이 경우 이메일 서버는 SSLv2를 지원하고 웹 서버는 지원하지 않는 경우 공격자는 이메일 서버를 악용하여 웹 서버에 대한 TLS 연결을 끊을 수 있습니다.
서버를 보호하려면 어떻게 해야 하나요?
DROWN으로부터 보호하려면 서버 운영자는 SSLv2 연결을 활성화하는 서버 컴퓨터 코드가 있는 모든 곳에서 사용되는 개인 키 소프트웨어를 확인해야 합니다. 여기에는 넷 서버, SMTP 서버, IMAP 및 POP 서버, 기타 SSL/TLS를 지원하는 소프트웨어가 포함됩니다.
SSLv2를 비활성화하는 것은 어렵고 특정 서버 소프트웨어에 따라 다릅니다. 일반적인 제품에 대한 지침은 여기에서 확인할 수 있습니다:
OpenSSL: OpenSSL은 여러 서버 상품에 사용되는 과학 라이브러리일 수 있습니다. OpenSSL 사용자의 경우 가장 간단하고 권장되는 해결책은 최신 OpenSSL 버전으로 업그레이드하는 것입니다. OpenSSL 1.0.2 사용자는 1.0.2g로 업그레이드해야 합니다. OpenSSL 1.0.1 사용자는 1.0.1s로 업그레이드해야 합니다. 이전 OpenSSL 버전 사용자는 이 두 버전 중 하나로 업그레이드해야 합니다. (3월 13일 16:00 UTC 업데이트) Microsoft IIS(Windows Server): 서버 측면의 SSLv2 지원은 기본적으로 IIS 7.0 및 IIS 7.5에 해당하는 OS 버전, 특히 Windows 장면, Windows Server 2008, Windows 7 및 Windows Server 2008R2에서만 활성화됩니다. 이 지원은 KB245030에 설명된 대로 '서버'에 대한 적절한 SSLv2 하위 키 내에서 비활성화됩니다. 사용자가 SSLv2를 비활성화하는 조치를 취하지 않았더라도 DROWN을 구축하는 수출 등급 및 56비트 암호는 기본적으로 지원되지 않는 것으로 보입니다.
네트워크 보안 서비스(NSS): NSS는 여러 서버 상품에 설계된 일반적인 과학 라이브러리일 수 있습니다. NSS 버전 3.13(2012년에 출시) 이상에서는 기본적으로 SSLv2가 비활성화되어 있어야 합니다. (일부 사용자는 SSLv2를 수동으로 활성화했을 수 있으며 비활성화 조치를 취해야 할 수 있습니다.) 이전 버전을 사용하는 사용자는 최신 버전으로 업그레이드해야 합니다. 다른 영향을 받는 소프트웨어와 운영 체제에서 비공개 비밀이 다른 곳에 노출되어 있는지 여부를 확인하는 것이 좋습니다:
지침 및 데이터 아파치, 포스트픽스, Nginx, 데비안, 레드햇
브라우저 및 기타 소비자: 실질적으로 인터넷 브라우저나 다른 클라이언트 컴퓨터 코드가 DROWN을 막을 수 있는 방법은 없습니다. 오직 서버 운영자만이 공격에 대비한 조치를 취할 준비가 되어 있습니다.
댓글 남기기