2013년 8월 19일 월요일

ARP/ARP Spoofing Attacks

- ARP(Address Resolution Protocol)

동일한 broadcast Domain에서 IP와 MAC 주소를 맵핑시켜 사용하는 Layer 2 기반의 통신 방법. 특정 IP의 MAC 주소를 아는 경우는 그 MAC주소로, 모를 경우는 broadcast로 MAC주소를 요청하며 해당 IP를 가진 Host에서 자신의 MAC주소를 알려주면 그걸 기억해뒀다가 사용하게 된다. 즉, 실제 통신은 MAC주소 기반으로 하게 됨.

- ARP Spoofing Attacks

ARP는 특정 IP에 대한 MAC주소를 모를 경우, 확인하기 위한 broadcast frame을 발생시킨다. 이때 다른 Host에서 대신 자신의 MAC 주소를 알려주게 되면 그 MAC주소로 맵핑시킨다. 이로서, 다른 Host에게 가야할 정보를 중간에서 가로채는게 가능해진다. 이게 가능한 이유는 ARP에서 사용하는 맵핑 과정 자체에는 검증과정이 포함되지 않기 때문이다.



관련문서

ARP Poisoning Attack and Mitigation Techniques

2013년 8월 15일 목요일

VLAN Hopping 공격

전제조건

- 인터페이스에 직접 억세스 모드 지정(switchport mode access)을 하지 않은 상태.
- 해당 장치가 DTP 지원.

직접 억세스포트로 지정하지 않고 VLAN지정만 하는 경우가 간혹 있고, 많은 경우(대부분의 스위치는 기본값이 Access Mode지만, DTP는 허용된 상태.) 이 상태로도 별다른 문제 없이 동작한다. 하지만 연결된 장치에서 의도적으로 DTP 프레임을 보내서 Trunk 모드로 동작시키는 경우, L3라우팅 없이도 지정된 VLAN이 아닌 다른 VLAN으로 신호를 보낼 수 있게 된다. 결과적으로 접근할 수 없는 영역으로 접근을 할 수 있게 되는 문제가 생긴다.

이를 방지하기 위해서는 두가지를 지키면 된다.

1. Access Port

반드시 아래와 같이 명시적으로 Access Port로 설정해서 DTP프레임을 받아도 Trunk Port로 전환되지 않도록 한다.

SW(config-if)# switchport mode access

2. Trunk Port (802.1Q)

802.1Q Trunk Port 간 연결은 native VLAN 설정이 일치해야 한다. 따라서 기본값인 1에서, 외부인이 알 수 없는 임의의 값으로 변경해서 사용한다. (당연하지만 이 임의의 값은 양쪽이 동일해야 통신이 된다. 즉, VLAN Hopping을 시도하는 상대가 Native Vlan 번호를 모른다면 설정 불일치 문제로 해당 포트가 shutdown 된다.)

SW(config-if)# switchport trunk encapsulation dot1q
SW(config-if)# switchport mode trunk
SW(config-if)# switchport trunk native vlan [임의의 값]


참고문서

Dynamic Trunking Protocol (DTP) - CISCO
VLAN Security White Paper

2013년 8월 3일 토요일

Inconsistent(비일관) 상태

Inconsistent(비일관) 상태는 연결된 양쪽의 설정이 서로 일치하지 않는 것으로 판단되는 경우를 말한다. 아래와 같은 경우가 존재한다.

- Loop Inconsistency
Loop Guard를 설정한 경우에 볼 수 있다. Loop Guard는 BPDU가 전송되지 않는 경우, 종단장치로 판단하고 전송상태로 변경하는걸 방지하는 기능. 이게 필요한 이유는 종단장치가 아니라도 단방향 연결상태라서 BPDU가 전송되지 않는 경우가 있기 때문이다.

- Root Inconsistency
Root Guard를 설정한 경우에 볼 수 있다. Root Guard가 설정된 스위치로, Root 스위치보다 우선인 BPDU가 전송되는 경우, 해당 포트를 차단하고 그 사유로 이 항목이 표시된다. 만약 우선권을 주장하는 BPDU의 전송이 멈추면, 별도로 설정할 필요 없이 차단이 해제되고 연결이 정상화 된다.

- EtherChannel Inconsistency
EtherChannel이 설정된 스위치간 설정이 일치하지 않는 경우 발생한다.

- Port VLAN ID (PVID) Inconsistency
연결된 포트간 VLAN ID가 일치하지 않는 경우 발생한다. 802.1q Trunk Port설정시 Native VLAN 을 동일하게 설정하지 않은 경우에도 발생한다.

- Type Inconsistency 
포트 타입이 일치하지 않는 경우(Access Port - Trunk Port 연결 식으로)에 발생한다. 


관련 문서
Troubleshooting Spanning Tree PVID- and Type-Inconsistencies

Spanning-Tree Protocol Enhancements using Loop Guard and BPDU Skew Detection Features

Spanning Tree Protocol Root Guard Enhancement

Understanding EtherChannel Inconsistency Detection 

What Is a Port VLAN ID (pvid)?