Search

하트블리드

개요
하트블리드(Heartbleed) 취약점은 2014년에 발견된 OpenSSL 라이브러리의 심각한 보안 결함입니다. OpenSSL은 인터넷에서 안전한 통신을 보장하는 SSL/TLS 프로토콜을 구현하는 라이브러리인데, 하트블리드는 이 라이브러리의 Heartbeat라는 확장 기능에서 발생한 취약점입니다.
이 취약점의 핵심은, 클라이언트가 서버에 잘못된 크기의 Heartbeat 요청을 보낼 때, 서버가 이 요청을 제대로 처리하지 못하고 자신의 메모리에서 민감한 데이터를 클라이언트에게 반환하는 것입니다. 이로 인해 서버의 메모리에 저장된 개인 키, 비밀번호, 사용자 세션, 기타 민감한 데이터를 공격자가 탈취할 수 있습니다.
특히, OpenSSL 1.0.1부터 1.0.1f 버전까지 이 취약점이 존재했으며, OpenSSL 1.0.1g 버전에서 패치되었습니다.
공격 탐지 규칙 확인 및 설정 (Suricata & Zeek)
Suricata
1.
Detection - “+” Detection 메뉴 이동 및 “+”버튼 클릭, 룰 추가 메뉴 진입
2.
룰 작성
Language : Suricata
License : GPL-2.0-only
Signature
alert tcp $HTTP_SERVERS any -> any any (msg:"Heartbleed Attack Detected"; content:"|18 03|"; depth:2; byte_test:2,>,150,3; sid:1000066; rev:1;)
Plain Text
복사
룰 내용 (Signature):
alert tcp any any -> any any: 모든 TCP 트래픽을 대상으로 합니다.
msg:"Heartbleed Attack Detected": 하트블리드 공격 탐지 시 출력되는 경고 메시지입니다.
content:"|18 03|": Heartbeat 패킷의 시작을 감지하는 패턴입니다.
depth:2: 이 패턴은 패킷의 처음 2바이트 안에 있어야 합니다.
byte_test:2,>,150,3: 3번째 바이트와 그다음 바이트의 값이 150보다 큰지 확인하여, 비정상적으로 큰 Heartbeat 응답을 탐지합니다.
sid:1000001: 이 룰의 고유 식별 번호입니다.
rev:1: 이 룰의 첫 번째 버전입니다.
공격 지표 확인 및 경고 필터링 (Kibana&zeek)
suricata
알람 발생 확인
kibana & zeek
Alert 로그 발생 확인
Document
PCAP 기능으로 쿠키가 탈취된 것 확인
대응 방안
취약한 OpenSSL 버전 패치 또는 업데이트
SSL/TLS 인증서 교체 및 재발급