ARP 스푸핑

ARP spoofing
ARP 스푸핑(독성) 공격이 성공하면 공격자가 네트워크에서 라우팅을 변경할 수 있어 사실상 중간중간 공격을 할 수 있다.

컴퓨터 네트워킹에서, ARP 스푸핑, ARP 캐시 중독, 또는 ARP 독성 라우팅은 공격자가 로컬 영역 네트워크로 (스푸핑된) 주소 결정 프로토콜(ARP) 메시지를 보내는 기술이다. 일반적으로 목표는 공격자의 MAC 주소기본 게이트웨이와 같은 다른 호스트IP 주소와 연결하여 해당 IP 주소를 대신 공격자에게 전송하도록 하는 것이다.

ARP 스푸핑은 공격자가 네트워크에서 데이터 프레임을 가로채거나 트래픽을 수정하거나 모든 트래픽을 중지할 수 있도록 허용한다. 종종 그 공격은 서비스 거부, 중간에 있는 사람 또는 세션 납치 공격과 같은 다른 공격의 개구부로 사용된다.[1]

공격은 ARP를 사용하는 네트워크에서만 사용할 수 있으며 공격하려면 공격자가 로컬 네트워크 세그먼트에 직접 액세스해야 한다.[2]

ARP 취약성

ARP(Address Resolution Protocol)는 인터넷 계층 주소를 링크 계층 주소로 해결하기 위해 널리 사용되는 통신 프로토콜이다.

LAN에서 한 호스트에서 다른 호스트로 인터넷 프로토콜(IP) 데이터그램이 전송될 때, 데이터 링크 계층을 통한 전송을 위해 대상 IP 주소를 MAC 주소로 확인해야 한다. 다른 호스트의 IP 주소가 알려지고 MAC 주소가 필요할 때 로컬 네트워크로 브로드캐스트 패킷이 송신된다. 이 패킷은 ARP 요청으로 알려져 있다. 그러면 ARP 요청에 IP가 있는 대상 시스템이 해당 IP의 MAC 주소를 포함하는 ARP 회신으로 응답한다.[2]

ARP는 상태 비저장 프로토콜이다. 네트워크 호스트는 네트워크 호스트가 응답을 요청했는지 여부에 관계없이 수신하는 모든 ARP 응답을 자동으로 캐시한다. 아직 만료되지 않은 ARP 항목도 새로운 ARP 회신 패킷이 수신되면 덮어쓰게 된다. ARP 프로토콜에는 호스트가 패킷이 시작된 피어를 인증할 수 있는 방법이 없다. 이러한 행동은 ARP 스푸핑이 발생할 수 있는 취약성이다.[1][2][3]

공격 해부학

ARP 스푸핑의 기본 원리는 스푸핑된 ARP 메시지를 LAN에 전송함으로써 ARP 프로토콜의 인증 부족을 악용하는 것이다. ARP 스푸핑 공격은 LAN 상의 손상된 호스트나 대상 LAN에 직접 연결된 공격자의 컴퓨터에서 실행될 수 있다.

ARP 스푸핑을 사용하는 공격자는 사용자들 간의 네트워크상의 데이터 전송의 호스트로 위장한다.[4] 그러면 사용자들은 공격자가 네트워크의 실제 호스트가 아니라는 것을 모를 것이다.[4]

일반적으로 공격 목표는 공격자의 호스트 MAC 주소를 대상 호스트의 IP 주소와 연결하여 대상 호스트에 대해 의미하는 모든 트래픽이 공격자의 호스트로 전송되도록 하는 것이다. 공격자는 트래픽을 실제 기본 대상에 전달하면서 패킷을 검사(스파이팅)하도록 선택할 수 있으며, 검색을 피하기 위해 트래픽을 실제 기본 대상에 전달하거나, 전송하기 전에 데이터를 수정(중간 공격)하거나, 네트워크의 패킷 일부 또는 전부를 삭제하여 서비스 거부 공격을 시작할 수 있다.

방어

정적 ARP 항목

가장 간단한 인증 형식은 호스트의 ARP 캐시에서 중요한 서비스에 대해 정적 읽기 전용 항목을 사용하는 것이다. 로컬 ARP 캐시의 IP 주소와 MAC 주소 매핑을 정적으로 입력할 수 있다. 호스트는 그러한 항목이 존재하는 곳에서 ARP 요청을 전송할 필요가 없다.[5] 정적 입력은 스푸핑에 대한 일부 보안을 제공하지만, 네트워크의 모든 시스템에 대한 주소 매핑을 생성하고 배포해야 하므로 유지 관리 노력이 필요하다. 이는 매핑을 각 시스템 쌍에 대해 설정해야 하므로 대규모 네트워크에서 확장되지 않는다. 따라서 n개의 시스템이 있을 때 구성해야 하는 n-n2 ARP 항목이 생성되어야 한다. 각 시스템에는 네트워크의 다른 모든 시스템에 대한 ARP 항목, n-1개의 ARP 항목이 있어야 한다.

탐지 및 방지 소프트웨어

ARP 스푸핑을 감지하는 소프트웨어는 일반적으로 어떤 형태의 인증이나 ARP 응답의 교차 확인에 의존한다. 그런 다음 인증되지 않은 ARP 응답이 차단된다. 이러한 기법은 동적 IP 주소와 정적 IP 주소가 모두 인증되도록 DHCP 서버와 통합될 수 있다. 이 기능은 개별 호스트에서 구현되거나 이더넷 스위치 또는 기타 네트워크 장비에 통합될 수 있다. 단일 MAC 주소와 관련된 여러 IP 주소가 존재한다는 것은 그러한 구성에 대한 합법적인 용도가 있지만 ARP 스푸핑 공격을 나타낼 수 있다. 좀 더 수동적인 접근 방식에서 기기는 네트워크에서 ARP 응답을 청취하고 ARP 항목이 변경되면 이메일을 통해 통지를 전송한다.[6]

AntiARP는[7] 커널 레벨에서 Windows 기반 스푸핑 방지 기능도 제공한다. ArpStar는 매핑을 위반하는 유효하지 않은 패킷을 삭제하는 커널 2.6 및 Linksys 라우터용 Linux 모듈로, 리피소싱/힐 옵션을 포함하고 있다.

KVM과 같은 일부 가상화 환경은 동일한 호스트에서 실행되는 게스트 간에 MAC 스푸핑을 방지하기 위한 보안 메커니즘도 제공한다.[8]

또한 일부 이더넷 어댑터는 MAC 및 VLAN 안티 스푸핑 기능을 제공한다.[9]

OpenBSD는 로컬 호스트를 가장하는 호스트에 대해 수동적으로 감시하며 영구 항목을[10] 덮어쓰려는 시도가 있을 경우 알림

OS 보안

운영 체제는 다르게 반응한다. 리눅스는 요청되지 않은 응답을 무시하지만, 반면에 캐시를 업데이트하기 위해 다른 컴퓨터의 요청에 대한 응답을 사용한다. Solaris는 시간 초과 후에만 항목에 대한 업데이트를 허용한다. Microsoft Windows에서 ARP 캐시의 동작은 HKEY_LOCAL_Machine\SYSTEM\CurrentControlSet\Services 아래의 여러 레지스트리 항목을 통해 구성할 수 있다.\Tcpip\Parameters, ArpCacheLife, ArpCacheMinReferenceLife, ArpUseEderSNAP, ArpTRSingleRoute, ArpAlwaysSourceRoute, ArpRetryCount.[11]

합법적 사용법

ARP 스푸핑에 사용되는 기법도 네트워크 서비스의 중복성을 구현하는 데 사용할 수 있다. 예를 들어, 일부 소프트웨어는 결함이 있는 서버를 인수하기 위해 백업 서버가 무상으로 ARP 요청을 발행하고 중복성을 투명하게 제공할 수 있도록 한다.[12] [13] 현재까지 이 전략을 중심으로 제품 상용화를 시도한 기업은 서클과[14] CUJO 두 곳으로 알려져 있다. 후자는 최근 소비자의 가정에서 ARP-스푸핑 전략에 상당한 문제에 직면해 있으며, 이제는 그러한 기능을 완전히 제거하고 DHCP 기반 전략으로 대체했다.

ARP 스푸핑은 스위치가 사용 중일 때 개발자들에 의해 종종 두 호스트 사이의 IP 트래픽을 디버그하는 데 사용된다: 호스트 A와 호스트 B가 이더넷 스위치를 통해 통신하는 경우, 일반적으로 이들의 트래픽은 세 번째 모니터링 호스트 M에 보이지 않을 것이다. 개발자는 A가 B의 경우 M의 MAC 주소를 가지도록, B가 A의 경우 M의 MAC 주소를 가지도록 구성하며, M이 패킷을 전달하도록 구성하기도 한다. M은 이제 맨 인더맨 공격에서와 똑같이 교통 상황을 감시할 수 있게 되었다.

도구들

방어

이름 OS GUI 무료 보호 인터페이스별 능동/수동 메모들
아그니툼 전초기지 방화벽 창문들 아니요. 아니요. 소극적인
AntiARP 창문들 아니요. 아니요. 능동+동작
해독제[15] 리눅스 아니요. 아니요. ? 소극적인 Linux 데몬, 매핑 모니터링, 비정상적으로 많은 ARP 패킷 수
아르프_안티도테[16] 리눅스 아니요. 아니요. ? 소극적인 2.4.18 – 2.4.20의 Linux 커널 패치는 매핑을 감시하며, 언제 수행할 작업을 정의할 수 있다.
아르팔레트 리눅스 아니요. 아니요. 소극적인 허용된 MAC 주소의 미리 정의된 목록, 목록에 없는 MAC일 경우 알림
아르폰 리눅스 아니요. 능동+동작 정적, 동적 및 하이브리드 네트워크에서 스푸핑, 캐시 중독 또는 독극물 라우팅 공격으로부터 ARP를 보호하기 위한 휴대용 핸들러 데몬.
아크 가드 아니요. 능동+동작
아르프스타 리눅스 아니요. ? 소극적인
아르프워치 리눅스 아니요. 아니요. 소극적인 IP-MAC 쌍 매핑을 유지하고 Syslog, Email을 통해 변경 사항을 보고하십시오.
아르프워치NG 리눅스 아니요. 아니요. 아니요. 소극적인 IP-MAC 쌍 매핑을 유지하고 Syslog, Email을 통해 변경 사항을 보고하십시오.
콜라소프트 캡사 창문들 아니요. 아니요. 검출 없음, 수동 검사를 통한 분석만 가능
cSploit[17] Android(루트만 해당) 아니요. 소극적인
엘모컷[18] 창문들 아니요. ? 소극적인 Windows용 EyeCandy ARP 스푸퍼
Predefore IDS ? ? ? ? ? ? ArpSpoof 플러그인, 주소의 기본 확인
팬더 보안 창문들 ? ? ? 활동적인 주소에 대한 기본 검사 수행
재혼하다 리눅스 아니요. 아니요. 아니요. 소극적인
코웃음을 치다 윈도/리눅스 아니요. 아니요. 소극적인 Snort 전처리기 Arpspoof, 주소에 대한 기본 점검 수행
위나프워치 창문들 아니요. 아니요. 아니요. 소극적인 IP-MAC 쌍 매핑을 유지하고 Syslog, Email을 통해 변경 사항을 보고하십시오.
XArp[19] Windows, Linux 예(+pro 버전) Yes (Linux, pro) Yes active + passive Advanced ARP spoofing detection, active probing and passive checks. Two user interfaces: normal view with predefined security levels, pro view with per-interface configuration of detection modules and active validation. Windows and Linux, GUI-based.
Seconfig XP Windows 2000/XP/2003 only Yes Yes Yes No only activates protection built-in some versions of Windows
zANTI Android (rooted only) Yes Yes No ? passive
NetSec Framework Linux No Yes No No active
anti-arpspoof[20] Windows Yes Yes ? ? ?
DefendARP:[21] ? ? ? ? ? ? A host-based ARP table monitoring and defense tool designed for use when connecting to public wifi. DefendARP detects ARP poisoning attacks, corrects the poisoned entry, and identifies the MAC and IP address of the attacker.
NetCutDefender:[22] Windows ? ? ? ? ? GUI for Windows that can protect from ARP attacks

Spoofing

Some of the tools that can be used to carry out ARP spoofing attacks:

See also

References

  1. ^ a b Ramachandran, Vivek & Nandi, Sukumar (2005). "Detecting ARP Spoofing: An Active Technique". In Jajodia, Suchil & Mazumdar, Chandan (eds.). Information systems security: first international conference, ICISS 2005, Kolkata, India, December 19–21, 2005 : proceedings. Birkhauser. p. 239. ISBN 978-3-540-30706-8.
  2. ^ a b c Lockhart, Andrew (2007). Network security hacks. O'Reilly. p. 184. ISBN 978-0-596-52763-1.
  3. ^ Steve Gibson (2005-12-11). "ARP Cache Poisoning". GRC.
  4. ^ a b Moon, Daesung; Lee, Jae Dong; Jeong, Young-Sik; Park, Jong Hyuk (2014-12-19). "RTNSS: a routing trace-based network security system for preventing ARP spoofing attacks". The Journal of Supercomputing. 72 (5): 1740–1756. doi:10.1007/s11227-014-1353-0. ISSN 0920-8542. S2CID 18861134. Archived from the original on 2021-01-23. Retrieved 2021-01-23.
  5. ^ Lockhart, Andrew (2007). Network security hacks. O'Reilly. p. 186. ISBN 978-0-596-52763-1.
  6. ^ "A Security Approach to Prevent ARP Poisoning and Defensive tools". ResearchGate. Archived from the original on 2019-05-03. Retrieved 2019-03-22.
  7. ^ AntiARP Archived June 6, 2011, at the Wayback Machine
  8. ^ "Archived copy". Archived from the original on 2019-08-09. Retrieved 2019-08-09.CS1 maint: archived copy as title (link)
  9. ^ "Archived copy". Archived from the original on 2019-09-03. Retrieved 2019-08-09.CS1 maint: archived copy as title (link)
  10. ^ "Archived copy". Archived from the original on 2019-08-09. Retrieved 2019-08-09.CS1 maint: archived copy as title (link)
  11. ^ "Address Resolution Protocol". Archived from the original on 2021-01-23. Retrieved 2017-08-26.
  12. ^ "OpenBSD manpage for CARP (4)". Archived from the original on 2018-02-05. Retrieved 2018-02-04., retrieved 2018-02-04
  13. ^ Simon Horman. "Ultra Monkey: IP Address Takeover". Archived from the original on 2012-11-18. Retrieved 2013-01-04., retrieved 2013-01-04
  14. ^ "Circle with Disney Locks Down Kids Devices from Afar". Archived from the original on 2016-10-12. Retrieved 2016-10-12., retrieved 2016-10-12
  15. ^ "Antidote". Archived from the original on 2012-03-13. Retrieved 2014-04-07.
  16. ^ "Arp_Antidote". Archived from the original on 2012-01-14. Retrieved 2011-08-02.
  17. ^ a b "cSploit". tux_mind. Archived from the original on 2019-03-12. Retrieved 2015-10-17.
  18. ^ a b "elmoCut: EyeCandy ARP Spoofer (GitHub Home Page)".
  19. ^ "XArp". Archived from the original on 2020-06-16. Retrieved 2021-01-23.
  20. ^ Anti-arpspoof 2008년 8월 31일 웨이백 머신보관
  21. ^ "Defense Scripts ARP Poisoning". Archived from the original on 2013-01-22. Retrieved 2013-06-08.
  22. ^ "Archived copy". Archived from the original on 2019-04-08. Retrieved 2018-02-07.CS1 maint: 제목으로 보관된 복사본(링크)
  23. ^ "Subterfuge Project". Archived from the original on 2016-04-27. Retrieved 2013-11-18.
  24. ^ "Seringe – Statically Compiled ARP Poisoning Tool". Archived from the original on 2016-09-16. Retrieved 2011-05-03.
  25. ^ a b c d e f g h i j "ARP Vulnerabilities: The Complete Documentation". l0T3K. Archived from the original on 2011-03-05. Retrieved 2011-05-03.
  26. ^ "ARP cache poisoning tool for Windows". Archived from the original on July 9, 2012. Retrieved 2012-07-13.
  27. ^ "Simsang". Archived from the original on 2016-03-04. Retrieved 2013-08-25.
  28. ^ "Minary". Archived from the original on 2019-04-08. Retrieved 2018-01-10.
  29. ^ "NetCut". Archived from the original on 2020-11-12. Retrieved 2021-01-23.
  30. ^ "ARPpySHEAR: An ARP cache poisoning tool to be used in MITM attacks". Archived from the original on 2020-10-13. Retrieved 2019-11-11.

외부 링크