📌 스니핑의 종류
- 스니핑은 네트워크상에서 자신이 아닌 다른 상대방의 패킷 교환을 엿듣는 것을 의미한다.
- 네트워크 트래픽을 도청하는 과정을 스니핑이라고 한다.
🔸 허브 환경에서의 스니핑
- 허브를 사용하고 있다면 계속하여 다른 사람의 패킷을 받아보고 있는 것이다.
- 네트워크 드라이버, OS 커널 등의 수준에서 MAC 주소를 보고 자신이 아닌 다른이들의 패킷은 버려진다.
- 하지만 시스템의 NIC를 promiscuous 모드로 동작하게 한다면 다른 이들의 패킷을 버리지 않고 받아볼 수 있다. 이때 스니핑 도구를 통해 해당 패킷을 저장하고 분석하는 것이 가능하다.
🔸 스위치 환경에서의 스니핑
🎈 스위치 재밍(Switch Jamming, MAC Address Flooding)
- 스위치의 MAC Address Table 버퍼를 오버플로우시켜서 스위치가 허브처럼 동작하게 강제적으로 만드는 기법이다.
- 스위치는 Fail Open 정책, 즉 실패 시 모두 허용해주는 정책을 따르는 장비이므로 문제가 발생하면 Hub 처럼 연결된 모든 노드에게 패킷을 전송한다.
- MAC Address Table을 채우기 위해 MAC 주소를 계속 변경하면서 ARP Reply패킷을 지속적으로 전송하는 방식으로 공격한다.
🎈 ARP 스푸핑(Spoofing)
- 공격자가 특정 호스트의 MAC 주소를 자신의 MAC 주소로 위조한 ARP Reply 패킷을 만들어 희생자에게 지속적으로 전송하면 희생자의 ARP Cache에 특정 호스트의 MAC정보가 공격자의 MAC 정보로 변경이 된다.
- 희생자에게서 특정 호스트로 나가는 패킷을 공격자가 스니핑하는 기법이다.
🎈 ARP 리다이렉트(Redirect)
- 공격자가 자신이 라우터인 것처럼 MAC 주소를 위조하여 ARP Reply패킷을 해당 네트워크에 broadcast한다.
- 이를 통해 해당 로컬 네트워크의 모든 호스트와 라우터 사이의 트래픽을 스니핑하고, IP Forward 기능을 통해 사용자들이 눈치채지 못하도록 하는 기법이다.
🎈 ICMP 리다이렉트(Redirect)
- ICMP 리다이렉트는 3계층에서 스니핑 시스템을 네트워크의 존재하는 또 다른 라우터라고 알림으로써 패킷의 흐름을 바꾸는 공격이다.
- ARP 리다이렉트와 ICMP 리다이렉트 공격의 차이점은 ARP 리다이렉트는 희생자의 ARP Cache Table정보를 변조하여 스니핑하는 것이고, ICMP 리다이렉트는 희생자의 라우팅 테이블을 변조하여 스니핑 한다는 차이점이 있다.
🎈 스위치의 SPAN/ Port Mirroring 기능 이용
- 스위치를 통과하는 모든 트래픽을 볼 수 있는 기능으로 특정 포트에 분석 장비를 접속하고 다른 포트의 트래픽을 분석 장비로 자동 복사해주는 기술이다.
📌 스푸핑(Spoofing)
- 스푸핑 공격은 공격자가 자신을 공격 대상에게 노출시키지 않고, 제 3의 사용자인 것처럼 MAC 주소, IP 주소 등을 속이는 작업이다.
- 스푸핑 공격은 주로 사용자 간의 통신 트래픽을 중간에서 몰래 가로채 수집하거나 조작하는 중간자 공격(Man In The Middle) 또는 서로 다른 많은 주소를 조작하여 대량의 트래픽을 특정 시스템에 한꺼번에 발생시키는 DoS 공격 등에 사용된다.
🔸 ARP 스푸핑
🎈 공격 원리
- ARP(Address Resolution Protocol)는 호스트의 IP주소를 랜 카드의 하드웨어 주소(MAC 주소)로 변경하는 프로토콜이다.
- 사용자 시스템이 ARP Reply 메시지를 수신할 때마다 자신의 ARP Request 메시지 송신 여부와 관계없이 그리고 ARP Reply 메시지의 송신자에 대한 인증 과정 없이 자신의 ARP 테이블을 갱신하는 ARP 프로토콜의 취약점을 이용한다.
- 공격자는 주기적으로 ARP 스푸핑 공격을 수행하며 ARP 캐시 테이블 공격 정보를 계속 유지한다.
- 이와 같이 ARP 캐시 테이블의 내용을 몰래 변경하는 작업을 ARP 캐시 포이즈닝(ARP Cache Poisoning)이라 한다.
🎈 보안대책
- 보안 사고의 50% 이상이 동일 랜에 연결된 내부자의 소행임을 생각하면 중요 시스템이 ARP 스푸핑되는 것은 꼭 막아야 한다.
- 동일 네트워크 내의 시스템들에 대한 ARP 캐시 테이블은 ARP reply 메시지와 관계없이 관리자가 직접 정적(static)으로 작성함으로써, ARP 스푸핑 공격이 성립되지 않게 만든다.
- 하지만 정적 ARP 테이블 대응 방법은 규모가 작을 경우 적합하고 리부팅하면 static 옵션이 사라지므로 배치 파일 형태로 만들어두고 사용해야 한다.
🔸 IP 스푸핑
🎈 공격 원리
- 공격자가 자신의 IP 주소가 아닌 트러스트 관계를 가진 시스템의 주소로 위장하여 공격 대상 서버로부터 정보를 가로체는 방식이다.
- 트러스트 관계에 있는 IP로 위장한 후 rlogin 등을 이용하여 공격대상 서버에 접속하여 백도어 등을 설치하여 차후 공격 경로를 확보한다.
🎈 보안대책
- 외부에서 들어오는 패킷 중에서 출발지 IP 주소에 내부방 IP 주소를 가지고 있는 패킷을 라우터 등에서 패킷 필터링을 사용하여 막아낼 수 있다.
- 가장 좋은 대책은 트러스트를 사용하지 않는 것이고, 사용해야 되는 경우에는 트러스트된 시스템의 MAC 주소를 static으로 지정한다.
- 또한 IP 주소 인증 기능이 보안된 프토토콜(IPSec)을 사용한다.
🔸 DNS 스푸핑
🎈 공격 원리
- DNS 스푸핑은 실제 DNS 서버보다 빨리 공격 대상에게 DNS Response 패킷을 보내 공격 대상이 잘못된 IP 주소로 웹 접속을 하도록 유도하는 공격이다.
- DNS 스푸핑 공격을 통해 공격 대상자를 몰래 유인하여 파밍, 중간자 공격등 2차 공격을 가할 수 있다.
- DNS 패킷은 UDP 패킷이므로 세션이 존재하지 않아 먼저 도착한 패킷을 신뢰하며, 다음에 도착한 정보는 버린다.
🎈 보안대책
- 사이트에 접속했을 때 MAC처럼 캐시에 도메인 이름에 대한 IP 주소가 저장되었다가 다시 접속했을 때 DNS Query를 보내지 않고 캐시에서 읽어 드린다.
- 그런 다음 hosts 파일을 통해 도메인 이름에 대한 IP 주소를 해석하기 때문에 중요한 사이트의 IP 주소를 확인해 적어두면, 그 파일에 있는 사이트에 대해서는 DNS 스푸핑 공격을 당하지 않는다.