
CVE-2014-0160

Heartbleed는 OpenSSL의 TLS 하트비트 확장에서 발생한 심각한 취약점인 CVE-2014-0160의 별칭입니다.
이 취약점으로 인해 원격 공격자는 인증 없이 취약한 서버의 메모리를 요청당 최대 64KB까지 읽을 수 있었습니다.
이로 인해 다음과 같은 민감한 정보가 유출되었습니다:
OpenSSL은 HTTPS 연결을 보호하는 TLS 프로토콜을 구현합니다.
취약점은 하트비트 확장에 존재했으며, 이 기능은 다음과 같은 목적으로 설계되었습니다:
암호화 재협상 없이 TLS 연결을 유지합니다.
하트비트는 일반적으로 다음과 같이 동작합니다:
클라이언트 → 서버: “여기 10바이트입니다.”
서버 → 클라이언트: “여기 동일한 10바이트입니다.”
버그는 OpenSSL의 하트비트 구현에서 경계 확인(bounds check) 누락이었습니다.
악의적인 클라이언트가 다음과 같이 보내면:
“1바이트를 보내지만, 64,000바이트라고 주장합니다.”
서버는 길이 필드를 신뢰하고 다음과 같이 응답했습니다:
1바이트 + 인접 메모리의 63,999바이트.
그 인접 메모리에는 비밀이 포함될 수 있었습니다.
Heartbleed는 다음에 영향을 미쳤습니다:
| 소프트웨어 | 상태 |
|---|---|
| OpenSSL 1.0.1 – 1.0.1f | ❌ 취약 |
| OpenSSL 1.0.1g | ✅ 패치됨 |
| OpenSSL 1.0.0 및 0.9.8 | ✅ 영향 없음 |
개인 키가 도난당하면 공격자는 다음을 수행할 수 있습니다:
다음으로 업그레이드:
OpenSSL 1.0.1g
OpenSSL을 업그레이드하는 것만으로는 충분하지 않았습니다. 키가 이미 노출되었을 수 있기 때문입니다.
| 날짜 | 사건 |
|---|---|
| 2012년 | 버그 도입 |
| 2014년 4월 7일 | 공개 공개 |
| 같은 날 | 패치 출시 |
| 이후 몇 주 | 대규모 글로벌 대응 |
| 취약점 | 유형 | 영향 |
|---|---|---|
| Heartbleed | 메모리 유출 | 데이터 누출 |
| Log4Shell | 원격 코드 실행 | 서버 장악 |
| Shellshock | 명령어 주입 | 원격 실행 |
Heartbleed는 직접 코드를 실행하지 않았지만, 치명적인 2차 공격을 가능하게 하는 비밀을 노출했습니다.
Heartbleed는 여전히 인터넷 역사에서 가장 악명 높은 보안 취약점 중 하나입니다.
중요한 암호화 라이브러리에서 단 하나의 경계 확인 누락이 전 세계 수백만 시스템에 영향을 미칠 수 있음을 보여주었습니다.
| 필드 | 값 |
|---|
| 이름 | Heartbleed |
| CVE | CVE-2014-0160 |
| 유형 | 메모리 유출 |
| 영향받는 소프트웨어 | OpenSSL |
| 심각도 | 치명적 |
| 패치 가능 여부 | 예 |
| 요청당 최대 누출 | 64KB |