lhywk 님의 블로그

[Network] 스니핑(Sniffing), 스푸핑(Spoofing) 본문

Network

[Network] 스니핑(Sniffing), 스푸핑(Spoofing)

lhywk 2026. 2. 27. 19:05

스니핑(Sniffing)

동물이 냄새로 먹이를 찾듯이, 네트워크에서 전송되는 데이터를 몰래 훔쳐보는 행위이다. 데이터를 훔쳐보기 때문에 '수동적 공격'으로 분류된다. 

예시: 템페스트(Tempest)와 같은 전자기 신호 분석 장비를 이용해 타인의 컴퓨터 정보를 훔치는 행위.

 

정상적인 네트워크 필터링

네트워크 카드(NIC)는 기본적으로 자신에게 올바른 MAC 주소와 IP 주소를 가진 패킷만 수신한다.

  • 조건: 데이터 링크 계층의 MAC 주소와 네트워크 계층의 IP 주소가 모두 자신의 것과 일치해야 패킷을 수신한다.
  • 결과: 다른 사람에게 온 패킷은 무시되므로 스니핑이 불가능하다.

 

필터링 해제 상태 (promiscuous 모드)

promiscuous 모드: 네트워크 카드가 모든 패킷을 수신하도록 설정된 상태를 의미한다.

  • 자기에게 오지 않은 데이터도 모두 받는다.
  • 이 상태에서는 스니핑이 가능하며, 해커가 데이터를 엿볼 수 있다.

 

스니핑을 하기 위한 조건

  • 좋은 랜카드: 단순 저가형보다는 패킷을 고속으로 처리할 수 있는 고성능 랜카드가 필요하다.
  • 패킷 분석 하드웨어: 초당 수십~수백 메가바이트 단위로 들어오는 패킷을 실시간으로 분석할 수 있는 하드웨어가 필요하다.

 

스니핑 공격 툴

  • TCP Dump: 네트워크 관찰 및 관제에 사용되는 강력한 스니핑 툴.
    • 불법적인 해킹보다는 관리자 느낌이 강하며, Snort라는 IDS(침입 탐지 시스템)의 기반이 된다.
    • 획득한 증거 자료는 법적 효력이 있다.
  • dsniff: 계정 및 패스워드 스니핑을 위한 자동화 툴.
    • Carnivore에 맞서기 위해 개발된 Altivore와 함께 대표적인 스니핑 툴로 알려져 있다.
    • ftp, telnet, http, pop, nntp, imap, snmp, ldap, rlogin, rip, ospf, pptp, ms-chap, nfs, yp/nis+, socks, x11, cvs, IRC, ATM, ICQ, Postgre SQL, Citrix ICA, Symantec pcAnywhere, MS SQL, auth, info 등 다양한 프로토콜의 패킷을 읽어낼 수 있다.

 

ARP 리다이렉트

네트워크의 데이터 링크 계층(2계층)에서 공격자가 MAC 주소 정보를 속여 패킷이 자신을 거쳐가도록 유도하는 공격 방식이다. 

  • 공격자가 자신을 라우터인 것처럼 위장하여 다른 사람의 데이터가 공격자 컴퓨터를 지나가게 만든다.
  • ARP 스푸핑과 매우 유사하며, 사실상 같은 기술로 분류된다.
  • MITM(Man-In-The-Middle) 공격 기법: 네트워크 트래픽을 중간에서 가로채는 기법이다.
  • 공격자는 MAC 주소, IP 주소, 포트 등 다양한 정보를 속일 수 있다.
  • 악의적 행위 시도: 스푸핑 공격을 통해 암호 세션 탈취, 네트워크 흐름 변경, 권한 상승 등 다양한 악의적 행위를 시도할 수 있다.
  • 원래는 사용자 → 라우터 → 인터넷 구조이지만, 공격자가 중간에 끼어들어 모든 사용자의 트래픽을 자신에게 보내게 만든다.
  • 공격자는 트래픽을 엿본 후, 다시 라우터로 보내서 사용자는 눈치채지 못한다.

 

ICMP 리다이렉트

네트워크 계층(3계층)에서 호스트가 잘못된 라우터로 패킷을 보낼 때, 더 나은 경로를 알려주는 ICMP 메시지를 통해 패킷의 흐름을 바꾸는 행위.

  • 정상적인 네트워크 기능이지만 악용되면 공격으로 변질된다.
  • 작동 원리 (정상적인 ICMP 리다이렉트 동작):
    • 호스트 A는 기본 라우터인 라우터 A로 모든 트래픽을 보냄.
    • 라우터 A는 패킷을 받은 후, "어? B로 바로 보내는 게 더 나아!"라고 판단.
    • 라우터 A는 호스트 A에게 "라우터 B로 직접 보내라"는 ICMP 리다이렉트 메시지를 보냄.
    • 호스트 A는 라우팅 테이블을 수정하여 다음부터는 라우터 B로 직접 보냄.
    • 원래는 네트워크 최적화를 위한 기능이다.

 

ICMP 리다이렉트 공격

  • 공격 순서:
    • 공격 대상은 정상적으로 라우터를 트래픽을 보냄.
    • 공격자가 가짜 ICMP 리다이렉트 패킷을 전송하여, "앞으로는 나한테 보내!"라고 유도.
    • 공격 대상은 공격자를 라우터로 착각하고 데이터를 전송함.
    • 공격자는 내용을 엿본 뒤, 다시 라우터로 전달(relay) → 사용자는 이상을 못 느낌.
  • 특징:
    • 네트워크 계층(3계층)에서 발생.
    • 공격자는 반드시 패킷을 전달(relay)해야만 통신이 끊기지 않아 탐지하기 어렵다.
    • 로컬 네트워크 아니어도 공격 가능 → ICMP는 범용적.
  • 대응 및 제안 사항
    • 최근 운영체제 대부분은 기본적으로 ICMP Redirect 기능을 차단한다.
    • 따라서 실제 공격이 가능한 환경은 제한적이며, ICMP Redirect 기능을 활성화한 특수 네트워크에서만 통한다.

 

스니퍼 탐지

스니퍼가 promiscuous 모드에서 작동한다는 점을 이용하여 능동적인 탐지를 통해 잡아낼 수 있다.

 

1. ping을 이용한 스니퍼 탐지:

  • 방법: 존재하지 않는 MAC 주소로 ping을 보냄.
  • 정상 시스템: 자신과 무관하므로 응답 없음.
  • 스니핑 시스템: promiscuous 모드 상태이므로 해당 패킷을 받아보고 ICMP 응답을 보냄.
  • 결과: 응답이 오면 스니핑 중임을 탐지할 수 있다.

2. ARP를 이용한 스니퍼 탐지:

  • 방법: 존재하지 않는 장치로 위조된 ARP Request 전송.
  • 정상 시스템: 반응 없음.
  • 스니핑 시스템: 수신하고 ARP Response를 보냄.
  • 결과: 응답이 오면 promiscuous 모드로 동작 중임을 의심할 수 있음.

3. 유인을 이용한 스니퍼 탐지:

  • 방법: 일부러 가짜 ID/PW를 네트워크에 뿌림.
  • 목적: 스니퍼가 해당 정보로 접속 시도하면 탐지 가능.
  • 결과: 관리자가 미끼 정보로 공격자를 유도하여 잡는 방법.

 

암호화 (수동적인 보안 대책)

  • SSL (Secure Sockets Layer) / TLS (Transport Layer Security):
    • 역할: 웹사이트와 사용자 사이의 데이터 전송을 암호화한다.
    • 사용처: 쇼핑몰, 로그인 페이지 등 브라우저에서 주로 사용된다.
    • 예시: https로 시작하는 웹사이트에서 신용카드 정보를 전송할 때 사용된다.
  • SSH (Secure Shell):
    • 기능: 텔넷과 같은 원격 접속 서비스를 암호화하여 안전하게 사용하게 한다.
    • 지원: OpenSSL 라이브러리에서 기본 제공된다. 
    • 주의: 도청 도구 dsniff를 이용하면 SSH도 공격당할 수 있다.

 

ARP 스푸핑

  • MAC 주소를 속여 네트워크 통신을 가로채는 공격이다.
  • 공격자가 다른 장치인 척하면서 패킷의 흐름을 자신에게 유도한다.
  • 공격자는 패킷을 가로챈 뒤 원래 목적지로 다시 보내주기 때문에, 사용자 입장에선 눈치채기 어렵다.

철수(IP: 10.0.0.2 / MAC: AA), 영희(IP: 10.0.0.3 / MAC: BB), 명호(공격자, IP: 10.0.0.4 / MAC: CC)

  1. 명호(공격자)는 철수에게 "나는 영희야", 영희에게 "나는 철수야"라고 ARP 패킷을 보냄 (MAC 주소 속임).
  2. 철수와 영희는 서로 직접 통신하는 줄 알지만, 사실은 모든 패킷이 명호(공격자)를 거쳐 전달됨.
  3. 명호는 패킷을 읽고 다시 전달함 (스니핑 + MITM).

  • 패킷 흐름 변화 (공격 전/후 비교):
    • 공격 전: 철수 ↔ 영희 (직접)
    • 공격 후: 철수 ↔ 명호 ↔ 영희, 영희 ↔ 명호 ↔ 철수
    • 결과: 공격 후에는 모든 트래픽이 공격자를 거쳐 감 → 도청 및 조작 가능

 

IP 스푸핑

  • IP 주소를 속이는 공격
    • 다른 사용자의 IP를 강탈하여 권한을 획득하고, 트러스트 관계를 맺고 있는 서버와 클라이언트를 확인한 후 클라이언트에 서비스 거부 공격을 해 연결을 끊음 → 공격자가 클라이언트의 IP 주소를 확보해 실제 클라이언트처럼 패스워드 없이 서버에 접근하는 공격.
  • IP 스푸핑은 케빈 미트닉의 공격을 일컫는 것이 정석.
  • 최근에는 TCP 세션 하이재킹을 IP 스푸핑이라고 부르기도 함.

 

DNS 스푸핑

공격자가 DNS 서버보다 더 빨리 거짓 DNS 응답을 보내, 사용자가 원래 접속하려던 사이트 대신 가짜 사이트로 유도하는 공격이다.

 

정상적인 DNS 서비스 작동 흐름

  1. 사용자가 www.example.com에 접속하려고 함.
  2. DNS 서버에 도메인 이름을 질의 (DNS Query).
  3. DNS 서버가 올바른 IP 주소를 응답 (DNS Reply).
  4. 사용자는 그 IP 주소로 웹 서버에 접속.

모든 통신이 DNS 서버와 클라이언트 간 정상 작동.

 

DNS 스푸핑 공격 단계

1단계: DNS Query 감지

  • 사용자가 DNS 요청을 보내면, 공격자는 이를 가로채거나 미리 알고 대기.

2단계: DNS Response 선점

  • DNS 서버보다 더 빠르게 공격자가 응답을 보냄.
  • 클라이언트는 공격자의 DNS 응답을 먼저 받음 → 가짜 IP 주소 저장.

3단계: 가짜 웹 서버 접속 유도

  • 클라이언트는 응답받은 잘못된 IP로 웹 접속함.
  • 공격자가 만든 위조된 사이트(피싱)로 연결됨 → 개인 정보 탈취 위험.

 

출처

  • 양대일, 홍성혁, IT@CookBook,네트워크 해킹과 보안(4판)

'Network' 카테고리의 다른 글

[Network] 네트워크 보안  (0) 2026.03.01
[Network] 전송 계층  (0) 2026.02.27
[Network] 네트워크 계층  (0) 2026.02.26
[Network] 데이터링크 계층  (0) 2026.02.26
[Network] 물리 계층(네트워크 인터페이스 계층)  (0) 2026.02.26