무차별 모드
IT 위키
- Promiscuous Mode; 프로미스큐어스 모드, 혼잡 모드
- 네트워크 인터페이스가 자신이 목적지가 아닌 프레임까지 모두 받아들여 운영체제로 올려 보내는 동작 모드
- 랜카드(NIC)는 평소 수신한 이더넷 프레임의 목적지 MAC 주소를 자기 주소·브로드캐스트·가입한 멀티캐스트 주소와 비교해, 자기 것이 아니면 하드웨어 단계에서 버린다.
- 따라서 같은 네트워크에 흐르는 남의 트래픽은 운영체제까지 올라오지 않는다.
- 무차별 모드를 켜면 이 필터링을 하지 않고 도달한 모든 프레임을 상위 계층으로 전달한다.
- tcpdump, 와이어샤크 같은 패킷 분석기는 이 모드를 켜야 남의 트래픽을 볼 수 있다.
- 허브 환경에서는 트래픽이 모든 포트로 뿌려지므로 무차별 모드를 켜는 것만으로 스니핑이 성립한다.
- 스위치 환경에서는 프레임이 목적지 포트로만 가므로 무차별 모드만으로는 부족하다. ARP 스푸핑으로 경로를 자기 쪽으로 돌리거나, 스위치의 포트 미러링을 이용해 트래픽이 도달하게 만들어야 한다.
- 즉 "트래픽이 내 포트까지 오게 만드는 일"과 "온 트래픽을 버리지 않게 만드는 일"은 별개이며, 스니핑에는 둘 다 필요하다.
# 현재 상태 확인 — 플래그에 PROMISC 가 보이면 켜져 있다
# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:0C:29:3E:B6:A2
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
# 켜기 / 끄기
# ifconfig eth0 promisc
# ifconfig eth0 -promisc
# ip 명령을 쓰는 경우
# ip link set eth0 promisc on
# ip link show eth0
모드가 바뀌면 커널이 로그를 남기므로 /var/log/messages 에서 변경 시점을 추적할 수 있다.
내부 호스트가 몰래 무차별 모드로 동작하고 있는지 알아내는 기법이 있다.
- ARP 기반 : 존재하지 않는 MAC 주소를 목적지로 한 ARP 요청을 보낸다. 정상 호스트는 하드웨어 필터에서 버리므로 응답하지 않지만, 무차별 모드인 호스트는 프레임을 올려 보내 응답할 수 있다.
- 핑 기반 : 같은 원리로 가짜 MAC + 정상 IP 조합의 ICMP 요청을 보낸다.
- DNS 기반 : 스니핑 도구가 수집한 IP 를 역질의하는 성질을 이용한다.
- 부하 기반 : 대량 트래픽을 흘렸을 때 응답 지연이 크게 늘어나는 호스트를 찾는다.
