3. 네트워크 해킹과 보안
5) OPEN SSL & 하트블리드
▣ OPEN SSL란?
- 네트워크 암호화 프로토콜인 TLS와 SSL의 오픈소스 구현판이다. => 무료
- C언어로 작성되어 있는 중심 라이브러리에 기본적인 암호화 기능 및 여러개 유틸리티 함수들이 구현되어있음.
▣ 하트블리드란?
- OPEN SSL에서 사용자가 웹사이트에 정보를 보내지 않더라도 연결을 유지하기 위해 하트비트라는 프로토콜을 사용.
- 여기서 취약점이 발생한 것을 심장이 피가 흐른다는 이름을 붙여 하트 블리드로 명명.
- 취약점 코드 : CVE-2014-0160
☞ OpenSSL TLS/DTLS Heartbeat Extension 취약점.
☞ OpenSSL 1.0.1 ~ 1.0.1f, 1.0.2-beta1 버전이 취약함.
☞ Log 남기지 않음.
☞ ID / PW 갈취
- 원리
☞ HAT과 500 LETTERS를 비교했었더라면 이러한 취약점이 생기지않았을 것이다...
▣ 하트비트 취약 코드
- n2s 매크로
☞ 변수 "p"의 2바이트 값을 "payload" 변수로 복사.
☞ 변수 "p"의 값은 heartbeat 서버가 클라이언트로 응답할 데이터의 길이.
☞ SSL 클라이언트가 값을 지정하여 서버에 요청.
☞ 단순히 우리가 입력한 값을 memcpy에 넘겨준다고 생각하면 됨.
- memcpy(dst 메모리 공간 bp, src 메모리 공간 pl, 크기 payload) 함수
☞ 변수 pl은 heartbeat 서버 내부의 메모리를 지정하는 포인터.
☞ 포인터로부터 payload 길이의 데이터를 bp 변수에 담아 클라이언트에 전송.
▣ 하트블리드 점검도구
- 32745.py
- PYTHON 언어로 작성.
- 취약한 함수를 사용하는 서버에서 64KB만큼의 힙 메모리 영역을 덤핑하여 비밀키 등 민감한 정보를 획득 가능.
- 정말 단순히 Heartbeat Request를 보내고 응답으로 돌아오는데 그 속에 민감정보가 포함되어 있는 것임.
▣ 보안대책
- 내가 입력한 문자열과 보내는 크기를 확인하고 예외사항으로 처리.
i2sec 대구지점 23기 수료생.
'해킹&보안 > 네트워크 해킹&보안' 카테고리의 다른 글
[D+9] Stack Buffer Overflow (1) (0) | 2017.04.12 |
---|---|
[D+9] 네트워크 해킹과 보안 (6) (0) | 2017.04.07 |
[D+8] 네트워크 해킹과 보안 (4) (0) | 2017.04.03 |
[D+7] 네트워크 해킹과 보안 (3) (0) | 2017.03.30 |
[D+6] 네트워크 해킹과 보안 (2) (0) | 2017.03.29 |