- 네트워크상에 흘러다니는 트래픽을 훔쳐보는 행위. 주로 자신에게 와야할 정보가 아닌 정보를 자신이 받도록 조작하는 행위를 말한다.
원리
허브 환경
- 정보가 브로드캐스팅 되고 있는 환경이라면 단순히 브로드캐스트된 정보를 받아들이는 것만으로 스니핑 가능
- 원래는 데이터가 브로드캐스트 되더라도 자신이 목적지가 아닌 정보는 버리게 되어있다.
- NIC의 설정 변경을 통해 Promiscuous Mode(무차별 모드)를 활성화 하면 목적지에 관계 없이 도달하는 패킷을 모두 받아들인다.
스위치 환경
- 스위치 환경에선 정보가 브로드캐스팅 되지 않고 목적지를 특정하여 보내진다.
- 허브 환경처럼 단순히 모두 받아들이는 것 만으로는 스니핑이 불가능하다.
- 자신을 목적지로 속여 목적지 주소를 조작하는 방식, 스위치를 공격하여 정보를 브로드캐스팅 하도록 만드는 방법이 있다.
스니핑 기법
- Switch Jamming
- ARP Spoofing
- ARP Redirect
- ICMP Redirect
탐지 방법
허브 환경
- 허브 환경에서는 스니핑도 쉬운만큼 스니핑 탐지도 쉽다.
- Promiscuous Mode인 호스트를 찾으면 된다.
- 가짜 MAC 주소로 설정한 ping을 보낸다. 정상적인 호스트는 받지 못할테니 응답이 없고 Promiscuous Mode인 경우만 응답한다.
스위치 환경
- 주로 ARP Cache Table을 조작하는 방법을 쓴다.
- ARP Cache Table에 같은 맥주소가 여러 IP에 할당되어 있거나, 게이트웨이의 맥주소가 변경되어 있는 경우 그 맥주소를 사용하는 호스트가 공격자이다.
대응
무차별 모드 해제
- 의심되는 내부 망 호스트를 점검하였을 때 Promiscuous Mode가 확인되면 해당 모드를 해제한다.
# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:3E:B6:A2
inet addr:11.11.11.11 Bcast:11.11.11.255 Mask:255.255.255.0
inet6 addr: fe80::fe80:fe80:fe80:fe80/64 Scope:Link
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:11182843 errors:0 dropped:0 overruns:0 frame:0
TX packets:8329369 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:139980359 (115.5 MiB) TX bytes:11259325956 (10.4 GiB)
# ifconfig eth0 -promisc
# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:3E:B6:A2
inet addr:11.11.11.11 Bcast:11.11.11.255 Mask:255.255.255.0
inet6 addr: fe80::fe80:fe80:fe80:fe80/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:11182843 errors:0 dropped:0 overruns:0 frame:0
TX packets:8329369 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:139980359 (115.5 MiB) TX bytes:11259325956 (10.4 GiB)
ARP 테이블 변경
- 스위치 환경에서의 스니핑은 대부분 ARP 스푸핑을 통해 발생한다.
- 조작된 ARP 테이블을 복구하기 위해선 ARP 스푸핑 문서 참조
기타 대응 방안
- 메시지 암호화
- Switch에서 Port Security, ARP Inspection 기능을 사용한다.
- Anti-sniff, ARP Watch와 같은 탐지 도구를 사용한다.
- 조직 환경에 맞게 작은 단위로 VLAN을 구성한다.
- 브로드캐스트되는 범위를 줄임으로써 공격을 약화시킨다.