400 likes | 1.2k Vues
Spoofing( 스푸핑 ). MEMBER. 학 과 : 컴퓨터공학전공 과 목 명 : 인터넷 보안 담 당 교 수 : 김현성 교수님. 20042247 정원형 20042209 김병수. 4 조. Contents. 스푸핑 공격 필수 라이브러리 ARP 스푸핑 IP 스푸핑 DNS 스푸핑 실습 결론. 스푸핑 공격. Spoofing = Mission Impossible
E N D
Spoofing(스푸핑) MEMBER 학 과 : 컴퓨터공학전공 과 목 명 : 인터넷 보안 담 당 교 수 : 김현성 교수님 20042247 정원형 20042209 김병수 4조
Contents • 스푸핑 공격 • 필수 라이브러리 • ARP 스푸핑 • IP 스푸핑 • DNS 스푸핑 • 실습 • 결론
스푸핑 공격 Spoofing = Mission Impossible 우리는 스파이 첩보 영화에서 주인공이 자신을 노출시키지 않기 위해 남의 신분으로 위장하는 경우를 자주 볼 수 있다. 이때 주로 사용하는 방법이 주민등록증, 운전면허증 등의 신분증을 위조하거나 신체적인 특징인 얼굴, 지문, 목소리 등을 변조하는 것이다. 이 모든 것들이 특정 사람을 인식하는 방법을 우회 통과하기 위한 방법이다. 마찬가지로 네트워크 상에서도 악의적인 혹은 비밀스러운 활동을 시도하려는 사람들은 먼저 자기 자신을 감추는 방법을 생각하게 된다. 다만 네트워크 상에서 해당 사용자를 식별하는 정보는 IP 주소, DNS 이름, Mac 주소, 이메일 주소 등을 사용한다. 스프핑 공격(Spoofing Attack)은 바로 자기 자신의 식별 정보를 속여 다른 대상 시스템을 공격하는 기법이다. 네트워크 상의 공격자는 TCP/IP 프로토콜 상의 취약성을 기반으로 해킹 시도시 자신의 시스템 정보(IP 주소, DNS 이름, Mac 주소 등)를 위장하여 감춤으로써 역추적이 어렵게 만든다. 이러한 스프핑 공격은 패킷 스니퍼링이나 서비스 거부 공격, 세션 하이재킹(Session Hijacking) 등의 다른 여러가지 공격을 수행 가능하게 한다.
필수 라이브러리 • 해킹 툴을 사용하기 위한 몇 가지 라이브러리의 설치. • 리눅스에서 필요한 라이브러리 • Libnet/Libpcap/DB Library/Libnids/OpenSSL • 배포판에 따라 일부는 이미 설치되어 있기도 하다. • 윈도우에서 필요한 라이브러리 • WinPCAP 라이브러리와 스니핑을 위한 라이브러리 • 각종 라이브러리 드라이버는 전송된 데이터를 수집하고 축약한다.
Library • Libnet (Library Network) 패킷 생성 라이브러리 패킷은 생성 시에 다음과 같은 과정을 거친다. 1. 네트워크의 초기화 2. 메모리의 초기화 3. 패킷의 생성 4. 패킷의 체크섬(Check Sum) 생성 5. 패킷의 투입 • Libnet이 지원하는 프로토콜 • 2계층 : ARP와 이더넷 • 3계층 : ICMP, IGMP, IPv4 • 4계층 : TCP, UDP • 7계층 : RIP, OSPF, DNS
Library 2) Libpcap(Library Packet Capture) Libpcap 라이브러리는 네트워크 카드에 유입된 정보를 응용 프로그램이 읽을 수 있는 형태로 전환해준다.
Library 3) DB(Berkeley Database) • 버클리 DB는 오픈 소스 DB로서, 웹 서버, Sendmail 등이 버클리 DB를 사용하고 있다. • 버클리 DB는 C, C++, 자바(Java), 펄(Perl), Tcl, 파이썬(Python)과 PHP를 모두 지원하며, 멀티스레드(thread)와 locking, transaction logging, 공유 버퍼 관리, 메모리 관리 등을 수행한다. • 버클리 DB는 다른 라이브러리에 비해 무척이나 방대하다. • Dsniff 와 같은 툴 설치 시 필요하다.
Library 4) Libnids(Library Network IDS) • BSD packet filter(BPF)에 기반하고 있으며, 스니퍼나 네트워크 분석 프로그램을 작성할 때 유용한 라이브러리다. • Libnids 기능. 1. IP 패킷의 재조합(Defragmentation) 2. TCP 흐름 재조합 3. 기타 - UDP 콜백 함수 - TCP 세션 강제 종료 함수
Library 5) OpenSSL(Secure Socket Layer) • OpenSSL은 보안상 문제가 있어 운영체제는 SSH(Secure Shell) 프로토콜을 지원한다. • SSH는 OpenSSL를 지원한다. 두 프로토콜은 모두 RSA에 의해서 키 교환을 하며, 데이터는 3DES와 Blowfish, IDEA로 암호화한다. • OpenSSL은 또한 계정과 패스워드 등을 스니핑하기 위해 이용
ARP Spoofing • 1. ARP Spoofing 공격 개요 ARP Spoofing 공격은 로컬 네트워크(LAN)에서 사용하는 ARP 프로토콜의 허점을 이용하여 자신의MAC(Media Access Control) 주소를 다른 컴퓨터의 MAC인 것처럼 속이는 공격이다. ARP Spoofing공격은 ARP Cache 정보를 임의로 바꾼다고 하여‘ARP Cache Poisoning 공격’이라고도 한다
ARP Spoofing • 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 업데이트
ARP Spoofing Layer2 장비인 스위치는 앞서 봤던 단계에 따라 이더넷 프레임으로부터 MAC 주소를 추출하여 위와 같은 Switch Route Table을 작성한다. 위의 2)번 단계가 진행되면 1번 포트에 MAC-A(호스트-A) 주소를 테이블에 등록하고 3)번이 진행된 후 5번 포트에 MAC-B 주소를 등록한다. 이후 테이블에 등록되어 매칭된 포트와 MAC 주소를 통해서 통신을 하게 된다.
ARP Spoofing 나. ARP Spoofing 공격 기법 스위치는 모든 트래픽을 MAC 주소를 기반으로 해서 전송하게 된다. 공격자는 LAN상의 모든 호스트 IP-MAC 주소 매핑을 ARP Request 브로드캐스팅을 통해 정확하게 알아 낼 수 있어 공격자에게 악용될 수 있다. 아래 (그림)은 호스트-A와 호스트-B의 정상적인 스위치 상에서의 트래픽이 전송되는 모습이다
ARP Spoofing ARP 프로토콜은 인증을 요구하는 프로토콜이 아니기 때문에 간단한 ARP Reply 패킷을 각 호스트에 보내서 쉽게 ARP Cache를 업데이트시킬 수 있다.
ARP Spoofing 앞 페이지의 (그림)처럼 스니퍼는 각 호스트들에게 위조한 MAC 주소(상대방의 MAC 주소 = 스니퍼 MAC 주소)를 보내 각 호스트의 ARP Cache를 업데이트 시키게 되고 스위치에서는 스니퍼의 MAC 주소와 포트 매핑 정보가 테이블에 등록된다. 계속해서 스니퍼는 Cache가 사라지기 전에 변조된 ARP Reply를 지속적으로 보내므로 각 호스트들의 ARP Cache의 변조된 MAC 주소의 정보는 계속해서 유지된다. 이때 스니퍼는 두 방향으로 정확히 재전송해 줄 수 있는 기능이 있어야만 호스트-A와 B는 통신을 할 수 있다. 공격에 성공하면 두 호스트는 서로의 MAC 주소를 스니퍼의 MAC 주소로 인식하고 있기 때문에 모든 트래픽을 스니퍼에게 전달하게 된다. 스니퍼는 이 두 호스트에게 재전송할 수 있는 기능이 있으며 또한 모든 패킷들을 캡쳐할 수 있게 된다.
ARP Spoofing • 보안 대책 =MAC 테이블의 static 설정을 통해 막을 수 있음 ➊ arp -a 명령을 입력하고 [Enter] 키를 입력한다. 현재 MAC 주소 테이블을 볼 수 있다. ➋ static으로 설정하고자 하는 IP 주소와 MAC 주소를 확인한 뒤 arp -s <IP 주소> <MAC 주소> 형식으로 명령을 입력한다. ➌ 다시 arp -a 명령으로MAC 주소 테이블을 확인하면 뒷부분에 PERM(Permanent) 옵션 또는 static이 있다. 이렇게 설정된 IP 주소와MAC 주소 값은 ARP 스푸핑 공격이 들어와도 값이 변하지 않는다. 모든 관리 시스템에 static 옵션을 지정할 수는 없음. 또한, 리부팅하면 static 옵션이 사라지므로 계속 사용하려면 배치 파일 형태로 만들어두고, 리부팅 시마다 자동으로 수행되도록 설정해야 함
IP Spoofing • IP 스푸핑은 말 그대로 IP 정보를 속여서 다른 시스템을 공격하는 것이다. IP 스푸핑을 통해 서비스 거부 공격을 수행할 수도 있으며 공격대상 컴퓨터와 서버 사이의 연결된 세션에 대해서 세션 끊기도 가능하다. • IP스푸핑은 시스템간의 트러스트 관계를 이용한 것이다. • 트러스트 관계는 IP 주소로 인증을 하고 별도의 패스워드 없이 • 로그인이 가능 하도록 만든 것이다.
IP Spoofing • 공격자는 공격대상인 서버에 접속하기 위해 패킷을 보낼 때 출발지 IP 주소에 해당하는 부분을 고쳐 클라이언트로 부터 발송된 패킷처럼 속인다. • 이 패킷을 받은 서버는 당연히 TCP 접속을 위해 SYN /ACK 패킷을 클라이언트로 보내게 된다. 일반적으로, 이때 클라이언트는 서비스를 요청하는 패킷을 보낸 적이 없음을 서버에게 알리며, TCP 접속 자체를 끊는다.
IP Spoofing • 이 과정에 있어서 공격자는 잠깐 동안 클라이언트의 네트워크를 외부로부터 단절시킨다. • 그런 후, 서버에 적당한 ACK 패킷을 보냄으로써 서버와 클라이언트를 가장한 공격자간의 접속이 이루어질 수 있게 된다. • 트로이 목마 프로그램을 설치하는 등의 목적한 작업을 하기 위한 호스트 접근 권한 혹은 루트 권한 획득 단계
IP Spoofing • 가장 좋은 대책은 트러스트를 사용하지 않는 것 • 부득이하게 트러스트를 사용할 경우에는 트러스트된 시스템의 • MAC 주소를 static으로 지정 • 해커가 연결을 끊을 수는 있지만, 잘못된 IP 주소로 위장해 접근하더라도 MAC 주소까지 • 같을 수는 없기 때문에 세션을 빼앗기지는 않음 • 보안 대책
DNS Spoofing 정상적인 DNS • 클라이언트가 DNS 서버에게 접속하고자 하는 IP 주소(www. wishfree.com과 같은 도메인 이 름)를 물어봄. 이때 보내는 패킷은 DNS Query이다. • DNS 서버가 해당 도메인 이름에 대 한 IP 주소를 클라이언트에게 보내준다. • 클라이언트가 받은 IP 주소를 바탕으로 웹 서버를 찾아간다.
DNS Spoofing DNS 공격 • 클라이언트가 DNS 서버로 DNS Query 패킷을 보내는 것을 확인. 스위칭 환경일 경우에는 클라이언트 DNS Query 패킷을 보내면 이를 받아야 하므로 ARP 스푸핑과 같은 선행 작업이 필요함. 만약 허브를 쓰고 있다면 모든 패킷이 자신에게도 전달되므로 클라이언트가DNS Query 패킷을 보내는 것을 자연스럽게 확인할 수 있음.
DNS Spoofing • 공격자는 로컬에 존재하므로 DNS 서버보다 지리적으로 가까움. 따라서 DNS 서버가 올바른 DNS Response 패킷을 보내주기 전에 클라이언트에 게 위조된 DNS Response 패 킷을 보낼 수 있음. • 클라이언트는 공격자가 보낸 DNS Response 패킷을 올바른 패킷으로 인식하고, 웹에 접속. 지리적으로 멀리 떨어져 있는 DNS 서버가 보낸 DNS Response 패킷은 버림.
DNS Spoofing DNS 공격 결과
DNS Spoofing • 보안 대책 도메인 이름을 브라우저에 입력했을 때 무조건 DNS Query를 생성하는 것은 아님 • 사이트에 접속하면 MAC처럼 캐시에 도메인 이름에 대한 IP 주소가 저장되었다가 다시 접속했을 때 DNS Query를 보내지 않고 캐시에서 읽어 들임 • 그런 다음 hosts 파일을 통해 도메인 이름에 대한 IP 주소를 해석 hosts파일에 중요 사이트의 IP 주소를 적어두면, 이파일에 있는 사이트에 대해서는 DNS 스푸핑 공격을 당하지 않을 수 있음
실습 • ARP 스푸핑 • 공격 대상자의 mac 주소테이블
실습 공격자의 공격 대상자 mac 테이블 정보를 바꾸기 위한 사전준비 과정(툴 설치) 1. ARP 스푸핑 툴(fake 버전 1.1.2, rpm) Root# rpm -Uvh fake-1.1.2-1.i386.rpm
실습 2. 패킷Relay 툴(fragrouter 버전 1.6) Root# ./configure Root# make
실습 공격자의 mac 주소테이블
실습 공격자 자신의 주소정보 확인 후 공격대상자의 mac테이블 변경
실습 공격대상자의 바뀐 mac 주소 테이블 공격자의 MAC 주소로바뀌어져 있다.
실습 ARP 스푸핑 보안대책 arp –s 명령어 사용 ㅌㅏ입이 바뀐걸 볼 수 있다.
실습 DNS 스푸핑 보안대책 DNS 캐시 수정 <DNS 캐시의 경로> C:\WINDOWS\system32\drivers\etc
실습 DNS 캐시수정 빨간줄 아래 부분에 아이피주소와 사이트 주소를 입력하면 해당 컴퓨터에서는 DNS 서버에 쿼리 패킷을 보내지 않고 해당 사이트에 바로 접속하게 된다.
결론 • Spoofing 공격은 발견하기 힘들다. • 암호화된 인증 방법 사용 • SSH(Secure Shell)보안기법사용 • Triple DES 알고리즘 • IDEA • RSA 알고리즘(구현시암호화된통신을실시하기위해)