And Brain said,
패킷 스니핑(Packet Sniffing) 공격, 원리와 그 방어 본문

1. 패킷 스니핑이란?
패킷 스니핑(Packet Sniffing)은 네트워크를 통해 전송되는 데이터 패킷을 가로채어 분석하는 기술입니다.
네트워크 모니터링 및 보안 분석에 사용될 수 있음 (합법적인 목적)
비밀번호, 신용카드 정보 탈취 등 악의적인 해킹에도 사용될 수 있음 (불법적인 목적)
패킷의 구조
인터넷을 통해 주고받는 데이터는 패킷(Packet) 단위로 전송됩니다.
| Ethernet Header | IP Header | TCP/UDP Header | Data (Payload) |
Ethernet Header: 출발지 및 목적지 MAC 주소 포함
IP Header: 출발지 및 목적지 IP 주소 포함
TCP/UDP Header: 포트 정보 및 연결 상태 포함
Data (Payload): 실제 데이터 (예: HTTP 요청, 로그인 정보 등)
패킷 스니핑은 이 데이터를 가로채어 분석하는 과정입니다.
2. 패킷 스니핑의 공격 방법
패킷 스니핑을 악용하면 네트워크 상에서 전송되는 중요한 정보를 탈취할 수 있습니다.
2.1. 주요 패킷 스니핑 공격 기법
Promiscuous Mode(무차별 모드) 활용
일반적으로 네트워크 인터페이스 카드는 자신에게 도착한 패킷만 수신합니다.
하지만, Promiscuous Mode(무차별 모드)로 설정하면 네트워크에서 흐르는 모든 패킷을 수집할 수 있습니다.
ifconfig eth0 promisc # 네트워크 인터페이스를 무차별 모드로 변경
ARP 스푸핑(ARP Spoofing) 공격
ARP(Address Resolution Protocol)는 IP 주소를 MAC 주소로 변환하는 프로토콜입니다.
공격자는 가짜 ARP 응답을 보내어 자신을 네트워크의 게이트웨이로 위장한 후 패킷을 가로챕니다.
arpspoof -i eth0 -t <target IP> -r <gateway IP>
결과: 피해자의 모든 네트워크 트래픽이 공격자를 거쳐 가면서 감청이 가능해짐.
MITM(Man-in-the-Middle, 중간자 공격)
공격자는 클라이언트와 서버 사이에 위치하여 양쪽 데이터를 가로채고 수정할 수 있습니다.
예를 들어, HTTPS를 HTTP로 다운그레이드하는 SSL Strip 기법을 사용하면 암호화되지 않은 데이터를 가로챌 수 있습니다.
sslstrip -l 8080
결과: 사용자가 HTTPS 사이트에 접속했지만, 실제로는 암호화되지 않은 HTTP를 사용하게 되어 공격자가 로그인 정보를 탈취 가능.
Wi-Fi 패킷 스니핑
- 무선 네트워크(Wi-Fi)는 유선 네트워크보다 패킷을 훔쳐보기 쉬움
- airodump-ng 같은 툴을 사용하면 Wi-Fi 트래픽을 감청할 수 있음
airmon-ng start wlan0
airodump-ng wlan0mon
결과: 공격자는 무선 네트워크에서 송수신되는 패킷을 분석할 수 있음.
3. 패킷 스니핑 도구 (공격 및 방어)
3.1. 합법적 네트워크 분석 도구 (White Hat)
도구 | 설명 |
Wireshark | 가장 널리 사용되는 패킷 분석 도구 |
tcpdump | CLI 기반의 패킷 캡처 도구 |
ngrep | 패킷에서 문자열을 검색하는 도구 |
Ettercap | MITM 공격 탐지 및 방어 도구 |
3.2. 악의적으로 사용될 수 있는 도구 (Black Hat)
도구 | 설명 |
dsniff | 패킷에서 암호나 민감 정보 추출 |
Ettercap | 스니핑 및 MITM 공격 지원 |
Cain & Abel | 네트워크 인증 정보 가로채기 |
4. 패킷 스니핑 방어 방법
패킷 스니핑 공격을 막기 위한 보안 대책
End-to-End 암호화 사용 → HTTPS, TLS, VPN 사용
스위치 환경에서 포트 미러링 제한 → 네트워크 트래픽 가로채기 방지
ARP 스푸핑 탐지 및 방어 → MITM 공격 차단
정기적인 패킷 모니터링 → 비정상적인 트래픽 탐지
MAC 주소 바인딩 및 네트워크 보안 강화
4.1. ARP 스푸핑 방어
arp -s <gateway IP> <gateway MAC>
MAC 주소를 수동으로 고정하면 ARP 스푸핑 공격 방어 가능
4.2. 패킷 암호화 및 VPN 사용
SSH 대신 VPN을 사용하면 패킷 가로채기 방어 가능 iptables로 특정 IP만 SSH 접속 허용
iptables -A INPUT -p tcp --dport 22 -s <trusted IP> -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP
이 설정을 하면 신뢰할 수 있는 IP만 SSH 접속 가능
4.3 그 외 방어법
네트워크 분할 (VLAN 활용)
VLAN을 활용하여 네트워크를 논리적으로 분리하면 특정 네트워크에서만 트래픽을 감청하는 것을 어렵게 만들 수 있음.
무선 네트워크 보안 강화
WPA3 또는 WPA2-Enterprise 암호화를 사용하여 무선 네트워크 보안 강화
MAC 주소 필터링 및 SSID 숨김 설정
무선 네트워크에 접근하는 장치를 제한하고, 불필요한 Wi-Fi AP(Access Point)를 차단
IDS/IPS 시스템 사용 (침입 탐지/방지 시스템)
네트워크에서 비정상적인 트래픽 패턴을 감지하는 IDS (Intrusion Detection System)
스니핑 시도를 차단하는 IPS (Intrusion Prevention System) 도입
sudo apt install snort # Snort IDS/IPS 설치
강력한 네트워크 접근 제어 (802.1X 인증)
RADIUS 서버를 활용한 802.1X 인증을 사용하면 인증된 사용자만 네트워크에 접속할 수 있음.
DNS 스푸핑 방어
DNS over HTTPS (DoH) 또는 DNS over TLS (DoT)를 활성화하면, DNS 요청이 암호화되어 감청이 어려워짐.
정기적인 네트워크 감사 및 로그 모니터링
정기적으로 tcpdump, Wireshark, Zeek 등을 사용하여 네트워크 트래픽 이상 여부 분석
'IT > 보안' 카테고리의 다른 글
전자금융기반시설 보안 취약점 평가 가이드 - Linux 서버(SRV-073~174) - [2] (0) | 2025.02.24 |
---|---|
랜섬웨어(Ransomware) 공격, 원리와 그 방어 (1) | 2025.02.24 |
전자금융기반시설 보안 취약점 평가 가이드 - Linux 서버(SRV-001~070) - [1] (0) | 2025.02.20 |
Nessus, 사이버 보안 탐정의 수사 노트 (1) | 2025.02.18 |
AWS로 배우는 IAM, 넌 지나갈 수 없다. (+Spring boot 연동 예제) (1) | 2025.02.12 |