Presentation is loading. Please wait.

Presentation is loading. Please wait.

HeartBleed.

Similar presentations


Presentation on theme: "HeartBleed."— Presentation transcript:

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 감사합니다.


Download ppt "HeartBleed."

Similar presentations


Ads by Google