18. HTTP 보안 -dsniff 2004. 11. 02 실시간 정보 시스템 LAB 이 영 주 RTIS LAB.

Slides:



Advertisements
Similar presentations
웹 서버 구축 숭의여대 인터넷정보과 최지영. 웹 ? 웹사이트 ? 웹서버 ? 웹서비스 ? IIS? 아파치 ?
Advertisements

충북대 네트워크 보안 연구실 [ gmail.com ] 정보 보호 응용 11. 해킹기술 (3) 11. 해킹기술 (3) - hacking & security -
박승제 웹 애플리케이션 기술 박승제
Chapter 02. 웹에 대한 이해. Chapter 02. 웹에 대한 이해 웹의 역사 HTTP 웹 애플리케이션 기술.
8 스니핑.
18. HTTP 보안 -dsniff 실시간 정보 시스템 LAB 이 영 주 RTIS LAB.
네트워크해킹 분석 및 대응 한국정보보호교육센터 서 광 석 원장.
Introduction to Django
Chapter 03. 네트워크 보안 : 길을 지배하려는 자에 대한 저항
Nortelnetworks VPN & Firewall Contivity 1100.
APPEON SOLUTION INTRODUCTION.
1. 스푸핑 공격 - 스푸핑(Spoofing): ‘속이다’ 의 의미.
3 장 인터넷 서비스.
Network Lab. Yong bae, Kim
웹 해킹 기초와 실습.
Asymmetric Link 분석.
RTSP, RTP 김현철.
NFS, FTP coearth, george.
11. 해킹기술 (4) - hacking & security -
1. JSP(Java Server Pages) 소개
서버의 종류와 기능 환경공학과 권진희.
오 태 호 POSTECH Laboratory for UNIX Security
Network 네트워크 이론 및 실습 TCP / IP 4장.
동호회 구축 제안서 인터넷전문가그룹 4biz.
1장. JSP 및 Servlet을 활용한 동적 웹 프로그래밍 소개 제1장.
Chapter 8 목차 8.1 네트워크 보안이란 무엇인가? 8.2 암호학의 원리 8.3 메시지 무결성 8.4 종단점 인증
Web Servers (IIS & Apache)
1. JSP(Java Server Pages) 소개
Chapter 09 세션 하이재킹.
1강 01장. 웹과 자바.
ASP 정 보 보 호 학 과 양 계 탁.
Chapter 02 웹의 이해.
RTSP, RTP 김현철.
박 명 호 한남대학교 컴퓨터공학과 인공지능 실험실
Chapter 06 스니핑.
Men In the Middle, Simple but critical issue.
국산 Firewall 제품 비교표 SecureShield SecureWorks InterGuard Hwarang
Processing resulting output
Embeded 기초 다지기 2015년 10월 26일 intern Sally
Network Security Footprint & Scan.
11 세션 하이재킹.
웹서버와 설치에 필요한 것 WWW ( world wide web ) TCP/IP 프로토콜을 이용하는 클라이언트/서버 환경
제9장 네트워킹 숙명여대 창병모 2011 가을.
3부 해킹 전 정보 획득 Chapter 6. 풋프린팅과 스캔
Cookie 와 Session.
1강_web과 html Web이란? HTML이란? CSS란? Lecturer Kim Myoung-Ho Nickname 블스
Network Security WireShark를 활용한 프로토콜 분석 II.
BIZSIREN 실명확인서비스 개발 가이드 서울신용평가정보㈜ 신용조회부 (TEL , FAX )
UNIX Internet Server의 대부분을 차지 대표적인 공급업체
PHP 설치.
Web Vulnerabilities 정보 보호 2008/05/31 Getroot.
CGI (Common Gateway Interface)
멀티 쓰레드 기반의 채팅 프로그램 문성영 김현진 학번 이름 장용하 차희진 연구제안서.
Packet Analyzer V (주) 이네스 닷컴.
Part 04-3 Windows 2000 Server IIS Outlook Express 도메인 사용 관리자
메일캐리어 제품 소개서 탭스랩주식회사.
인터넷보안 실습 2012년 1학기.
제8장 네트워킹 숙명여대 창병모
Appendix. WURFL 브라우저 살펴보기
연습 문제 풀이 헥사 값의 의미 FTP 응답 코드의 의미 분석 (a) D 0A (b)
국립중앙의료원 Messenger Server
CGI (Common Gateway Interface)
9 스푸핑.
Computer Network(Hacking)
GoAhead Web Server.
Internet & WWW Protocols
최종 사용자 관점의 웹 서비스 성능 관리 SmartSQM Agentless 실시간 전구간 성능 모니터링
9 스푸핑.
홈페이지 제안서
웹 프로그래밍 기술 요약 Yang-Sae Moon Department of Computer Science
Presentation transcript:

18. HTTP 보안 -dsniff 2004. 11. 02 실시간 정보 시스템 LAB 이 영 주 RTIS LAB.

HTTP란? HTTP 보안 SSL Dsniff 란? Dsniff 사용 예 dnsspoof 사용 예 Reference

HTTP란? WWW(World Wide Web.)에서 쓰이는 프로토콜 - 1989년 3월, 스위스의 CERN 연구소(입자물리 연구소)에서 처음 시작한 프로젝트 기존의 텍스트 기반 인터페이스 대신 그래픽 인터페이스를 통해 정보를 교환하기 위해 만들었다. - Client/Sever 구조로 동작(웹브라우저/웹서버) - 비연결 프로토콜 : 요청할 때마다 매번 서버에 접속했다가 연결을 끊는 과정 반복 - Client : Ms 익스플로러, netscape, Lynx - Server: Apache, IIS

Web Web Server client HTTP란? Web Application의 구조 전형적인 웹 어플리케이션 구성 요소 N-tiers SQL Query Web app Request Connector Web Server DB Web client Transport Connector DB Response HTTP Response

URL의 형식 HTTP란? 프로토콜:// 서버_주소[:포트번호]/파일_경로 ex> 야후 사이트의 index.html파일에 접근하고자 할 때 http://www.yahoo.co.kr/index.html  포트를 지정하지 않으면 자동으로 TCP 80번 포트 사용 특정포트를 사용하고자 할 경우는 포트번호를 지정 http://www.yahoo.co.kr:9000/index.html

웹브라우저가 URL요청을 보낼 때 HTTP란? 1. Client는 서버에 접속한 뒤 다음과 같은 메시지를 보낸다. : GET /index.html HTTP/1.0 \r\n \r\n GET : 자료요청 (ex>POST,PUT,HEAD) /index.html : 자료의 경로 HTTP/1.0 : HTTP 프로토콜의 버전 모든 메시지는 헤더+본문 으로 구성 \r\n : 헤더와 본문을 구분

HTTP란? 2. Sever 응답( 헤더+본문) : 본문 내용을 화면에 보여줌 : HTTP/1.1 200 OK \r\n Server: Apache/1.3.26 (Unix) PHP/4.2.3 \r\n Last-Modified: Tue, 07 Jan 2003 12:57:38 GMT \r\n Connection: Close \r\n Content-Type: text/html \r\n \r\n <html> \r\n Hello, Web Browser! \r\n </html> \r\n

HTTP 보안 HTTP보안 문제 - CGI 문제 - DDoS문제 - 쿠키 - 웹 스푸핑 - 입력 검증

HTTP쿠키 HTTP쿠키의 문제점 HTTP 보안 문제 – HTTP쿠키 - Client에서 변경 가능 - Sever가 Client에게 저장하는 어떤 정보 -처음 로그인 할 때 사용한 정보를 계속 유지하기 위한 해결책 ( 로그인 후, 재인증 필요 없음) - 비연결 프로토콜에서 연결 지향형 프로토콜의 효과 문제 HTTP쿠키의 문제점 - Client에서 변경 가능

HTTP 보안 문제 – HTTP쿠키 EX> 웹브라우저를 통해 http://www.google.co.kr에 접속 새로 생성된 쿠키파일

HTTP 보안 문제 – HTTP쿠키 쿠키파일의 내용은 - 두번째 줄에 있는 것이 쿠키이며, 사용자가 내용을 고친후, 다시 www.google.co.kr을 요청하면 - 웹브라우저는 사용자가 변경한 쿠키를 웹서버로 보낸다.

Web spoofing HTTP 보안 문제 – Web spoofing - Client에게 가짜 웹페이지를 보내는 공격 1. 가짜 웹페이지를 보내주는 방법 2. 가짜 서버(공격자의 서버)를 진짜 서버로 믿게 하는 방법 - DNS spoofing - ARP spoofing ※ MITM(man-in-the-middle)공격

MITM(man-in-the-middle)공격을 이용한 웹 스푸핑 HTTP 보안 문제 – Web spoofing MITM(man-in-the-middle)공격을 이용한 웹 스푸핑 4.내용을 바꿔서 전송 1.웹페이지 요청 2.중간에서 가로챈 뒤,실제 웹서버에 요청 3.요청한 내용 전송

입력검증(Input validation) HTTP 보안 문제 – Input validation 입력검증(Input validation) - Client가 보낸 입력을 제대로 검사하지 않아서 생기는 문제 ex) 버퍼오버플로우, 포맷 스트링 버그 등 검사 방법 1. Sever측 검사 - 클라이언트가 보낸 입력을 일일이 검사(데이터 포맷 검사) - 장점: 가장 안전함 - 단점: 서버측에서 많은 검사코드를 작성하여야 함. 2. Client 측 검사 - 클라이언트 웹 브라우저의 스크립트를 이용하여 입력을 제한 단점: 클라이언트측 스크립트는 완벽하지 않다.(소스를 읽기 쉬움)

웹 페이지 소스저장 방법 HTTP 보안 문제 – Input validation -Window에서 : 익스플로러의 저장기능 이용 - Unix에서 : wget, lynx 를 사용 UNIX에서 구글페이지를 읽어오고 싶다면 lynx에서 구글페이지를 읽어오고 싶다면 [bastion]$ wget http://www.google.co.kr/ --17:55:05-- http://www.google.co.kr/ => ‘index.html’ Connectiong to www.google.co.kr:80... Connected! HTTP request sent, awaiting response… 200 OK Length: 3,111 [text/html] OK -> · · · [100%] 17:55:07 (506.35 KB/s) – ‘index.html’saved[3111/3111] [bastion]$ lynx -source http://www.google.co.kr <html><head><meta http-equiv=“content-type” content=“text/html;charset=EUC-KR”><title>Google</title><style><!—body, td,a,p,.h{fonr-family:굴림,돋움,arial,sans-serif;line-height=120%;} .ko{font-size:9pt;} .h{font-size:20px;} .q{text-decoration:none; color:#0000cc;} //--> </style><script><!— Funtion sf(){document.f.q.focus();} // -->(생략)

HTTP 보안 문제 – Input validation 공격자가 원하는 서버에게 데이터를 보낼 때 - 스크립트 언어 : cURL, Perl, PHP - 직접 만든 프로그램 cURL(Client URL Library Functions ) - FTP, TELNET, HPPT, HTTPS 등 지원 - 라이브러리 형태로 제공 Example:   (page located at http://www.formpost.com/getthis/   <form action="post.cgi" method="post"> <input name=user size=10> <input name=pass type=password size=10> <input name=id type=hidden value="blablabla"> <input name=ding value="submit"> </form> curl -d "user=foobar&pass=12345&id=blablabla&ding=submit" (continues) http://www.formpost.com/getthis/post.cgi ID:foobar PW:'12345 curl -F "file=@cooltext.txt" -F "yourname=Daniel"

SSL암호화의 문제점 SSL / Secure Socket Layer SSL /Secure Socket Layer - HTTP 에서 동작하며 터널을 형성 - OSI 중 4계층(트랜스포트)과 5계층(세션) 사이 - 웹에서 데이터 암호화에 쓰임 - 암호화 가능하여 기밀성을 제공 <공개키 암호화 방식> : 스니핑을 통한 공격에 안전 문제 SSL암호화의 문제점 - SSL-MITM(man-in-the-middle)공격

SSL - MITM 공격 SSL – MITM 공격 1.google.com요청인증서:attact.com 2.google.com요청인증서:google.com 4.클라이언트에게 응답 3.attack.com으로 응답 클라이언트 Attack.com google.com 1.클라이언트는 SSL을 통해 google.com 요청(DNS 스푸핑: IP착각) => DNS스푸핑공격으로 인해 attack.com에 이 요청이 전송됨. attack.com에서는 클라이언트에게 자신의 인증서를 보여주며 통신.(유효성 판단하지 않아서 생김) 2.Attack.com에 있는 공격자는 클라이언트가 보낸 메시지의 내용을 평문으로 볼 수 있다. 이 내용을 저장한 뒤, 공격자는 같은 요청을 google.com으로 보냄. => google.com의 인증서를 이용하여 통신 3.Google.com에서는 attack.com에 응답 4.Attack.com에서는 google.com에서 보낸 암호화된 메시지를 평문 형태로 변환한 다음 다시 암호화하여 클라이언트에게 보냄.

SSL - MITM 공격 SSL – MITM 공격을 방지하는 방법 SSL-MITM 공격에 사용할 수 있는 툴 - dsniff - 유효하지 않은 인증서를 사용하는 웹 사이트와는 통신을 하지 않는 것 SSL-MITM 공격에 사용할 수 있는 툴 - dsniff (wemitm툴과 dnsspoof를 이용)

http://www.monkey.org/~dugsong/dsniff/dsniff-2.3.tar.gz Dsniff 란? - 한국계 미국인 송덕준이 개발한 해킹도구. - 미국 연방수사국(FBI)의 범죄 용의자 추적용인 카니보어(carnivore), 이 카니보어에 맞서기 위해 해커들이 개발한 알트보어(altvore)와 함께 대표적인 스니핑(sniffing) 소프트웨어로 꼽힌다. - 상대방의 암호(ID)·비밀번호·메일 내용 탐지 - 해커가 원하는 정보를 선택하여 탐지 다운로드 http://www.monkey.org/~dugsong/dsniff/dsniff-2.3.tar.gz

Dsniff 설치 Dsniff dsniff를 사용하기 위해서는 - 스위치 환경과 SSL, SSH의 사용을 무색하게 만드는 패스워드 스니퍼. - SSL과 SSH 버전 1의 패스워드를 가로챈다. * OS : OpenBSD (i386), Redhat Linux (i386), and Solaris (sparc) - 스위칭 환경에서 효율적인 스니핑을 하기 위한 매우 다양한 유틸들이 포함 *유틸: Arpspoof, dnsspoof, mailsnarf, filesnarf 등 dsniff를 사용하기 위해서는 Berkeley DB, OpenSSL-, libpcap, libnids, libnet 등을 설치 설치순서는 Berkeley DB -> libnet -> libnids -> dsniff ※ Berkely DB설치 – ver 2.7.7만을 사용하여야 하고, 꼭 ver 1.8.5와의 호환모드로 컴파일 되어야 함.

Dsniff 설치 1. Berkeley DB설치 3. Libnids라이브러리 설치 2. Libnet라이브러리 설치 #tar xvfz db-2.7.7.tar.gz #cd /root/lecture/dsniff/db-2.7.7/dist #./configure –enable-compat185 …………….. #make #make install #tar xvfz libnids-1.16.tar.gz #cd libnids-1.16 #./configure ……………… #make #make install 반드시 ver 1.8.5 호환모드로 설치 2. Libnet라이브러리 설치 4. dsniff 설치 #tar xvfz libnet-1.0.2.tar.gz #cd libnet-1.0.2a #./configure ……………. #make #make install #tar xvfz dsniff-2.3.tar.gz #cd dsniff-2.3 #./configure ……. #make #make install

Dsniff 매뉴얼 DSNIFF(8) DSNIFF(8) NAME dsniff - password sniffer SYNOPSIS dsniff [-c] [-d] [-m] [-n] [-i interface] [-s snaplen] [-f services] [-t trigger[,...]]] [-r|-w savefile] [expression] DESCRIPTION dsniff is a password sniffer which handles FTP, Telnet, SMTP, HTTP, POP, poppass, NNTP, IMAP, SNMP, LDAP, Rlogin, RIP, OSPF, PPTP MS-CHAP, NFS, VRRP, YP/NIS, SOCKS, X11, CVS, IRC, AIM, ICQ, Napster, PostgreSQL, Meeting Maker, Citrix ICA, Symantec pcAnywhere, NAI Sniffer, Microsoft SMB, Oracle SQL*Net, Sybase and Microsoft SQL protocols.

Dsniff 에서의 스니핑 방법 ARP Redirect 방법에 의한 1. 네트워크 상에서 패킷이 보내질 때 목적지의 IP 주소를 갖고 해당 목적지가 어떤 MAC 주소를 사용하는지를 요청 2. ARP request는 네트워크 상에 브로드캐스팅되어 모든 호스트가 그 패킷을 받게 되고 해당 IP를 가진 호스트는 그런 IP를 사용하는 것은 나라고 ARP reply를 주게 된다 [그림 1] ARP request 과정 [그림 2] ARP reply 과정

Dsniff 에서의 스니핑 방법 3. 하지만 공격자는 거짓된 ARP reply를 계속하여 보낼 수 있다 문제는, ARP Request가 오기 전에 ARP reply가 위와 같은 식으로 보내지게 되었을 때 공격 대상이 되는 시스템의 ARP cache에 그런 내용이 저장이 되고 ARP cache에 10.1.1.1에 대한 정보가 있다면 굳이 ARP request를 하지는 않는다 이 점을 이용하여 공격자는 ARP Request가 있기 전부터 거짓 응답을 주기적으로 계속 보냄. 10.1.1.1로 가게 될 패킷은 10.1.1.3으로 가게 된다. 10.1.1.3은 해당 패킷의 내용을 받고 저장한 후 바로 아무 일 없었다는 듯이 10.1.1.1로 포워딩 하므로 통신에는 문제 없다 (10.1.1.1은 못알아차린다.) [그림 3] 조작된 ARP reply 과정

Dsniff 실행 결과 Applicance dsniff # dsniff Dsniff: listening on eht0 - ----------------- 10/26/04 20:14:21 tcp 168.188.129.184.2454 -> 168.188.130.30.21 (ftp) USER adoregnu PASS smile99 ----------------- 10/26/04 20:14:32 tcp 168.188.129.184.2458 -> 168.188.130.30.21 (ftp) USER adoregnu PASS smile99 ----------------- 10/26/04 20:15:32 tcp 168.188.129.184.2464 -> 168.188.129.2.23 (telnet) adoregnu smile99

Dsniff를 이용한 해킹의 방지 1. plan text 디스니프를 이용한 해킹을 막기 위해서는 디스니프를 이용한 해킹이 가능한 이유 1. plan text 2. broadcast *arp위조 텔넷의 패스워드가 abc라고 가정하면, 스니퍼를 이용하여 볼 수 있는 내용은 a, b, c 각각 보이지만, 디코드 기능을 이용하면 abc를 모두 조합시켜 보여준다.  수집된 수많은 패킷들을 사용자가 하나하나 찾아서 조합하는 과정을 툴이 자동적으로 해결 디스니프를 이용한 해킹을 막기 위해서는 1.퍼스널컴퓨터용 보안도구들을 사용해 메일에 암호를 건다. ( 다른 사람이 내용을 볼 수 없도록 ) ex>PGP(pretty good privacy)로 메일에 암호를 걸어 다른 사람이 내용을 볼 수 없도록. 2. 웹메일을 이용한 뒤 윈도 시스템 폴더에 있는 캐시폴더의 내용들을 삭제한다. (정보유출방지) ex>캐시분석용 도구를 이용하면 ID 및 패스워드를 외부인이 손쉽게 알아낼 수 있기 때문.

dnsspoof 이용한 MITM dnsspoof.hosts 파일에 써준다.(MITM할 주소를) # $Id: dnsspoof.hosts,v 1.2 2000/08/28 13:28:21 dugsong Exp $ # # Sample hosts file for dnsspoof - kill web banner ads for Niels. :-) # 127.0.0.1 ad.* 127.0.0.1 ads*.* 127.0.0.1 adbot*.* 127.0.0.1 adcount*.* 127.0.0.1 adfinity*.* 127.0.0.1 adforce*.* 127.0.0.1 adimage*.* 127.0.0.1 adlink*.* 127.0.0.1 adserv*.* 127.0.0.1 adremote*.* 127.0.0.1 adv.* 127.0.0.1 advert*.* 127.0.0.1 banner*.* 127.0.0.1 count*.* 127.0.0.1 promo*.* 127.0.0.1 werbung*.* 127.0.0.1 *ads*.*.com 127.0.0.1 *.adbot.com 127.0.0.1 *.adone.com 127.0.0.1 *.adforce.com 127.0.0.1 *.ad-up.com 127.0.0.1 *.advert*.* 127.0.0.1 *.banner*.* 127.0.0.1 *.bfast.com 127.0.0.1 *.burstnet.com 127.0.0.1 *.doubleclick.net 127.0.0.1 *.focalink.com 127.0.0.1 *.flycast.com 127.0.0.1 *.freestats.com 127.0.0.1 *.hitbox.com 127.0.0.1 *.globaltrack.com 127.0.0.1 *.globaltrak.net 127.0.0.1 *.imagine-inc.com 127.0.0.1 *.imgis.com 127.0.0.1 *.link*.com 127.0.0.1 *.memory.net 127.0.0.1 *.preferences.com 127.0.0.1 *.smartclicks.com 127.0.0.1 *.sponsorpool.net 127.0.0.1 *.stats.net 127.0.0.1 *.stattrax.com 127.0.0.1 *.*tracker.com 127.0.0.1 *.valueclick.com 127.0.0.1 *.wisewire.com 127.0.0.1 *.yahoo.com 168.188.129.191 www.daum.net

dnsspoof 이용한 MITM Applicance dsniff # dnsspoof -i dev-br –f /etc/dsniff/dnsspoof.hosts dnsspoof: listening on dev-br [udp dst port 53 and not src 168.188.129.188] - Applicance dsniff # dnsspoof -i dev-br –f /etc/dsniff/dnsspoof.hosts dnsspoof: listening on dev-br [udp dst port 53 and not src 168.188.129.188] 168.188.129.184.4159 > 168.188.1.1.53:  2+ A? www.daum.net - Applicance dsniff # dnsspoof -i dev-br –f /etc/dsniff/dnsspoof.hosts dnsspoof: listening on dev-br [udp dst port 53 and not src 168.188.129.188] 168.188.129.184.4159 > 168.188.1.1.53:  2+ A? www.yahoo.com -

dnsspoof 이용한 MITM의 실행 결과 www.daum.net 을 요청했으나, dnsspoof에 의해 공격자가 지정한 페이지인 가짜 페이지가 뜨게 된다.

Wemitm&dnsspoof 이용한 MITM의 실행 결과 Command로 보면…

Reference 강유의 해킹과 보안 18장 http://www.securitytechnet.com/resource/rsc-center/presentation /NetFocus2003/2.pdf http://elyjinni.com.ne.kr/hacking/sniffing.htm http://www.pgpnet.com/community http://curl.oc1.mirrors.redwire.net/docs/manual.html