Spoofing( 스푸핑 )

38
Spoofing( 스스스 ) : : 학학학학학학학 학학학학학학학 : : 학학학 학학 학학학 학학 학 학 학 학 학 학 학 학 : : 학학학 학학학 학학학 학학학 20042247 20042247 스스스 스스스 20042209 20042209 스스스 스스스

description

Spoofing( 스푸핑 ). MEMBER. 학 과 : 컴퓨터공학전공 과 목 명 : 인터넷 보안 담 당 교 수 : 김현성 교수님. 20042247 정원형 20042209 김병수. 4 조. Contents. 스푸핑 공격 필수 라이브러리 ARP 스푸핑 IP 스푸핑 DNS 스푸핑 실습 결론. 스푸핑 공격. Spoofing = Mission Impossible - PowerPoint PPT Presentation

Transcript of Spoofing( 스푸핑 )

Page 1: Spoofing( 스푸핑 )

Spoofing( 스푸핑 )

학 과 학 과 : : 컴퓨터공학전공컴퓨터공학전공과 목 명 과 목 명 : : 인터넷 보안인터넷 보안담 당 교 수 담 당 교 수 : : 김현성 김현성 교수님교수님

20042247 20042247 정원형정원형 20042209 20042209 김병수김병수

Page 2: Spoofing( 스푸핑 )

Contents 스푸핑 공격

필수 라이브러리

ARP 스푸핑

IP 스푸핑

DNS 스푸핑

실습

결론

2

Page 3: Spoofing( 스푸핑 )

3

Spoofing = Mission Impossible 우리는 스파이 첩보 영화에서 주인공이 자신을 노출시키지 않기 위해 남의 신분으로 위장하는 경우를 자주 볼 수 있다 . 이때 주로 사용하는 방법이 주민등록증 , 운전면허증 등의 신분증을 위조하거나 신체적인 특징인 얼굴 , 지문 , 목소리 등을 변조하는 것이다 . 이 모든 것들이 특정 사람을 인식하는 방법을 우회 통과하기 위한 방법이다 .

마찬가지로 네트워크 상에서도 악의적인 혹은 비밀스러운 활동을 시도하려는 사람들은 먼저 자기 자신을 감추는 방법을 생각하게 된다 . 다만 네트워크 상에서 해당 사용자를 식별하는 정보는 IP 주소 , DNS 이름 , Mac 주소 , 이메일 주소 등을 사용한다 .

스프핑 공격 (Spoofing Attack) 은 바로 자기 자신의 식별 정보를 속여 다른 대상 시스템을 공격하는 기법이다 . 네트워크 상의 공격자는 TCP/IP 프로토콜 상의 취약성을 기반으로 해킹 시도시 자신의 시스템 정보 (IP 주소 , DNS 이름 , Mac 주소 등 ) 를 위장하여 감춤으로써 역추적이 어렵게 만든다 . 이러한 스프핑 공격은 패킷 스니퍼링이나 서비스 거부 공격 , 세션 하이재킹 (Session Hijacking) 등의 다른 여러가지 공격을 수행 가능하게 한다 .

스푸핑 공격

Page 4: Spoofing( 스푸핑 )

필수 라이브러리

4

해킹 툴을 사용하기 위한 몇 가지 라이브러리의 설치 . 리눅스에서 필요한 라이브러리

Libnet/Libpcap/DB Library/Libnids/OpenSSL 배포판에 따라 일부는 이미 설치되어 있기도 하다 .

윈도우에서 필요한 라이브러리 WinPCAP 라이브러리와 스니핑을 위한 라이브러리

각종 라이브러리 드라이버는 전송된 데이터를 수집하고 축약한다 .

Page 5: Spoofing( 스푸핑 )

Library

5

1) Libnet (Library Network) 패킷 생성 라이브러리

패킷은 생성 시에 다음과 같은 과정을 거친다 . 1. 네트워크의 초기화 2. 메모리의 초기화 3. 패킷의 생성 4. 패킷의 체크섬 (Check Sum) 생성 5. 패킷의 투입

• Libnet 이 지원하는 프로토콜– 2 계층 : ARP 와 이더넷 – 3 계층 : ICMP, IGMP, IPv4 – 4 계층 : TCP, UDP – 7 계층 : RIP, OSPF, DNS

Page 6: Spoofing( 스푸핑 )

Library

6

2) Libpcap(Library Packet Capture) Libpcap 라이브러리는 네트워크 카드에 유입된 정보를 응용 프로그램이 읽을 수 있는 형태로 전환해준다 .

운영체제 라이브러리

리눅스 Raw socket & LSF(Linux Socket Filter)

솔라리스 4.x NIT(Network Interface Tap)

솔라리스 DLPI(Data Link Provider Interface)

BSD 계열 BPF(Berkely Packet Filter) 의 PCAP(Packet Capture : libpcap)

윈도우 Winpcap 라이브러리

Page 7: Spoofing( 스푸핑 )

Library

7

3) DB(Berkeley Database) – 버클리 DB 는 오픈 소스 DB 로서 , 웹 서버 , Sendmail 등이

버클리 DB 를 사용하고 있다 . – 버클리 DB 는 C, C++, 자바 (Java), 펄 (Perl), Tcl, 파이썬

(Python) 과 PHP 를 모두 지원하며 , 멀티스레드 (thread) 와 locking, transaction logging, 공유 버퍼 관리 , 메모리 관리 등을 수행한다 .

– 버클리 DB 는 다른 라이브러리에 비해 무척이나 방대하다 .

– Dsniff 와 같은 툴 설치 시 필요하다 .

Page 8: Spoofing( 스푸핑 )

Library

8

4) Libnids(Library Network IDS)– BSD packet filter(BPF) 에 기반하고 있으며 , 스니퍼나 네트워크

분석 프로그램을 작성할 때 유용한 라이브러리다 . – Libnids 기능 .

1. IP 패킷의 재조합 (Defragmentation) 2. TCP 흐름 재조합 3. 기타 - UDP 콜백 함수 - TCP 세션 강제 종료 함수

Page 9: Spoofing( 스푸핑 )

Library

9

5) OpenSSL(Secure Socket Layer)– OpenSSL 은 보안상 문제가 있어 운영체제는 SSH(Secure Shell)

프로토콜을 지원한다 . – SSH 는 OpenSSL 를 지원한다 . 두 프로토콜은 모두 RSA 에

의해서 키 교환을 하며 , 데이터는 3DES 와 Blowfish, IDEA 로 암호화한다 .

– OpenSSL 은 또한 계정과 패스워드 등을 스니핑하기 위해 이용

Page 10: Spoofing( 스푸핑 )

ARP Spoofing

10

• 1. ARP Spoofing 공격 개요

ARP Spoofing 공격은 로컬 네트워크 (LAN) 에서 사용하는 ARP

프로토콜의 허점을 이용하여 자신의 MAC(Media Access Control) 주소를

다른 컴퓨터의 MAC 인 것처럼 속이는 공격이다 . ARP Spoofing 공격은

ARP Cache 정보를 임의로 바꾼다고 하여‘ ARP Cache Poisoning 공격’

이라고도 한다

Page 11: Spoofing( 스푸핑 )

ARP Spoofing

11

• 2. ARP Spoofing 공격 기법의 이해 가 . 이더넷 /IP 통신에 대한 이해

호스트 -A 가 호스트 -B 와 통신하기 위해서 Layer2 계층의 통신 흐름은 다음과 같다 .

1) 호스트 -A : 자신의 로컬 ARP Cache 에 호스트 -B IP/MAC 주소의 매핑이 존재 하는지 검사

2) 호스트 -A → ARP Request : 호스트 -B IP 의 MAC 주소에 대한 ARP 요청을 브로드캐스팅

3) 호스트 -B → ARP Reply : 호스트 -B 의 IP 와 MAC 주소를 담은 ARP 응답을 호스트 -A 에게 전송

4) 호스트 -A : ARP Cache 업데이트

Page 12: Spoofing( 스푸핑 )

ARP Spoofing

12

Layer2 장비인 스위치는 앞서 봤던 단계에 따라 이더넷 프레임으로부터 MAC 주소를 추출하여 위와 같은 Switch Route Table 을 작성한다 . 위의 2)번 단계가 진행되면 1번 포트에 MAC-A( 호스트 -A) 주소를테이블에 등록하고 3)번이 진행된 후 5번 포트에 MAC-B 주소를 등록한다 . 이후 테이블에 등록되어매칭된 포트와 MAC 주소를 통해서 통신을 하게 된다 .

Page 13: Spoofing( 스푸핑 )

ARP Spoofing

13

나 . ARP Spoofing 공격 기법스위치는 모든 트래픽을 MAC 주소를 기반으로 해서 전송하게 된다 . 공격자는 LAN 상의 모든 호스트 IP-MAC 주소 매핑을 ARP Request 브로드캐스팅을 통해 정확하게 알아 낼 수 있어 공격자에게 악용될 수 있다 . 아래 ( 그림 ) 은 호스트 -A와 호스트 -B 의 정상적인 스위치 상에서의 트래픽이 전송되는 모습이다

Page 14: Spoofing( 스푸핑 )

ARP Spoofing

14

ARP 프로토콜은 인증을 요구하는 프로토콜이 아니기 때문에 간단한 ARP Reply 패킷을 각 호스트에 보내서 쉽게 ARP Cache 를 업데이트시킬 수 있다 .

Page 15: Spoofing( 스푸핑 )

ARP Spoofing

15

앞 페이지의 ( 그림 ) 처럼 스니퍼는 각 호스트들에게 위조한 MAC 주소 (상대방의 MAC 주소 = 스니퍼 MAC 주소 ) 를 보내 각 호스트의 ARP Cache를 업데이트시키게 되고 스위치에서는 스니퍼의 MAC 주소와 포트 매핑 정보가 테이블에 등록된다 . 계속해서 스니퍼는 Cache 가 사라지기 전에 변조된 ARP Reply 를 지속적으로 보내므로 각 호스트들의 ARP Cache 의 변조된 MAC 주소의 정보는 계속해서 유지된다 . 이때 스니퍼는 두 방향으로 정확히 재전송해 줄 수 있는 기능이 있어야만 호스트 -A 와 B 는 통신을 할 수 있다 . 공격에 성공하면 두 호스트는 서로의 MAC 주소를 스니퍼의 MAC 주소로 인식하고 있기 때문에 모든 트래픽을스니퍼에게 전달하게 된다 . 스니퍼는 이 두 호스트에게 재전송할 수 있는 기능이 있으며 또한 모든 패킷들을 캡쳐할 수 있게 된다 .

Page 16: Spoofing( 스푸핑 )

ARP Spoofing

16

Page 17: Spoofing( 스푸핑 )

ARP Spoofing

17

➊ arp -a 명령을 입력하고 [Enter] 키를 입력한다 . 현재 MAC 주소 테이블을

볼 수 있다 . ➋ static 으로 설정하고자 하는 IP 주소와 MAC 주소를 확인한 뒤 arp -s <IP 주소 > <MAC 주소 > 형식으로 명령을 입력한다 . ➌ 다시 arp -a 명령으로 MAC 주소 테이블을 확인하면 뒷부분에 PERM(Permanent) 옵션 또는 static 이 있다 . 이렇게 설정된 IP 주소와 MAC 주소 값은 ARP 스푸핑 공격이 들어와도 값이 변하지 않는다 .

모든 관리 시스템에 static 옵션을 지정할 수는 없음 . 또한 , 리부팅하면 static 옵션이 사라지므로 계속 사용하려면 배치 파일 형태로 만들어두고 , 리부팅 시마다 자동으로 수행되도록 설정해야 함

보안 대책 = MAC 테이블의 static 설정을 통해 막을 수 있음

Page 18: Spoofing( 스푸핑 )

IP Spoofing

18

• IP 스푸핑은 말 그대로 IP 정보를 속여서 다른 시스템을 공격하는 것이다 . IP 스푸핑을 통해 서비스 거부 공격을 수행할 수도 있으며 공격대상 컴퓨터와 서버 사이의 연결된 세션에 대해서 세션 끊기도 가능하다 .

• IP 스푸핑은 시스템간의 트러스트 관계를 이용한 것이다 .

• 트러스트 관계는 IP 주소로 인증을 하고 별도의 패스워드 없이 로그인이 가능 하도록 만든 것이다 .

Page 19: Spoofing( 스푸핑 )

IP Spoofing

19

• 공격자는 공격대상인 서버에 접속하기 위해 패킷을 보낼 때 출발지 IP 주소에 해당하는 부분을 고쳐 클라이언트로 부터 발송된 패킷처럼 속인다 .

• 이 패킷을 받은 서버는 당연히 TCP 접속을 위해 SYN /ACK 패킷을 클라이언트로 보내게 된다 . 일반적으로 , 이때 클라이언트는 서비스를 요청하는 패킷을 보낸 적이 없음을 서버에게 알리며 , TCP 접속 자체를 끊는다 .

Page 20: Spoofing( 스푸핑 )

IP Spoofing

20

• 이 과정에 있어서 공격자는 잠깐 동안 클라이언트의 네트워크를 외부로부터 단절시킨다 .

• 그런 후 , 서버에 적당한 ACK 패킷을 보냄으로써 서버와 클라이언트를 가장한 공격자간의 접속이 이루어질 수 있게 된다 .

• 트로이 목마 프로그램을 설치하는 등의 목적한 작업을 하기 위한 호스트 접근 권한 혹은 루트 권한 획득 단계

Page 21: Spoofing( 스푸핑 )

IP Spoofing

21

• 보안 대책

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

해커가 연결을 끊을 수는 있지만 , 잘못된 IP 주소로 위장해 접근하더라도 MAC 주소까지 같을 수는 없기 때문에 세션을 빼앗기지는 않음

Page 22: Spoofing( 스푸핑 )

DNS Spoofing

22

정상적인 DNS

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

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

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

Page 23: Spoofing( 스푸핑 )

DNS Spoofing

23

DNS 공격

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

Page 24: Spoofing( 스푸핑 )

DNS Spoofing

24

➋공격자는 로컬에 존재하므로 DNS 서버보다 지리적으로 가까움 . 따라서 DNS 서버가 올바른 DNS Response 패킷을 보내주기 전에 클라이언트에 게 위조된 DNS Response 패 킷을 보낼 수 있음 .

➌클라이언트는 공격자가 보낸 DNS Response 패킷을 올바른 패킷으로 인식하고 , 웹에 접속 . 지리적으로 멀리 떨어져 있는 DNS 서버가 보낸 DNS Response 패킷은 버림 .

Page 25: Spoofing( 스푸핑 )

DNS Spoofing

25

DNS 공격 결과

Page 26: Spoofing( 스푸핑 )

DNS Spoofing

26

• 보안 대책 도메인 이름을 브라우저에 입력했을 때 무조건 DNS Query 를

생성하는 것은 아님 사이트에 접속하면 MAC 처럼 캐시에 도메인 이름에 대한 IP 주소가 저장되었다가 다시 접속했을 때 DNS Query 를 보내지 않고 캐시에서 읽어 들임

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

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

Page 27: Spoofing( 스푸핑 )

실습

27

ARP 스푸핑공격 대상자의 mac 주소 테이블

Page 28: Spoofing( 스푸핑 )

실습

28

공격자의 공격 대상자 mac 테이블 정보를 바꾸기 위한 사전준비 과정 ( 툴 설치 )

1. ARP 스푸핑 툴 (fake 버전 1.1.2, rpm)

Root# rpm -Uvh fake-1.1.2-1.i386.rpm

Page 29: Spoofing( 스푸핑 )

실습

29

2. 패킷  Relay 툴 (fragrouter 버전 1.6)

Root# ./configure

Root# make

Page 30: Spoofing( 스푸핑 )

실습

30

공격자의 mac 주소 테이블

Page 31: Spoofing( 스푸핑 )

실습

31

공격자 자신의 주소정보 확인 후 공격대상자의 mac테이블 변경

Page 32: Spoofing( 스푸핑 )

실습

32

공격대상자의 바뀐 mac 주소 테이블

공격자의 MAC 주소로 바뀌어져 있다 .

Page 33: Spoofing( 스푸핑 )

실습

33

ARP 스푸핑 보안대책arp –s 명령어 사용

ㅌㅏ입이 바뀐걸 볼 수 있다 .

Page 34: Spoofing( 스푸핑 )

실습

34

DNS 스푸핑 보안대책

DNS 캐시 수정

<DNS 캐시의 경로 >C:\WINDOWS\system32\drivers\etc

Page 35: Spoofing( 스푸핑 )

실습

35

DNS 캐시수정

빨간줄 아래 부분에 아이피주소와 사이트 주소를 입력하면 해당 컴퓨터에서는 DNS

서버에 쿼리 패킷을 보내지 않고 해당 사이트에 바로 접속하게 된다 .

Page 36: Spoofing( 스푸핑 )

결론

36

• Spoofing 공격은 발견하기 힘들다 .• 암호화된 인증 방법 사용• SSH(Secure Shell) 보안기법사용– Triple DES 알고리즘– IDEA– RSA 알고리즘 ( 구현시암호화된통신을실시하기위해 )

Page 37: Spoofing( 스푸핑 )

Q & A

37

Page 38: Spoofing( 스푸핑 )

The EndThe End

38