2013년 4월 7일 OpenSSL에 치명적인 보안 결함이 세상에 알려졌으며, "하트블리드 (Heartbleed, 심장출혈)" 이라는 좀 무서운 이름으로 명명되었습니다. 아래 그림만 보아도 매우 위험해 보이는 보안 취약성입니다.^^
이번 글에서는 하트블리드의 원인과 대책을 살펴보겠지만, UC 및 협업 솔루션 위주로 살펴보겠습니다. 넥스퍼트를 방문하시는 여러분들이 웹서버나 기타 단말에 대해서는 별로 관심이 없을 듯합니다. ^^
하트비트 (Heartbeat)의 이해
하트블러드는 하트비트를 이용한 공격이므로 하트비트에 대해 먼저 알아야 합니다. 아래 그림과 같이 TLS / SSL을 이용하여 암호화 통신 중에 클라이언트는 서버와 현재의 세션이 유지되고 있는 지를 확인하기 위해 하트비트를 주고 받습니다. 하트비트는 심장박동을 가리키는 의학용어이지만, IT 에서는 통신하는 상호간의 Keep-alive Check를 하는 행위를 가리킵니다.
TLS/SSL에서 하트비트는 요청과 응답 (Request & Response) 으로 구성됩니다. 하트비트 요청 시 기존의 TLS / SSL 세션으로 특정 단어를 보내면서 이 단어로 응답해 줄 것을 요청합니다. 요청을 받은 서버가 응답을 하면 세션이 살아 있는 것이므로 통신을 계속합니다.
하트블리드(HeartBleed)의 이해
OpenSSL기반의 TLS / SSL 통신 상의 하트비트의 문제점은 요청하는 단어의 길이를 제한하지 않았기 때문입니다. 아래그림과 같이 "stupid"라는 단어로 응답해줄 것을 요청하면서 단어의 길이를 1000글자라고 보내게 되면, 서버는 "stupid"라는 단어와 함께 1000글자를 보내야 하므로 서버 메모리 내의 정보 가운데 stupid가 포함된 문자열을 무작위로 1000글자를 전송합니다. 하트비트의 요청 단어의 길이는 최대 64KB로 제한되어 있으므로 한번에 64KB 씩 메모리가 복제되는 것입니다. 따라서, 공격자가 반복적으로 시도 시 메모리에 있는 불특정한 정보를 가져갈 수 있습니다.
보안 전문가들은 하트비트에서 보안 취약점이 발견되었으므로 심장에서 피를 흘린다는 의미로 하트블러드 (심장출혈)라고 명명하였습니다.
하트블리드의 위험정도 및 해결책
공격자가 지속적으로 하트비트를 이용한 공격을 지속적으로 시도할 경우 주민등록번호 및 카드번호와 같은 개인 정보와 암호화 키나 키쌍이 노출될 가능성이 있습니다. 이런 가정은 최악의 상황을 가정한 것으로 실제적으로는 쉽게 가져갈수는 없습니다.
공격자가 "라인하트"라는 사람의 개인정보를 획득하기 위해 지속적으로 시도한다고 할때 관련 정보가 메모리에 있을 경우에 64KB 정도의 정보를 가져가게 되고 장기간에 걸친 공격으로 수집된 정보를 조합하여 해킹을 할 수 있습니다. 그러나 보안 전문가들이 하트비트를 이용한 공격을 시도하여 보았지만 실제적인 성공률은 매우 낮다고 발표하였습니다.
현재 전세계 서버의 약 67% 정도가 영향을 받는 것으로 추정되고 있으며, 직접적인 영향을 받는 OpenSSL 버전은 다음과 같습니다.
- OpenSSL 1.0.2 beta
- OpenSSL 1.0.1 ~ OpenSSL 1.0.1f
- OpenSSL 1.0.2 beta2
- OpenSSL 1.0.1g
- OpenSSL 1.0.0 (and 1.0.0 branch release)
- OpenSSL 1.9.8 (and 0.9.8 branch release)
시스코는 4월 7일 하트블리드 보안 취약점이 공개된 이후 발빠르게 움직이고 있습니다. 시스코는 다수의 제품에 대한 전수조사에만 몇 주가 소요되고 있습니다. 관련 업데이트 정보는 Cisco Security Advisory에 실시간으로 공유되고 있습니다. 또한, 시스코는 시스코의 유지보수 계약에 상관없이 하트블리드 취약점을 해결한 패치를 무료로 배포하기로 결정하였습니다.
현재 하트블리드 문제를 해결한 제품과 버전은 "Software Version and Fixes"에서 확인할 수 있습니다. 시스코 협업 솔루션 가운데 하트블리드를 해결한 제품은 다음과 같습니다.
- Cisco WebEx Meeting Server 2.0 MR2
- Cisco TelePresence Video Communication Server (VCS) 8.1.1
하트블리드에 대처하는 우리의 자세
IT 기업들은 적극적으로 대처하고 있습니다. 구글은 안드로이드 4.1.x 젤리빈이 취약한 것으로 밝혀져 4.2 업그레이드를 권장하고 있습니다. 애플은 폐쇄적인 OS 운영으로 이번 하트블리드에 대한 문제가 없습니다. 아이러니하게도 애플의 iOS와 OS X의 폐쇄성이 보안에는 더 나은 결과를 만들었습니다.
그러고 보니 보안 위험성 때문에 마이크로소프트도 포기한 액티브X를 끝까지 붙들고 있는 나라가 있습니다. 대한민국에서 액티브 X와 공인 인증서의 보안 취약성과 하트블리드 중 어느 것이 더 위험할까요? 살짜기 궁금해집니다. ^^
참고자료
엔하위키미러 : http://mirror.enha.kr/wiki/%ED%95%98%ED%8A%B8%EB%B8%94%EB%A6%AC%EB%93%9C%20%EC%82%AC%ED%83%9C
라인하트 (CCIEV #18487) ----------------------------------------------------------
ucwana@gmail.com (라인하트의 구글 이메일)
http://twitter.com/nexpertnet (넥스퍼트 블로그의 트위터, 최신 업데이트 정보 및 공지 사항)
http://groups.google.com/group/cciev (시스코 UC를 공부하는 사람들이 모인 구글 구룹스)
http://groups.google.com/group/ucforum (벤더에 상관없이 UC를 공부하는 사람들이 모인 구글 구룹스)
세상을 이롭게 하는 기술을 지향합니다. ________________________________________________________