스니핑
스니핑 공격이란 Sniff 라는 단어의 의미 ( 냄새를 맡다, 코를 킁킁거리다 ) 에서도 알 수 있 듯이 스니퍼는 “ 컴퓨터 네트워크상에 흘러다니는 트래픽을 엿듣는 도 청장치 ” 라고 말할 수 있다. 그리고 “ 스니핑 ” 은 이러한 스니퍼를 이용하 여 네트워크상의 데이터를 도청하는 행위를 말한다. 랜에서의 스니핑은 프러미스큐어스 (Promiscuous) 모드에서 작동한다. 랜 카드는 설정된 IP 주소 값과 고유한 MAC(Media Access Control) 주 소 값을 가지고 있으며 자신의 랜 카드에 들어오는 프로토콜 형식에 따 른 전기적 신호의 헤더 부분, 즉 주소 값을 인식하고 자신의 버퍼에 저 장할지를 결정한다. 그러나 스니핑은 자신이 가지지 말아야 할 정보까 지 모두 받아들이는 것이다. 이렇듯 자신의 주소 값을 무시하고 모든 패 킷을 받아들이는 상태를 프러미스큐어스 모드라고 한다.
- 3 - 프로미스큐어스 모드로 전환 ifconfig eth0 promisc
- 4 - TCPDump – 가장 일반적으로 쓰이는 스니핑 도구다. 불법적인 느낌, 해킹이라는 느낌보다는 관리자적인 느낌이 강한 스니퍼다. 처음부터 스니핑을 위 한 도구로 개발된 것이 아니라 네트워크 관리를 위해 개발된 툴이다. Snort 라는 IDS 의 기반 프로그램이기도 하다. 2. 스니핑 공격툴 (TCPDump)
- 5 - TCPDump 를 이용하여 계정과 패스워드 스니핑하기 2. 스니핑 공격툴 (TCPDump) 공격자의 시스템에서 tcpdump 를 실행한다. 텔넷 클라이언트에서 서버로 로그인한다.
- 6 - 텔넷 로긴시 tcpdump 결과 2. 스니핑 공격툴 (TCPDump) 계정 : codekim 의 경우
- 7 - 텔넷 로긴시 tcpdump 결과 2. 스니핑 공격툴 (TCPDump) 패스워드 : tmdrual0 의 경우
- 8 - Dsniff –DSniff 는 스니핑을 위한 자동화 도구다. 많이 알려진 툴이며, 단순한 스니핑 도구가 아니라 스니핑을 위한 다양한 툴이 패키지처럼 만들어 져 있다. – 많은 이들이 SSL 과 같은 암호화를 쓰는 통신이 안전하다고 생각하나, DSniff 는 이렇게 암호화된 계정과 패스워드까지 읽어내는 능력이 있 다. DSniff 가 읽어낼 수 있는 패킷은 다음과 같다. –ftp, telnet, http, pop, nntp, imap, snmp, ldap, rlogin, rip, ospf, pptp, ms-chap, nfs, yp/nis+, socks, x11, cvs, IRC, ATM, ICQ, PostageSQL, Citrix ICA, Symantec pcAnywhere, M.S. SQL, auth, info 2. 스니핑 공격툴 (Dsniff)
- 9 - Dsniff 설치시 설치되는 툴 2. 스니핑 공격툴 (Dsniff) 툴 기 능 filesnarfNFS 트래픽에서 스니프한 파일을 현재 디렉토리에 저장한다. macof 스위치를 허브와 같이 작동하게 하기 위하여 임의의 MAC 주소로 스위치의 MAC 테이블을 오버플로우 (Overflow) 시킨다. mailsnarfSNMP 와 POP 을 스니프하여 이메일을 볼 수 있게 해준다. msgsnarf 채팅 메시지를 스니핑한다. tcpkill 탐지할 수 있는 TCP 세션을 모두 끊는다. tcpnice ICMP source quench 메시지를 보내 특정 TCP 연결을 느리게 만든다. 속도가 빠른 네트워 크에서 스니프할 때 arpspoofARP 스푸핑 공격을 실행한다. dnsspoofDNS 스푸핑 공격을 실행한다. urlsnarfHTTP 트래픽을 스니핑하여 선택된 URL 을 알려준다.
Dsniff 를 이용하여 여러가지 공격하기 2. 스니핑 공격툴 (Dsniff) Dsniff 설치
Dsniff 를 이용한 패스워드 스니핑 2. 스니핑 공격툴 (Dsniff) 에서 jin.hannam.ac.kr 로 텔넷을 통해 전달되는 모든 패킷이 보인다 에서 jin.hannam.ac.kr 로 FTP 연결을 시도하였으며, 계정과 패스워드가 명시되어 출력된다.
tcpkill 을 이용한 세션 끊기 2. 스니핑 공격툴 (Dsniff) 인터페이스 eth0 에 RST 패킷을 4 개씩 보내어 tcp 에 대한 연결을 끊는다. 위 화며에서는 텔넷으로 접속하였기 때문에 tcp 기반의 텔넷도 연결이 끊어져 버린다.
tcpnice 를 이용한 트래픽 속도 느리게 만들기 2. 스니핑 공격툴 (Dsniff) 탐지에 연결된 수신 버퍼의 크기를 8 로 알려 송신자의 속도를 느리게 만든다.
urlsnarf 를 이용한 웹 서핑 감시 2. 스니핑 공격툴 (Dsniff) 인터넷 사용자가 접속한 서버와 시간등의 정보를 알 수있다.
윈도우 – 윈도우에서는 프러미스큐어스 모드가 지원되지 않는다. 따라서 기본적으로 스니핑이 지원되지 않으나, WinPCAP 과 같은 라이브러리를 이용해서 스니핑 이 가능하다. 윈도우 스니퍼는 뛰어난 GUI(Graphic User Interface) 를 이용하 여 네트워크 상태를 점검하거나 패킷의 통계를 내기 위한 목적으로 많이 쓰 인다. 2. 스니핑 공격툴
스위칭 환경에서는 기본적으로 스니핑이 어렵다. 스위치는 2 계층 장비다. 2 계층 네트워크에서는 원래 허브가 쓰였다. 허브는 랜에서 들어오는 모 든 신호를 복사해서 모든 포트에 다시 뿌려주는 역할을 한다. 따라서 브 로드캐스트 (Broadcast) 패킷인지 유니캐스트 (Unicast) 패킷인지에 상관 없이 모든 포트에 보내주므로 스니퍼에게 스니핑을 이용한 공격은 간단 하다. 그러나, 스위치는 포트별로 MAC 주소 값을 기록하여 브로드캐스트 패킷 을 제외한 모든 패킷은 그 패킷이 목적하는 장비에만 보내어지기 때문에 스니핑을 하기가 어렵다. 3. 스위칭 환경에서의 스니핑
ARP Redirect –ARP 리다이렉트 공격은 기본적으로 2 계층에서 실시된다. 공격은 위조된 ARP reply 패 킷을 보내는 방법을 사용한다. 자신의 MAC 주소가 라우터라며 브로드캐스트를 주기 적으로 하는 것이다. ARP 스푸핑는 호스트 대 호스트 공격이며, ARP 리다이렉트는 랜 의 모든 호스트 대 라우터라는 것 말고는 큰 차이점이 없다. ARP 스푸핑에서와 마찬가 지로 공격자 자신만은 원래 라우터의 MAC 주소를 알고 있어야 하며 받은 모든 패킷은 다시 라우터로 릴레이해 주어야만 한다. 3. 스위칭 환경에서의 스니핑
스위칭 환경에서의 스니핑
ICMP Redirect – 보통의 네트워크는 라우터나 게이트웨이가 하나다. 하지만 하나의 라우터로 이를 감당 할 수 없을 때는 어떻게 해야 할까 ? 라우터나 게이트웨이를 두 개 이상 운영해서 로드 밸런싱 (Load balancing) 을 해야 할 것이다. 로드밸런싱을 하는 방법은 다양하다. 시스 템의 라우팅 테이블에 라우팅 엔트리를 하나 더 넣어주는 방법도 있으나 ICMP 리다이 렉트를 사용하기도 한다. –ICMP 공격은 이러한 경우를 강제적으로 만들어주게 된다. 공격자가 네트워크에 존재 하는 또다른 라우터임을 각 호스트에게 알리게 된다. ARP Redirect 와 다른 점은 ARP Redirect 는 모든 트래픽에 대한 리다이렉트를 가능하게 하지만, ICMP 리다이렉트는 특정한 목적지 주소를 가진 패킷만을 리다이렉트하게 된다. 3. 스위칭 환경에서의 스니핑
ICMP Redirect 3. 스위칭 환경에서의 스니핑
ICMP Redirect –1. 호스트 A 가 원격의 호스트 B 로 데이터를 보낼 때 라우터 A 가 디폴트 (Default) 라우 터로 설정되어 있기 때문에 호스트 A 는 원격으로 보내는 모든 패킷을 라우터 A 로 보낸 다. –2. 라우터 A 는 호스트 B 로 보내는 패킷을 수신하고 라우팅 테이블을 검색하여 라우터 B 가 호스트 B 에 도달하는데, 좀더 효율적으로 호스트 A 가 보낸 패킷을 라우터 B 로 보 낸다. –3. 라우터 A 는 다시 호스트 A 가 호스트 B 로 향하는 패킷을 자신에게 전달하지 않도록 호스트 A 에게 ICMP 리다이렉트 패킷을 보내 호스트 A 가 호스트 B 로 보내는 패킷이 라 우터 B 로 바로 향하도록 한다. –4. 호스트 A 는 라우팅 테이블에 호스트 B 에 대한 값을 추가하고, 호스트 B 로 보내는 패 킷은 라우터 B 로 전달한다. 3. 스위칭 환경에서의 스니핑
ICMP Redirect 를 이용한 스니핑 3. 스위칭 환경에서의 스니핑 ce.hannam.ac.kr
스위칭 환경에서의 스니핑 공격도구 컴파일 및 실행 게이트웨이 공격대상호스트공격대상호스트가 접속하고자하는 원격서버주소 공격자호스트 공격도구실행시 tcpdump 한 내용 > ce.hannam.ac.kr 로 패킷을 보낼때는 의 기본 게이트웨이를 거치지 말고 번의 호스트로 패 킷을 보내라는 icmp redirect 패킷 내용을 tcpdump 로 분석한 것이다.
스위칭 환경에서의 스니핑 공격대상 호스트에서의 route 명령 공격대상호스트에서 route –C 명령을 치면 ce.hannam.ac.kr 호스트로 패킷을 보낼때 게이 트웨이가 이 아닌 의 공격자 호스트의 ip 주소로 변경되어 있는것을 알 수 있다.
스위칭 환경에서의 스니핑 공격대상 호스트에서의 ce.hannam.ac.kr 로 ping 메시지 전송 공격호스트에서 fragrouter 를 이용하여 icmp 패킷 릴레이
스위치 재밍 (switch jamming) – 스위치 재밍 (Switch Jamming) 은 스위치를 직접 공격한다. – 해킹 공격 중에 버퍼 오버플로우 (Buffer Overflow) 공격이 있다. 버퍼 오버플로우 공격 은 버퍼를 공격해서 시스템을 다운시키기거나 오작동을 유발하기도 하며, 루트 (Root) 권한을 얻어내는 데 쓰이기도 한다. 스위치 역시 하나의 시스템으로 생각할 수 있다. CPU 와 같은 연산자가 있으며 MAC 테이블을 저장하기 위한 저장 공간이 있다. – 스위치 재밍은 MAC 테이블을 위한 캐시 공간에 버퍼 오버플로우 공격을 실시하는 것 이라고 생각해도 무리가 없다. MAC 테이블이 저장 용량을 넘으면 스위치는 원래의 기 능을 잃게 되어 더미 허브와 똑같이 작동한다. 3. 스위칭 환경에서의 스니핑
macof 로 스위치 재밍 시키기 3. 스위칭 환경에서의 스니핑 출발지의 MAC 주소도착지의 MAC 주소 출발지의 ip 주소와 도착지의 ip 주소가 모두 으로 설정되어 있다. 그렇기 때문에 공격이 성공할 수 없을거 같지만 스위치는 2 계층 장비이며 ip 주소에 대한 MAC 주소 테 이블을 가지고 있는것이 아니라 각 스위치 포트에 대한 MAC 주소를 저장공간에 기억 하는 것이다. 따라서 ip 주소는 어떤 의미도 갖지 않는다.
SPAN 포트 / 태핑 ( 통신장비 도청 ) –SPAN(Switch Port Analyzer) 은 포트 미러링 (Port Mirroring) 을 이용한 것이다. 포트 미 러링이란 각 포트에 전송되는 데이터를 미러링하고 있는 포트에도 똑같이 보내주는 것이다. 주로 IDS 를 설치할 때 많이 사용한다. –SPAN 은 주로 시스코에서 쓰는 용어이며, 다른 벤더들은 ‘ Port Roving ’ 이라 부르기도 한다. –SPAN 은 상당히 많은 문제점을 가지고 있어 효과적인 모니터링을 하는 데 많은 어려 움이 있다. 이를 해결할 수 있는 방법이 태핑이다. 허브와 같이 포트를 모니터링하기 위한 장비로서 ‘ Splitter ’ 라고 부르기도 한다. 3. 스위칭 환경에서의 스니핑
스니퍼 탐지 – 스니핑 공격은 스니퍼를 설치한 이후에는 매우 쉬우며 네트워크에 별다른 이 상 현상을 만들지 않기 때문에 사용자가 이를 인지하는 것이 어렵다. 따라서 네트워크 관리자나 보안 관리자라면 주기적으로 네트워크에 스니퍼가 있는 지 탐색해 봐야 한다. – 스니퍼에 대한 탐색은 기본적으로 스니퍼가 프러미스큐어스 모드에서 작동 한다는 것에서 시작한다. 4. 스니핑 공격의 대응책
Ping 을 이용한 방법 – 대부분의 스니퍼는 일반 TCP/IP 에서 동작하기 때문에 request 를 받으면 response 를 전달한다. 이를 이용한 방법은 의심이 가는 호스트에 ping 을 보내는데, 네트워크에 존 재하지 않는 MAC 주소를 위장하여 보낸다. 만약 ICMP Echo reply 를 받으면 해당 호스 트가 스니핑을 하고 있는 것이다. 왜냐하면 존재하지 않는 MAC 주소를 사용했기 때문 에 스니핑을 하지 않는 호스트는 누구도 ping request 를 볼 수 없는 것이 정상이다. ARP 를 이용한 방법 –ping 과 유사한 방법으로 위조된 ARP request 를 보냈을 때 ARP response 가 오면 프러 미스큐어스 모드로 설정되어 있는 것이다. 4. 스니핑 공격의 대응책
DNS 방법 – 일반적으로 스니핑 프로그램은 사용자의 편의를 위하여 스니핑한 시스템의 IP 주소를 보여주지 않고 도메인네임을 보여주기 위하여 DNS 이름해석과정 (Inverse-DNS lookup) 을 수행한다. 따라서, DNS 트래픽을 감시하여 스니퍼를 탐지할 수도 있다. 이 방법은 원격과 로컬에서 모두 사용할 수 있는 방법으로, 테스트 대상 네트워크로 Ping Sweep 을 보내고 들어오는 Inverse-DNS lookup 을 감시하여 스니퍼를 탐지한다. 유인 (Decoy) 방법 – 스니핑 공격을 하는 공격자의 주요 목적은 계정과 패스워드의 획득에 있다. 보안 관리 자는 이점을 이용하여 계속적으로 가짜 계정과 패스워드를 네트워크에 뿌린다. 공격자 는 이 계정과 패스워드를 이용하여 접속을 시도하고 이 접속을 시도하는 시스템을 탐 지함으로써 스니퍼를 탐지할 수 있다. 4. 스니핑 공격의 대응책
ARP Watch – 초기에 MAC 주소와 IP 주소의 매칭 값을 저장하고 ARP 트래픽을 모니터링하여 이를 변하게 하는 패킷이 탐지되면 관리자에게 메일로 알려주는 도구다. 4. 스니핑 공격의 대응책
sentinel 을 이용하여 스니퍼 찾아보기 4. 스니핑 공격의 대응책 sentinel 의 –e 옵션을 이용하여 존재하지 않는 MAC 주소를 이용한 ping 메시지를 보내어 스니퍼를 찾는 과정이다.
SSL(Security Sockets Layer) – 암호화된 웹 서핑을 가능하게 해준다. SSL 은 많은 웹 서버 브라우저에 구현되어 있으 며 전자상거래 사이트에 접속하여 물건을 구매할 때, 신용카드 정보 등을 보낼 때 사용 한다. SSL 은 40 비트와 128 비트 두 가지 암호화 키가 있으며 현재 대부분의 우리나라 금융거래 사이트는 40 비트 암호화 방법을 쓰고 있다. SSH(Secure Shell) –SSH 는 telnet 과 같은 서비스의 암호화를 위해서 사용된다. 그러나, DSniff 를 이용하여 공격하면 SSH 를 이용한다고 할지라도 공격당할 수 있다. PGP(Pretty Good Privacy) 와 PEM(Private Enhanced Mail), S/MIME – 메일의 암호화 VPN(Virtual Private Network) 4. 스니핑 공격의 대응책 ( 암호화 )