DHCP Spoofing & DHCP Starvation 공격

 

DHCP는 ARP와 더불어 Spoofing 공격에 노출되어 있는 프로토콜 중 하나입니다. DHCP는 어지간한 네트워크에서 주소 체계로 사용되고 있으므로, Spoofing을 통해 DHCP 체계의 제어권을 상실하는 것은 결코 적지 않은 피해를 남길 수 있습니다.

 

DHCP Spoofing을 접하기 전에, DHCP의 메커니즘을 먼저 이해하면 글을 읽는데 도움이 될 것입니다. 관련하여 바로 이전 포스트를 정독해보는 것을 추천합니다.

 

DHCP Spoofing 공격


DHCP의 취약점

네트워크에 새로 추가된 기기가 동적 IP를 할당 받기 위해서는 가장 먼저 DHCP 서버를 찾아야 합니다. 이 때까지는 DHCP 서버가 정확히 어느 지점에 존재하는지(무슨 IP를 가지고 있는지)조차 모르기에 네트워크 전체에 "DHCP 서버를 찾습니다"라는 메시지를 뿌려버리죠. 그리고 네트워크에 존재하는 누군가는 자신이 DHCP 서버라고 답하게 될 것입니다.

 

이 과정을 주목해봐야 하는데, 네트워크에 연결하고자 하는 기기들은 자신의 요청에 응한 상대방이 DHCP 서버라고 확신할 수 없습니다. 즉, DHCP 프로토콜의 취약점은 인증(Authentication) 메커니즘의 부재로부터 비롯된다고 할 수 있죠.

 

그렇다보니 DHCP 서버는 웬만한 기기들의 IP 할당 요구를 다 들어주려고 합니다. 반대로 기기 입장에서도 요청에 대한 reply가 DHCP 서버로부터 왔는지, 제 3자로부터 발생했는지 장담할 수 없습니다.

 

만약 해커가 DHCP 서버보다 먼저 위조된 reply를 보내면 어떻게 될까요? 또는, 만약 클라이언트가 MAC 주소를 매번 바꿔가면서 DHCP request를 무더기로 DHCP 서버로 보낸다면요?

 

DHCP spooing 공격의 원리

DHCP Spoofing은 네트워크에 가짜 DHCP 서버를 운영하는 사이버 공격 기법입니다. 이런 공격이 가능한 이유는 앞서 설명한 대로 DHCP 메커니즘 자체에는 인증(Authentication)기능이 없다는 점과, 또한 클라이언트는 DHCP request에 가장 빨린 반응하는 DHCP 서버의 손을 들어준다는 점 때문입니다.

 

그런데 DHCP 서버가 하는 일이라 해봐야 새 IP 주소를 발급해주는 정도인데, DHCP 체계의 제어권을 가져간다는 게 어떤 피해를 준다는 것인지 납득이 어려울지도 모릅니다.

 

DHCP Spoofing이 위협적인 이유는 보통 DHCP 서버가 클라이언트의 패킷을 외부 네트워크로 내보내는 게이트웨이(Gateway) 역할도 동시에 맡기 때문입니다. 즉, 가짜 DHCP 서버와 연계된 호스트들은 자신의 패킷을 그대로 공격자에게 넘겨주는 셈입니다.

 

여기서 좀 더 머리 좋은 해커들은, 네트워크가 정상적으로 돌아가는 것 마냥 꾸미기 위해서 가짜 DHCP 서버로 도달한 패킷을 원하는 만큼 훔쳐보고 나서 정상 DHCP 서버로 포워딩 해버리는 경우도 있습니다.

 

DHCP 서버가 네트워크의 전반적인 설정 정보를 쥐고 있기에, 클라이언트는 DHCP 서버가 전달한 게이트웨이, 도메인, DNS 정보들을 그대로 신뢰할 수 밖에 없죠. 정상 DHCP 서버와 가짜 DHCP 서버를 구분할 수 없어서 발생할 수 밖에 없는 피해입니다.

 

다만, 여기서 한 가지 생각해볼 부분이 있습니다. 공격이 시도되기 전에 정상적인 DHCP 서버가 DHCP request에 보다 먼저 반응해버린다면? 가짜 DHCP 서버는 어쨌든 정상 DHCP 서버와 경쟁을 해야만 합니다. 해커는 정상 DHCP 서버가 먼저 선수 치지 못하게 하는 수단을 갖고 있기도 하는데요.대표적인 추가 공격 수단이 바로 DHCP starvation입니다.

 

DHCP starvation 공격


DHCP starvation정상적인 DHCP 서버가 제 기능을 하지 못하도록 다량의 DHCP request 메시지를 보내 처리하게끔 하는 공격으로, DHCP spoofing의 성공률을 높이기 위해 병행하는 기법이기도 합니다.

 

정상 DHCP 서버가 수많은 request에 일일이 반응하고 있으면, 클라이언트가 보낸 request는 묵살될 가능성이 높아지니까요. 무엇보다 DHCP 서버가 제공할 수 있는 IP 주소의 가짓수는 그 네트워크 대역에 따라 한정되어 있습니다. 그 가짓수를 전부 써버리면 새로운 DHCP request가 와도 기존에 발급한 IP를 다시 빼앗을 수는 없으니 DHCP 체계가 망가져 버리죠.

 

가짜 DHCP Request를 보낼 때는 임의로 MAC 주소를 계속 만들어내어 마치 정말 셀 수 없이 많은 기기가 네트워크에 접속하려는 것처럼 보이게 할 수 있습니다. 이렇게 정상적인 DHCP 서버가 맛이 가면, 공격자는 DHCP spoofing 공격을 본격적으로 시작합니다.

반응형