참새가 방앗간 지나치지 못하는 기사가 났습니다. V3 제품군에서 ARP spoofing을 방지하는 모듈이 탑재되었다는 기사입니다.

관련 기사를 몇개 찾아 봤는데, 보안뉴스에서 비교적 자세하게 설명해 주고 있네요.


출처 : http://www.boannews.com/media/view.asp?idx=20463


remoteFile.jpg




ARP 스푸핑 공격이란 패킷을 가로채기(스니핑)한 후 패킷을 조작해 HTTP 트래픽 상에 아이프레임(HTML 문서에서 글 중의 임의 위치에 또 다른 HTML 문서를 보여주는 내부 프레임 태그)을 삽입해 악성코드를 유포하는 것을 말한다.


쩝, one of them일 뿐. IFRAME 삽입은 ARP spoofing으로 할 수 있는 여러가지 결과 중의 하나일 뿐입니다. 2007년 9만2천대 감염사건이 대표적인 사례이죠. 용어를 정의하는데 있어서 오류를 범하기는 했지만, 뭐 이건 중요한게 아니니 패스하고~





이번 특허 기술은 공격이 진행 중인 컴퓨터에서 ARP 스캐닝 후 나타나는 아웃바운드(Outbound) ARP 위조를 차단한다. 이로써 ARP 위조 패킷에 대한 오탐 가능성을 줄일 수 있다. 또한, 데이터 스니핑 및 악성코드 유포를 위한 MITM(Man-In-the-Middle) 공격(열린 통신 포트를 이용해 사용자와 서버 간에 오가는 패킷을 조작하는 것)을 탐지 및 차단할 수 있다.


도저히 이해가 되지 않아서 이게 무슨 말인지 몇번이고 곰곰히 보고 또 보고 했습니다. 응? 아웃바운드?  결국 위의 그림을 보고 나서야 알 수가 있었습니다. 그림에서의 화살표 방향을 잘 보시기 바랍니다. 화살표가 뜻하는 것이 정상적인 ARP request packet(스캐닝할 때), 혹은 ARP infection packet(공격할 때)의 흐름을 나타 내고 있습니다.


결국 뭐냐? V3가 Victim의 입장에서 다른 호스트로부터 유입되는 ARP infection packet을 차단하겠다는 의미가 아니고, Attacker의 입장에서 ARP infection packet이 나가는 것을 방지하겠다는 것입니다. 쉽게 말해서 내가 감기에 걸리지 않기 위해 마스크를 쓰겠다는 것이 아니고, 남이 감기에 걸리지 않게 하기 위해 내가 마스크를 쓰겠다는 겁니다.


LAN상의 모든 PC에 해당V3 제품이 탑재가 된다는 것을 가정할 수 있다면 완벽한 ARP spoofing 방지가 가능하겠죠. "나도 안보내고, 너도 안보내고, 우리 모두가 보내지 말자" 하면 되니까요. 하지만 LAN 상에 PC만 있나요? 혹시라도 같은 LAN 안에서 V3를 탑재되지 않은 특정 호스트가 ARP infection packet을 날리면 어떻하죠? ARP spoofing의 피해를 방어할 수 있나요? 당근 안되죠. 위 특허 내용은 ARP spoofing 공격의 "유입"을 막겠다는 얘기가 아니니까요.


특허의 내용을 폄하하는 것이 아니라, 뭔가 핀트가 맞지 않다라는 겁니다. outbound ARP spoofing을 막겠다는 발상 자체가 그리 큰 효용을 기대하기는 어렵다는 것입니다. 막말로 Attacker가 자신 PC에 Cain을 설치해서 쓰려고 하니까 V3가 차단 경고 메세지를 내 주더라... 그럼 Attacker는 Cain 사용을 포기할까요? 당연히 아니죠. 걍 V3 내려 버리죠. 이게 무슨 방어 효과가 있나요?


그리고, IDC에 들어 간 서버가 zombie process 감염이 되어 혹시라도 남들에게 피해를 줄까봐 노심초사하는 것이라면 걱정이 너무 과장된 것입니다. 특히 예전 9만2천대 감염 사건 같은 경우를 봐도 IDC 내부에서 그냥 이리저리 돌아 댕기는 (백신 설치여부가 담보되지 않은) 허접 테스트 PC에서 발생한 것입니다.


본 특허 방법 말고도 outbound ARP spoofing을 막을 수 있는 아주 쉬운 방법이 있습니다. 해당 인터페이스 MAC과 IP 정보를 얻어 와서, 실제 out bound ARP packet의 SHA랑 SPA와 비교해 보면 됩니다. 굳이 Scanning 단계와 실제 공격 단계를 구분해야 하는 State 관리 같은 것도 필요가 없습니다.


중요한 것은 ARP spoofing이라는 놈은 공격의 유입(inbound)을 막아야 한다는 것이지, 공격의 유출(outbound)를 막아서는 한계가 있다는 얘기입니다. 결국 남 좋은 일만 시키겠다는 얘기.