Doctor Pepper

[ARP] ARP 스푸핑 공격 및 장애 처리 본문

Packet Tracer/트러블 슈팅

[ARP] ARP 스푸핑 공격 및 장애 처리

Doctor Pepper 2024. 12. 4. 03:18
728x90

 

 

1. 프록시 ARP를 이용한 확장 LAN 간 라우팅 방안

 메트로 이더넷(Metro-Ethernet)을 통해 본사와 지사 간 네트워크를 확장하여 단일 VLAN 대역(즉, 하나의 브로드캐스트 영역)으로 구성하는 경우가 종종 있다. 이러한 경우 대역폭 활용과 장애 예방을 위해 본/지사 간 회선을 이중화하는 방안을 고려할 수 있다.

 

- STP 구조로 인한 문제점

 일반적으로 확장 LAN 환경에서 이중화 회선을 구성하면 STP(Spanning Tree Protocol)에 의해 두 회선 중 하나는 블로킹(BLK) 상태로 전환되어 Active-Standby 상태로 동작하게 된다.


 이러한 구조는 고비용의 전용선을 비효율적으로 사용하는 결과를 초래하며, 운영 유지비 관점에서도 바람직하지 않다. 따라서 2계층의 브로드캐스트 통신 기반 이중화보다는 3계층 라우팅 기반 이중화가 더욱 권장된다.

 

- Active-Active 구성 방안

2계층 구간을 분리하여
3계층 라우팅 구간 추가
- 확장 LAN의 중간에 라우팅 구간을 삽입하여 STP 구성을 제거함.
- 이를 통해 두 개의 이중화 회선을 모두 활용 가능함.
VLAN 간 통신 문제 해결 - 3계층 라우팅 구간으로 VLAN을 분리하면 분리된 VLAN 간 통신을 지원해야 한다. 이를 위해 프록시 ARP(proxy ARP)를 사용함.
- 각 멀티레이어 스위치(L3)에 32비트 호스트 라우팅을 추가하여 상호 라우팅을 지원함.

 

- 구성 방법

  • 프록시 ARP 설정 : 각 L3 스위치에 proxy ARP를 활성화한다.
L3(config-if) # ip proxy-arp
  • 호스트 기반 정적 라우팅 추가 : L3 스위치 간의 라우팅을 위해 다음과 같은 정적 라우팅을 설정한다.
L3(config-if) # ip routing 10.10.10.11 255.255.255.255 100.100.100.2
L3(config-if) # ip routing 10.10.10.11 255.255.255.255 100.100.101.2

 

  • 구성 검증
    • 각 시스템 간 통신이 원활히 이루어지는지 확인한다.
    • ARP 테이블에서 proxy ARP가 작동 중임을 확인(MAC 주소가 라우터 MAC으로 매핑)한다.

 

2. ARP 스누핑(Spoofing) 공격

 ARP 스누핑 공격은 로컬 네트워크에서 사용되는 ARP(주소 해석 프로토콜)의 취약점을 악용하여 공격자가 자신의 MAC 주소를 다른 시스템의 MAC 주소인 것처럼 위조하는 공격이다. 이 공격은 ARP 캐시 변조(ARP Cache Poisoning)라고도 불리며, 패킷을 공격자의 시스템으로 우회시키거나 가로챈 후 변조하는 중간자 공격(Man-in-the-Middle, MITM)을 수행하기 위해 사용된다.

 

- 공격 방법

  • 공격자는 ARP 응답 패킷을 위조하여 희생자 시스템이 사용하는 디폴트 게이트웨이(보통 라우터나 멀티레이어 스위치)의 MAC 주소를 자신의 MAC 주소로 변경한다.
  • 이를 통해 희생자 시스템의 ARP 캐시를 변조시키고, 그 결과 희생자는 공격자의 시스템으로 패킷을 전송하게 된다.
  • 공격자는 변조된 ARP 정보를 이용해 패킷을 가로채거나, 중간에서 변조하여 최종 목적지로 패킷을 다시 전달한다.

 

- 공격 예시

  • 호스트 C호스트 A호스트 B, 그리고 라우터 e1 간의 통신을 스니핑하려고 한다.
  • 공격자는 호스트 A호스트 B에게 172.16.20.1의 MAC 주소가 00-00-0C-94-36-CD가 아니라 자신의 MAC 주소인 00-00-0C-94-36-CC라고 주장하는 ARP 응답 패킷을 전송한다.
  • 호스트 A호스트 B는 이를 의심 없이 받아들이고, 해당 ARP 정보를 갱신하여 공격자의 MAC 주소를 사용한다.
  • 결과적으로, 호스트 A호스트 B는 라우터와의 모든 통신을 호스트 C로 보내게 된다.
  • 호스트 C는 받은 패킷을 스니핑하고, 원래 목적지인 라우터 e1로 다시 포워딩한다.
    • 이때, 호스트 C 'net.ipv4.ip_forward=1' 설정을 통해 패킷을 포워딩할 수 있어야 한다.
  • 호스트 A호스트 B는 통신 속도가 약간 느려지긴 하지만, 정상적으로 통신을 계속하며 패킷이 호스트 C를 거쳐 간다는 사실을 알지 못한다.

 

- 공격 목적

스니핑(Sniffing) 패킷을 가로채어 네트워크 트래픽을 감청함
중간자 공격(Man-in-the-Middle) 패킷을 변조하여 중요한 정보를 탈취하거나 수정함.

 

- 방어 방안

정적 ARP 설정 ARP 캐시를 수동으로 설정하여 ARP 변조를 방지할 수 있음
ARP 스누핑 기능 활성화 스위치에서 ARP 스누핑 기능을 사용하여 불법적인 ARP 요청/응답을 차단함
암호화된 통신 사용 패킷이 암호화되면, 스니핑 공격으로부터 중요한 정보를 보호할 수 있음

 

 ARP 스누핑 공격은 로컬 네트워크에서 발생할 수 있는 심각한 보안 위협이며, 이를 방지하기 위해서는 ARP 프로토콜에 대한 적절한 보안 대책이 필요하다.

 

3. ARP를 통한 장애 처리

 시스템을 네트워크에 연결하고 나서 첫 번째로 수행해야 할 테스트는 연결성 테스트인 ping이다. 만약 ping 테스트에서 게이트웨이로부터 응답이 오지 않는다면(물리 계층인 케이블을 이미 확인했다면), 서버의 ARP 캐시 테이블을 확인해야 할 필요가 있다. ARP(주소 해석 프로토콜)는 IP 주소를 MAC 주소로 변환하는 프로토콜로, ARP 캐시는 해당 정보를 저장한다.

 

- 장애 처리 절차

IP 주소 설정 확인 - IP 충돌이 있는지, 서브넷 마스크 설정이 올바른지 확인함
랜카드 상태 확인 - 시스템에 다수의 랜카드가 설정된 경우, 장애가 발생한 랜카드에 할당된 IP가 정확히 설정되어 있는지, 다른 랜카드에 잘못 설정된 것이 아닌지 점검함
네트워크 장비와 연결 확인 - 네트워크 장비에 연결된 케이블이 적절한 VLAN에 할당된 포트에 연결되었는지 확인함.
인터페이스 상태 점검 - 서버의 네트워크 인터페이스 상태는 'netstat -i' 또는 'ifconfig -a' 명령어로 확인함.
ARP 캐시 테이블 상태 점검 - arp -a 명령어를 사용하여 서버의 ARP 캐시 테이블을 확인함.
  · dynamic(동적 엔트리) : 자동으로 생성된 항목
  · Permanent(정적 엔트리) : 고정된 항목
  · incomplete(비정상 엔트리) : ARP 요청에 대한 응답이 없을 때의 상태로, 보통 네트워크 장비의 문제나 랜카드의 설정 오류로 발생함
네트워크 장비
ARP 테이블 상태 확인
- Cisco 장비에서 ARP 테이블을 확인하려면 show ip arp IP-Number 명령어를 사용함.
MAC 주소 일치 여부 확인 - 시스템에서 확인된 MAC 주소가 네트워크 장비의 ARP 테이블에도 동일하게 등록되어 있는지 점검함.
네트워크 장비
ARP 캐시 갱신
- 시스템의 MAC 주소와 네트워크 장비의 ARP 캐시 정보가 일치하지 않으면, ARP 캐시를 강제로 갱신함.
- 이때 사용하는 명령어는 'clear arp int vlan n' 이다.

 

- ARP 캐시 만료 시간

  • 네트워크 장비서버 시스템은 ARP 캐시의 만료 시간이 다를 수 있다(Cisco 장비의 ARP 개시 만료 시간은 4시간임)
Cisco Cisco(config-if) # arp timeout n          # <0-2147483> Seconds
Nortel Nortel # config ip arp aging n             # <1-32767>mins (기본 값은 360)
Juniper [edit system arp interfaces interface-name]
Juniper # set aging-timer n                 # <1-240>mins (기본 값은 40)

 

  • 서버 시스템 (리눅스): ARP 만료 시간은 기본적으로 60초로 설정되어 있으며, 이를 조정할 수 있다.
# sysctl -a | grep gc_stale_time
    net/ipv4/neigh/eth1/gc_stale_time = 60
    net/ipv4/neigh/eth0/gc_stale_time = 60
    net/ipv4/neigh/lo/gc_stale_time = 60
    net/ipv4/neigh/default/gc_stale_time = 60

 

 이 값을 소프트 커널 튜닝을 통해 적절히 조정할 수 있다. 네트워크의 규모나 특성에 따라 60초보다 높은 값으로 설정해 ARP 요청으로 인한 브로드캐스트 패킷 수를 적정 수준으로 유지할 수 있다.

 

- ARP 캐시 갱신 및 장애 대응

 네트워크 장비의 ARP 캐시 만료 시간이 너무 짧으면, 과도한 ARP 요청이 발생하여 브로드캐스트 패킷이 많아져 네트워크 효율성이 저하될 수 있다. 따라서 만료 시간을 너무 낮게 설정하는 것에는 주의가 필요하다. 반면, 서버 시스템에서는 적절한 만료 시간 조정을 통해 과도한 ARP 요청을 방지하고, 네트워크 성능을 최적화할 수 있다.

 

4. 정적 ARP를 통한 ARP 테이블 관리

 시스템과 네트워크 장비에서 ARP 테이블을 관리하는 중요한 방법 중 하나는 정적 ARP 설정이다. ARP 스푸핑 공격에 대한 보안 강화와 서비스 안정성을 보장하기 위해, IP 주소와 MAC 주소 간의 관계를 고정시킬 수 있는 정적 ARP 설정을 사용한다.

 

(1)시스템에서의 정적 ARP 설정

 ARP 스푸핑 공격은 주로 시스템과 게이트웨이 간의 트래픽을 스니핑하려는 공격자가 시스템의 ARP 캐시를 변조하는 방식으로 이뤄진다. 이를 방지하기 위해 시스템에서 정적 ARP 설정을 적용할 수 있다. 정적 ARP는 시스템이 특정 IP 주소와 연결된 MAC 주소를 고정시켜, 공격자가 ARP 캐시를 변조하더라도 이를 차단할 수 있다.

 

- 시스템에서의 정적 ARP 설정

  • 설정하려는 IP 주소와 MAC 주소 확인 : arp -s <IP주소> <MAC 주소>
  • 정적 ARP 설정 
  • 설정 후 arp -a 명령어를 실행하여 PERM (Permanent) 옵션이 설정됐는지 확인한다. 이 옵션은 설정된 ARP 엔트리가 영구적임을 의미한다.

 

(2) 네트워크 장비에서의 정적 ARP 설정

 네트워크 장비에서 정적 ARP 설정은 IP 충돌 방지서비스 안정성을 위한 중요한 방법이다. 정적 ARP를 설정하면 네트워크 장비가 특정 IP 주소와 연관된 MAC 주소를 고정시킬 수 있어, IP 충돌로 인한 서비스 중단을 예방할 수 있다.

 

- 주요 설정 대상

VIP (Virtual IP) 로드 밸런서를 통한 서비스 IP
Next-hop IP 라우팅을 위한 다음 홉 IP
중요 서버 IP 관리자가 필요에 따라 설정할 수 있음

 

- 네트워크 장비에서의 정적 ARP 설정 방법 : Cisco 장비

  • SW(config) # arp <ip-주소> <MAC 주소> encap-type [interface-type]
  • 설정 예 : SW(config) # arp 10.31.7.19 0800.0900.1834 arpa

 이 명령어는 지정된 IP 주소와 MAC 주소를 ARP 테이블에 정적으로 추가하여, 해당 IP 주소와 연결된 MAC 주소가 변하지 않도록 보장한다.

 

(3) 정적 ARP 설정의 관리적 고려 사항

 정적 ARP 설정은 일단 적용되면 수정이 어려워지므로 관리적인 부담이 따를 수 있다. 네트워크 장비에서 정적 ARP를 설정하면 설정 후 변경 및 이력 관리가 필요하므로, 서비스 관점관리적 효율성을 고려해야 한다.

 

 정적 ARP는 특히 IP 관리 시스템이나 NAC(Network Access Control) 시스템을 별도로 도입하지 않은 환경에서 유용한 관리 도구가 될 수 있다. 예를 들어, 불법적으로 도용되거나 문제가 되는 IP에 대해 MAC 주소를 정적으로 설정하여 해당 IP가 네트워크와 통신할 수 없도록 차단할 수 있다.

 

(4) 정적 ARP 설정 예 : IP 차단

 불법적으로 도용되는 IP를 차단하려면, 해당 IP에 대한 정적 ARP를 설정하여 IP와 MAC 주소를 고정시킬 수 있다. 예를 들어, 멀티레이어 스위치에서 문제의 IP에 대해 잘못된 MAC 주소를 정적 ARP로 설정하면, 해당 IP는 외부와 통신할 수 없게 된다. 이러한 방법은 필터링(ACL)보다 간단하면서도 효과적일 수 있다.

 

728x90