본문 바로가기

보안라이프/이슈&이슈

두근두근 심장에서, 피가 흐르는 심장까지! HeartBleed의 취약점



OpenSSL에서 발견된 취약점인 HeartBleed. 심장에서 피가 흐른다니, 취약점 이름이 사람이나, 회사명이 아니라서 그런지 귀여운 느낌이 들기도 한다. 하지만 HeartBleed라는 표현처럼, 치명적인 버그로써 전 세계적인 문제로 커지고 있다.


▶Open SSL

먼저 SSL이란, Secure Socket Layer의 약자이다. 한국말로는 보안 소켓계층으로, 전자상거래 등의 보안을 위해 처음 개발되었다. 인터넷 쇼핑을 할 때마다 만나게 되는 Https는 대표적인 SSL이다. , SSL이란 인터넷상에서 데이터를 안전하게 전송하기 위한 하나의 약속이다. 여기에 오픈 소스라는 OPEN이 붙은 것이 Open SSL이다.


HeartBleed

이 약속을 사용하는 네트워크 통신 과정에는 HeartBeat라는 과정이 있다. 심장이 두근거려야, 숨쉬고 있다는 것을 확인하는 것과 가능 역할을 하는 Heart Beat. 이는 서버와 클라이언트 간 연결을 위해서 연결 지속 신호를 주고받는 것을 말한다. 즉! 서버에게 신호를 보냄으로써, 서버가 응답한다면 서버가 숨 쉬고 있다는 것을 확인하는 것이다. 그리고 바로 이 HeartBeat의 기능을 역이용한 것이 HeartBleed이다. 


[출처:http://xkcd.com/1354/]


그림에서 나와 있듯이, 심장 혹은 서버에게 신호를 보내는 과정에서 payload값을 과하게 보내 서버 측의 메모리 데이터를 탈취하는 것을 HeartBleed라고 한다. 실제로는 클라이언트는 서버에게 최대 64KB의 정보를 한 번에 요청 할 수 있다. 중요한 것은 한번에라는 것이다. , 무한으로 요청을 반복해서 원하는 정보를 얻어 내는 것이 가능하다


문제점 및 대응책

HeartBleed의 경우 사용자들의 로그인 정보 유출 외에도, 개인 키와 비밀 키를 탈취할 수 있다. 또한, 특정 OS환경 뿐만 아니라, OpenSSL 라이브러리를 사용하고 있는 네트워크 장비나 하드웨어 보안 장비에도 영향을 미칠 수 있다. 이를 막기 위해서는 OpenSSL를 업데이트 및 재컴파일 해주는 것이 필요하다. 특히 버전 1.0.1gOpenSSL은 몇 가지 바운드 검사를 추가하여 이 취약점을 예방한다. (필요한 양보다 더 많은 데이터를 요청하는 메시지는 무시하는 코드를 추가했다.)


[OpenSSL의 공식 홈페이지:http://www.openssl.org/]


국내 한 유명 아이돌 그룹의 인기곡이 “HeartBeat”였다. 그래서 그런지, “HeartBeat”“HeartBleed”도 낯설지 않았다. 하지만 정보를 찾아보면서, 인기 곡 때문이 아니라 이미 내 정보가 유출되어 있을 수도 있어서 그럴지 모른다는 생각이 들었다. 현재 약 50만대의 웹 서버가 노출된 상태이며, 구글과 페이스북 외국의 유명 사이트들은 패치를 완료했다고 한다. 하지만 공격 시도의 기록이 남지 않기 때문에, 지금까지 얼마나 많은 정보가 어디로 빠져나갔는지 모른다. 그중에 내 정보가 얼마나 많이 유출되어 있을지 모르고, 어디로 갔는지도 모른다는 것이다. 우리나라에서 개인정보가 유출된 것은 이미 비일비재한 일이다. 하지만 익숙해져야 하는 일은 결코 아니다. 우리가 우리의 정보를 지키는 것도 중요하지만, 보안을 위해서 더 많은 투자와 노력이 필요하다고 생각한다.





 안랩대학생기자단 홍수영 / 서울여대 정보보호학과


 omnia tempus habent