Heartbleed ??, ??? ???? ?? ??? ??? ??
가장 많이 사용되는 SSL 및 TLS 암호화 프로토콜 중 하나인 OpenSSL에서 새로 발견된 취약점이 패치가 설치되지 않은 서버에 즉각적이고 심각한 위험으로 작용하고 있습니다. “Heartbleed(하트블리드)”라고 불리는 이 버그를 이용하면 공격자가 보안 통신을 가로채서 로그인 인증 정보, 개인 데이터, 심지어 암호 해독 키와 같은 중요 정보를 훔쳐낼 수 있습니다.
Heartbleed, 즉 OpenSSL TLS ‘하트비트’ 익스텐션 정보 공개 취약점(CVE-2014-0160)은 하트비트라는 OpenSSL의 구성 요소에 영향을 미칩니다. OpenSSL은 보편적으로 사용되는 SSL(Secure Sockets Layer) 및 TLS(Transport Layer Security) 프로토콜의 오픈 소스 기술 중 하나입니다.
하트비트는 TLS 프로토콜의 익스텐션으로 실제 통신이 얼마 동안 이루어지지 않았더라도 TLS 세션이 활성 상태를 유지하게 해줍니다. 이 기능으로 두 시스템이 계속 연결되어 있고 통신 가능한 상태임을 확인할 수 있습니다. 또한 최초 연결이 끊긴 경우 사용자가 다시 보안 연결을 설정하기 위해 인증 정보를 다시 입력해야 하는 수고를 덜어줍니다.
그렇다면 하트비트는 어떻게 작동할까요? 하트비트가 OpenSSL 서버로 메시지를 보내면, 이 서버에서 다시 해당 메시지를 발신자에게 전달하여 연결을 확인합니다. 이 메시지는 최대 64KB의 페이로드라는 데이터 패킷과 이러한 페이로드의 크기에 대한 정보, 이 두 가지 구성 요소로 이루어집니다.
그러나 OpenSSL의 Heartbleed 취약점을 이용하면 공격자가 페이로드 크기에 대한 정보를 스푸핑할 수 있습니다. 이를테면 크기가 1KB에 불과한 페이로드를 보내면서 64KB라고 하는 것입니다.
이렇듯 OpenSSL 서버에서 잘못된 형식의 하트비트 메시지를 처리하는 방식이 바로 이 취약점으로 야기되는 위험성입니다. OpenSSL 서버에서는 실제로 페이로드가 메시지 표시된 크기와 같은 크기인지 확인하려 하지 않습니다. 대신 페이로드가 정확한 크기일 것으로 가정하고 해당 페이로드를 전송했던 시스템으로 다시 보내려고 시도합니다. 하지만 실제로는 페이로드에 64KB의 데이터가 들어 있지 않으므로 애플리케이션 메모리에서 이 페이로드의 옆에 저장된 데이터로 페이로드를 자동으로 채우게 됩니다. 따라서 서버에서 1KB의 페이로드를 받은 경우 메모리에 저장되어 있던 63KB의 다른 데이터를 함께 보내는 것입니다. 여기에는 사용자의 로그인 인증 정보, 개인 데이터, 경우에 따라서는 세션 및 개인 암호화 키까지 포함될 수 있습니다.
애플리케이션에서 다시 보내는 데이터는 무작위이므로 공격자가 쓸모없거나 부분적인 데이터를 받을 가능성도 있습니다. 하지만 이 취약점의 특성상 반복적인 공격이 가능하므로, 차츰 공격자가 애플리케이션에 의해 저장된 데이터를 보다 폭넓게 파악할 수 있게 됩니다.
아마도 이 공격으로 훔쳐내기 가장 힘든 정보는 개인 암호화 키일 것입니다. 데이터는 순차적으로 저장되므로 새로운 데이터가 오래된 데이터의 앞에 저장됩니다. 암호화 키는 대개 메모리에서 페이로드의 뒤에 저장되므로 액세스될 가능성이 더 낮습니다. 유출될 가능성이 가장 높은 데이터 유형은 최신 SSL/TLS 세션의 컨텐트입니다.
Heartbleed 버그는 올해 발견된 SSL/TLS 취약점 중 가장 최근에 나타난 것입니다. TLS와 그 전 세대 격인 SSL 모두 인터넷 통신용 보안 프로토콜로, 두 시스템을 오가는 트래픽을 암호화하는 방식입니다.
지난 2월 Apple은 자사 소프트웨어의 SSL에 영향을 주는 두 가지 중대한 취약점에 대한 패치를 배포했습니다. 첫 번째는 모바일 운영 체제인 iOS의 업데이트로, 공격자가 네트워크에 대해 특별한 권한을 가지고 SSL/TLS로 보호되는 세션의 데이터를 획득하거나 수정할 수 있게 하는 문제점을 해결한 것이었습니다. 며칠 후 발표된 두 번째 업데이트는 데스크탑 운영 체제인 OS X을 위한 패치였는데, 이 운영 체제 역시 동일한 취약점의 영향을 받는다는 사실이 밝혀졌기 때문입니다.
3월에는 보안 라이브러리 GnuTLS에서 인증서 취약점이 발견되었으며, 이 라이브러리는 Red Hat 데스크탑 및 서버 제품, Ubuntu 및 Debian 디스트리뷰션 등 다수의 Linux 운영 체제 버전에서 사용됩니다.
GnuTLS는 SSL/TLS의 오픈 소스 소프트웨어 기술 중 하나입니다. 이 취약점 때문에 GnuTLS에서 보안 인증서 확인 시 발생할 수 있는 몇 가지 오류를 제대로 해결하지 못했습니다. 그로 인해 공격자가 만든 특수 인증서를 이용하여 GnuTLS에서 악성 웹 사이트를 인증하도록 유도할 수 있습니다. 이 취약점에 대한 패치는 GnuTLS에서 즉시 배포했습니다.
Heartbleed는 근래 밝혀진 SSL/TLS 취약점 중 가장 심각한 유형입니다. 이 취약점은 특성상 그리고 이 버그가 가장 널리 사용되는 SSL/TLS 기술에 영향을 미친다는 사실 때문에 심각한 문제를 일으킬 수 있습니다.
기업 사용자를 위한 시만텍 권고 사항:
- Heartbleed는 OpenSSL 라이브러리의 취약점으로, SSL/TLS 또는 시만텍에서 발급하는 인증서의 결함이 아닙니다.
- OpenSSL 1.0.1~1.0.1f 사용자는 반드시 이 소프트웨어의 최신 수정 버전(1.0.1g)으로 업데이트하거나 하트 비트 익스텐션 없이 OpenSSL을 다시 컴파일해야 합니다.
- 수정된 OpenSSL 버전으로 교체한 다음에는 이미 웹 서버 인증서가 이 취약점의 익스플로잇으로 손상되었거나 도용되었을 가능성이 있다면 인증 기관에 연락하여 인증서를 교체하십시오.
- 공격받은 서버 메모리에서 유출되었을 수 있는 엔드유저 암호를 재설정하는 것을 권장합니다.
개인 사용자를 위한 시만텍 권고 사항:
- 취약한 서비스 제공업체를 이용했다면 귀하의 데이터가 타인에게 유출되었을 수 있습니다.
- 귀하가 이용하는 벤더나 업체들로부터 관련 공지 사항이 있는지 확인합니다. 취약한 벤더가 고객에게 암호를 변경해야 한다는 안내를 받으면 그에 따라 암호를 변경해야 합니다.
- 공격자가 암호를 업데이트하라는 내용의 피싱 이메일이 있을 수 있으니 주의해야 합니다. 위장 웹 사이트 접속을 방지하기 위해 공식적인 사이트 도메인만 이용합니다.
- 신뢰할 수 웹 사이트와 서비스만 이용합니다. 이러한 사이트들은 취약점 문제에 즉각적으로 대처했을 가능성이 높습니다.
- 은행 및 신용 카드 거래 명세서에 의심스러운 항목이 있는지 확인하십시오.
2014년 4월 10일 업데이트: 시만텍의 SSL Tools Certificate Checker를 통해 웹 사이트가 익스플로잇에 취약한지 여부를 확인할 수 있습니다. Certificate Checker는 아래 위치에서 이용 가능합니다.
https://ssltools.websecurity.symantec.com/checker/
Certificate Checker를 사용하려면 Check your cerftificate installation을 누른 다음 해당 웹 사이트 URL을 입력하십시오.