Download presentation
Presentation is loading. Please wait.
1
HeartBleed
2
발표자 소개 지용빈 한세사이버보안고등학교 3학년 시스템 보안 동아리 노예
3
HeartBeat의 원리와 구조 HeartBleed의 원리 OpenSSL Heartbleed? 시나리오 INDEX
4
What is HeartBleed? CVE
5
HTTPS
6
HTTPS + = HTTP SECURE HTTPS
7
HTTP HTTP Port: 80
8
HTTP HTTP Port: 80
9
HTTP HTTP Port: 80 Hacker
10
HTTP HTTPS Open SSL Port: 443
11
HTTP HTTP Port: 80 Hacker
12
HeartBleed HeartBleed = HeartBeat 확장 라이브러리에서 발생한 취약점
13
HeartBeat
14
HeartBeat TLS/DTLS Extension Library
15
Server와 Client 사이의 통신 보안을 위한 프로토콜
TLS TLS (Transport Layer Security) Server와 Client 사이의 통신 보안을 위한 프로토콜
16
SSL SSL (Secure Socket Layer) OpenSource OpenSSL
17
HeartBeat HeartBeat 서버와 클라이언트의 안정적인 연결을 유지하기 위해 일정 신호를 주고 받는 OpenSSL 확장 프로토콜
18
HeartBeat request response Client Server
19
HeartBeat request response Type Type length length payload payload
padding padding
20
HeartBeat Connection Alive Client Server
21
Type : Request OR Response Length : payload length Payload : text
HeartBeat Type : Request OR Response Length : payload length Payload : text Padding : random text
22
HeartBeat Request, Response Type 1byte length 2byte payload Max(65KB)
padding Min(16byte)
23
HeartBeat int tls1_process_heartbeat(SSL *s) {
unsigned char *p = &s->s3->rrec.data[0], *pl; *p = request packet, *pl = payload unsigned short hbtype; hbtype = heartbeat type unsigned int length; length = length of payload unsigned int padding = 16;
24
HeartBeat Request 변수 request 5 hello padding type length payload
25
HeartBeat unsigned char *buffer, *bp; int r; bp
buffer = OPENSSL_malloc ( length + padding); bp = buffer; bp hbtype length payload padding
26
HeartBeat Response packet의 크기만큼 메모리 할당
27
HeartBeat *bp++ = TLS1_HB_RESPONSE; bp = TLS1_HB_RESPONSE
s2n(length, bp); bp = length에서 2바이트만큼 저장 memcpy(bp, pl, length); bp에다가 pl의 정보를 length의 값만큼 할당 할당 . bp hbtype length payload padding
28
HeartBeat 변수 Response hbtype length payload padding response 5 hello
29
HeartBeat Length 와 payload의 실제 크기를 비교 하지 않습니다.
30
HeartBeat 정상적인 HeartBeat Client Server Server Memory 서버야 살아있니?
“Hello” 라고 5byte로 대답해 “Hello” Server Memory Hello Client Server 1byte
31
ID=root, Pwd=admin123, please login again
HeartBeat 악의적인 HeartBeat 서버야 살아있니? “Hello” 라고 50byte로 대답해 Hello Wrong password! ID=root, pwd=admin123, please login again Server Memory Hello Wrong password! ID=root, Pwd=admin123, please login again Client Server 50 byte
32
HeartBeat Private Key User Data Session
33
HeartBleed 해외 유명 사이트 18개 이상
34
HeartBleed 취약한 야후 사이트
35
HeartBleed 노출된 password
36
시나리오 크고 아름다운 시나리오 2개
37
시나리오 1. HeartBleed 취약점을 이용한 사용자의 세션 값 탈취 2. APT 공격을 위한 정보수집 방법으로 활용
38
실습 환경 Ubuntu 12.04 OpenSSL 1.0.1 CVE-2014-0160-master
39
시나리오 영상
40
시나리오 1 LOGIN PHPSESSID=f8e8a6d2f4w8wf USER PHPSESSID=f8e8a6d2f4w8wf
Server HeartBleed Attack PHPSESSID=f8e8a6d2f4w8wf Server Memory PHPSESSID=f8e8a6d2f4w8wf PHPSESSID=f8e8a6d2f4w8wf LOGIN SUCCESS Attacker
41
노출된 정보
42
노출된 정보
43
노출된 정보
44
Sensitive Information
시나리오 2 HeartBleed Attack Sensitive Information Attacker Server Store Server Memory select * from user where id=‘admin’ and pw=‘1234’ /var/lib/php5 /var/www/admin_board.php DataBase
45
노출된 정보
46
노출된 정보
47
노출된 정보 SQL 쿼리문 사용자의 ID와 PW SSL 발급 정보 세션 값 디렉토리 노출 시스템 정보(커널과 버전정보)
48
문제점 서버의 메모리에서 random 하게 추출하기 때문에 원하는 정보를 얻을 때까지 걸리는 시간도 random
49
대응방안
50
대응방안
51
대응방안 Update 취약한 버젼 패치된 버젼 OpenSSL 1.0.1g OpenSSL 1.0.2 beta
OpenSSL 1.0.1f OpenSSL beta1 Update OpenSSL 1.0.1g
52
대응방안 IDS(침입탐지시스템) IPS(침입차단시스템)에 탐지 rule 업데이트 적용
53
대응방안 SSL 비밀키 유출 가능성을 대비한 인증서 재발급을 권장
54
Q&A
55
감사합니다.
Similar presentations