[Network] 스니핑 (Sniffing)

김리영·2025년 1월 28일

Network

목록 보기
6/13

📌 본 게시물은 자기 학습 목적으로 작성되어 일부 내용이 부정확하거나 최신 정보와는 다를 수 있습니다.
💬 잘못된 부분이나 보완할 점이 있다면 댓글로 공유하여 주시면 감사하겠습니다!

1️⃣ 스니핑 (Sniffing)

  • 네트워크로 전송되는 패킷을 몰래 훔쳐보는 행위로 수동적(Passive) 공격 형태
  • 패킷은 일반적으로 특정 수신자에게만 전달되도록 설계되어 있지만 네트워크 환경 설정에 따라 이를 가로채는 것이 가능
  • 탐지가 어려우며 복제해도 알 수 X

📌 허브 환경

  • 허브는 들어오는 패킷을 수신한 포트를 제외한 모든 포트로 전송
  • 같은 허브에 연결된 사용자는 자신이 아닌 다른 사람의 패킷을 스니핑 가능
  • NIC 무차별 모드(promiscuous mode) : 네트워크 인터페이스 카드(NIC)를 무차별 모드로 설정하면 특정 사용자의 패킷뿐 아니라 네트워크를 통과하는 모든 패킷 수집 가능

📌 Switch Jamming

  • 스위치의 MAC 주소 테이블을 오버플로우 시켜 스위치를 허브처럼 동작하게 만드는 공격 기법
  • 스위치의 Fail Opne 정책을 악용하여 스니핑을 가능하게 함
    • Fail Open : 장애가 발생할 경우, 모든 트래픽을 허용하여 가용성을 우선시하는 정책
    • Fail Close : 장애가 발생할 경우, 모든 트래픽을 차단하여 보안을 우선시하는 정책

📌 ARP 리다이렉트

  • 공격자가 ARP Reply 패킷의 MAC 주소를 위조하여 자신을 라우터처럼 위장하고 네트워크 내 트래픽을 가로채는 행위

📌 ICMP 리다이렉트

  • 공격자가 3계층에서 자신의 시스템을 라우터로 속여 패킷 경로를 변경하도록 유도하는 공격

📌 SPAN / Port Mirroring

  • 스위치의 특정 포트에 장비를 연결하여 다른 포트의 트래픽을 복사 및 분석할 수 있는 기능
  • 본래 네트워크 관리를 위해 사용되나 물리적 접근이 가능한 공격자에게 악용될 수 있음

<포트 미러링(Port Mirroring)>

  • 스위치에서 특정 포트를 복제하여 다른 포트로 전송하는 기능
  • 패킷 분석 및 네트워크 감시를 위해 사용됨

<포트 스캐닝(Port Scanning)>

  • 네트워크에서 특정 시스템(서버, 장치 등)의 열린 포트와 사용 중인 서비스를 식별하는 기술
  • 보안 점검, 네트워크 관리 및 해킹 공격의 사전 탐색(정보 수집) 목적으로 사용

2️⃣ 스니핑 방지 대책

  1. 수동적인 대응 방법
  • 스니핑이 발생하더라도 패킷 내용이 노출되지 않도록 SSL/TLS, VPN 등 암호화 기술을 활용하여 데이터를 보호
  1. 능동적인 대응 방법
  • ping 테스트: 네트워크에 존재하지 않는 MAC 주소로 위장된 ping 요청을 보내고, 이에 대해 ICMP Echo Reply가 반환되는 경우 스니퍼가 존재할 가능성을 판단
  • ARP Watch: 초기 IP 주소와 MAC 주소 매칭 데이터를 저장하고, ARP 트래픽을 모니터링하여 이상 패킷을 탐지하는 툴을 사용

3️⃣ tcpdump

  • 네트워크 트래픽을 캡처하고 분석할 수 있는 명령줄 기반의 패킷 분석 도구
  • 네트워크 인터페이스에서 전송 및 수신되는 패킷을 실시간으로 캡처하여 네트워크 상태를 모니터링하거나 문제를 진단할 때 주로 사용
  • 스니핑을 할 수 있는 도구

- 주요 옵션

옵션 설명 예제
-i [interface] 캡처할 네트워크 인터페이스 지정 tcpdump -i eth0
-w [filename] 캡처한 데이터를 .pcap 파일로 저장 tcpdump -w capture.pcap
-r [filename] 저장된 .pcap 파일을 읽음 tcpdump -r capture.pcap
-n 캡처한 패킷의 호스트 이름을 IP 주소로 표시 (DNS 조회 비활성화) tcpdump -n
-nn 포트 번호를 서비스 이름 대신 숫자로 표시 tcpdump -nn
-c [count] 캡처할 패킷의 개수를 지정 tcpdump -c 10
-s [snaplen] 캡처할 패킷의 길이를 지정, 기본값은 262144 tcpdump -s 128
-X 패킷 데이터를 16진수(hex)와 ASCII로 출력 tcpdump -X
-A 패킷 데이터를 ASCII 형식으로 출력 tcpdump -A
-v 출력 정보를 자세히 표시 (Verbose 모드) tcpdump -v
-vv 더 자세한 정보를 출력 tcpdump -vv
-e 링크 계층(header) 정보를 추가로 출력 tcpdump -e
-t 출력에서 타임스탬프를 제거 tcpdump -t
-q 출력 정보를 간략하게 표시 tcpdump -q
-C [filesize] 파일 크기가 지정된 값(메가바이트 단위)을 초과하면 새 파일로 분할 저장 tcpdump -w capture.pcap -C 10
-G [seconds] 지정된 시간(초 단위)마다 새 파일로 저장 tcpdump -w capture.pcap -G 60
-Z [user] tcpdump 실행 후 지정된 사용자로 권한을 변경 tcpdump -Z nobody
-F [file] 필터 조건을 파일에 저장한 뒤, 해당 파일을 로드하여 사용 tcpdump -F filter.txt

4️⃣ 스니퍼 탐지

📌 Sentinel을 이용한 스니퍼 탐지

  • Sentinel란 원격지 서버에서 네트워크 스니핑을 탐지하는 보안 툴로 다양한 방식(ARP, DNS, Etherping)을 통해 검사 수행
  1. ARP 테스트 : -a 옵션은 ARP 테스트를 수행하는 명령어
./sentinel –a –t 211.47.65.4
  1. DNS 테스트 : -d 옵션은 DNS 기반 스니핑 탐지 테스트이며 -f 옵션은 특정 출발지 IP(1.1.1.1)를 지정하여 DNS 응답 조작 여부 검사
./sentinel –d –f 1.1.1.1 –t 211.47.65.4
  1. Etherping 테스트 : -e 옵션은 Etherping 테스트를 수행
./sentinel –e –t 211.47.65.4
  1. 위와 같이 실행 시에 결과
Results: 211.47.65.4 tested positive to etherping test.
  • 해당 시스템의 인터페이스 카드가 promisc 모드로 설정되었을 가능성이 있다는 의미이므로 해당 인터페이스의 promisc 여부를 조사

📌 Ping을 활용한 스니퍼 탐지

  • 스니핑 장치는 일반적으로 TCP/IP 프로토콜을 기반으로 동작하므로 ICMP 패킷을 이용하여 탐지 가능

  • 탐지 방법

    1. 네트워크에 존재하지 않은 MAC 주소로 위장된 ping(ICMP Echo Request) 패킷을 특정 시스템으로 전송
    2. 정상적인 네트워크 환경에서는 응답이 오지 않아야 하지만 만약 해당 호스트가 ICMP Echo Reply를 반환하면 스니핑을 하고 있을 가능성 존재
    3. 이는 존재하지 않는 MAC 주소로 송신된 패킷을 수신한 호스트가 Promiscuous Mode(무차별 모드)로 설정되어 있다는 증거가 됨

📌 ARP을 활용한 스니퍼 탐지

  • Ping 기법과 유사한 방식으로 위조된 ARP 요청을 전송하여 스니퍼를 탐지하는 방법

  • 탐지 방법

    1. 가짜 ARP Request 패킷을 네트워크로 전송
    2. 정상적인 네트워크에서는 해당 요청에 대한 응답이 없어야 함
    3. 그러나 ARP Reply(응답)이 반환된다면, 해당 시스템이 Promiscuous Mode(무차별 모드)에서 네트워크 트래픽을 감청하고 있을 가능성 존재

📌 DNS를 활용한 스니퍼 탐지

  • 일반적으로 스니핑 툴은 사용자의 IP를 직접 표시하는 대신 도메인 이름을 변환하여 보여주는 기능인 Inverse-DNS Lookup을 포함

  • 탐지 방법

    1. 네트워크에서 DNS 트래픽을 모니터랑하여 Inverse-DNS Lookup이 과도하게 많이 발생하는지 감시
    2. 정상적인 환경에서는 특정 서비스에서만 Inverse-DNS Lookup이 수행
    3. 그러나 비정상적으로 빈번한 DNS 조회 요청이 감지된다면해당 시스템이 스니핑을 수행하고 있을 가능성이 존재

📌 유인(Decoy) 기법을 활용한 스니퍼 탐지

  • 공격자는 보통 사용자의 로그인 정보(사용자 ID 및 패스워드)를 도청한 후 이를 사용하여 시스템에 접근
  • 이를 역이용하여 미리 설정된 가짜 계정 정보를 유출시키고 이를 사용하는 공격자를 추적하는 기법

📌 ARP Watch를 활용한 스니퍼 탐지

  • 네트워크에서는 각 IP 주소와 MAC 주소가 매핑되며 ARP를 통해 이를 관리
  • ARP Watch 도구를 사용하여 초기 MAC-IP 매핑 정보를 저장하고 모니터링하며 네트워크 트래픽에서 ARP 테이블 변경이 감지되면 관리자에게 경고를 전송

📝 참고

https://kaite-story.tistory.com/66
https://blog.naver.com/wnrjsxo/221115871221
https://www.linux.co.kr/bbs/board.php?bo_table=lecture&wr_id=2618

0개의 댓글