스푸핑

30
IT CookBook, 정정 정정 정정정 정정 : 정정정정 정정정 정정 ( 정정정 ) 정정정

description

9. 스푸핑. 학습목표 스푸핑 공격을 이해한다 . ARP, IP, DNS 스푸핑 공격을 실행할 수 있다 . 스푸핑 공격을 탐지할 수 있다 . 스푸핑 공격에 대처하고 예방하는 방법을 알아본다 . 내용 스푸핑 공격 ARP 스푸핑 IP 스푸핑 DNS 스푸핑. 스푸핑 공격. 스푸핑 (spoofing) 은 ‘ 속이다’는 의미 인터넷이나 로컬에서 존재하는 모든 연결에 스푸핑 가능 정보를 얻어내는 것 외에 시스템을 마비시킬 수도 있음. 실습 9-1 시스템의 IP 와 MAC 주소 수집하기. - PowerPoint PPT Presentation

Transcript of 스푸핑

Page 1: 스푸핑

IT CookBook, 정보 보안 개론과 실습 : 네트워크 해킹과 보안 (개정판 )

스푸핑

Page 2: 스푸핑

2/30

Contents

학습목표 스푸핑 공격을 이해한다 . ARP, IP, DNS 스푸핑 공격을 실행할 수 있다 . 스푸핑 공격을 탐지할 수 있다 . 스푸핑 공격에 대처하고 예방하는 방법을 알아본다 .

내용 스푸핑 공격 ARP 스푸핑 IP 스푸핑 DNS 스푸핑

Page 3: 스푸핑

3/30

스푸핑 (spoofing) 은‘속이다’는 의미 인터넷이나 로컬에서 존재하는 모든 연결에 스푸핑 가능 정보를 얻어내는 것 외에 시스템을 마비시킬 수도 있음

스푸핑 공격

Page 4: 스푸핑

4/30

브로드캐스트 ping 보내기 fping -a -g 192.168.0.1/24

MAC 주소 확인 arp -a

1

실습 9-1 시스템의 IP 와 MAC 주소 수집하기

• 공격자 시스템 : 리눅스 페도라 12

• 공격 대상 시스템 : 리눅스 페도라 12

• 필요 프로그램 : fping

실습환경실습환경

2

Page 5: 스푸핑

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 라고 알린다 .

② 명호는 철수와 영희로부터 패킷을 받는다 . ③ 명호는 각자에게 받은 패킷을 읽은 후에 철수가 영희에게 보내려던 패킷을 영희에게 보내주고 , 영희가

철수에게 보내려던 패킷을 철수에게 정상적으로 보내준다 .

Page 6: 스푸핑

6/30

ARP 스푸핑 공격 개념도

ARP 스푸핑

Page 7: 스푸핑

7/30

실습 9-2 ARP 스푸핑을 이용해 스니핑하기

• 공격자 시스템 : 리눅스 페도라 12

• 공격 대상 시스템 : 윈도우 XP

• 필요 프로그램 : arpspoof, dnsspoof

실습환경실습환경

Page 8: 스푸핑

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 주소 테이블

Page 9: 스푸핑

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

Page 10: 스푸핑

10/30

공격 후 각 시스템의 MAC 주소 테이블 확인 arp -a

텔넷 연결 telnet 192.168.0.100

53

실습 9-2 ARP 스푸핑을 이용해 스니핑하기

6

Page 11: 스푸핑

11/30

스니핑 : TCP Dump 를 이용해 ARP 스푸핑 공격 시 캡처한 패킷

73

실습 9-2 ARP 스푸핑을 이용해 스니핑하기

Page 12: 스푸핑

12/30

Wireshark 를 이용해 캡처한 ARP 스푸핑 패킷 분석

83

실습 9-2 ARP 스푸핑을 이용해 스니핑하기

Page 13: 스푸핑

13/30

Wireshark 를 이용해 캡처한 ARP 스푸핑 패킷 분석

83

실습 9-2 ARP 스푸핑을 이용해 스니핑하기

Page 14: 스푸핑

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 스푸핑 보안 대책

Page 15: 스푸핑

15/30

한 시스템이 여러 시스템에 로그인하고자 할 경우 각 시스템마다 계정과 패스워드가 필요 . 각 시스템마다 계정과 패스워드를 설정해야 하는데 , 시스템이 많으면 관리자가 모두 외우기 힘듦 . 보안상 아주 취약하지만 아직도 흔히 쓰이는 텔넷은 로그인 시 계정과 패스워드를 암호화하지 않은 평문으로 네트워크로 흘려본내 스니핑 공격자에게 좋은 먹이가 됨

이에 대한 한 가지 대책이 트러스트 . 시스템에 접속할 때 자신의 IP 주소로 인증을 하고 로그인 없이 접속이 가능하게 만든 것

하지만 트러스트 설정은 스니핑은 막았으나 IP 스푸핑에 치명적인 약점을 드러냄

IP 스푸핑은 시스템 간의 트러스트 (trust) 관계 이용 트러스트 관계가 맺어진 서버와 클라이언트를 확인한 후 클라이언트에 DoS 공격하여

연결 끊음

그러고 나서 공격자가 클라이언트의 IP 주소를 확보하여 서버에 실제 클라이언트처럼 패스워드 없이 접근

IP 스푸핑

Page 16: 스푸핑

16/30

유닉스와 리눅스 시스템에서는 트러스트 관계를 형성하기 위해 주로 다음 파일 사용 ./etc/hosts.equiv

.$HOME/.rhost

IP 스푸핑

Page 17: 스푸핑

17/30

IP 스푸핑 개념 예

IP 스푸핑

Page 18: 스푸핑

18/30

가장 좋은 대책은 트러스트를 사용하지 않는 것 부득이하게 트러스트를 사용할 경우에는 트러스트된 시스템의 MAC

주소를 static 으로 지정 해커가 연결을 끊을 수는 있지만 , 잘못된 IP 주소로 위장해 접근하더라도 MAC

주소까지 같을 수는 없기 때문에 세션을 빼앗기지는 않음

IP 스푸핑 보안 대책

Page 19: 스푸핑

19/30

DNS(Domain Name System) 스푸핑은 웹 스푸핑과 비슷한 의미로 이해되기도 함 단순히 DNS 서버를 공격하여 해당 사이트에 접근하지 못하게 만들면 DoS 공격이

되지만 조금 응용하면 웹 스푸핑

정상적인 DNS 서비스

DNS 스푸핑

➊ 클라이언트가 DNS 서버에 접속하고자 하는 IP 주소(www.wishfree.com 같은 도메인 이름 ) 를 물어본다 . 이때 보내는 패킷은 DNS Query 다 .

➋ DNS 서버가 해당 도메인 이름에 대한 IP 주소를 클라이언트에 보내준다 .

➌ 클라이언트는 DNS 서버에서 받은 IP 주소를 바탕으로 웹 서버를 찾아간다 .

Page 20: 스푸핑

20/30

DNS 스푸핑 공격➊ 클라이언트가 DNS 서버로 DNS Query 패킷을 보내는 것을 확인한다 . 스위칭

환경일 경우에는 클라이언트가 DNS Query 패킷을 보내면 이를 받아야 하므로 ARP 스푸핑과 같은 선행 작업이 필요하다 . 만약 허브를 쓰고 있다면 모든 패킷이 자신에게도 전달되므로 자연스럽게 클라이언트가 DNS Query 패킷을 보낼 경우 이를 확인할 수 있다 .

DNS 스푸핑

Page 21: 스푸핑

21/30

DNS 스푸핑 공격➋ ~ ➌ 공격자는 로컬에 존재하므로 DNS 서버보다 지리적으로 가깝다 . 따라서 DNS

서버가 올바른 DNS Response 패킷을 보내주기 전에 클라이언트에 위조된 DNS Response 패킷을 보낼 수 있다 .

DNS 스푸핑

Page 22: 스푸핑

22/30

DNS 스푸핑 공격➍ 클라이언트는 공격자가 보낸 DNS Response 패킷을 올바른 패킷으로 인식하고 웹에

접속한다 . 지리적으로 멀리 떨어진 DNS 서버가 보낸 DNS Response 패킷은 버린다 .

DNS 스푸핑

Page 23: 스푸핑

23/30

웹 서버 구축 service httpd start1

실습 9-3 DNS 스푸핑하기

• 공격자 시스템 : 리눅스 페도라 12

• 공격 대상 시스템 : 윈도우 XP

• 필요 프로그램 : arpspoof, dnsspoof

실습환경실습환경

Page 24: 스푸핑

24/30

웹 사이트 정상 접속 확인

DNS 스푸핑 파일 설정 ➊ vi /etc/dsniff/dnsspoof.hosts ➋ 192.168.0.2 *.google.com

2

실습 9-3 DNS 스푸핑하기

3

Page 25: 스푸핑

25/30

ARP 스푸핑과 패킷 릴레이 ➊ arpspoof -t 192.168.0.101 192.168.0.1 ➋ ./fragrouter -B1

4

실습 9-3 DNS 스푸핑하기

Page 26: 스푸핑

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 스푸핑하기

Page 27: 스푸핑

27/30

5-3 공격 실패 시 클라이언트의 DNS 정보 삭제 ipconfig /flushdns

5-4 공격 후 클라이언트에서 www.google.com 에 ping 보내기 ping www.google.com

실습 9-3 DNS 스푸핑하기

Page 28: 스푸핑

28/30

도메인 이름을 브라우저에 입력했을 때 무조건 DNS Query 를 생성하는 것은 아님 사이트에 접속하면 MAC 처럼 캐시에 도메인 이름에 대한 IP 주소가 저장되었다가 다시

접속했을 때 DNS Query 를 보내지 않고 캐시에서 읽어 들임

그런 다음 hosts 파일을 통해 도메인 이름에 대한 IP 주소를 해석

hosts 파일에 중요 사이트의 IP 주소를 적어두면 , 이 파일에 있는 사이트에 대해서는 DNS 스푸핑 공격을 당하지 않을 수 있음

DNS 스푸핑 보안 대책

Page 29: 스푸핑

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 스푸핑 보안 대책

Page 30: 스푸핑

IT CookBook, 정보 보안 개론과 실습 : 네트워크 해킹과 보안 (개정판 )