스푸핑
-
Upload
jamal-bowman -
Category
Documents
-
view
32 -
download
5
description
Transcript of 스푸핑
IT CookBook, 정보 보안 개론과 실습 : 네트워크 해킹과 보안 (개정판 )
스푸핑
2/30
Contents
학습목표 스푸핑 공격을 이해한다 . ARP, IP, DNS 스푸핑 공격을 실행할 수 있다 . 스푸핑 공격을 탐지할 수 있다 . 스푸핑 공격에 대처하고 예방하는 방법을 알아본다 .
내용 스푸핑 공격 ARP 스푸핑 IP 스푸핑 DNS 스푸핑
3/30
스푸핑 (spoofing) 은‘속이다’는 의미 인터넷이나 로컬에서 존재하는 모든 연결에 스푸핑 가능 정보를 얻어내는 것 외에 시스템을 마비시킬 수도 있음
스푸핑 공격
4/30
브로드캐스트 ping 보내기 fping -a -g 192.168.0.1/24
MAC 주소 확인 arp -a
1
실습 9-1 시스템의 IP 와 MAC 주소 수집하기
• 공격자 시스템 : 리눅스 페도라 12
• 공격 대상 시스템 : 리눅스 페도라 12
• 필요 프로그램 : fping
실습환경실습환경
2
5/30
ARP(Address Resolution Protocol) 와 RARP(Reverse ARP) ARP 는 IP 주소 값으로 MAC 주소 값을 알아내는 프로토콜
RARP 는 MAC 주소값으로 IP 주소값을 알아내는 프로토콜
ARP 스푸핑은 2 계층 MAC 주소를 공격자의 MAC 주소로 속이는 것 ARP 스푸핑 예제
ARP 스푸핑
① 명호는 철수에게 영희 (IP 주소 10.0.0.3) 의 MAC 주소가 명호 자신의 MAC 주소인 CC 라고 알린다 . 마찬가지로 영희에게도 철수 (IP 주소 10.0.0.2) 의 MAC 주소가 CC 라고 알린다 .
② 명호는 철수와 영희로부터 패킷을 받는다 . ③ 명호는 각자에게 받은 패킷을 읽은 후에 철수가 영희에게 보내려던 패킷을 영희에게 보내주고 , 영희가
철수에게 보내려던 패킷을 철수에게 정상적으로 보내준다 .
6/30
ARP 스푸핑 공격 개념도
ARP 스푸핑
7/30
실습 9-2 ARP 스푸핑을 이용해 스니핑하기
• 공격자 시스템 : 리눅스 페도라 12
• 공격 대상 시스템 : 윈도우 XP
• 필요 프로그램 : arpspoof, dnsspoof
실습환경실습환경
8/30
fake 설치와 사용법 확인 ➊ rpm -Uvh fake-1.1.2-1.i386.rpm ➋ send_arp
공격 전 시스템의 MAC 주소 테이블 확인 ➊ ping 192.168.0.100 ➋ arp -a
1
실습 9-2 ARP 스푸핑을 이용해 스니핑하기
2
[ 그림 9-8] ARP 스푸핑 공격 전 서버의 MAC 주소 테이블
[ 그림 9-9] ARP 스푸핑 공격 전 공격자의 MAC 주소 테이블
9/30
패킷 릴레이와 TCP Dump 수행 ➊ ./fragrouter -B1 ➋ 창을 하나 더 열어 tcpdump -xvX host 192.168.0.100send_arp 실행
ARP 스푸핑 공격 수행 send_arp 192.168.0.100 00:16:D3:CA:85:67 192.168.0.101 00:1E:68:ED:2A:39
3
실습 9-2 ARP 스푸핑을 이용해 스니핑하기
4
10/30
공격 후 각 시스템의 MAC 주소 테이블 확인 arp -a
텔넷 연결 telnet 192.168.0.100
53
실습 9-2 ARP 스푸핑을 이용해 스니핑하기
6
11/30
스니핑 : TCP Dump 를 이용해 ARP 스푸핑 공격 시 캡처한 패킷
73
실습 9-2 ARP 스푸핑을 이용해 스니핑하기
12/30
Wireshark 를 이용해 캡처한 ARP 스푸핑 패킷 분석
83
실습 9-2 ARP 스푸핑을 이용해 스니핑하기
13/30
Wireshark 를 이용해 캡처한 ARP 스푸핑 패킷 분석
83
실습 9-2 ARP 스푸핑을 이용해 스니핑하기
14/30
MAC 테이블의 static 설정을 통해 막을 수 있음 ➊ arp -a 명령을 입력하고 [Enter] 키를 입력한다 . 현재 MAC 주소 테이블을 볼 수 있다 .
➋ static 으로 설정하고자 하는 IP 주소와 MAC 주소를 확인한 뒤 arp -s <IP 주소 > <MAC 주소 > 형식으로 명령을 입력한다 .
➌ 다시 arp -a 명령으로 MAC 주소 테이블을 확인하면 뒷부분에 PERM(Permanent) 옵션 또는 static 이 있다 . 이렇게 설정된 IP 주소와 MAC 주소 값은 ARP 스푸핑 공격이 들어와도 값이 변하지 않는다 .
모든 관리 시스템에 static 옵션을 지정할 수는 없음 . 또한 , 리부팅하면 static 옵션이 사라지므로 계속 사용하려면 배치 파일 형태로 만들어두고 , 리부팅 시마다 자동으로 수행되도록 설정해야 함
ARP 스푸핑 보안 대책
15/30
한 시스템이 여러 시스템에 로그인하고자 할 경우 각 시스템마다 계정과 패스워드가 필요 . 각 시스템마다 계정과 패스워드를 설정해야 하는데 , 시스템이 많으면 관리자가 모두 외우기 힘듦 . 보안상 아주 취약하지만 아직도 흔히 쓰이는 텔넷은 로그인 시 계정과 패스워드를 암호화하지 않은 평문으로 네트워크로 흘려본내 스니핑 공격자에게 좋은 먹이가 됨
이에 대한 한 가지 대책이 트러스트 . 시스템에 접속할 때 자신의 IP 주소로 인증을 하고 로그인 없이 접속이 가능하게 만든 것
하지만 트러스트 설정은 스니핑은 막았으나 IP 스푸핑에 치명적인 약점을 드러냄
IP 스푸핑은 시스템 간의 트러스트 (trust) 관계 이용 트러스트 관계가 맺어진 서버와 클라이언트를 확인한 후 클라이언트에 DoS 공격하여
연결 끊음
그러고 나서 공격자가 클라이언트의 IP 주소를 확보하여 서버에 실제 클라이언트처럼 패스워드 없이 접근
IP 스푸핑
16/30
유닉스와 리눅스 시스템에서는 트러스트 관계를 형성하기 위해 주로 다음 파일 사용 ./etc/hosts.equiv
.$HOME/.rhost
IP 스푸핑
17/30
IP 스푸핑 개념 예
IP 스푸핑
18/30
가장 좋은 대책은 트러스트를 사용하지 않는 것 부득이하게 트러스트를 사용할 경우에는 트러스트된 시스템의 MAC
주소를 static 으로 지정 해커가 연결을 끊을 수는 있지만 , 잘못된 IP 주소로 위장해 접근하더라도 MAC
주소까지 같을 수는 없기 때문에 세션을 빼앗기지는 않음
IP 스푸핑 보안 대책
19/30
DNS(Domain Name System) 스푸핑은 웹 스푸핑과 비슷한 의미로 이해되기도 함 단순히 DNS 서버를 공격하여 해당 사이트에 접근하지 못하게 만들면 DoS 공격이
되지만 조금 응용하면 웹 스푸핑
정상적인 DNS 서비스
DNS 스푸핑
➊ 클라이언트가 DNS 서버에 접속하고자 하는 IP 주소(www.wishfree.com 같은 도메인 이름 ) 를 물어본다 . 이때 보내는 패킷은 DNS Query 다 .
➋ DNS 서버가 해당 도메인 이름에 대한 IP 주소를 클라이언트에 보내준다 .
➌ 클라이언트는 DNS 서버에서 받은 IP 주소를 바탕으로 웹 서버를 찾아간다 .
20/30
DNS 스푸핑 공격➊ 클라이언트가 DNS 서버로 DNS Query 패킷을 보내는 것을 확인한다 . 스위칭
환경일 경우에는 클라이언트가 DNS Query 패킷을 보내면 이를 받아야 하므로 ARP 스푸핑과 같은 선행 작업이 필요하다 . 만약 허브를 쓰고 있다면 모든 패킷이 자신에게도 전달되므로 자연스럽게 클라이언트가 DNS Query 패킷을 보낼 경우 이를 확인할 수 있다 .
DNS 스푸핑
21/30
DNS 스푸핑 공격➋ ~ ➌ 공격자는 로컬에 존재하므로 DNS 서버보다 지리적으로 가깝다 . 따라서 DNS
서버가 올바른 DNS Response 패킷을 보내주기 전에 클라이언트에 위조된 DNS Response 패킷을 보낼 수 있다 .
DNS 스푸핑
22/30
DNS 스푸핑 공격➍ 클라이언트는 공격자가 보낸 DNS Response 패킷을 올바른 패킷으로 인식하고 웹에
접속한다 . 지리적으로 멀리 떨어진 DNS 서버가 보낸 DNS Response 패킷은 버린다 .
DNS 스푸핑
23/30
웹 서버 구축 service httpd start1
실습 9-3 DNS 스푸핑하기
• 공격자 시스템 : 리눅스 페도라 12
• 공격 대상 시스템 : 윈도우 XP
• 필요 프로그램 : arpspoof, dnsspoof
실습환경실습환경
24/30
웹 사이트 정상 접속 확인
DNS 스푸핑 파일 설정 ➊ vi /etc/dsniff/dnsspoof.hosts ➋ 192.168.0.2 *.google.com
2
실습 9-3 DNS 스푸핑하기
3
25/30
ARP 스푸핑과 패킷 릴레이 ➊ arpspoof -t 192.168.0.101 192.168.0.1 ➋ ./fragrouter -B1
4
실습 9-3 DNS 스푸핑하기
26/30
DNS 스푸핑 공격 수행 5-1 DNS 스푸핑 툴 도움말 확인과 동작 수행 ➊ dnsspoof –help ➋ dnsspoof -i eth0 -f /etc/dsniff/dnsspoof.hosts
5-2 DNS 스푸핑 툴 도움말 확인과 동작 수행공격 후 www.google.com 사이트에 접속
5
실습 9-3 DNS 스푸핑하기
27/30
5-3 공격 실패 시 클라이언트의 DNS 정보 삭제 ipconfig /flushdns
5-4 공격 후 클라이언트에서 www.google.com 에 ping 보내기 ping www.google.com
실습 9-3 DNS 스푸핑하기
28/30
도메인 이름을 브라우저에 입력했을 때 무조건 DNS Query 를 생성하는 것은 아님 사이트에 접속하면 MAC 처럼 캐시에 도메인 이름에 대한 IP 주소가 저장되었다가 다시
접속했을 때 DNS Query 를 보내지 않고 캐시에서 읽어 들임
그런 다음 hosts 파일을 통해 도메인 이름에 대한 IP 주소를 해석
hosts 파일에 중요 사이트의 IP 주소를 적어두면 , 이 파일에 있는 사이트에 대해서는 DNS 스푸핑 공격을 당하지 않을 수 있음
DNS 스푸핑 보안 대책
29/30
DNS 서버에 대한 DNS 스푸핑 공격에 대한 보안 대책 BIND(Berkeley Internet Name Domain) 를 최신 버전으로 바꿈
BIND 최신 버전은 PTR 레코드뿐만 아니라 , PTR 레코드에 의한 A 레코드 정보까지 확인한 후 네임 서버의 데이터베이스 파일 변조 여부까지 판단
• PTR 은 Reverse Zone( 리버스 존 ) 에서 가장 중요한 레코드로 , IP 주소에 대한 도메인 이름 해석
• A 레코드는 Forward Zone 에서 도메인 이름에 대한 IP 주소 해석
if (gethostbyname(gethostbyaddr(getpeername())) != getpeername())
{ /* DNS 스푸핑의 위험을 알리고 종료 */ }
PTR 레코드뿐만 아니라 A 레코드까지 스푸핑한 경우 현재는 DNS 스푸핑을 막을 방법이 없고 DNS 에만 의존하는 서비스를 외부에 지원하지 않는 것이 최선의 방책
DNS 스푸핑 보안 대책
IT CookBook, 정보 보안 개론과 실습 : 네트워크 해킹과 보안 (개정판 )