Ⅰ. 스니핑(Sniffing)이란?
네트워크에서 전송되는 데이터를 가로채고 분석하는 행위입니다. 이는 패킷 분석이라고도 하며, 주로 네트워크 트래픽을 모니터링하고 분석하기 위해 사용됩니다. 스니핑은 합법적인 목적(예: 네트워크 트러블슈팅, 성능 모니터링)으로 사용될 수 있지만, 악의적인 목적으로 사용될 경우 개인정보, 로그인 자격증명, 금융 정보 등을 탈취하는 데 악용될 수 있습니다.
Ⅱ. 스니핑의 원리
스니핑의 원리는 네트워크 인터페이스를 **프로미스큐어스 모드(promiscuous mode)**로 설정하는 데 있습니다. 이 모드에서는 네트워크 인터페이스가 자신에게 주소가 지정된 패킷뿐만 아니라, 네트워크 상에서 전달되는 모든 패킷을 수신하여 분석할 수 있습니다.
보통 네트워크 인터페이스는 자신에게 주소가 지정된 패킷만 처리하지만, 프로미스큐어스 모드에서는 전체 네트워크 트래픽을 볼 수 있기 때문에 스니핑이 가능합니다.
Ⅲ. 스니핑의 주요 특징
패시브 공격: 스니핑은 네트워크 트래픽을 단순히 수집하고 분석하는 공격으로, 네트워크 성능에 눈에 띄는 영향을 미치지 않으며, 탐지가 어려운 패시브(passive) 공격입니다.
프로미스큐어스 모드: 스니핑의 핵심은 네트워크 인터페이스를 프로미스큐어스 모드로 설정하는 것으로, 이를 통해 네트워크의 모든 패킷을 수집할 수 있습니다.
전송 계층 공격: 스니핑은 주로 TCP/IP 패킷을 대상으로 하며, 전송 계층에서의 데이터를 탈취할 수 있습니다. 비암호화된 통신이 주요 타깃이 됩니다.
악용 가능성: 네트워크 관리자가 네트워크 모니터링을 위해 합법적으로 사용할 수 있지만, 악의적인 사용자는 이를 통해 민감한 정보를 탈취하는 데 악용할 수 있습니다.
Ⅳ. 스니핑 설정 및 해제 방법
ⅰ. 리눅스에서 스니핑 설정 방법
리눅스에서 스니핑을 설정하기 위해서는 네트워크 인터페이스를 프로미스큐어스 모드로 설정하고, 패킷 캡처 도구를 사용해야 합니다.
1) 프로미스큐어스 모드 (Promiscuous mode) 설정
네트워크 인터페이스를 프로미스큐어스 모드로 설정하기 위해서는 ifconfig 또는 ip 명령어를 사용합니다.
# 네트워크 인터페이스 이름이 'eth0'인 경우
[root@feccle]# ifconfig eth0 promisc |
2) 패킷 캡처 도구 사용
tcpdump, Wireshark, tshark 등의 패킷 캡처 도구를 사용하여 스니핑을 수행할 수 있습니다.
[root@feccle]# tcpdump -i eth0 : eth0 인터페이스에서 수신된 모든 패킷을 캡처하고, 이를 터미널에 출력합니다. |
ⅱ. 스니핑 해제 방법
스니핑을 해제하려면 네트워크 인터페이스를 다시 정상 모드로 설정합니다.
1) 프로미스큐어스 모드 (Promiscuous mode) 해제
[root@feccle]# ifconfig eth0 -promisc |
이 명령어는 eth0 인터페이스의 프로미스큐어스 모드를 해제하여, 해당 인터페이스가 다시 자신에게 주소가 지정된 패킷만 수신하도록 합니다.
2) 패킷 캡처 종료
tcpdump나 Wireshark와 같은 도구를 종료합니다. 터미널에서 실행 중인 경우 Ctrl + C를 눌러 종료할 수 있습니다.
Ⅴ. 스니핑의 방어 방법
스니핑에 대한 방어는 데이터의 기밀성을 보장하기 위해 중요합니다.
ⅰ. 암호화 사용
TLS/SSL, SSH와 같은 암호화된 프로토콜을 사용하여 통신 데이터를 보호합니다. 이는 스니퍼가 패킷을 가로채더라도 내용을 해독할 수 없도록 합니다.
ⅱ. VPN 사용: 가상 사설망(VPN)을 사용해 네트워크 트래픽을 암호화하여 외부에서 트래픽을 볼 수 없도록 보호합니다.
ⅲ. 스위치 네트워크 사용
스위치는 트래픽을 대상 장치에만 전달하므로, 스니핑을 어렵게 만듭니다. 그러나 ARP 스푸핑 등의 공격을 통해 여전히 스니핑이 가능할 수 있습니다.
ⅳ. 네트워크 모니터링
네트워크 트래픽을 모니터링하여 비정상적인 트래픽이나 의심스러운 활동을 감지할 수 있습니다.
'네트워크' 카테고리의 다른 글
네트워크 DMZ 에 대해 알아보겠습니다. (0) | 2024.09.17 |
---|---|
로드 밸런싱(Load Balancing)에 대해 알아보겠습니다. (0) | 2024.08.27 |
POODLE (Padding Oracle On Downgraded Legacy Encryption) 공격에 대해 알아보겠습니다. (0) | 2024.08.01 |
NetBIOS와 NetBEUI 에 대해 알아보겠습니다. (0) | 2024.07.31 |
TCP (Transmission Control Protocol) 플래그에 대해 알아보겠습니다. (0) | 2024.07.29 |