ARP 포이즈닝: 정의, 기법, 방어 및 차단

ARP 포이즈닝: 정의, 기법, 방어 및 차단

ARP 포이즈닝: 정의, 기법, 방어 및 차단

ARP 포이즈닝(일명 ARP 스푸핑)이란 악의적인 ARP 메시지를 통해 시도하는 사이버 공격을 말합니다.

ARP 공격은 탐지가 어려울 뿐만 아니라 성공했을 때 미치는 영향을 무시할 수도 없습니다. 

해커가 ARP 스푸핑 또는 포이즈닝 공격에 성공하면 네트워크에 존재하는 모든 문서를 통제할 수 있게 됩니다. 결과적으로 감시를 당하거나, 혹은 몸값으로 요구하는 것을 해커에게 제공할 때까지 트래픽이 멈출 수도 있습니다. 

여기서는 ARP 공격의 원리에 대해 알아본 다음, 즉시 구현할 수 있는 서버 보호 솔루션을 몇 가지 소개하겠습니다.

 

ARP 포이즈닝/스푸핑

 

ARP의 정의

2001년에 업계 개발자들은 Unix 개발자들에게 ARP(Address Resolution Protocol)를 소개했습니다. 당시 이들은 ARP를 소개하면서 IP 수준에서 새로운 호스트에 대한 연결을 구성할 수 있는 "동력"이라고 묘사했습니다. 

IP 수준 연결은 특히 네트워크가 지속적으로 성장하여 각 요청에 대한 권한을 인증하지 않고 새로운 기능을 추가할 방법이 필요할 때 매우 중요합니다. 

ARP의 기본은 미디어 액세스 제어(MAC)에 있습니다. 전문가들의 설명에 따르면 MAC이란 이더넷 네트워크 인터페이스 카드(NIC) 고유의 하드웨어 수준 주소를 말합니다. 주소의 숫자들은 소프트웨어에 따라 바뀌기도 하지만 기본적으로 공장에서 할당됩니다. 

이론적으로 ARP는 다음과 같습니다.

  • 요청을 수락해야 합니다. 새로운 디바이스가 IP 주소를 제공하면서 LAN(Local Area Network) 조인을 요청합니다. 
  • 변환해야 합니다. LAN 디바이스는 IP 주소를 통해 통신하지 않습니다. 따라서 ARP가 IP 주소를 MAC 주소로 변환합니다. 
  • 요청을 전송해야 합니다. ARP가 IP 주소에 사용할 MAC 주소를 모르면 ARP 패킷 요청을 전송하여 네트워크에 속한 다른 디바이스에게 쿼리하고 누락된 정보를 가져옵니다. 

이 기능은 네트워크 관리자에게 많은 시간을 덜어주는 효과가 있습니다. 요청은 백그라운드에서 처리되고, 네트워크는 삭제가 필요한 요청을 모두 처리합니다. 하지만 위험도 존재합니다.

ARP 공격: 주요 용어 정의 

악의적인 목적으로 중요한 데이터에 액세스하려는 개발자가 취약점을 노출시켜 몰래 침입하더라도 정작 기업은 그 상황을 인지하지 못할 수도 있습니다. 

ARP 공격은 다음과 같이 두 가지 유형이 있습니다.

  • ARP 스푸핑: 해커가 자신의 MAC 주소를 이미 LAN에 속하는 컴퓨터와 연결할 목적으로 위조된 ARP 패킷을 전송합니다. -
  • ARP 포이즈닝: ARP 스푸핑에 성공하면 해커가 회사의 ARP 테이블을 변경하고, 결국 변조된 MAC 맵이 테이블에 남게 됩니다. 이후 감염이 점차 확산됩니다.

목적은 해커의 MAC을 LAN과 연결하는 데 있습니다. 결과적으로 감염된 LAN으로 전송되는 트래픽이 모두 공격자에게 보내집니다. 

이렇게 ARP 공격에 성공한 해커는 다음과 같은 위협 행위를 저지를 수 있습니다.

  • 하이재킹. 누군가 LAN으로 전송되는 모든 것을 공개 전에 염탐할 수 있습니다. 
  • 서비스 거부. 몸값이 지불될 때까지 감염된 LAN에서 제공되는 서비스를 무엇이든 거부할 수 있습니다. 
  • 가로채기. 누군가 중간자 공격을 시도하여 발송 전에 문서를 변경하는 등 거의 모든 위협 행위를 저지를 수 있습니다. 이러한 공격들은 비밀 정보를 위험에 노출시키는 동시에 사용자 신뢰를 떨어뜨립니다. 또한 어느 누구든지 침입할 수 있다는 점에서 가장 위험한 공격에 속합니다. 

해커가 엔드 호스트를 탈취할 계획이라면 공격 속도가 매우 빨라야 합니다. ARP 프로세스가 약 60초 내에 종료되기 때문입니다. 하지만 네트워크에서 요청은 최대 4시간까지 지속됩니다. 따라서 해커가 공격을 계획하여 감행할 때까지 충분한 시간이 남게 됩니다.

알려진 ARP 취약점 

ARP를 개발했을 때는 속도와 기능, 그리고 자율성에 목표를 두었습니다. 프로토콜이 보안을 염두에 두고 설계되지 않았기 때문에 악의적인 목적을 위한 스푸핑 및 변조 공격이 매우 쉬웠습니다. 

해커는 몇 가지 툴만 있으면 이러한 공격을 시도할 수 있습니다.

  • 연결: 공격자는 LAN에 연결된 디바이스를 하나만 제어하면 됩니다. 더욱이 해커가 이미 LAN에 바로 연결되어 있으면 성공 가능성이 더욱 높습니다.
  • 코딩 능력: 해커가 시스템에 바로 수신되거나 저장되는 ARP 패킷에 대한 작성 방법을 알고 있어야 합니다. 
  • 외부 툴: 해커가 Arpspoof와 같은 스푸핑 툴을 사용해 변조되었거나, 그 밖에 다른 방법으로 위조된 ARP 응답을 전송할 수 있습니다. 
  • 인내. 시스템에 매우 빠르게 침투하는 해커들도 있지만, 개중에는 수십 개 내지 수백 개의 요청을 전송해야만 LAN을 감염시킬 수 있는 해커들도 있습니다. 

ARP는 상태 정보가 저장되지 않기 때문에 네트워크가 ARP 응답을 캐싱하는 경우가 많습니다. 이때 응답이 길어질수록 위험도 커집니다. 오랜 시간이 지난 응답은 다음 공격에 사용되어 ARP 포이즈닝의 원인이 될 수도 있기 때문입니다. 

기존의 ARP 시스템에서는 아이덴티티를 증명할 방법이 없습니다. 따라서 호스트가 패킷의 진위 여부를 파악하지 못하며 어디에서 전송되었는지조차 알지 못합니다.

ARP 포이즈닝 공격 차단 

해커가 LAN을 탈취할 때는 예측 가능한 방법들을 사용합니다. 먼저 스푸핑된 ARP 패킷을 전송한 후 위조된 주소로 연결되는 요청을 전송하여 LAN을 탈취합니다. 이후 요청이 LAN에 속한 모든 컴퓨터에게 브로드캐스팅되어 결국 완전히 통제할 수 있게 됩니다. 

네트워크 관리자는 다음과 같이 두 가지 기법을 사용해 ARP 스푸핑을 탐지할 수 있습니다.

  1. 수동적 기법: ARP 트래픽을 모니터링하여 일관되지 않은 매핑을 찾아냅니다. 
  2. 능동적 기법: 변조된 ARP 패킷을 네트워크에 주입합니다. 이러한 스푸핑 공격은 시스템의 허점을 찾아내는 데 효과적입니다. 허점을 찾아내 빠르게 복구하는 동시에 진행 중인 공격까지 차단할 수 있기 때문입니다. 

일부 개발자들은 직접 코드를 작성해 위조된 주소를 탐지하려고 시도하지만 여기에는 위험이 따릅니다. 프로토콜이 너무 엄격하면 오탐지가 과도하게 울려 액세스 속도가 느려지게 됩니다. 반대로 프로토콜이 너무 관대하면 보안 불감증으로 인해 진행 중인 공격까지 알아차리지 못하게 됩니다. 

이러한 경우에는 암호화가 도움이 될 수 있습니다. 해커가 시스템에 침입하더라도 디코드 키가 없어서 깨진 텍스트만 보게 된다면 피해가 최소화됩니다. 다만 암호화를 일관되게 적용해야만 완전하게 보호할 수 있습니다. 

VPN 사용 또한 뛰어난 보호 방법이 될 수 있습니다. 디바이스가 암호화된 터널을 통해 연결되기 때문에 통신 역시 모두 암호화됩니다.

고려할 만한 보안 툴

네트워크를 감시하여 ARP 문제를 탐지할 수 있는 모니터링 프로그램을 제공하는 회사들이 많이 있습니다. 

주로 사용되는 솔루션은 다음과 같습니다.

  • Arpwatch: 이 Linux 툴은 IP나 MAC 주소 변경과 같은 이더넷 활동을 모니터링합니다. 로그를 매일 모니터링하고 타임스탬프에 액세스하여 공격이 일어난 시점을 확인합니다.
     
  • ARP-GUARD: 스위치와 라우터를 포함해 간략하게 그래픽으로 표시되는 기존 네트워크의 이미지를 활용합니다. 프로그램을 통해 네트워크에 어떤 디바이스가 존재하는지 확인하고 앞으로 연결 관계를 제어하는 데 필요한 규칙을 수립할 수 있습니다.
     
  • XArp: 이 툴은 방화벽 아래에서 일어나는 공격을 탐지하는 데 사용됩니다. 공격이 시작되면 즉시 알림 메시지를 전송하기 때문에 툴을 이용해 향후 대책을 결정할 수 있습니다.
     
  • Wireshark: 이 툴을 이용하면 네트워크에 속하는 모든 디바이스를 그래픽으로 나타낼 수 있습니다. 강력한 툴이기는 하지만 올바르게 구현하려면 전문적인 능력이 필요할 수 있습니다.
     
  • 패킷 필터링: 이 방화벽 기법은 송수신되는 IP 패킷을 모니터링하여 네트워크 액세스를 관리하는 데 사용됩니다. 이때 패킷은 출발지와 목적지 IP 주소, 포트 및 프로토콜에 따라 허용 또는 거부됩니다.
     
  • 정적 ARP: 이 ARP는 캐시에 추가되어 영구적으로 보관됩니다. 이후 MAC 주소와 IP 주소 사이에서 영구적인 매핑에 사용됩니다. 

Okta와의 협업 

Okta는 기업 시스템의 안전과 보안에 대한 중요성을 잘 알고 있습니다. 하지만 기업들은 어디에서 시작해야 할지, 그리고 어떤 단계를 거쳐야 할지 모르는 경우가 많습니다. 걱정하지 마십시오. Okta가 도와드리겠습니다. Okta가 ARP 포이즈닝 공격을 어떻게 차단하는지 알아보세요.

참고 자료

ARP Networking Tricks. (2001년 10월). Computerworld. 

Domain 4: Communication and Network Security (Designing and Protecting Network Security). (2016년). CISSP Study Guide (Third Edition). 

Fact Sheet: Man-in-the-Middle Attacks. (2020년 3월). Internet Society. 

On Investigating ARP Spoofing Security Solutions. (2010년 4월). International Journal of Internet Protocol Technology. 

Traditional ARP. (2017년 1월). Practical Networking. 

Address Resolution Protocol Spoofing Attacks and Security Approaches: A Survey. (2018년 12월). Security and Privacy. 

ARP Attack Detection Limitations. Security the Infosec Bag. 

Arpwatch Tool to Monitor Ethernet Activity in Linux. (2013년 4월). TecMint. 

ARP-GUARD Datasheet. ARP-GUARD. 

Home. XArp. 

Home. Wireshark.