본문 바로가기
네트워크/네트워크 보안

DAI(Dynamic ARP Inspection) 실습

by CBROJIN 2025. 8. 13.

동적 ARP 검사(Dynamic ARP Inspection, DAI)

일반적인 ARP 공격에서 위협 행위자는 자신의 MAC 주소와 기본 게이트웨이의 IP 주소를 포함한 비요청(unsolicited) ARP 요청을 서브넷의 다른 호스트에게 전송할 수 있다. 이를 통해 ARP 스푸핑과 그로 인한 ARP 중독(ARP poisoning)이 발생한다.

이를 방지하려면 스위치는 오직 유효한 ARP 요청과 응답만 릴레이해야 한다.

동적 ARP 검사(DAI)는 DHCP 스누핑을 필요로 하며, 다음과 같은 방법으로 ARP 공격을 방지한다:

  • 잘못되거나 불필요한(Gratuitous) ARP 요청을 동일 VLAN의 다른 포트로 릴레이하지 않음.
  • 비신뢰 포트에서 모든 ARP 요청과 응답을 가로챔.
  • 가로챈 각 패킷의 IP-MAC 바인딩이 유효한지 확인.
  • 잘못된 출처에서 오는 ARP 요청을 드롭하고 로그를 남겨 ARP 중독 방지.
  • 설정된 DAI ARP 패킷 수를 초과하면 해당 인터페이스를 오류-비활성화(Error-disable)함.

DAI 구현 지침

ARP 스푸핑 및 ARP 중독 가능성을 줄이기 위한 DAI 구현 지침은 다음과 같다:

  • DHCP 스누핑을 전역적으로 활성화.
  • 선택한 VLAN에 DHCP 스누핑 활성화.
  • 선택한 VLAN에 DAI 활성화.
  • DHCP 스누핑과 ARP 검사를 위한 신뢰 인터페이스 구성.
  • 일반적으로 모든 액세스 스위치 포트를 비신뢰로 설정하고, 다른 스위치와 연결된 업링크 포트는 신뢰로 설정하는 것이 권장됨.

DAI 구성

이전 토폴로지에서 S1은 VLAN 10에 있는 두 사용자 PC를 연결하고 있다.

DAI는 ARP 스푸핑과 ARP 중독 공격을 방지하기 위해 구성된다.

예시와 같이, DAI는 DHCP 스누핑 바인딩 테이블이 필요하므로 DHCP 스누핑이 먼저 활성화된다. 다음으로 VLAN 10의 PC를 위해 DHCP 스누핑과 ARP 검사를 활성화한다. 라우터로 가는 업링크 포트는 신뢰 포트이므로, DHCP 스누핑과 ARP 검사 모두에서 신뢰로 구성된다.

S1(config)# ip dhcp snooping 
S1(config)# ip dhcp snooping vlan 5 
S1(config)# ip arp inspection vlan 5
S1(config)# interface g0/1
S1(config-if)# ip dhcp snooping trust 
S1(config-if)# ip arp inspection trust

DAI는 또한 목적지 및 소스 MAC, IP 주소 모두를 검사하도록 구성할 수 있다:

  • 목적지 MAC: 이더넷 헤더의 목적지 MAC 주소와 ARP 본문(body)의 대상 MAC 주소를 비교.
  • 소스 MAC: 이더넷 헤더의 소스 MAC 주소와 ARP 본문의 송신자 MAC 주소를 비교.
  • IP 주소: ARP 본문에서 0.0.0.0, 255.255.255.255, 모든 IP 멀티캐스트 주소를 포함한 잘못되거나 예상치 못한 IP 주소를 검사.

ip arp inspection validate {[src-mac] [dst-mac] [ip]} 전역 구성 명령은 IP 주소가 잘못되었을 때 ARP 패킷을 드롭하도록 DAI를 구성하는 데 사용된다. 또한 ARP 패킷 본문의 MAC 주소가 이더넷 헤더에 지정된 주소와 일치하지 않을 때도 사용된다.

중요: ip arp inspection validate 명령은 한 번에 한 줄만 구성할 수 있다. 따라서 여러 번 입력하면 이전 명령이 덮어쓰기 된다. 여러 검증 방법을 포함하려면 동일한 명령 줄에 나열해야 한다.

S1(config)# ip arp inspection validate src-mac dst-mac ip

 

헤더 vs 바디의 주소

Ethernet Header

  • 스위치의 MAC 학습, 프레임 포워딩 결정에 사용
  • 여기 있는 Source MAC이 DHCP Snooping 바인딩 MAC과 일치하면 기본 통과 대상

ARP Body (Payload)

  • 실제 ARP 프로토콜 정보
  • 여기 있는 Sender MAC·Sender IP가 “이 IP 주소는 이 MAC입니다”라는 선언 역할
  • Target MAC·Target IP는 “이 주소의 MAC을 알려주세요” 또는 “이 주소가 너 맞지?”의 의미

왜 바디 정보로 공격이 가능하나?

공격자는 Ethernet Header와 ARP Body의 MAC·IP를 다르게 세팅할 수 있음.

예시: ARP 스푸핑

  1. Ethernet Header의 Source MAC = 공격자 MAC (DHCP Snooping 바인딩 MAC)
  2. ARP Body의 Sender IP = 게이트웨이 IP, Sender MAC = 공격자 MAC
  3. 이 패킷을 클라이언트에게 보내면, 클라이언트는 “게이트웨이의 MAC이 공격자 MAC”이라고 ARP 캐시를 덮어씀 → 모든 트래픽이 공격자를 거침.

변형 공격:

  • Ethernet Header에는 정상적인 MAC을 넣어 스위치 필터를 통과
  • ARP Body에는 다른 MAC·IP 조합을 넣어 대상 장비의 ARP 캐시를 조작
  • 이렇게 하면 DHCP Snooping 기반의 단순 IP↔MAC 체크만으로는 걸리지 않을 수 있음

여기서 ip arp inspection validate의 역할

  • src-mac → Ethernet Header의 Source MAC과 ARP Body의 Sender MAC이 동일한지 비교
  • dst-mac → Ethernet Header의 Destination MAC과 ARP Body의 Target MAC이 동일한지 비교
  • ip → ARP Body의 Sender/Target IP가 유효한 값인지 검사(0.0.0.0, 255.255.255.255, 멀티캐스트 차단)

'네트워크 > 네트워크 보안' 카테고리의 다른 글

PortFast & BPDU Guard 실습  (4) 2025.08.13
DHCP Snooping 실습  (3) 2025.08.13
port-security 실습  (2) 2025.08.13