Sniffing

  • 코를 킁킁거리면서 음식을 찾는 동물처럼 데이터 속에서 정보를 찾는 것을 의미
  • 수동적 공격이라고도 함
  • 예) 도청, 전기적 신호를 템페스트 장비로 분석하는 것 등

스니핑 공격의 원리

a1.png

  • 네트워크 카드에 인식된 데이터 링크 계층과 네트워크 계층의 정보가 자신의 것과 일치하지 않는 패킷은 무시
  • 프러미스 큐어스 모드: 데이터 링크 계층과 네트워크 계층의 필터링을 해제해 스니핑이 가능한 상태(프러미스큐어스 모드 상태에서는 MAC 주소와 IP 주소에 관계없이 모든 패킷을 스니퍼에게 넘겨준다.)

스니핑 공격 툴

TCP Dump

a2.png

  • 네트워크 관찰 및 관제에도 사용하는 가장 일반적이며 강력한 스니핑 툴
  • 불법적인 해킹 느낌보다는 관리자 느낌이 강함
  • Snort라는 IDS의 기반
  • TCP Dump로 획득한 증거 자료는 법적 효력이 있음

fragrouter

a3.png

  • 스니핑을 보조해주는 툴로, 스니핑한 패킷을 원래 주소지로 다시 보내줌

dsniff

  • 계정 및 패스워드 스니핑을 위한 자동화 툴
  • 해커들이 범죄 용의자 추적용인 카니보어에 맞서기 위해 개발한 알트보어와 함께 대표적인 스니핑 툴로 알려짐
  • dsniff가 읽어낼 수 있는 패킷
    • ftp, telnet, http, pop, nntp, imap, snmp, ldap, rlogin, rip, ospf, pptp, ...
  • dsniff에 포함된 툴
기능
filesnarf NFS 트래픽에서 스니핑한 파일을 현재 디렉터리에 저장한다.
macof 스위치 환경에서 스위치를 허브와 같이 작동시키기 위해 임의의 MAC 주소로 스위치의 MAC 테이블을 오버플로시킨다.
mailsnarf SNMP와 POP트래픽을 스니핑해 이메일을 볼 수 있게 한다. 스니핑한 이메일은 mail 클라이언트로 볼 수 있다.
msgsnarf AOL메신저, ICQ 2000, IRC, Yahoo 메신저 등의 채팅 메시지를 선택해 스니핑한다.
tcpkill 특정 인터페이스를 통해 탐지할 수 있는 TCP 세션을 모두 끊는다.
tcpnice OCMP source quench 메시지를 보내 특정 TCP 연결을 느리게 만든다. 속도가 빠른 네트워크에서 스니핑을 할 때 유용하다.
arpspoof ARP 스푸핑 공격을 실행한다
dnsspoof DNS 스푸핑 공격을 실행한다
urisnarf CLF에서 HTTP프래픽을 스니핑하여 선택된 URL을 알려준다
dsniff 여러 프로토콜에 대한 암호 스니퍼
sshmitm SSH monkey-in-the-middle, 프록시 및 SSH 트래픽 스니핑
sshow SSH 트래픽 분석기
webmitm HTTP/HTTPS 중간자 공격
webspy 클라이언트에서 스니핑된 URL을 로컬 브라우저로 보냄(libx 11-6 설치 필요)

스위치 환경에서의 스니핑

스위치의 본래 명칭은 ‘포트 스위칭 허브’이며, 스위치 안에는 포트에 대한 MAC 주소 테이블이 존재

ARP(Address Resolution Protocol) 리다이렉트

  • 데이터 링크 계층(2계층)에서 MAC 주소를 속여 패킷의 흐름을 바꿈
  • 즉, 공격자가 자신을 라우터라고 속이는 것
  • ARP 스푸핑과 아주 비슷
  • ARP 리다이렉트 → 스니핑의 일종, 소극적 공격
  • ARP 스푸핑 → 단순 도청이 아닌 거짓 패킷 전송 → 적극적 공격

ARP란?
시스템은 호스트들의 MAC주소를 모흠 -> 브로드 캐스트로 모든 호스트에 request를 보내 응답한 호스트의 MAC주소에 IP를 매핑하는 프로토콜

ARP 리다이렉트의 개념도

a4.png

공격자가 다른 호스트에게 지속적으로 자신의 IP & 라우터의 MAC주소를 보내 ARP테이블에 자신이 라우터라고 착각하도록 유도.
타겟들은 공격자를 라우터로 인식하여 패킷을 공격자에게 보내게 됨.
공격자는 의심받지 않고 통신을 유지하기 위해 받은 패킷을 진짜 라우터로 리다이렉트함.

ICMP 리다이렉트

  • 네트워크 계층(3계층)에서 스니핑 시스템이 네트워크에 존재하는 또 다른 라우터라고 알려 패킷의 흐름을 바꾸는 공격
  • 보통 네트워크에는 라우터나 게이트웨이가 하나인데 이 하나로 감당할 수 없을 때는 라우터 게이트웨이를 두 개 이상 운영해 로드 밸런싱을 해야 함

ICMP 리다이렉트의 개념도

a5.png

  1. 호스트 A에 라우터 A가 기본으로 설정되어 있기 때문에 호스트 A가 원격의 호스트 B로 데이터를 보낼 때 패킷을 라우터 A로 보냄
  2. 라우터 A는 호스트 B로 보내는 패킷을 수신한다. 그리고 라우팅 테이블을 검색해 호스트 A가 자신을 이용하는 것보다 라우터 B를 이용하는 것이 더 효율적이라고 판단해 해당 패킷을 라우터 B로 보냄
  3. 라우터 A는 호스트 B로 향하는 패킷을 호스트 A가 자신에게 다시 전달하지 않도록 호스트 A에 ICMP 리다이렉트 패킷을 보내어 호스트 A가 호스트 B로 보내는 패킷이 라우터 B로 바로 향하게 함
  4. 호스트 A는 라우팅 테이블에 호스트 B에 대한 값을 추가하고 호스트 B로 보내는 패킷은 라우터 B로 전달

💡현대 네트워크 환경에서는, OS 자체적으로 ICMP 리다이렉션을 차단하는 경우가 많아 공격이 어렵다.

스위치 재밍(Jamming)

  • 스위치가 MAC 주소 테이블을 기반으로 패킷을 포트에 스위칭할 때 정상적인 스위칭 기능을 마비시키는 공격
  • 스위치에 저장 용량 이상의 MAC 주소를 보내 스위치 기능을 잃고 더미 허브처럼 작동하게 만듦
  • 스위치 재밍은 MAC 테이블을 위한 캐시 공간에 버퍼 오버플로 공격을 실시하는 것이라고 생각해도 무방
  • 스위치에는 Fail Close 기능 없음
    • Fail Open : 고장 시 열림. 장애 발생 시 특정 요소(트래픽, 권한, 서비스 등)를 허용하는 정책
    • Fail Close : 고장 시 닫힘. 장애 발생 시 특정 요소(트래픽, 권한, 서비스 등)를 차단하는 정책

SPAN(Switch Port Analyzer)

a6.png

  • 스위치의 포트 미러링 기능을 이용하기 위해 특별히 설정하는 장치
  • SPAN은 주로 시스코에서 사용하는 용어이며, 포트 로빙으로 부르기도 함
  • SPAN은 상당히 많은 문제점이 있어 효과적인 모니터링에 어려움이 있음
    • 이를 해결할 수 있는 방법이 바로 태핑
  • SPAN은 기본적으로 네트워크 장비에서 간단한 설정으로 활성화되지만 포트 태핑은 하드웨어 장비를 이용

💡위 그림과 같이 스위치 회선의 대역폭이 똑같이 1Gb 인 경우, 확인해야하는 패킷 최대 대역폭 합은 2Gb인데 비해 SPAN에서는 같은 1Gb이므로 50%의 loss가 발생

SPAN vs TAP

a7.png

  • TAP장비를 활용하여 SPAN의 문제를 위 그림과 같이 해결할 수 있음.

스니핑 공격에 대한 대책

  • 능동적 → 스니퍼 탐지, 수동적 → 패킷 암호화
  • 스니퍼가 프러미스큐어스 모드에서 작동한다는 점을 이용한 능동적인 탐지를 통해서만 잡아낼 수 있음

능동적 보안 대책

Ping을 이용한 스니퍼 탐지
네트워크에 존재하지 않는 MAC 주소를 위장해서 보내 자신에게 해당하지 않는 ping에도 ICMP Echo Reply를 되돌려 보내는 경우, 스니핑을 하고 있다고 탐지할 수 있음

ARP를 이용한 스니퍼 탐지
ping 이용과 유사한 방법 위조된 ARP Request를 보냈을 때 ARP Response가 오면 프러미스큐어스 모드로 설정되어 있는 것

DNS를 이용한 스니퍼 탐지
테스트 대상 네트워크로 ping sweep을 보내고 들어오는 Reverse-DNS lookup을 감시해 스니퍼를 탐지

IP를 보내면, DNS서버가 아닌데도 불구하고 도메인 네임을 넘겨주는 개체가 있음, 그럼 스니핑 당하고 있다라고 추측(대부분의 DNS 서버는 Reverse-DNS lookup를 지원하지 않음)

유인을 이용한 스니퍼 탐지
보안 관리자는 가짜 아이디와 패스워드를 네트워크에 뿌린 후 공격자가 이 아이디와 패스워드로 접속을 시도하는 스니퍼를 탐지

ARP watch를 이용한 스니퍼 탐지
▪ ARP watch는 MAC 주소와 IP 주소의 매칭 값을 초기에 저장하고 ARP 트래픽을 모니터링해 이를 변하게 하는 패킷이 탐지되면 관리자에게 메일로 알려주는 툴
▪ nmap을 이용하면 특정 시스템이 스니퍼로 동작하고 있는지 확인 가능

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

SSL(Secure Sockets Layer)
▪ 암호화된 웹 서핑을 가능하게 함
▪ SSL은 많은 웹 서버 브라우저에 구현되어 있음
▪ 예) 쇼핑몰 사이트에 접속해서 물건을 구매하기 위해 신용카드 정보 등을 보낼 때 사용

PGP, PEM, S/MIME
▪ PGP와 PEM, S/MIME 모두 이메일을 전송할 때 사용하는 암호화 방법
▪ PGP는 내용을 암호화하는데 IDEA 방법을 쓰고 IDEA 키와 전자 서명을 암호화하는 데 RSA 알고리즘을 씀 (IDEA: International Data Encryption Algorithm-대칭키 암호알고리즘) (RSA:Rivest, Shamir, Adleman-공개키암호알고리즘)
▪ PEM은 공개키 암호화 표준(PKCS)을 따르며 CA라는 공인된 인증기관에서 키를 관리, 데이터 암호화에 DES-EDE, 키 암호화에 RSA 사용
▪ S/MIME는 이메일 표준인 MIME 형식에 암호화 서비스만을 추가한 것이다, PKCS기반, 디지털 인증서 X.509 사용

SSH(Secure Shell)
▪ 텔넷 같은 서비스 암호화를 위해 사용하는 것으로, 이미 설치한 OpenSSL 라이브러리가 SSH를 지원
▪ dsniff를 이용해 공격을 하면 SSH를 이용하더라도 공격을 당할 수 있음

VPN
▪ 원래 사설 네트워크를 설치하는 데 많은 비용이 들기 때문에 한 회선을 여러 회사가 공유해 비용을 절감하려는 목적으로 개발된 것
▪ 전송되는 데이터들이 각 회사의 사내 정보이므로 기밀성 요구됨 → 기본적으로 암호화 수행
▪ VPN을 제공하는 시스템이 해킹을 당할 경우 암호화되기 이전에 데이터가 스니핑이 될 수 있음