CS/네트워크

DHCP, ARP 스푸핑과 그 방지책

alpacadabra 2023. 10. 17. 19:02

DHCP 스푸핑(Spoofing, 속이다)이란 공격자가 DHCP 서버를 가장하여 조작된 DHCP 정보를 보내는 것이다.

DHCP 메세지는 중요한 네트워크 속성을 담고 있다. 클라이언트가 사용할 ip와 gw, dns 주소 등...

만약 이러한 정보가 조작될 경우 클라이언트는 DoS(Denial of Service), MITM(Man In The Middle) 공격에 노출된다.

이를 막으려면 DHCP 스누핑(Snooping, 엿듣다)이 필요하다.

DHCP 메세지가 전달되는 과정에서 스위치가 이를 엿듣고 신뢰할 수 있는 포트에서 전달된 것인지를 확인하는 것이다.


ARP 스푸핑은 공격자가 자신의 ip 주소를 속여 다른 호스트들의 ARP 테이블을 오염(Poisoning)시키는 것이다.

예를 들어, 공격자가 gw를 사칭하여 Gratuitous ARP를 송신한다면 이를 받은 호스트들의 ARP 테이블은 오염되고 gw로 향하는 모든 패킷이 공격자를 거치게 된다. (MITM)

ARP 스푸핑을 막는 방법은 여러가지가 있다.

 

1) ARP 테이블에 중복되는 MAC 주소가 있다면 ARP 스푸핑을 의심한다.

2) gw 등의 중요 호스트를 정적으로 설정하여 ARP에 의해 변경되지 않도록 한다. 

3) DAI(Dynamic ARP Inspection)을 통해 ARP의 정당성을 확인한다.

 

DAI는 DHCP 스누핑이 선행되어야 하는 작업이다.

스위치가 DHCP 메세지를 엿들어 MAC과 ip의 매칭을 학습하고, 이후 일치하지 않는 ARP가 확인되면 이를 드랍하는 것이다.

물론 DHCP 클라이언트가 아닌 호스트(서버, 라우터, 방화벽 등)는 따로 설정이 필요하다.