HTTPS 서버 1/3, DROWN SSLv2 취약점에 노출

게시일: 2016-03-04 l 작성자: Virendra Bisht (Vulnerability Researcher)

HTTPS 및 SSL/TLS와 관련한 새로운 그리고 중대한 취약점이 발견되었습니다. SSLv2 프로토콜에서 발견된 해당 취약점은, 모든 통신에 있어 영향을 끼칩니다. DROWN(Decrypting RSA using Obsolete and Weakened eNcryption)이라 명명된 공격은 이러한 취약점을 이용하여, 해커가 “보안된” 연결을 통해 보내지는 정보를 열람하거나 탈취할 수 있는 것입니다. 하지만, 현재까지 알려진 공격은 없습니다.

CVE는 최근 DROWN 및 SSLv2와 관련한 다음의 취약점을 발표하였습니다.

  • SSLv2를 이용한 TLS에 대한 교차 프로토콜 공격 (DROWN) (CVE-2016-0800)
  • SSLv2에서 장애 사이퍼를 차단하지 않음 (CVE-2015-3197)
  • SSLv2에서 분할-정복(divide-and-conquer) Key 값 복호화 (CVE-2016-0703)

SSLv2는 노후된 프로토콜이며(1995년 2월 출시), 어떠한 생산 환경에서도 활용이 적합하지 않습니다. 하지만 SSLv2는 오랜 기간 이용해왔으며 대중적이라는 이유로, 아직도 많은 서버에서 지원하고 있습니다. 서버 관리자는 서버에 접속하는 사용자가 구식 시스템을 가지고 있다고 하더라도, 자신들의 서비스에 접근을 가능하게 하는 것을 중요하게 생각합니다.

DROWN 해커는 중간자(man-in-the-middle, MITM) 위치에서, 목표 서버에 다수의 SSLv2 연결을 만듭니다. 해커가 다수의 SSLv2 연결을 이루어낼 경우, 서버를 공격하여 세션 키 값을 알아낼 수 있습니다. 이 키 값을 이용해, 어떤 통신 내용이든 복호화 할 수 있습니다.

다음의 2가지 요건 중 1가지라도 충족된다면, 서버는 DROWN 공격에 노출되게 됩니다:

  1. SSLv2 요청을 지원하는 경우
  2. 개별 키가 SSLv2 연결을 허용하는 서버에서 사용될 경우 (최신버전 SSL/TLS 프로토콜 포함)

DROWN을 입증한 연구진은 HTTPS 서버의 17%가 SSLv2 연결을 허용한다고 주장합니다. 이에 따라, 중간자 공격이 가능할 경우, 해커는 SSLv2 연결을 활용하여 서버에 침투하고, 세션 키를 찾아내어, TLS 트래픽마저 복호화 할 수 있습니다.

키를 재활용하는 경우를 포함한다면, HTTPS 서버 중 추가적으로 16%가 취약한 상태에 놓여있고, 이는 전체 HTTPS 서버의 1/3에 해당합니다. 만약 SMTP, POP와 같은 다른 서비스들이 위와 같은 서버에서 동일한 개별 키를 공유한다면, 이러한 서비스도 안전하다고 할 수 없습니다.

연구진은 SSLv2 요청을 지정된 포트로 보내서 서버의 답변을 기다리는 스캐너를 GitHub에 배포했습니다. 이를 활용하여 취약점을 테스트 할 수 있습니다. 아래 예시에 나타난 서버는, 한 번도 공격받은 적이 없습니다.

DROWN 탐지 도구 데모

그림 1. DROWN 탐지 도구 데모 (클릭하여 확대)

위험 경감

취약점을 개선하는 것은 상대적으로 간편합니다: OpenSSL이 제안하는 바와 같이, 서버 관리자들은 SSLv2가 다른 곳에서 지원되지 않고 있다는 것을 확인해야 합니다. SSLv2는 오래된 기술이며, 알려진 취약점이 많고, 오늘날까지 계속 사용되어서는 안됩니다. 또한, 서버 개별 키는 재사용되어서는 안되며, 특별히 SSLv2가 과거에 지원되었던 서버의 경우 더욱 주의를 기울어야 합니다.

OpenSSL 1.0.2 사용자는 1.0.2g로 업그레이드합니다. OpenSSL 1.0.1 사용자는 1.0.1로 업그레이드 합니다. OpenSSL의 구 버전을 사용하는 경우, 위 두 버전 중 하나로 업그레이드 해야 합니다.

Deep Security 고객들은 아래와 같은 DPI 룰을 사용하여 다른 환경에서 SSLv2가 사용되고 있는지를 확인할 수 있습니다:

  • 1005321 – Detected SSLv2 Request

SSL/TLS에는 공격을 쉽게 하는 추가적인 취약점들이 있으며, 특히 Export Grade cipher suite가 활용되고 있을 경우 더 많은 위험에 노출됩니다. 다음의 방법을 참고하여 위험을 감지하고 공격을 완화시킬 수 있습니다:

  • 1006561 – 응답 시 TLS/SS Export Cipher Suite 의 알려진 사용(Identified Usage Of TLS/SSL EXPORT Cipher Suite In Response)
  • 1006485 – SSL RSA 다운그레이드 취약점(Downgrade Vulnerability)
  • 1006562 – 요청 시 TLS/SS Export Cipher Suite 의 알려진 사용(Identified Usage Of TLS/SSL EXPORT Cipher Suite In Request)


원문: DROWN SSLv2 Vulnerability Rears Ugly Head, Puts One-Third of HTTPS Servers At Risk