본문 바로가기
정보보안

스니핑(Sniffing)

by asd135 2025. 4. 20.
728x90

스니핑(Sniffing)

sniff는 냄새를 맡다, 코를 킁킁거리다는 뜻

네트워크 보안에서는 송신자와 수신자가 주고받는 데이터 중간에서 도청하는 것

 

스니핑 기법1: 허브 환경에서 스니핑

허브란?

입력으로 받은 패킷을 나머지 모든 포트에 전송하며, 패킷을 받은 컴퓨터는 자신의 MAC 주소가 아닌 패킷들은 필터링해서 거름

 

네트워크 카드: 무차별 모드(Promiscuous Mode)로 설정

평소에는 자기 MAC 주소에 해당되는 패킷만 수신했지만, 무차별 모드를 켜면 -> 모든 패킷을 수신

 

 

스니핑 과정

1. 허브는 데이터를 모든 컴퓨터로 브로드캐스트

2. 네트워크 카드는 원래 자기 MAC 주소가 아니면 패킷을 무시

3. 하지만 무차별 모드로 바꾸면 모든 패킷을 수신

4. 결과: 남의 통신 내용을 엿볼 수 있음

 

스니핑 기법2: 스위치 환경에서의 스니핑

스위치란?

MAC 주소 정보를 이용하여 패킷을 해당 목적지로만 전달 -> 무차별 모드로 세팅해도 스니핑이 불가능

 

방법1. 모니터링 포트(Monitoring Port)를 이용한 스니핑

모니터링 포트: 스위치를 통과하는 모든 패킷의 내용을 전달하는 포트, 물리적으로 스위치에 접근이 가능하면 모니터링 포트를 통해 스니핑 가능

 

 

 

방법2. 스위치 재밍을 이용한 스니핑

스위치의 MAC 주소 테이블의 크기는 한정되어 있음, 공격자가 많은 가짜 MAC 주소를 가진 패킷을 계속 스위치에 보내면 

스위치는 매핑 테이블에 계속 새로운 MAC 주소 등록 -> 결국 스위치의 MAC 테이블이 꽉 참

결론: 스위치는 브로드캐스트 모드로 작동하고 위 허브처럼 동작하게 됨 

 

방법3. 스푸핑 공격 기법을 이용

공격자가 자신을 다른 사람인 척 속여서 통신 내용을 가로채는 방식

대표적인 스푸핑 기법: ARP 스푸핑

 

ARP 스푸핑 공격 시나리오

1. A와 B가 정상 통신 중 (A가 B로 패킷을 보냄)

2. 공격자 C가 A에게 "나 = B야" 그리고 B에게도 "나 = A야"라고 거짓 ARP 정보를 보냄

3. A -> C -> B 식으로 트래픽이 공격자를 거쳐서 흐르게 됨

4. C는 둘의 내용을 훔쳐보거나, 변조할 수도 있음

 

스니핑 방지 대책

1. 웹 환경의 HTTPS: HTTP 웹 표준 프로토콜 + SSL/TLS 암호화 통신 프로토콜

브라우저와 서버 간의 모든 데이터가 암호화되어 전송됨, 중간에서 훔쳐본다고 해도, 암호화된 내용밖에 못봄

 

2. 이메일 환경의 PGP와 S/MIME(이메일 암호화)

1. PGP (Pretty Good Privacy): 사용하기 편하고 사용된 알고리즘의 안전성이 높기 때문에 대중적으로 널리 사용

2. S/MIME (Secure / Multipurpose Internet Mail Extensions): 수신자의 공개키로 암호화, 전자서명으로 발신자의 신원을 보증하고 위조 방지

 

3. 원격 접속을 위한 SSH

원격 접속을 암호화된 터널로 안전하게 수행하는 프로토콜, 기존 보안이 취약한 Telnet, FTP 대체

TCP 22번 포트 사용

암호화 + 인증 + 무결성 보장

 

4. VPN

논리적으로는 전용선을 이용, 물리적으로는 인터넷을 이용

터널링기술: 두 지점 사이에 논리적인 터널을 만드는 것, 이 안에서 주고받는 모든 데이터는 암호화되어 전달됨

 

내부망 VPN: 양쪽에 VPN 라우터나 방화벽 장비를 설치하고 터널 생성-> 인터넷을 통해 마치 전용선처럼 안전하게 통신

외부접속 VPN: 컴퓨터에서 VPN 클라이언트를 실행, 회사 VPN 서버에 접속해 터널 생성

 

5. 스위치의 정적 매핑 테이블 사용

스위치의 매핑 테이블을 정적(static)으로 설정 예시로 "컴퓨터 A의 MAC 주소는 항상 X이고, 그 컴퓨터의 IP 주소는 Y"라고 미리 설정

재밍 공격, 스푸핑 공격을 당하더라도 MAC/IP 주소값이 바뀌지 않아 안전

네트워크 환경이 큰 경우에는 등록해야 하는 컴퓨터가 많기 때문에 관리가 번거로운 단점이 있음 

 

6. 명령어 ping을 이용하는 방법

존재하지 않는 IP 주소에 대한 요청에도 응답이 오는지 확인, 예) ping 172.16.115.133 → 응답이 없어야 하는데도, 응답이 온다면?

무차별 모드가 켜져 있는 장비가 네트워크 상에 존재한다는 의미 

 

7. ARP를 이용하는 방법

ping을 이용한 방법과 유사한 방법

존재하지 않는 IP 주소를 이용하여 ARP 요청을 보냄 -> 응답 여부를 통해 스니핑 중인지를 판단

 

8. DNS 방법

존재하지 않는 IP 주소에 ping을 보낸 뒤, 해당 IP에 대한 도메인 이름을 조회(DNS 역조회)가 오는지 확인

유인 방법: 일부러 가짜 사용자 ID와 패스워드를 유출 -> 공격자가 이러한 ID와 패스워드를 사용하게 함

이후 네트워크 감시 프로그램을 이용하여 유출된 ID가 사용되는지를 분석

 

9. 호스트 기반 탐지

의심이 되는 컴퓨터에서 실제 명령을 실행, 리눅스나 유닉스에서 ifconfig 명령을 실행 

실행 결과에 PROMISC가 보이면 무차별 모드가 켜져 있다는 뜻 -> 스니핑 도구가 돌아가고 있을 가능성이 높음 

 

10. 네트워크 기반 탐지 도구: ARP watch

현재 네트워크의 MAC 주소와 IP 주소에 대한 정보를 생성하는 도구, 누군가 이 정보를 바꾸면 관리자에게 알림을 보내줌

 

'정보보안' 카테고리의 다른 글

암호화, 대칭 암호화  (0) 2025.05.26
쓰레드를 이용한 소켓 통신  (0) 2025.05.25
소켓 통신  (0) 2025.05.25
네트워크, 전송 계층 TCP/IP 프로토콜의 연관성  (0) 2025.04.15
HTTP 통신 프로토콜  (1) 2025.04.11