network 보안

DHCP 관련 Attack 및 방어

byeong07 2016. 8. 31. 23:50

DHCP 관련 Attack 및 방어

 

[1. DHCP Starvation Attack]

- DHCP는 MAC 주소 기반으로 클라이언트에게 IP를 할당
  공격자는 이점을 이용하여 MAC 주소를 랜덤하게 변경하며
  새로운 IP 주소를 할당 받는다.
 

  

  결국 DHCP 서버가 할당할 수 있는 IP 주소는 바닥나고
  정상적인 클라이언트는 IP 주소를 할당받지 못한다.
  

 

  이 공격은 서버가 정상적인 서비스를 하지 못하게 한다는
  점에서 DOS 공격으로 볼 수 있다.

예방법
: L3 장비에서 한 포트에  허용하는 MAC 주소 제한

=> 공격자가 자신의 MAC 주소를 변조하여 DHCP
   서버가 보유하고 있는 모든 IP 주소를 할당받는 공격.

=> 공격자가 모든 IP 주소를 할당받게 되면
   정상적인 User PC는 IP 주소를 할당받지
   못하기 때문에 네트워크에 참여할 수 없다.

=> 공격이 성공할 수 있는 이유는 DHCP 서버의 경우 Client가 전송하는 DHCP Discover 안에
   있는 'Client MAC Address'를 보고 서로 다른 장비라고 판단하기 때문이다.

-> 'DHCP Staravation 공격'의 방어법 중 하나는
    Port-Security'를 설정하는 것이다

 


- Port-Security

- 특정 Switch 포트에 지정된 MAC 주소만 접속을 허용하고 조건에 일치하지 않는
  MAC 주소의 장비가 연결될 경우 해당 포트를 Shutdown 시키는 기술이다.

- Port-security는 정적으로 설정된 Switchport에서만 사용이 가능하다. (Access/Trunk/Tunnel)

- Port-Security 설정 방식은 다음과 같이 구분된다.

1) Dynamic Port-Security
 -> 관리자가 포트에 특정 MAC 주소를 지정하는 것이 아니라
      해당 포트에 처음 연결된 장비의 MAC 주소를
      스위치가 자동으로 기억하게 된다.

-> 그 후 해당 MAC 주소가 아니라 다른 MAC 주소의
     장비가 연결된 경우 해당 포트는 기본적으로
     shutdown 상태가 된다.

-> 자동으로 기억된 MAC 주소는 장비를 재부팅하거나
    Interface를 비활성화 시키면 해당 주소 정보가
    삭제된다.

-> macof, DHCPX 등과 같이 Ethernet 헤더의 So-MAC 주소를 변조하는 공격에
    효과적인 방어가 가능하다.

 


2) Static Port-Security
 -> 관리자가 직접 연결된 장비의 MAC 주소를 확인하여
      스위치 포트에 수동으로 등록하는 방식이다.
 
 -> 보안적인 관리가 중요한 군부대, 연구소 같은 보안 인가를 받은
      장비의 주소를 관리자가 수동으로 입력하는 방식이다.

-> 만약 해당 포트의 사용자가 인가받지 않은 장비를 연결했을 때
    해당 포트는 기본적으로 shutdown 된다.


3) Port-Sticky
 -> Dynamic 방식은 자동으로 기억된 MAC 주소를 'running-config'로 넘기지 않기 때문에
     재부팅시 초기화된다.

-> 만약 자동으로 기억된 MAC 주소 정보를 저장해서 관리하고 싶은 경우에는
    'Port-Sticky' 방식을 사용하면 된다.

-> 기억된 정보가 'running-config'에 남기 때문에 설정을 저장할 경우 해당 MAC 주소를 지속적으로 관리할 수 있다.


자동으로 mac 기억
학습된 mac을 running-config에 넣어 저장할 수 있다.




1) Dynamic Port-Security

<IOU>
conf t
int range e 0/1 - 3
shutdown
switchport mode access
switchport port-security (하나의 mac만 설정)
switchport port-security maximum 2
no shutdown

verify

show port-security
show port-security address
show int status
show int status err-disabled


만약 보안 침해가 발생되어 해당 포트가 shutdown 상태가 되었다면 
위협을 제거하고 해당 포트에 들어가서 [shutdown] -> [no shutdown] 명령어를 입력하면
다시 활성화가 가능하다.

2) Static Port-Security

<IOU>
conf t
int e 1/0
shutdown
switchport mode access
switchport port-security
switchport port-security maximum 2
switchport port-security mac-address 000C.2911.EA30
switchport port-security mac-address 0050.56C0.0004
no shutdown

3) Port-Sticky

<IOU1>
conf t
int e 1/1
sw trunk en dot1q
sw mo trunk

<IOU2>
conf t
int e 1/1
shutdown
sw trunk en dot1q
sw mo trunk
switchport port-security
switchport port-security maximum 10
switchport port-security mac-address sticky
no shutdown

- 기본적으로 Port-Security를 위반하는 트래픽이
  발생되는 경우 해당 포트가 shutdown 상태가 된다.
 
  보안 위반이 발생한 장비만 가용성 측면에서 shutdown하는게 좋다.
  
  보안상 shutdown 액션이 가장 강력한 조치이기는 하지만
  가용성이 중요한 경우 다른 액션도 고려할 수 있다.

 <IOU2>
 conf t
 int e 1/1
 switchport port-security violation ?

-> Protect / Restrict / shutdown 중 하나를 선택할 수 있다.
    (기본값은 'shutdown' 이다.)
 
-> 'Protect' 방식은 허용되지 않은 MAC 주소가 출발지인
     트래픽은 차단하고 허용된 MAC 주소 트래픽은 통과가
     가능하기 떄문에 가용성이 높은 방식
    (Log 메시지가 발생되지 않는다)

-> 'Restrict' 방식은 'Protect' 방식과 동작이 동일하지만 
    추가적으로 보안이 위반되는 경우 Log 메시지가 발생된다.


- DHCP Spoofing Attack

- 공격자가 가짜 DHCP 서버의 역할을 수행하면서
  Client가 IP 주소를 요청할 경우 자신의 IP 주소를
  Gateway 혹은 DNS 서버의 주소로 속여서 전달하는 공격이다.

  결과적으로 Client가 외부와 통신하는 모든 트래픽을
  자신의 Gateway 즉 공격자에게 전송하기 때문에 
  MITM(Man In The Middle) 공격으로 패킷을 sniffing하거나
  변조하는 것이 가능하다.

 - 이러한 DHCP Spoofing 공격을 방어할 수 있는 방법에는
   'DHCP Snooping'이 있다.
   
   예방법
   L3 장비에서 정상적인 DHCP 서버가 연결된 포트를 제외한 
   나머지 포트에서 필터링 기능을 사용하여 DHCP Offer, Ack
   메시지는 차단한다. 
   단 DHCP Discover, Request 메시지는 DHCP 서버에 
   전송되어야 하므로 차단하면 안된다.

 - DHCP Snooping(Port-Security 동일)은 EtherSwitch 모듈에서는 지원되지 않는다.
   때문에 실장비 혹은 IOU에서 Test가 가능하다.

- DHCP Snooping 설정 시 Switch의 포트를 Trusted 포트와
  Untrusted 포트로 구분한다.
  -> Trusted 포트는 server가 연결된 신뢰 포트이고
       Untrusted 포트는 end device가 연결된 비 신뢰 포트

- Switch는 수신한 Discover 메시지를 trust 포트로 전송
  untrusted 포트에 연결된 공격자는 수신이 불가능하다.

- 서버가 전송하는 DHCP 메시지인 Offer/ACK 등의 메시지가
  untrusted 포트에서 수신되는 경우 폐기 처리

- Client가 전송하는 Discover 메시지의 'Client MAC Address' 필드 값과
   Ethernet(L2) 헤더에 들어있는 'Source MAC Address'를 비교하여
   서로 값이 다른 경우 폐기 처리


  텍스트 기반의 man in the middle을 dhcp로 공격한다.
 
 etthercap -T -M dhcp:10.10.10.1-20/255.255.255.0/168.126.63.1
 : ip 주소,서브넷 마스크, dns를 제한한다.
 게이트웨이는 kail의 주소로 제한한다. 
 


 - DHCP Snooping 설정

 <IOU>
 conf t
 ip dhcp snooping
 ip dhcp snooping vlan 1
 no ip dhcp snooping information option
 -> DHCP 옵션 82번을 사용하지 않을 경우
      입력하는 명령어

 

 

 

 


 

 int e 1/0
 ip dhcp snooping trust -> 이 인터페이스만 신뢰한다.
                                          나머지는 막는다.

 

 

 


 

- 확인 방법

debug ip dhcp snooping event

debug ip dhcp snooping packet

 

 

 

 

show ip dhcp snooping bindinge

 

 

 

 

-MacAddress : 클라이언트가 할당받은 주소

IP address : 서버에서 할당한 주소

interface : 클라이언트의 interface 주소


DHCP Snooping (관리 목적)

해당  
trust 포트로 가서 요청을 한다.

DHCP Snooping
DHCP offer,ack,nack
Request는 아니다.

DHCP Snooping은 DAI, IP Source Guard를 같이 사용해야 ip 변조 등 방지할 수 있다.

 

'network 보안' 카테고리의 다른 글

AAA 인증  (0) 2016.09.01
IP Spooping  (0) 2016.09.01
DNS 공격 및 방어  (0) 2016.09.01
arp spoofing  (0) 2016.08.07
URL Filter, DoS Attack Mitigation  (0) 2016.08.07