haju__log
Heartbleed (하트블리드) - 2회차 오답 포함 본문
반응형
- CVE-2014-0160
- 2014년 4월 1일, 핀란드 보안 회사 코데노미콘, OpenSSL 의 보안 결함 발견
OpenSSL
- 인터넷 통신에서 SSL/TLS 암호화 프로토콜을 구현하는 오픈소스 라이브러리
- 전 세계 웹사이트와 네트워크에서 보안 연결을 유지하는 데 널리 사용됨
Heartbleed 취약점
- OpenSSL의 heartbeat 확장 기능에서 발생함
- 하트비트 확장
- 연결된 클라이언트와 서버가 아직 연결 상태인지 확인하기 위해 주기적으로 데이터 교환하도록 설계
- 하트블리드 버그
- 이 과정에서 발생하는 메모리 데이터 유출 문제 발생
- 클라이언트가 서버에 요청을 보낼 때, 잘못된 크기를 가진 데이터를 포함할 경우 서버는 이 요청을 제대로 검증하지 않고 그대로 반환함
- 결과적으로 서버는 자신이 가지고 있는 메모리의 일정 부분을 클라이언트에게 전달
- => 민감한 정보 (사용자 암호, 세션 토큰, SSL 개인 키) 노출됨
Heartbleed 취약점 영향
- SSL/TLS(보안프로토콜) 를 사용하는 수많은 웹사이트, 이메일 서버, VPN 등 다양한 인터넷 서비스에 영향 미침
- 따라서 많은 기업들이 긴급 보안 패치 및 SSL 인증서를 재발급함
Heartbleed 대응 방법
1. OpenSSL 최신 버전 업데이트
2. SSL 인증서 재발급
3. 모니터링 강화
OpenSSL과 SSL/TLS
SSL/TLS : 보안 프로토콜
- SSL ; Secure Sockets Layer
- TLS ; Transport Layer Security
- 인터넷에서 데이터가 안전하게 전달되도록 하는 암호화 통신 규칙
- 웹사이트와 사용자가 주고받는 정보를 보호하기 위해 데이터를 암호화하여 전송하는 방식
OpenSSL : (프로토콜을 구현한) 소프트웨어 라이브러리
- SSL/TLS 암호화를 프로그래밍에서 쉽게 사용할 수 있도록 구현해 놓은 도구
- 개발자들은 OpenSSL을 사용해 애플리케이션에서 SSL/TLS 보안 연결을 설정하고 데이터 암호화/복호화 작업 수행
보안기사 2회차 문제 나옴
1. 해당 취약점은 이름은?
A. 하트블리드(Heartbleed) 취약점
2. 시스템적으로 해당 취약점을 조치하는 방법
3. 서비스적으로 해당 취약점을 조치하는 방법
핵심 > 하트비트 요청을 통해 서버의 메모리 데이터를 의도치 않게 읽어오는 것!
1. 먼저 OpenSSL 버전을 확인한다. => 1.0.1 버전
문제가 있던 버전은 OpenSSL 1.0.2-beta, OpenSSL 1.0.1 - OpenSSL 1.0.1f 였음!
2. s_client 명령어를 이용해 특정도메인(domain.com)의 443(HTTPS)로 연결하고, 하트비트 요청을 보내는 과정임
통신 상세 정보를 출력하도록 옵션을 설정하고, grep을 통해 heartbeat 키워드만 필터링함
3. 하트비트 응답 내용 분석
TLS server extension "heartbeat" (id=15), len=1
클라이언트가 서버에 보낸 요청을 서버가 인식한 내용
1만큼의 길이의 데이터를 보낼거라는 정보를 보냄
하트블리드 취약점이 있는 경우 이 요청을 제대로 검증하지 않고 클라이언트가 요청한 길이만큼 데이터를 반환함
결과적으로 요청한 데이터보다 훨씬 많은 메모리 데이터가 유출됨
read from ~ 줄을 보면 5바이트와 3020 바이트를 반환하고 있음
반응형
'정보보안기사 > 실기' 카테고리의 다른 글
2024년 4회차 실기 복기 (2) | 2024.12.04 |
---|---|
위험처리 전략 (1) | 2024.12.04 |
해시함수 (Hash Function) (0) | 2024.12.02 |
방화벽 vs 웹 방화벽(WAF) (1) | 2024.11.28 |
Log4j 취약점 (Log4Shell) (0) | 2024.11.13 |