Chap 1 Introduction to Intrusion Detection

Download Report

Transcript Chap 1 Introduction to Intrusion Detection

네트워크해킹 분석 및 대응
한국정보보호교육센터
서 광 석 원장
차례
1.
네트웍 보안 개요(Network Security Overview)
2.
네트웍 스캐닝(Network Scanning)
3.
스니핑(Packet Sniffing)
4.
스푸핑(IP Spoofing)
5.
세션 하이재킹(Session Hijacking)
6.
DoS/DDoS Attack
`
http://www.kisec.com
네트웍 보안의 개요
네트웍 공격의 분류
 네트워크를 통한 서버 공격
 네트워크 환경 및 시스템 정보 수집 - 공격시에 최초로 시도
• 네트워크 스캔, 포트 스캔, 스니핑
 Packet Sniffing을 통한 사용자 아이디 및 암호 획득
 DOS(Denial of Service) 공격
네트웍 보안취약점의 원인
 TCP/IP 프로토콜 구현상의 오류
 세밀하지 못한 자원 공유 및 접근제어
 네트웍 기반의 인증 서비스 부족
 네트웍 서비스 데몬의 취약점
 단일화된 보안 관리의 어려움
`
http://www.kisec.com
네트웍 스캐닝
네트웍 스캐닝
네트웍 스캐닝의 목적
 네트워크의 연결에 대한 문제점을 테스트
 이용 가능한 서비스와 포트를 조사 및 보안 취약점 검색
 시스템 정보 획득
• OS 종류 및 버전
• 서비스 중인 포트 및 서비스 종류
네트웍 스캐닝 기법
 포트 스캔(Port Scanning)
• Open Port Detection
• OS Detection
• Etc
 취약점 스캔(Vulnerability Scanning)
• 특정 네트웍 서비스(서버 어플리케이션)의 취약점 탐지
`
http://www.kisec.com
네트웍 스캐닝
네트워크 스캐너 종류
 nmap(Network mapper), mscan, sscan, portscan, HakTek,
porttest, dnscan, checkos, etc
 CGI Vulnerability Scanner
• CGI scanner, Perl CGI Checker, etc
`
http://www.kisec.com
Port Scanning
목적
 어떤 서비스가 열려 있는지를 확인한다.
방법
 인터넷에 공개되어 있는 scanning 도구를 이용한다.
 Network Scanning에 의해 시스템의 존재와 그 시스템의 IP 주소를
얻으면 그 시스템에 무슨 서비스가 존재하는지를 확인한다.
 서비스를 제공하는 서버 데몬의 종류를 확인한다. 예를 들어서 웹
서버의 종류와 버전을 확인한다. 이것은 이미 알려져 있는 버그가
데몬에 있는지를 확인하기 위해 필요하다.
`
http://www.kisec.com
Port Scanning
mscan 공격
 네트워크 블록 전체를 스캐닝하여 최근에 알려진 보안 취약점을
한번에 스캐닝
 점검 취약점 항목
• wingate
• phf, handler, test-cgi
• NFS exports, statd, named
• X server, ipopd, imapd
`
http://www.kisec.com
Port Scanning
sscan 공격
 mscan을 개발한 jsbach가 개발
 mscan에 비해 강력해진 네트워크 보안 취약점 점검 기능
 mscan 취약점 점검 항목
• 백오리피스 점검(31337 포트)
• 취약한 CGI 프로그램들(Count.cgi, php.cgi 등 다수)
• bind/iquery 버퍼 오버플로우 등
 취약점에 대한 공격 시도(자기복제 가능한 스크립트 모듈 수행)
z0ne
 특정 도메인의 수많은 IP를 찾아내는 프로그램
imapvun, imapd_scan.sh
 imap 취약점 스캐너
phfscan
 phf.cgi 취약점 스캐너
`
http://www.kisec.com
Port Scanning
Nmap(Network Mapper)을 사용한 포트 스캔
`
http://www.kisec.com
Port Scanning(by hand)
일반적인 서버 확인 방법 (TCP 연결인 경우)
victim % telnet 10.10.10.1 3306
….
GET / HTTP/1.0
Accept: */*
HTTP/1.0 200 OK
Date: …
Server: Apache/1.3.6 (Unix) …
Victim % telent 10.10.10.1 23
….
Unix® System V Realse 4.9(10.10.10.1)
Login
Victim % telnet 10.10.10.1 21
….
…. FTP server(UNIX® System V Realse 4.0 ready.
SYST
`
http://www.kisec.com
OS Detection
목적
 시스템의 종류를 확인한다.
 시스템의 종류를 알면 시스템에 존재하는 취약점을 알 수 있고, 또한
버퍼 오버플로우의 경우가 존재하는 경우 쉘 코드의 종류(Assembly
Language)를 알 수 있다.
방법
victim
% nmap –O 10.10.10.1
 인터넷에
공개되어 있는 스캔 도구를
….
Remote operation system guess: Linux 2.1.122 – 2.2.14
….
`
http://www.kisec.com
이용한다.
Vulnerability Scanning
Vulnerability Scanning 개요
 원격 시스템의 보안 취약성을 검색하여 정보 수집 및 네트워크 공격
Scanner의 종류
 시스템 스캐너
• COPS(The Computer Oracle and Password System)
• 애매하거나 잘못된 파일 허가권
• 디폴트 계정
• 잘못되거나 중복된 UID 항목
• ISS의 System Scanner
 네트워크 스캐너
• ISS(Internet Security Scanner)
• SATAN(Security Administrator’s Tool for Analyzing Networks)
• SAINT
` • CGI Scanner
http://www.kisec.com
Vulnerability Scanning
Scanning 공격 방어
 courtney : SATAN과 SAINT 탐지기
 icmpinfo : ICMP 스캔/폭탄 탐지기
 scan-detector : 일반적인 UDP 스캔 탐지기
 Psionic PortSentry : stealth scanner 탐지기
`
http://www.kisec.com
SAINT
SAINT(Security Administrator’s Integrated Network Tool)
 SATAN의 향상된 보안 스캐너
 SAINT의 보안 검사 항목
•
•
•
•
•
CGI 기반의 웹 공격
DOS 공격
POS 서버 공격
SSH Security holes
Remote Buffer Overflow
`
http://www.kisec.com
기타 - 내부 정보 획득
사용자 정보 획득
 finger (/usr/bin/finger)
victim % finger @victim.com
[victim.com]
Login
Name
TTY
idle
zen Dr.Foobar
co
1d
When
Wed 08:00
Where
death.com
 rusers (/usr/bin/rusers)
Victim % rusers victim.com
Login
Home-dir
Shell
root
/
/bin/sh
bin
/bin
nobody
/
daemon
/
`
http://www.kisec.com
Last login, from where
Fri Nov 5 07:42 on ttyp1 from big.victim.com
Never logged in
Tue Jun 15 08:57 on ttyp2 from server.victim.com
Tue Mar 23 12:14 on ttyp0 from big.victim.com
기타 - 내부 정보 획득
NFS 정보 획득
 showmount
evil % showmount –e victim.com
export list form victim.com:
/export
(everyone)
/var
(everyone)
/usr
easy
/export/exec/kvm/sun4c.sunos.4.1.3 easy
/export/root/easy
easy
/export/swap/easy
easy
NFS는
 특별히 신뢰하는 클라이언트에게만 read/write only로 개방하며,
 가능한 Read-only로 만든다.
`
http://www.kisec.com
기타 - 내부 정보 획득
RPC 관련 시스템 정보 획득
 rpcinfo
• NIS 사용 및 master/slave 여부
• 디스크 없는 워크스테이션 운영 여부
• 기타 시스템 정보 획득
evil % rpcinfo –p victim.com
program vers
proto
port
100004
2
tcp
673
100005
1
udp
721
100003
2
udp
2049
100026
1
udp
733
100017
1
tcp
1274
`
http://www.kisec.com
ypserv
mountd
nfs
bootparam
rexd
기타 - 패스워드 추측
패스워드 추측(Password Guessing)
 주어진 정보를 이용하여 패스워드를 추측하여 공격
• 사용자의 신상에 관한 정보
• 사전 대입식 – 패스워드 크랙 도구 사용
 패스워드의 최소 길이를 설정해 놓지 않았거나 짧게 설정해 놓으면
Brute force 공격에 당하기 쉽다
패스워드 추측 기법
 Brute-force
 무작위 추출법
 순차 대입법
 사전식 대입 - 크래킹 도구를 이용
• Crack, webcrack
`
http://www.kisec.com
스니핑/Sniffing
Sniffing 정의 - 1
‘sniff’는 사전에서 찾아보면 ’코를 킁킁거리다‘라는 의미
코를 킁킁거리듯이 정보를 데이터 속에서 찾는 것이라고 생각하면
쉽다
스니핑 공격은 막는 것도 어려우며, 탐지 역시 쉽지 않다
스니핑 공격을 수동적(Passive) 공격
`
http://www.kisec.com
Sniffing 정의 - 2
랜에서의 스니핑은 프러미스큐어스(Promiscuous) 모드에서 작동
랜 카드는 설정된 IP 주소 값과 고유한 MAC(Media Access Control)
주소 값을 가지고 있음
자신의 랜 카드에 들어오는 프로토콜 형식에 따른 전기적 신호의 헤더
부분, 즉 주소 값을 인식하고 자신의 버퍼에 저장할지를 결정한다.
스니퍼는 자신이 가지지 말아야 할 정보까지 모두 받아들이는 것
자신의 주소 값을 무시하고 모든 패킷을 받아들이는 상태를
프러미스큐어스 모드라고 함
`
http://www.kisec.com
Sniffing
※ 인터페이스를 프러미스큐어스 모드로 전환하기
Root# ifconfig eth0 promisc
`
http://www.kisec.com
스위치환경에서의 스니핑
스위칭 환경에서는 기본적으로 스니핑이 어렵다.
허브
 허브는 랜에서 들어오는 모든 신호를 복사해서 모든 포트에 다시 뿌려주는
역할을 한다.
 따라서 브로드캐스트(Broadcast) 패킷인지 유니캐스트(Unicast)
패킷인지에 상관없이 모든 포트에 보내주므로 스니퍼에게 스니핑을 이용한
공격은 간단하다.
스위칭허브
 스위치는 포트별로 MAC 주소 값이 기록하여 브로드캐스트 패킷을 제외한
모든 패킷은 그 패킷이 목적하는 장비에만 보낸다.
 스위치는 스니핑을 막기 위해 만들어진 장비는 아니지만 결과적으로
스니퍼를 저지하는 치명적인 장비가 되었다.
`
http://www.kisec.com
스위치환경에서의 스니핑
※ ARP 스푸핑/리다이렉트
ARP 리다이렉트 공격은 기본적으로 2계층에서 실시 한다
공격은 위조된 ARP reply 패킷을 보내는 방법을 사용
자신의 MAC 주소가 라우터라며 브로드캐스트를 주기적으로 하는
속이는 것
ARP 스푸핑는 호스트 대 호스트 공격이며, ARP 리다이렉트는 랜의
모든 호스트 대 라우터라는 것 말고는 큰 차이점이 없음
ARP 스푸핑에서와 마찬가지로 공격자 자신만은 원래 라우터의
MAC 주소를 알고 있어야 하며 받은 모든 패킷은 다시 라우터로
릴레이해 주어야만 한다. (Fragroute사용)
`
http://www.kisec.com
스위치환경에서의 스니핑
ARP Spoof 이해하기(Flash)
http://www.oxid.it/downloads/apr-intro.swf
`
http://www.kisec.com
스위치환경에서의 스니핑
※ 스위치 재밍(MACOF)
스위치 재밍(Switch Jamming)은 스위치를 직접 공격한다.
해킹 공격 중에 버퍼 오버플로우(Buffer Overflow) 공격이 있다.
버퍼 오버플로우 공격은 버퍼를 공격해서 시스템을 다운시키기거나
오작동을 유발하기도 하며, 루트(Root) 권한을 얻어내는 데
쓰이기도 한다. 스위치 역시 하나의 시스템으로 생각할 수 있다.
CPU와 같은 연산자가 있으며 MAC 테이블을 저장하기 위한 저장
공간이 있다.
스위치 재밍은 MAC 테이블을 위한 캐시 공간에 버퍼 오버플로우
공격을 실시하는 것이라고 생각해도 무리가 없다.
MAC 테이블이 저장 용량을 넘으면 스위치는 원래의 기능을 잃게
되어 더미 허브와 똑같이 작동한다.
`
http://www.kisec.com
스위치환경에서의 스니핑
※ macof로 스위치 재밍시키기
Root# macof
공격 시 tcpdump
`
http://www.kisec.com
스위치환경에서의 스니핑
※ SPAN 포트 태핑(Tapping)
SPAN(Switch Port Analyzer)은 포트 미러링(Port Mirroring)을 이용한 것
이다. 포트 미러링이란 각 포트에 전송되는 데이터를 미러링하고 있는 포
트에도 똑같이 보내주는 것이다. 주로 IDS를 설치할 때 많이 사용한다.
SPAN은 주로 시스코에서 쓰는 용어이며, 다른 벤더들은 ‘Port Roving’이
라 부르기도 한다.
SPAN은 상당히 많은 문제점을 가지고 있어 효과적인 모니터링을 하는
데 많은 어려움이 있다. 이를 해결할 수 있는 방법이 태핑이다. 허브와 같
이 포트를 모니터링하기 위한 장비로서 ‘Splitter’라고 부르기도 한다.
SPAN 포트와 태핑 장비의 구입에 어려움이 있다면 IDS를 설치하고자 하
는 곳에 허브를 설치하는 것도 하나의 방법일 수 있다. 그러나 중간에 허
브를 설치함으로써 네트워크가 느려지는 것은 감수해야 할 것이다.
`
http://www.kisec.com
Dsniff
Dsniff 란?
DSniff 설치 시 설치되는 툴
툴
filesnarf
macof
기
능
NFS 트래픽에서 스니프한 파일을 현재 디렉토리에 저장한다.
스위치를 허브와 같이 작동하게 하기 위하여 임의의 MAC 주소로
스위치의 MAC 테이블을 오버플로우(Overflow)시킨다.
mailsnarf
SNMP와 POP 을 스니프하여 이메일을 볼 수 있게 해준다.
msgsnarf
채팅 메시지를 스니핑한다.
tcpkill
tcpnice
탐지할 수 있는 TCP 세션을 모두 끊는다.
ICMP source quench 메시지를 보내 특정 TCP 연결을 느리게
만든다. 속도가 빠른 네트워크에서 스니핑 할 때
arpspoof
ARP 스푸핑 공격을 실행한다.
dnsspoof
DNS 스푸핑 공격을 실행한다.
urlsnarf
`
http://www.kisec.com
CLF(Common Log Format)에서 HTTP 트래픽을 스니핑하여 선택된
URL을 알려준다.
Dsniff 설치(Redhat7.3)
Source Install : http://monkey.org/~dugsong/dsniff/
 dsniff-2.3.tar.gz
 필요 Library
• db-2.7.7.tar.gz
• cd db-2.7.7/dist
• ./configure --enable-compat185
ver 1.8.5 호환 모드로 설치
• libnet-1.0.2a.tar.gz
• libnids-1.16.tar.gz
`
http://www.kisec.com
Dsniff 설치(Redhat8.0 or 9.0)
Source Install : http://monkey.org/~dugsong/dsniff/
 dsniff-2.3.tar.gz
 필요 Library
• db-2.7.7.tar.gz
• cd db-2.7.7/dist
• ./configure --enable-compat185
ver 1.8.5 호환 모드로 설치
• libnet-1.0.2a.tar.gz
• libnnids-1.16.tar.gz
• openssl-0.9.7c.tar.gz
`
http://www.kisec.com
Fragrouter - 릴레이
※ Fragrouter
받은 패킷을 릴레이해주기 위한 도구다. 스니핑을 하거나 세션을 가
로채었을 때 공격자에게 온 패킷을 정상적으로 전달해주려면 패킷
릴레이가 반드시 필요하다. 공격대상의 세션이 끊어지면 계속 사용
할 수 없게 되므로 공격자 역시 스니핑을 계속할 수는 없다.
Fragrouter 설치하기
Root# ./configure
Root# make
`
http://www.kisec.com
메신저 Sniffing
echo "1" > /proc/sys/net/ipv4/ip_forward
fragrouter -B1
// ARP redirect, ARP spoofing 등의 공격을 행할 때 공격자의
호스트로 전달된 패킷들을 원래의 목적지 호스트로 전송해주는
패킷포워딩
arpspoof -t victim_host gateway
msgsnarf -i eth0 > msg1
iconv -f UTF-8 -t eucKR file1 > msg2
cat file2
// MSN은 한글을 UTF-8코드체계, 리눅스에서는 깨져 보인다.
eucKR로 변환
`
http://www.kisec.com
메일 Sniffing - Outlook
echo "1" > /proc/sys/net/ipv4/ip_forward
fragrouter -B1
arpspoof -t victim_host smtp_server
mailsnarf -i eth0 > mail1
cat mail1
// 글자가 깨짐. Outlook express는 메일을 주고 받을 때 base64로
인코딩해서 보낸다.
인코딩,디코딩 프로그램 다운 - base64
(www.fourmilab.ch/webtools/base64)
base64 -d mail1 mail2
// 디코딩 전 메일내용만 따로 캡쳐
`
http://www.kisec.com
Web Sniffing
echo "1" > /proc/sys/net/ipv4/ip_forward
fragrouter -B1
arpspoof -t victim_host gateway
Webspy -i eth0 victim_host
// 웹브라우저는 실행 되어 있어야 됨
`
http://www.kisec.com
DNS Spoofing
echo "1" > /proc/sys/net/ipv4/ip_forward
fragrouter -B1
arpspoof -t victim_host gateway
vi /etc/hosts
202.43.214.151
yahoo.com
dnsspoof -f /etc/hosts
Sample hosts file
 /usr/local/lib/dnsspoof.hosts
`
http://www.kisec.com
Ettercap
`
http://www.kisec.com
`
http://www.kisec.com
`
http://www.kisec.com
`
http://www.kisec.com
Sniffing탐지 및 대응책
Sniffing 탐지방법
스니핑 공격은 스니퍼를 설치한 이후에는 매우 쉬우며 네트워크에 별다른
이상 현상을 만들지 않기 때문에 사용자가 이를 인지하는 것이 어렵다. 따라서
네트워크 관리자나 보안 관리자라면 주기적으로 네트워크에 스니퍼가 있는지
탐색해 봐야 한다.
스니퍼에 대한 탐색은 기본적으로 스니퍼가 프러미스큐어스 모드에서
작동한다는 것에서 시작한다.
`
http://www.kisec.com
Sniffing 탐지방법
■ Ping을 이용한 방법
대부분의 스니퍼는 일반 TCP/IP에서 동작하기 때문에 request를 받으면
response를 전달한다. 이를 이용한 방법은 의심이 가는 호스트에 ping을 보
내는데, 네트워크에 존재하지 않는 MAC 주소를 위장하여 보낸다. 만약 ICMP
Echo reply를 받으면 해당 호스트가 스니핑을 하고 있는 것이다. 왜냐하면 존
재하지 않는 MAC 주소를 사용했기 때문에 스니핑을 하지 않는 호스트는 누구
도 ping request를 볼 수 없는 것이 정상이다.
■ ARP를 이용하는 방법
ping과 유사한 방법으로 위조된 ARP request를 보냈을 때 ARP response가
오면 프러미스큐어스 모드로 설정되어 있는 것이다.
`
http://www.kisec.com
Sniffing 탐지방법
■ 유인(Decoy)방법
스니핑 공격을 하는 공격자의 주요 목적은 계정과 패스워드의 획득에 있다.
보안 관리자는 이점을 이용하여 계속적으로 가짜 계정과 패스워드를 네트워
크에 뿌린다. 공격자는 이 계정과 패스워드를 이용하여 접속을 시도하고 이
접속을 시도하는 시스템을 탐지함으로써 스니퍼를 탐지할 수 있다.
■ ARP watch
초기에 MAC 주소와 IP 주소의 매칭 값을 저장하고 ARP 트래픽을 모니터링
하여 이를 변하게 하는 패킷이 탐지되면 관리자에게 메일로 알려주는 도구다.
`
http://www.kisec.com
Sniffing 탐지 (Xarp)
윈도우 용(ARP Table 탐지)
Download : http://www.chrismc.de
`
http://www.kisec.com
Sniffing 탐지 (Sentinel)
Sentinel
 http://www.packetfactory.net/Projects/sentinel/
Sentinel usage:
./sentinel [options] [methods] [-c <x.x.x>] [-f <filename>] [host]
methods:
-a arp test
-d dns test
-e icmp etherping test
options:
-c <x.x.x> class c to scan
-f <file> file of ip addresses
-i <device> network interface
-n <number> number of packets to send
`
http://www.kisec.com
Sniffing 탐지 (Sentinel)
Ping을 이용한 스니퍼 탐지
./sentinel -e -t 192.168.1.144
`
http://www.kisec.com
Sniffing 탐지 (Sentinel)
조작된 MAC주소로 ICMP Echo Request를 보냈음에도 불구하고 스니퍼를 설치해
된 시스템은 ICMP Echo Reply를 보낸다.
스니퍼가 설치되어 있지 않은 경우, tcpdump의 결과
`
http://www.kisec.com
Sniffing 대응책
게이트웨이의 MAC주소를 정적으로 고정

일반적인 스니핑은 인터넷으로 향하는 패킷을 스니핑하기위해
게이트웨이의 주소를 속이게 된다.

Arp 캐쉬 테이블에 게이트웨이 MAC주소는 동적으로 변경할수 없도록
설정한다.
설정방법
1. 게이트웨이의 MAC주소를 알아낸다.
2. Arp 캐쉬 테이블에 정적으로 등록 시킨다.
# arp -s 192.168.1.5 00:09:6D:FE:00:C9
`
http://www.kisec.com
Sniffing 대응책(암호화)
■ SSL(Security Sockets Layer)
암호화된 웹 서핑을 가능하게 해준다. SSL은 많은 웹 서버 브라우저에 구
현되어 있으며 전자상거래 사이트에 접속하여 물건을 구매할 때, 신용카
드 정보 등을 보낼 때 사용한다. SSL은 40비트와 128비트 두 가지 암호
화 키가 있으며 현재 대부분의 우리나라 금융거래 사이트는 40비트 암호
화 방법을 쓰고 있다.
■ SSH(Secure Shell)
SSH는 telnet과 같은 서비스의 암호화를 위해서 사용된다. 그러나,
DSniff를 이용하여 공격하면 SSH1를 이용한다고 할지라도 공격당할 수
있다.
`
http://www.kisec.com
Sniffing 대응책(암호화)
■ PGP(Pretty Good Privacy)와 PEM(Pricacy Enhanced Mail),
S/MIME
PGP와 PEM, S/MIME는 모두 이메일을 전송할 때의 암호화 방법이다. PGP는
내용에 대한 암호화 방법은 IDEA를 쓰며 IDEA 키와 전자서명을 암호화하는데,
RSA(Rivest, Shamir, Addleman) 알고리즘을 쓴다. 기본적으로 PGP는 'Web
of Trust'의 개념을 쓴다. 각각의 PGP 사용자가 서로에 대한 신뢰도를 가지며
서로가 서로에 대한 인증을 해주는 제 3자가 되는 것이다.
PEM은 PGP와는 달리 공개키 암호화 표준(PKCS:Public Key Cryptography
Standards)을 따르며, CA(Certificate Authority)라는 공인된 인증기관에서 키
를 관리한다. 데이터 암호화에는 DES-EDE, 키를 위한 암호화 알고리즘은
RSA, 전자인증을 위한 해시 함수는 MD2, MD5를 쓴다.
S/MIME은 이메일 표준인 MIME 형식에 암호화 서비스만을 추가한 것이다. 역
시 PKCS를 기반으로 만들어져 있으며, 디지털 인증에 X.509를 쓴다.
`
http://www.kisec.com
Sniffing 대응책(암호화)
■ VPN (Virtual Private Network)
VPN은 원래 T1과 같은 사설 네트워크를 설치하는데, 고가의 비용이 들기 때
문에 하나의 라인을 여러 회사가 공유하여 비용을 절감하고자 개발되었다. 그
러나 전송되는 데이터들이 각 회사의 사내 정보이며 기밀성이 요구되어 VPN
은 자연스레 암호화된 트래픽을 제공한다.
`
http://www.kisec.com
세션 하이재킹/Session Hijacking
나의 세션을 누군가 가로챌 수 있을까?
어떤 툴로 세션 하이재킹을 할 수 있을까?
`
http://www.kisec.com
내용
세션 하이재킹 이해
하이재킹 툴 분석
암호화된 통신에 대한 MITM 공격
`
http://www.kisec.com
세션 하이재킹이란 무엇인가?
세션 하이재킹/Session Hijacking
 기존의 세션을 공격자가 가로 채서 통신에 참여하는 것.
 스니핑 <-> 세션 하이재킹
인터넷으로 계좌이체를 하는데 수신자 계좌 번호가 바뀐다면?
FTP를 통한 파일 다운로드시, 파일의 내용이 바뀐다면?
`
http://www.kisec.com
TCP Session Hijacking
SYN M
ACK M+1, SYN N
ACK N+1
SEQ M+1, ACK N+1
20 bytes
SEQ N+1, ACK M+21
0 bytes
SEQ M+21, ACK N+1
`
http://www.kisec.com
공격자의 패킷 삽입 :
<CR> echo + + > /.rhosts <CR>
TCP Packet Blocking (1)
세션 하이재킹의 두 가지 방법
 Without Packet Blocking
 With Packet Blocking
• Route Table Modification
• ARP attack
`
http://www.kisec.com
TCP Packet Blocking (2)
Route table modification
 ICMP redirect message
20 bytes
source : http://www.firewall.cx/icmp-redirect.php
`
http://www.kisec.com
TCP Packet Blocking (3)
ARP attack
 Arp spoofing
 Arp spoofing 탐지법
• Arp 트래픽이 두배로 늘어남
• Arp 캐시가 변경됨
• Arpwatch 툴로 모니터링 가능 (ftp://ee.lbl.gov/arpwatch.tar.gz)
`
http://www.kisec.com
UDP Hijacking
UDP Hijacking
 TCP와는 달리 3-way handshake를 맺지 않아도 됨
 예: DNS Spoofing
`
http://www.kisec.com
세션 하이재킹 툴
Juggernaut
Hunt
Ettercap
SMBRelay
`
http://www.kisec.com
Ettercap – (1)
(Ettercap 초기 화면)
`
http://www.kisec.com
Ettercap – (2)
(source와 destination 선택 후)
`
http://www.kisec.com
Ettercap – (3)
192.168.0.2에서 arp –a 명령 실행 후
`
http://www.kisec.com
ACK Storm
서버
공격자
클라이언트
20 bytes
Seq : 100
Seq : M
ACK 120
10 bytes
Anomaly !
ACK 120
Anomaly !
ACK M
`
http://www.kisec.com
ACK Storm 종료
packet drop
공격자가 원하는 작업을 마친 후 연결을 끊음(RST 패킷 전송)
resynchronize
`
http://www.kisec.com
ACK Storm resynchronize
서버
공격자
클라이언트
20 bytes
Seq : 100
Seq : M
ACK 120
10 bytes
X
ACK 110
30 bytes
ACK 120
`
http://www.kisec.com
X
Anomaly !
암호화된 통신에 대한 MITM 공격
Dsniff
 Webmitm
• dnsspoof 이용
 Sshmitm
`
http://www.kisec.com
스푸핑/Spoofing
그래서 나는 진정한 신뢰 관계가 존재하는 네트웍이란 존재하지 않는다고
생각한다. 그보다는, 교활하고 간사한 데몬이 여러 프로토콜을 속이는
네트웍이 존재한다고 생각한다. 나는 스위치, 관리자, 사용자, 헤더, 명령,
응답 을 비롯한 모든 네트웍 통신이 가상으로 일어날 수 있다고 생각한다.
나는 출발지 주소, 복잡한 프로토콜, 신뢰하는 제 삼자, 제대로 동작하는
클라이언트 코드, 제대로 된 상태 등을 갖고 있지 않다고 판단할 것이다. 나는
단지 그런 것을 갖고 있다고 착각할 뿐이다.
—Dan "Effugas" Kaminsky
`
http://www.kisec.com
내용
스푸핑이란 무엇인가?
배경 이론
컴퓨터 네트워킹에서의 주체 설립
웹 브라우저 스푸핑
스푸핑 시스템 설계
사례 연구 : IP 스푸핑
`
http://www.kisec.com
스푸핑이란 무엇인가?
스푸핑이란?
 Meike Keao : 시스템과 서비스에 접근하기 위해 주체에 대한 잘못된 정보를
제공하는 것
 TCP/IP 프로토콜의 구조적 결함, 즉 TCP 시퀀스 번호, 소스 라우팅, 소스
어드레스를 이용한 인증 메커니즘 등을 이용한 방법
 인증 기능을 가지고 있는 시스템에 침입하기 위해 침입자가 사용하는
시스템을 신뢰성 있는 호스트로 위장하는 방법
스푸핑
 주체를 속이는 것
 주체 검사 단계에 대한 능동적 공격
 통신의 모든 계층에서 가능하다
 항상 고의적이다
 배신과는 다르다
 반드시 악의적인 것은 아니다
• Hot Swappable Router Protocol (HSRP)
• Linux의 Fake project (www.au.vergenet.net/linux/fake)
 새로운 것이 아니다
`
http://www.kisec.com
ARP 스푸핑 (1)
 ARP 프로토콜
`
http://www.kisec.com
ARP 스푸핑 (2)
 ARP 오염/Poisoning
• 대부분의 운영 체제에서는 ARP 요청을 보내지 않았더라도 ARP
응답을 받았을 경우 그 응답 내용을 캐시에 저장
• 리눅스 커널 2.4.x에서는 요청하지 않은 ARP 응답이 왔을 경우
캐시에 저장하지 않는 방법을 사용
• ARP 요청(request)을 받을 경우 그 요청의 출발지 주소를 캐시에
저장한다는 보안 문제점
• SOLARIS의 경우 캐시에 항목이 없는 ARP 응답(reply)을 캐시에
저장하지 않음
• 공격자는 먼저 ICMP_ECHO_REQUEST를 SOLARIS 호스트로
보내서 ARP 항목을 캐시에 만든 다음 ARP 오염 공격 수행
`
http://www.kisec.com
DNS 스푸핑 (1)
DNS 요청 전송
`
http://www.kisec.com
DNS 스푸핑 (2)
DNS 스푸핑 공격
`
http://www.kisec.com
웹 브라우저 스푸핑
www.doxpara.com/popup_ie.html
`
http://www.kisec.com
스푸핑 시스템 설계
사용자 공간 라우터 : DoxRoute
라우터의 기능
 특정한 MAC 주소를 찾는 ARP 패킷에 응답
 특정한 IP 주소를 찾는 Ping 요청에 응답
 상위 네트웍으로 패킷을 전달
DoxRoute :
 Libpcap과 libnet을 사용한 “fake” 라우터
`
http://www.kisec.com
사례 연구 : IP 스푸핑
공격자
`
http://www.kisec.com
피해자
B와 신뢰관계
스푸핑
IP Spoofing 대비책
 탐지
• 네트워크 모니터링 도구 이용
 예방
• 패킷 필터링 기능과 보안 취약성이 보강된 라우팅 프로토콜을 포함하고 있는
라우터 사용
• 소스 IP 주소를 이용한 인증에 대한 대책과 시퀀스 번호 조작에 대한 대책 마련
• Router에서 source routing을 허용하지 않음
• 내부 사용자끼리의 IP Spoofing은 막을 수 없다.
• Sequence number를 Random 하게 발생시키도록 함
• Sequence number를 sniff 할 수 있는 경우에는 막을 수 없다.
• Denial of Service가 발생하지 않도록 함
• IP Spoofing은 Denial of Service가 공격의 시작이므로 Denial of Service를
막을수 있다면
IP Spoofing 공격을 막을수 있다.
• IP로 인증하는 서비스는 사용하지 않음
• IP Spoofing은 막을 수 있지만 상당히 불편해진다.
• 암호화된 Protocol 을 사용
• 암호화된 Protocol을 사용하면 IP Spoofing공격을 상당히 차단할 수 있지만
속도가 느려지고
사용이 아직 보편화 되어 있지 않다.
`
http://www.kisec.com
서비스거부(DoS/DDoS)
DoS(Denial of Service)
DoS(Denial of Service)
 공격자가 호스트의 H/W나 S/W 등을 무력하게 만들어 호스트에서
적법한 사용자의 서비스 요구를 거부하도록 만드는 일련의 행위
 특징
•
•
•
•
•
공격의 원인 및 원천지를 찾기 힘듬
공격 방법이 매우 다양
단순한 공격 방법이 많아 누구나 쉽게 이용
뚜렷한 방지 대책 부재
최근 네트워크를 이용한 원격 DOS 공격 급증
`
http://www.kisec.com
DoS(Denial of Service)
DoS(Denial of Service)
 DoS 공격의 형태
•
•
•
•
디스크 채우기, 메모리 고갈, 프로세스 만들기
메일폭탄 – anonmail, kabomb
Buffer Overflow
Ping Flooding, SYN Flooding, etc
 DoS 공격 도구
•
•
•
•
Blood Lust - OOB베이스 공격 도구이며 포트 139를 공격
Bitch Slap - IP주소만 입력하여 주면 되는 간단하면서도 파워 있는 도구
Click - IRC 전문 프러딩 공격 도구
Cyber - ping 기능으로 대량의 패킷을 보내는 공격 도구
`
http://www.kisec.com
DoS(Denial of Service)
Smurf 공격
 ICMP echo/reply packets 사용
 broadcast networks 주소를 이용하여 트래픽 급증
Internet
Perpetrator
ICMP echo : source(Victim’s IP),
destination(broadcast addr of bounce site)
Victim
ICMP echo reply
...
...
bounce site
`
http://www.kisec.com
DoS(Denial of Service)
Land

Source 주소를 공격 대상자 자신의 IP 및 port로 지정하여 패킷 전송

패킷을 받은 시스템은 루프 상태에 빠지는데 시스템의 IP 스택에 심각한 장애 유발

BSDI 2.1 vanilla, FreeBSD 2.2.x, 3.0, HP-UX 10.20, NetBSD 1.2, OpenBSD 2.1,
SunOS 4.1.4, Cisco 2511

대책 : 라우터에서 내부 IP를 가진 외부 트래픽 제한
• http://www.cisco.com/warp/public/770/land-pub.shtml
“Ping of Death”, ping flooding

packet fragmentation and reassembly 취약점 이용

매우 큰 ping 패킷 전송
# ping -s 65507 hostname

시스템의 IP 스택에 심각한 장애 유발

대책: 패치설치(www.sophist.demon.co.uk/ping/ 참조)
`
http://www.kisec.com
DoS(Denial of Service)
SYN Flooding
 많은 수의 half-open TCP연결을 시도하여 상대 호스트의 listen
queue를 가득 채움
 TCP 서비스 연결 거부
SYN/ACK 전송:
destination(nonexgisting host)
그리고 ACK가 올때까지 기다림
ack_waiting, ack_waiting, …..
많은 수의 SYN 패킷 전송:
source(nonexisting host)
destination(target.host)
test#synf 1.1.1.1 2000 203.227.32.15 23
SYN flooding from 1.1.1.1 to 203.227.32.15.23
`
http://www.kisec.com
dns.target.com
flat# telnet 200.227.32.15
Trying 203.227.32.15...
Connected to 203.227.32.15.
Escape character is '^]'.
SunOS UNIX (test)
login: Login timed out after 60 seconds
Connection closed by foreign host.
flat#
DDoS(Distributed Denial of Service)
DDoS(Distributed Denial of Service)
 네트워크로 연결된 분산환경에서 여러대의 클라이언트를 이용하여
한대의 공격대상 시스템에 대한 DOS 공격
 DDoS 공격의 형태
• 포트스캔 공격
• 특정포트나 특정트레픽상의 Byte Pattern recognition의 변경
공격
• 크래커 공격시 사용하는 모든 명령어는 암호화 되어 사용
• TCP/IP, ICMP등의 포트를 수시로 변경하며 공격
 DDoS 공격 도구
• trin00
• TFN(Tribed Flood Network)
• TFN2000 (TFN2K)
• Stacheldraht
`
http://www.kisec.com