정보보안 개론과 실습:네트워크 · fake 설치와 사용법 확인 rpm -uvh...

30
영동대학교 스마트IT학부: 컴퓨터와 해킹 이호준 [email protected] 스푸핑

Upload: others

Post on 29-Oct-2019

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 정보보안 개론과 실습:네트워크 · fake 설치와 사용법 확인 rpm -Uvh fake-1.1.2-1.i386.rpm send_arp 공격 전 스템의 MAC 주소 테이블 확인 ping 192.168.0.100

영동대학교 스마트IT학부: 컴퓨터와 해킹

이호준 [email protected]

스푸핑

Page 2: 정보보안 개론과 실습:네트워크 · fake 설치와 사용법 확인 rpm -Uvh fake-1.1.2-1.i386.rpm send_arp 공격 전 스템의 MAC 주소 테이블 확인 ping 192.168.0.100

2/30

Contents

학습목표

스푸핑 공격을 이해한다.

ARP, IP, DNS 스푸핑 공격을 실행할 수 있다.

스푸핑 공격을 탐지할 수 있다.

스푸핑 공격에 대처하고 예방하는 방법을 알아본다.

내용

스푸핑 공격

ARP 스푸핑

IP 스푸핑

DNS 스푸핑

Page 3: 정보보안 개론과 실습:네트워크 · fake 설치와 사용법 확인 rpm -Uvh fake-1.1.2-1.i386.rpm send_arp 공격 전 스템의 MAC 주소 테이블 확인 ping 192.168.0.100

3/30

스푸핑(spoofing)은‘속이다’는 의미

인터넷이나 로컬에서 존재하는 모든 연결에 스푸핑 가능

정보를 얻어내는 것 외에 시스템을 마비시킬 수도 있음

스푸핑 공격

Page 4: 정보보안 개론과 실습:네트워크 · fake 설치와 사용법 확인 rpm -Uvh fake-1.1.2-1.i386.rpm send_arp 공격 전 스템의 MAC 주소 테이블 확인 ping 192.168.0.100

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: 정보보안 개론과 실습:네트워크 · fake 설치와 사용법 확인 rpm -Uvh fake-1.1.2-1.i386.rpm send_arp 공격 전 스템의 MAC 주소 테이블 확인 ping 192.168.0.100

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: 정보보안 개론과 실습:네트워크 · fake 설치와 사용법 확인 rpm -Uvh fake-1.1.2-1.i386.rpm send_arp 공격 전 스템의 MAC 주소 테이블 확인 ping 192.168.0.100

6/30

ARP 스푸핑 공격 개념도

ARP 스푸핑

Page 7: 정보보안 개론과 실습:네트워크 · fake 설치와 사용법 확인 rpm -Uvh fake-1.1.2-1.i386.rpm send_arp 공격 전 스템의 MAC 주소 테이블 확인 ping 192.168.0.100

7/30

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

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

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

• 필요 프로그램 : arpspoof, dnsspoof

실습환경

Page 8: 정보보안 개론과 실습:네트워크 · fake 설치와 사용법 확인 rpm -Uvh fake-1.1.2-1.i386.rpm send_arp 공격 전 스템의 MAC 주소 테이블 확인 ping 192.168.0.100

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: 정보보안 개론과 실습:네트워크 · fake 설치와 사용법 확인 rpm -Uvh fake-1.1.2-1.i386.rpm send_arp 공격 전 스템의 MAC 주소 테이블 확인 ping 192.168.0.100

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: 정보보안 개론과 실습:네트워크 · fake 설치와 사용법 확인 rpm -Uvh fake-1.1.2-1.i386.rpm send_arp 공격 전 스템의 MAC 주소 테이블 확인 ping 192.168.0.100

10/30

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

텔넷 연결 telnet 192.168.0.100

53

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

6

Page 11: 정보보안 개론과 실습:네트워크 · fake 설치와 사용법 확인 rpm -Uvh fake-1.1.2-1.i386.rpm send_arp 공격 전 스템의 MAC 주소 테이블 확인 ping 192.168.0.100

11/30

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

73

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

Page 12: 정보보안 개론과 실습:네트워크 · fake 설치와 사용법 확인 rpm -Uvh fake-1.1.2-1.i386.rpm send_arp 공격 전 스템의 MAC 주소 테이블 확인 ping 192.168.0.100

12/30

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

83

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

Page 13: 정보보안 개론과 실습:네트워크 · fake 설치와 사용법 확인 rpm -Uvh fake-1.1.2-1.i386.rpm send_arp 공격 전 스템의 MAC 주소 테이블 확인 ping 192.168.0.100

13/30

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

83

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

Page 14: 정보보안 개론과 실습:네트워크 · fake 설치와 사용법 확인 rpm -Uvh fake-1.1.2-1.i386.rpm send_arp 공격 전 스템의 MAC 주소 테이블 확인 ping 192.168.0.100

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: 정보보안 개론과 실습:네트워크 · fake 설치와 사용법 확인 rpm -Uvh fake-1.1.2-1.i386.rpm send_arp 공격 전 스템의 MAC 주소 테이블 확인 ping 192.168.0.100

15/30

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

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

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

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

연결 끊음

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

패스워드 없이 접근

IP 스푸핑

Page 16: 정보보안 개론과 실습:네트워크 · fake 설치와 사용법 확인 rpm -Uvh fake-1.1.2-1.i386.rpm send_arp 공격 전 스템의 MAC 주소 테이블 확인 ping 192.168.0.100

16/30

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

.$HOME/.rhost

IP 스푸핑

Page 17: 정보보안 개론과 실습:네트워크 · fake 설치와 사용법 확인 rpm -Uvh fake-1.1.2-1.i386.rpm send_arp 공격 전 스템의 MAC 주소 테이블 확인 ping 192.168.0.100

17/30

IP 스푸핑 개념 예

IP 스푸핑

Page 18: 정보보안 개론과 실습:네트워크 · fake 설치와 사용법 확인 rpm -Uvh fake-1.1.2-1.i386.rpm send_arp 공격 전 스템의 MAC 주소 테이블 확인 ping 192.168.0.100

18/30

가장 좋은 대책은 트러스트를 사용하지 않는 것

부득이하게 트러스트를 사용할 경우에는 트러스트된 시스템의 MAC 주소를 static으로 지정 해커가 연결을 끊을 수는 있지만, 잘못된 IP 주소로 위장해 접근하더라도 MAC 주소까

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

IP 스푸핑 보안 대책

Page 19: 정보보안 개론과 실습:네트워크 · fake 설치와 사용법 확인 rpm -Uvh fake-1.1.2-1.i386.rpm send_arp 공격 전 스템의 MAC 주소 테이블 확인 ping 192.168.0.100

19/30

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

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

정상적인 DNS 서비스

DNS 스푸핑

➊ 클라이언트가 DNS 서버에 접속하고자 하는 IP 주소(www.wishfree.com 같

은 도메인 이름)를 물어본다. 이때 보내는 패킷은 DNS Query다.

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

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

Page 20: 정보보안 개론과 실습:네트워크 · fake 설치와 사용법 확인 rpm -Uvh fake-1.1.2-1.i386.rpm send_arp 공격 전 스템의 MAC 주소 테이블 확인 ping 192.168.0.100

20/30

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

경우에는 클라이언트가 DNS Query 패킷을 보내면 이를 받아야 하므로 ARP 스푸핑

과 같은 선행 작업이 필요하다. 만약 허브를 쓰고 있다면 모든 패킷이 자신에게도 전달

되므로 자연스럽게 클라이언트가 DNS Query 패킷을 보낼 경우 이를 확인할 수 있다.

DNS 스푸핑

Page 21: 정보보안 개론과 실습:네트워크 · fake 설치와 사용법 확인 rpm -Uvh fake-1.1.2-1.i386.rpm send_arp 공격 전 스템의 MAC 주소 테이블 확인 ping 192.168.0.100

21/30

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

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

Response 패킷을 보낼 수 있다.

DNS 스푸핑

Page 22: 정보보안 개론과 실습:네트워크 · fake 설치와 사용법 확인 rpm -Uvh fake-1.1.2-1.i386.rpm send_arp 공격 전 스템의 MAC 주소 테이블 확인 ping 192.168.0.100

22/30

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

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

DNS 스푸핑

Page 23: 정보보안 개론과 실습:네트워크 · fake 설치와 사용법 확인 rpm -Uvh fake-1.1.2-1.i386.rpm send_arp 공격 전 스템의 MAC 주소 테이블 확인 ping 192.168.0.100

23/30

웹 서버 구축 service httpd start

1

실습 9-3 DNS 스푸핑하기

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

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

• 필요 프로그램 : arpspoof, dnsspoof

실습환경

Page 24: 정보보안 개론과 실습:네트워크 · fake 설치와 사용법 확인 rpm -Uvh fake-1.1.2-1.i386.rpm send_arp 공격 전 스템의 MAC 주소 테이블 확인 ping 192.168.0.100

24/30

웹 사이트 정상 접속 확인

DNS 스푸핑 파일 설정

➊ vi /etc/dsniff/dnsspoof.hosts

➋ 192.168.0.2 *.google.com

2

실습 9-3 DNS 스푸핑하기

3

Page 25: 정보보안 개론과 실습:네트워크 · fake 설치와 사용법 확인 rpm -Uvh fake-1.1.2-1.i386.rpm send_arp 공격 전 스템의 MAC 주소 테이블 확인 ping 192.168.0.100

25/30

ARP 스푸핑과 패킷 릴레이

➊ arpspoof -t 192.168.0.101 192.168.0.1

➋ ./fragrouter -B1

4

실습 9-3 DNS 스푸핑하기

Page 26: 정보보안 개론과 실습:네트워크 · fake 설치와 사용법 확인 rpm -Uvh fake-1.1.2-1.i386.rpm send_arp 공격 전 스템의 MAC 주소 테이블 확인 ping 192.168.0.100

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: 정보보안 개론과 실습:네트워크 · fake 설치와 사용법 확인 rpm -Uvh fake-1.1.2-1.i386.rpm send_arp 공격 전 스템의 MAC 주소 테이블 확인 ping 192.168.0.100

27/30

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

ipconfig /flushdns

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

ping www.google.com

실습 9-3 DNS 스푸핑하기

Page 28: 정보보안 개론과 실습:네트워크 · fake 설치와 사용법 확인 rpm -Uvh fake-1.1.2-1.i386.rpm send_arp 공격 전 스템의 MAC 주소 테이블 확인 ping 192.168.0.100

28/30

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

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

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

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

DNS 스푸핑 보안 대책

Page 29: 정보보안 개론과 실습:네트워크 · fake 설치와 사용법 확인 rpm -Uvh fake-1.1.2-1.i386.rpm send_arp 공격 전 스템의 MAC 주소 테이블 확인 ping 192.168.0.100

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: 정보보안 개론과 실습:네트워크 · fake 설치와 사용법 확인 rpm -Uvh fake-1.1.2-1.i386.rpm send_arp 공격 전 스템의 MAC 주소 테이블 확인 ping 192.168.0.100

영동대학교 스마트IT학부: 컴퓨터와 해킹