HeartBleed 취약점(2014년 4월)
- 하트블리드 취약점은 통신구간 암호화를 위해 많이 사용하는 OpenSSL 라이브러리의 하트비트 확장 모듈의 버그로 인하여 발생한 취약점으로 서버에 저장된 중요 메모리 데이터가 노출되는 취약점
- 하트비트 요청 메시지 처리 시 데이터길이 검증을 하지 않아, 시스템 메모리에 저장된 64KB 크기의 데이터를 외부에서 탈취할 수 있음
- SSL/TLS 서버 개인키, 세션키, 쿠키 및 개인정보(ID,PW, 이메일 주소 등)이 노출될 수 있음
하트비트(HeartBeat) 확장 모듈
- OpenSSL1.0에 추가된 기능
- SSL/TLS 프로토콜에서 매번 연결을 재협상 하지 않아도 상호간의 연결지속신호를 주고받으면서 연결을 지속해주는 기능클라이언트가 하트비트를 요청하면서 Payload와 Payload 길이를 보내면, 서버측에서 하트비트 응답에 그 내용을 길이만큼 복사하여 되돌려주면서 연결을 확인함
대응 방안
시스템 측면 대응방안
- OpenSSL을 최신 버전으로 업그레이드
영향 받는 버전
-
OpenSSL 1.0.1 ~ OpenSSL 1.0.1f
-
OpenSSL 1.0.2-beta, OpenSSL 1.0.2-beta1
서비스 관리 측면 대응 방안
- 서버 측 SSL/TLS 개인키가 유출되었을 가능성이 있으므로 인증서 재발급 검토
네트워크 측면 대응방안
- 취약점공격 탐지 및 차단 룰/패턴을 적용
alert tcp any any <> any [443, 465, 563, 636, 695, 898, 990] (msg:"SSLv3 Malicious HeartBleed Request v2"; content:"|18 03 00|"; depth:3; content:"|01|"; distance:2; within:1; content:!"|00|"; within:1; sid:"1000300;) |
alert tcp any any <> any [443, 465, 563, 636, 695, 898, 990] (msg:"TLSv1.0 Malicious HeartBleed Request v2"; content:"|18 03 01|"; depth:3; content:"|01|"; distance:2; within:1; content:!"|00|"; within:1; priority:1; sid:"1000301;) |
alert tcp any any <> any [443, 465, 563, 636, 695, 898, 990] (msg:"TLSv1.1 Malicious HeartBleed Request v2"; content:"|18 03 02|"; depth:3; content:"|01|"; distance:2; within:1; content:!"|00|"; within:1; sid:"1000302;) |
- 443은 SSL
- 18은 하트비트 메시지
- 03 00은 SSLv3.0
- 03 01은 TLSv1.0
- 03 02는 TLSv1.1
※ 참고
'정보보안기사&CISSP관련 > 침해사고 분석 및 대응' 카테고리의 다른 글
[Day 121] GNU Bash 취약점(ShellShock) (0) | 2020.12.09 |
---|---|
[Day 115] DBD(Drive By Download) 공격 (0) | 2020.12.03 |
[Day 113] 워터링 홀(Watering Hole) 침해 사고 시나리오 (0) | 2020.12.01 |
[Day 109] 리버스 쉘(Reverse Shell) 침해 사고 시나리오 (0) | 2020.11.27 |
[Day 79] 침해사고 대응절차 7단계 (0) | 2020.10.28 |