2021-08-01 09:40 (일)
OpenSSL 취약점에 대한 가장 상세한 분석보고서 최초공개
상태바
OpenSSL 취약점에 대한 가장 상세한 분석보고서 최초공개
  • 길민권
  • 승인 2014.04.11 15:37
이 기사를 공유합니다

한국, 취약한 OpenSSL/1.0.1b 버전 가장 많이 사용...587개 시스템 위험
4월 둘째 주에 심각한 보안 취약점으로 등장한 OpenSSL 취약점인 ‘CVE-2014-0160’, 일명 ‘Heartbleed Bug’ 이슈가 뜨겁다. 이에 HNS에서 해당 보안취약점에 대한 국내에서 가장 상세한 버그 분석 자료를 공개해 관심이 집중되고 있다.
 
OpenSSL의 TLS/DTLS의 Heartbeat Extension을 구현하는 부분에서 문제가 발생하고 관련 정보를 최초 공개한 Codenomicon에서 비즈니스 전략을 위해 피 흘리는 하트 모양의 이미지와 함께 Heartbleed란 용어를 사용했으며 이것이 보안계에 통용되었기 때문이다.
 
분석 보고서에 따르면, CVE-2014-0160 취약점을 공격할 경우 메모리로부터 민감한 정보인 비밀키, 패스워드, 개인정보 등을 확보할 수 있으며 안드로이드 시스템도 공격 대상이 될 수 있고 공격자의 흔적이 남지 않는 특징이 있는 것으로 조사됐다.

 <초기 대응이 늦었던 Yahoo의 경우 ID/PW 노출되었음>

취약한 OpenSSL 버전은 OpenSSL 1.0.1~1.0.1f로, shodan을 이용해 검색한 결과 OpenSSL 버전 1.0.1a를 사용하는 시스템은 554개, 1.0.1b는 1,047개, 1.0.1c는 172,127개, 1.0.1d는 27,500개, 1.0.1e는 349,561개, 1.0.1f는 11,370개였으며 poc 코드로 테스트한 결과 이들 중 일부는 취약하지 않은 시스템도 있었다. 또 흥미로운 것은 OpenSSL/1.0.1b 버전을 가장 많이 사용하는 국가는 한국으로 나타났다.

 
<한국, 취약한 OpenSSL/1.0.1b 버전 가장 많이 사용중>
 
보고서는 문제 해결을 위해 OpenSSL 1.0.1g 이상의 버전으로 업데이트가 필요하고 야후 등을 비롯한 일부 사이트의 경우 계정정보와 패스워드 등의 정보가 유출되었으므로 패스워드 변경이 필요하다고 강조했다.
 
현재 해당 취약점을 테스트하기 위해 공개된 PoC코드는 7개 이상이며 대부분 Jared Stafford의 코드 ‘hb-test.py’를 수정한 것들로 연속 수행 기능을 넣어 한번의 Heartbeat에 64KB의 데이터만 추출할 수 있는 문제점을 해결한 SensePost가 수정한 Heartbleed-poc.py가 활용도 면에서 가장 뛰어난 것으로 나타났고, 공객되지 않은 코드들 중에는 해커들이 자신들의 목적에 맞게 수정한 것들도 다수 있을 것으로 추정된다. 특히 공격이 성공할 경우 로그를 남기지 않기 때문에 공격을 당했는지 여부를 확인하기 쉽지 않다는 것이 문제다.
 
보고서에는 Heartbleed 버그에 대한 상세한 분석 내용도 포함되어있다. 취약한 OpenSSL 버전은 OpenSSL 1.0.1~1.0.1f 그리고 1.0.2-beta1까지로 알려져 있으며 1.0.1g에서 패치가 이루어졌고 OpenSSL에서 TLS/DTLS 구현이 Heartbeat Extension 패킷을 적절하게 핸들링하지 못해 발생하고 원격 공격자는 이를 이용해 조작된 패킷으로 프로세스 메모리에 저장된 민감한 정보를 획득할 수 있다.
 
특히 해당 보고서는 취약점 확인 방법에 대해, 테스트를 위해 사용할 취약한 서버들은 shodan을 이용해 찾았으며 유료 사용자가 아닐 경우 shodan 웹사이트를 통해 검색할 경우 그 결과 값을 10개밖에 볼 수가 없어서 shodan의 파이썬 API를 이용해 스캐닝 코드를 작성해 검색, 검색 키워드는 OpenSSL과 OpenSSL/1.0.1로 설정했으며 OpenSSL/1.0.1로 검색했을 경우 정확한 비전 정보가 나오지 않기 때문에 정확한 버전을 입력해야 검색이 가능하다고 밝혔다. 
 
파이썬 스캐닝 코드로 검색한 결과, shodan 검색 엔진을 이용한 결과를 바탕으로 보면 적어도 5만개 이상의 시스템이 취약한 것으로 추정된다.
 
또 shodan 웹사이트를 통해 취약한 버전들이 사용되는 서비스와 가장 많이 사용하는 국가들의 목록도 공개됐다. 취약한 시스템들이 업데이트가 되고 있어 표에서 나오는 취약한 시스템의 수는 점차 줄어들 것이라고 밝히고 있다.
 
한편 Heartbleed 테스트 사이트에서 결과가 정확하지 않을 때가 있지만, 공개된 PoC 코드를 이용하면 한국 호스트들이 취약한 상황임을 확인할 수 있다고 전했다. 이외에도 다양한 PoC 코드에 대한 분석 내용도 보고서에 포함되어있다.
 
방어책에 대해서는 “OpenSSL 1.0.1g 이상의 버전으로 업데이트가 필요하며 이전 버전을 사용해야만 할 경우 취약한 부분의 코드를 수정해 재컴파일해 사용하는 것이 필요하다”며 “야후 등을 비롯해 일부 서버의 계정 정보와 패스워드가 노출되었기 때문에 패스워드를 수정하는 것이 필요하며 야후 계정의 사용자일 경우 반드시 수정해야 한다. 또 우리나라 시간으로 4월 9일 취약한 버전의 OpenSSL을 버전 1.0.1g로 업데이트한 Tor 3.5.4 안정 버전으로 업데이트로 필요하다”고 설명했다.
 
추가적으로, “브라우저는 OpenSSL을 사용하지 않기 때문에 이 취약점에 영향을 받지 않으며 안드로이드도 공격에 취약하다. 카카오톡의 경우도 취약점 정보가 처음 공개되었을 때 영향을 받았으며 OpenVPN도 이 버그에 취약하고 IIS 서버는 OpenSSL을 사용하지 않기 때문에 취약하지 않다”고 밝혔다.
 
이 취약점에 영향을 받지 않는 주요 대상은 국내 금융권 대부분, 국내 포털 사이트, 아마존, 애플, 마이크로소프트, 트위터, 이베이, 에버노트 등이며 패스워드 변경이 필요한 사이트는 페이스북, 인스타그램, 구글, 야후, 드랍박스 등이다.
 
보다 상세한 분석보고서는 HNS 블로그에서 다운로드 가능하며 데일리시큐 자료실에서도 다운로드 가능하다. HNS 측은 해당 자료에 대해 계속 업데이트할 예정이다.
-HNS 블로그: blog.hacknsecurity.com
 
데일리시큐 길민권 기자 mkgil@dailysecu.com