OpenSSL HeartBleed 취약점


네트워크를 통한 데이터 통신에 쓰이는 프로토콜인 TLS와 SSL의 오픈 소스 구현판인 OpenSSL의 라이브러리인 HeartBeat에서 서버에 저장된 중요 메모리 데이터가 노출되는 취약점 발견되었습니다.

* 본 보안 취약점(CVE-2014-0160)은 하트블리드(HeartBleed)로 알려져 있음


※ 참조 : http://heartbleed.com/


  • 발생 원인

OpenSSL 암호화 라이브러리의 하트비트(Heartbeat)라는 확장 모듈에서 클라이언트 요청 메시지를 처리할 때 데이터 길이 검증을 수행하지 않아 시스템 메모리(서버)에 저장된 64KB 크기의 데이터를 외부에서 아무런 제한 없이 탈취할 수 있는 취약점입니다.

· HeartBeat : 통신 시 연결의 유지, 서버의 상태 체크 등을 목적으로 이용

· 노출 가능한 정보 : SSL 서버 비밀키, 세션키, 쿠키 및 개인정보 등 

    (원격 메모리 덤프, 위치는 지정 불 가능함)


  • 공격방법
    1. (전송) 공격자는 하트비트 패킷 헤더에서 페이로드 길이 필드를 조작하여 서버에 전송
    2. (응답) 서버는 공격자가 요청한 길이(최대 64KB)만큼 메모리에서 데이터를 추출하여 공격에게 응답


  • 취약 버전 및 관련 정보
     · Version : OpenSSL 1.0.1 ~ 1.0.1.F (2014.04.08. openssl-10.1g에서 패치됨)
     · 파일 및 함수명: "d1_both.c" dtls1_process_heartbeat 함수, "t1_lib.c" tls1_process_heartbeat 함수 내 코드 패치


  • 보안 취약점
    ·  데이터 길이를 확인하지 않고 안전하지 않은 메모리 복사 함수 이용
    ·  HeartBeat(RFC 6520) 기능 구현 시 악용 가능한 취약점 존재

 구분

소스코드 

 비고

 openssl-1.0.1e

dtls1_process_heartbeat(SSL * s){

....

  n2s(p, payload);

  pl = p;

....

 입력 데이터 크기를 확인하지 않음

 openssl-1.0.1g

 dtls 1_process_heartbeat(SSL *s){

...

  n2s(p, payload);

  if ( 1 + 2 + payload + 16 > s->s3->rrec.length)

    return 0; /* silently discard per RFC 6520 sec. 4 */

  pl = p;

...

 입력 데이터 크기를 확인하고 예외 사항 처리




Heartbleed test.zip


  • 취약점 여부 확인

· http://filippo.io/Heartbleed/

  • 공격 스크립트

· 파이썬(기본형) : http://www.exploit-db.com/exploits/32745/

· 파이썬(발전형) : https://github.com/sensepost/heartbleed-poc/blob/master/heartbleed-poc.py

· 파이썬(발전형) : https://raw.githubusercontent.com/musalbas/heartbleed-masstest/master/ssltest.py

· NMAP sslheartbleed 기능 : http://nmap.org/nsedoc/scripts/ssl-heartbleed.html

· C언어 : http://www.exploit-db.com/exploits/32791/ 




※ 참조

KISA 인터넷침해대응센터 : http://krcert.or.kr/

http://legend.anycert.co.kr/support/openssl_install.html







'30. > 31. Web' 카테고리의 다른 글

Actionscript XSS using flash  (0) 2014.04.29
URL 한글 인코딩, 디코딩  (0) 2014.04.19
OpenSSL HeartBleed 취약점  (0) 2014.04.19
The Hacker Firefox  (0) 2014.04.17
22. 세션고정(SF) 취약점  (0) 2014.04.16
Flash SWF을 이용한 XSS  (0) 2014.03.20
1 ··· 5 6 7 8 9 10 11 12 13 ··· 15 

카운터

Total : 86,731 / Today : 5 / Yesterday : 29
get rsstistory!