HeartBleed.

Slides:



Advertisements
Similar presentations
1 08 시스템 구성도 고려사항 * 웹 서버 클러스터 구성  클러스터 구축은 ㈜ 클루닉스의 Encluster 로 구축 (KT 인증,IT 인증 획득, 실제 클러스터 구축 사이트 200 여곳 )  웹 서버 클러스터는 Dynamic, Static, Image.
Advertisements

SSL (Secure Socket Layer) 중부대학교 정보보호학과 이병천 교수. 웹 보안 구현방법  네트워크 계층에서의 구현방법  특징  IP 계층에 보안 기능을 둠  IP Sec  응용계층의 모든 응용서비스에 보안성 제공  VPN(Virtual Private.
HTTPS Packet Capture Tutorial
Format String Attack! 포맷 스트링 공격 경일대학교 사이버보안학과 학년 남주호.

정보 보안 개론과 실습 네트워크 해킹과 보안 3부 해킹 전 정보 획득 Chapter 10. 목록화.
DICOM Security 디지털정보융합학과 심영복.
Youngmin Jung JOSSO 설치 Youngmin Jung
1. 개발 시스템 개요.
김 상 국, 김 기 훈 한남대학교 컴퓨터공학과 데이터베이스 실험실
SQL Injection Member 최병희, 김상우, 조용준, 유창열.
인공지능실험실 석사 2학기 이희재 TCP/IP Socket Programming… 제 11장 프로세스간 통신 인공지능실험실 석사 2학기 이희재
암호화 기술(SSL, IPSec) 손재성 권기읍 안복선 최준혁
암호화 기술(IPsec,SSL) 배문주 송정미 황유진.
Network Security - Wireless Sniffing 실습
Ch.07-5 xml-rpc 사용하기 김상엽.
IPsec 석진선.
암호화 기술 SSL와 IPSec의 개요 및 동작과정
Wi-Fi 기반 NATE 서비스 제공 -설명회-
SSLStrip for Windows
Chapter 8 목차 8.1 네트워크 보안이란 무엇인가? 8.2 암호학의 원리 8.3 메시지 무결성 8.4 종단점 인증
Chapter 01 데이터베이스 시스템.
발표자 : 손충호 조원 : 유진우, 노유성, 조사랑, 손충호
Web Security 모든 HTTP 패킷은 엽서와 같음 SSL/TLS
MySQL 기본 사용법.
Men In the Middle, Simple but critical issue.
31강 JAVA 네트워크 JAVA 네트워크 InetAdress, URLConnection 클래스 Socket의 이해
SSL (Secure Sockets Layers Protocol)
Linux서버를 이용한 채팅프로그램 지도 교수님 : 이형원 교수님 이 름 : 이 은 영 학 번 :
IPSec (Internet Protocol Security protocol)
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
25강. Security-I 보안 관련 프로젝트 생성 보안 관련 라이브러리 추가 보안 관련 설정 파일 만들기
Homework 6… 12월 2일(금) 11:59pm까지 자신의 이름과 학번을 출력해 주는 유닉스/리눅스 네트워크 소켓 서버 프로그램 과 클라이언트 프로그램 을 작성해 보세요 참고 (실습1) Hello 프로그램 helloserver.c helloclient.c 컴파일.
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
AutoBase10 설치 / 데모 프로젝트 실행.
2012 인터넷 응용프로그래밍 FTP, MySQL 사용 방법 및 텀 프로젝트용 서버에서 웹페이지 구동 방법 설명
keylogger sp0i1er 융합보안학과 박준형 융합보안학과 송인봉
디 지 털 공 학 한국폴리텍V대학.
Web Basic 김영성 인천대 OneScore
Trivial File Transfer Protocol (TFTP)
리눅스 시스템 & 커널 기초 P.46 – P.53 이름: nsh009 학번: 112 1/20.
P2P를 연결을 위한 여러기술 휴즈플로우 이재동 예전에 간략하게 크로스 플랫폼 p2p를 이야기한적이 있었는데요
정보보안.
JSP 게시판 구현.
OSI 모델 OSI 모델의 개념과 필요성 OSI 모델의 데이터 전송 과정 OSI 모델 7계층 한빛미디어(주)
School of Electronics and Information. Kyung Hee University.
Smart Workplace 개발자 가이드
Wi-Fi 취약점 분석 본 프로젝트는 Wi-Fi 환경에서의 취약점 분석을 위한 프로젝트로 다양한 공격방법을 테스트
네트워크 프로그래밍의 이해 School of Electronics and Information.
연습 문제 풀이 헥사 값의 의미 FTP 응답 코드의 의미 분석 (a) D 0A (b)
Ⅰ. ASP개체 모델 Ⅱ. Request 개체 그렇다면 프로그래밍 언어를 수행하는 컴퓨터의 개념적인 구조를 살펴 본다면, 프로그래밍 언어가 무엇인지 이해하는데 도움이 될 것입니다. 현재 컴퓨터 구조의 모태가 되고 있는 폰 노이만 구조는 그림에서 보는 것과 같이, 명령어와.
Internet 데이터 전송 목표: 인터넷의 개요 및 기본 내용을 살펴보고 VB에서의 데이터 전송 프로그래밍에 대하여 학습한다. 주요내용 인터넷의 개요 인터넷 데이터 전송 인터넷 프로그래밍 Winsock Client Server 프로그래밍.
8장 쿠키와 세션 한빛미디어(주).
오라클 넷(Oracle Net)의 개념 및 구성
CGI란 무엇인가? CGI(Common Gateway Interface)의 정의
SQL INJECTION MADE BY 김 현중.
(DDOS & Massive SQL Injection)
Packet sniffing 응용 레벨이 아닌 네트워크 디바이스 레벨에서의 데이타을 얻는 것 네트워크 상의 트래픽을 분석
SSL, Secure Socket Layer
Canary value 스택 가드(Stack Guard).
이번 시간에는... 지난 시간까지 제 1장을 통해 모바일의 정의와 개념, 시작과 발전, 기술과 서비스 및 그 전략을 살펴봄으로써 모바일 산업에 대한 전반적인 이해를 쌓았습니다. 이번시간 부터는 제 2장 모바일 기술을 통해, 무선 인터넷을 위한 컨텐츠 제작 기술, 네트워크.
10장 OSI 7 Layer 강원도립대학교 정보통신개론.
웹 어플리케이션 보안 2016년 2학기 11. Enhancing Security.
Introduction to JSP & Servlet
KISTI Supercomputing Center 명훈주
테이블 관리 테이블 생성,수정,삭제 데이터 입력 수정, 삭제 2010학년도 2학기.
~27 윤형기 Python 프로그래밍 (보충) ~27 윤형기
Git을 이용한 버전 관리 - Branch 실습
Exporting User Certificate from Internet Explorer
M.B.TEAM 중간 발표 (5.18) 이 제걸 백 인호.
Presentation transcript:

HeartBleed

발표자 소개 지용빈 (ben3679@naver.com) 한세사이버보안고등학교 3학년 시스템 보안 동아리 노예

HeartBeat의 원리와 구조 HeartBleed의 원리 OpenSSL Heartbleed? 시나리오 INDEX

What is HeartBleed? CVE-2014-0160

HTTPS

HTTPS + = HTTP SECURE HTTPS

HTTP HTTP Port: 80

HTTP HTTP Port: 80

HTTP HTTP Port: 80 Hacker

HTTP HTTPS Open SSL Port: 443

HTTP HTTP Port: 80 Hacker

HeartBleed HeartBleed = HeartBeat 확장 라이브러리에서 발생한 취약점

HeartBeat

HeartBeat TLS/DTLS Extension Library

Server와 Client 사이의 통신 보안을 위한 프로토콜 TLS TLS (Transport Layer Security) Server와 Client 사이의 통신 보안을 위한 프로토콜

SSL SSL (Secure Socket Layer) OpenSource OpenSSL

HeartBeat HeartBeat 서버와 클라이언트의 안정적인 연결을 유지하기 위해 일정 신호를 주고 받는 OpenSSL 확장 프로토콜

HeartBeat request response Client Server

HeartBeat request response Type Type length length payload payload padding padding

HeartBeat Connection Alive Client Server

Type : Request OR Response Length : payload length Payload : text HeartBeat Type : Request OR Response Length : payload length Payload : text Padding : random text

HeartBeat Request, Response Type 1byte length 2byte payload Max(65KB) padding Min(16byte)

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;

HeartBeat Request 변수 request 5 hello padding type length payload

HeartBeat unsigned char *buffer, *bp; int r; bp buffer = OPENSSL_malloc (1 + 2 + length + padding); bp = buffer; bp hbtype length payload padding

HeartBeat Response packet의 크기만큼 메모리 할당

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

HeartBeat 변수 Response hbtype length payload padding response 5 hello

HeartBeat Length 와 payload의 실제 크기를 비교 하지 않습니다.

HeartBeat 정상적인 HeartBeat Client Server Server Memory 서버야 살아있니? “Hello” 라고 5byte로 대답해 “Hello” Server Memory Hello Client Server 1byte

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

HeartBeat Private Key User Data Session

HeartBleed 해외 유명 사이트 18개 이상

HeartBleed 취약한 야후 사이트

HeartBleed 노출된 password

시나리오 크고 아름다운 시나리오 2개

시나리오 1. HeartBleed 취약점을 이용한 사용자의 세션 값 탈취 2. APT 공격을 위한 정보수집 방법으로 활용

실습 환경 Ubuntu 12.04 OpenSSL 1.0.1 CVE-2014-0160-master https://github.com/0x90/CVE-2014-0160

시나리오 영상

시나리오 1 LOGIN PHPSESSID=f8e8a6d2f4w8wf USER PHPSESSID=f8e8a6d2f4w8wf Server HeartBleed Attack PHPSESSID=f8e8a6d2f4w8wf Server Memory PHPSESSID=f8e8a6d2f4w8wf PHPSESSID=f8e8a6d2f4w8wf LOGIN SUCCESS Attacker

노출된 정보

노출된 정보

노출된 정보

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

노출된 정보

노출된 정보

노출된 정보 SQL 쿼리문 사용자의 ID와 PW SSL 발급 정보 세션 값 디렉토리 노출 시스템 정보(커널과 버전정보)

문제점 서버의 메모리에서 random 하게 추출하기 때문에 원하는 정보를 얻을 때까지 걸리는 시간도 random

대응방안

대응방안

대응방안 Update 취약한 버젼 패치된 버젼 OpenSSL 1.0.1g OpenSSL 1.0.2 beta OpenSSL 1.0.1f OpenSSL 1.0.2-beta1 Update OpenSSL 1.0.1g

대응방안 IDS(침입탐지시스템) IPS(침입차단시스템)에 탐지 rule 업데이트 적용

대응방안 SSL 비밀키 유출 가능성을 대비한 인증서 재발급을 권장

Q&A

감사합니다.