Ⅰ. DHCP (Dynamic Host Configuration Protocol) 란?
컴퓨터나 스마트폰, POS 단말기와 같은 네트워크 장치(호스트)가 자동으로 IP 주소 및 기타 네트워크 설정 정보를 받을 수 있도록 해주는 네트워크 프로토콜입니다. IP 주소를 사람이 하나하나 수동으로 입력할 필요 없이, DHCP 서버가 알아서 주소를 배정해주는 시스템입니다.
Ⅱ. DHCP (Dynamic Host Configuration Protocol) 동작 순서
DHCP는 DORA(D→O→R→A) 순서로 작동합니다.
ⅰ. Discover (DHCP Discover)
클라이언트가 네트워크에 연결되면, DHCP 서버를 찾기 위해 브로드캐스트 패킷을 전송합니다.
"나에게 IP 주소를 줄 수 있는 DHCP 서버 있나요?"라고 묻는 것과 같습니다.
ⅱ. Offer (DHCP Offer)
DHCP 서버는 클라이언트의 요청을 받고, 사용 가능한 IP 주소와 기타 정보(게이트웨이, DNS 등)를 포함한 제안 패킷을 보냅니다.
ⅲ. Request (DHCP Request)
클라이언트는 제안받은 여러 서버 중 하나를 선택해, 그 서버에 IP 주소 사용 요청을 보냅니다.
ⅳ. Acknowledge (DHCP Ack)
선택된 DHCP 서버는 클라이언트에게 IP 주소를 할당 완료했다는 승인 메시지(Ack)를 보냅니다.
그 다음, 클라이언트는 GARP (Gratuitous ARP)를 사용하여 IP 충돌 여부를 확인하고, 문제가 없으면 IP 주소를 사용합니다.
Ⅲ. DHCP (Dynamic Host Configuration Protocol) 보안 취약점
DHCP는 기본적으로 UDP 프로토콜을 기반으로 작동하며, 인증 기능이 없기 때문에아래와 같은 보안 취약점이 존재합니다
ⅰ. 누구나 DHCP 서버 역할을 할 수 있음 (스푸핑 가능)
ⅱ. DHCP 서버는 요청자의 신원을 확인하지 않음
ⅲ. IP 할당 과정이 암호화되지 않음
ⅳ. 인증되지 않은 정보로 게이트웨이, DNS 주소 등이 변경될 수 있음
Ⅳ. DHCP (Dynamic Host Configuration Protocol) Spoofing (DHCP 스푸핑) 공격 원리
DHCP 스푸핑은 공격자가 가짜 DHCP 서버를 네트워크에 심어서, 클라이언트에게 잘못된 네트워크 정보(IP, 게이트웨이, DNS 등)를 제공하는 공격입니다.
ⅰ. 공격 과정
1) 사용자가 네트워크에 연결되면, DHCP Discover 메시지를 보냄
2) 공격자가 먼저 응답(DHCP Offer)하면서, 자신이 DHCP 서버인 것처럼 위장
3) 사용자는 공격자의 Offer를 받아 DHCP Request를 보냄
4) 공격자가 DHCP Ack를 보내 자신의 게이트웨이 주소, DNS 주소 등을 사용자에게 할당
5) 사용자는 이제 모든 트래픽을 공격자의 장비로 보내게 됨
→ 중간자 공격(MITM, Man-in-the-Middle) 가능
→ 사용자 ID, 패스워드 탈취, 트래픽 감청, 악성코드 배포 등
ⅱ. 피해 사례
1) 사용자 트래픽이 정상 게이트웨이가 아닌 공격자의 장비를 통해 전달됨
2) DNS 주소가 조작되어 가짜 웹사이트로 연결될 수 있음
3) 네트워크 전체가 마비되거나 인터넷 연결 불가 상태가 될 수 있음
Ⅴ. DHCP (Dynamic Host Configuration Protocol) Snooping (DHCP 스누핑) 공격 원리
DHCP 스누핑은 스위치에서 DHCP 트래픽을 검사하고, 비정상적인 DHCP 메시지를 차단함으로써 DHCP 스푸핑 공격을 방지하는 보안 기능입니다.
ⅰ. 동작 원리
스위치는 각 포트를 신뢰 포트(Trusted Port)와 비신뢰 포트(Untrusted Port)로 구분합니다.
| 포트 종류 | 설명 |
| Trusted Port | 진짜 DHCP 서버가 연결된 포트 (허용) |
| Untrusted Port | 클라이언트 또는 공격자가 연결된 포트 (감시 및 차단 대상) |
ⅱ. 대응 방법
1) Untrusted Port에서는 DHCP 서버 역할을 할 수 없도록 제한합니다.
2) DHCP 서버가 아닌 포트에서 DHCP Offer/Ack 같은 메시지가 나오면 공격으로 간주하고 차단합니다
3) 일반 PC가 연결된 포트에서는 DHCP 서버 메시지를 전송할 수 없기 때문에 스푸핑 공격이 무력화됩니다.
ⅲ. 스누핑 설정 예시(Cisco 기준)
| Switch(config)# ip dhcp snooping ← DHCP 스누핑 활성화 Switch(config)# ip dhcp snooping vlan 10 ← VLAN 10에 대해 스누핑 적용 Switch(config)# interface fastEthernet 0/24 Switch(config-if)# ip dhcp snooping trust ← DHCP 서버가 연결된 포트를 신뢰 포트로 설정 |
'네트워크' 카테고리의 다른 글
| QUIC(Quick UDP Internet Connections)에 대해 알아보겠습니다. (1) | 2025.06.19 |
|---|---|
| SYN Flooding 공격에 대해 알아보겠습니다. (0) | 2025.06.17 |
| nslookup에 대해 알아보겠습니다. (0) | 2025.05.08 |
| ERR_CONNECTION_TIMED_OUT 에 대해 알아보겠습니다. (0) | 2025.03.25 |
| 클러스터 환경에서 클러스터 노드 간의 상태를 모니터링을 할 수 있는 HeartBeat에 대해 알아보겠습니다. (0) | 2025.01.24 |