스니핑
: 악의적인 사용자가 전송자와 수신자 사이의 통신 패킷 도청. 수동적(Passive) 공격
스니핑의 개념
- 네트워크 트래픽을 도청(엿듣기)
- 전화선이나 UTP에 Tapping 해서 전기신호를 분석하여 정보를 찾아냄
- 전기 신호를 템페스트(Tempest) 장비를 이용해 분석
- 스니퍼(sniffer): 네트워크 스니핑을 할 수 있는 도구
스니핑 방법
- LAN(Local Area Network) 환경에서 가능: LAN 카드, 허브, 스위치
- LAN카드(PC 장착) or 허브 환경: 프러미스큐어스 모드로 조작하여 패킷 수신
- L2 스위치 환경: ARP Redirect 조작하여 공격자를 라우터로 속이고 패킷 수신
LAN 스니핑
※ LAN 카드(NIC): IP주소 값과 고유한 MAC 주소 값 보유
- 네트워크 상 컴퓨터는 동일한 전송매체를 공유하고, 패킷을 전송
- LAN 카드는 패킷의 MAC주소와 IP주소를 참고하여 필터링
- LAN 카드 모드 변경( ∵ 스니핑): Normal 모드 → 프러미스큐어스 모드
※ 프리미스큐어스 모드(Promiscuous Mode): SW적으로 스니핑
- 2계층과 3계층 필터링을 해제시켜 LAN 카드(NIC)에 들어오는 모든 트래픽을 수신
- 즉, MAC 주소와 IP주소에 관계없이 모든 패킷을 스니퍼에게 넘겨줌
- LAN 카드 모드 설정(리눅스, 유닉스): ifconfig eth0 promisc
- 윈도우: 스니핑을 위한 드라이버 설치
※ 바이패스 모드(Bypass Mode): HW적으로 스니핑
- 패킷에 대한 분석까지 하드웨어로 구현되어 있는 LAN 카드
- 스니핑을 하기 위한 장비
스위칭 환경 스니핑
※ 스위칭 환경(L2 프레인 통신을 위한 교환 장비)
- 스위치는 MAC Adress Table(각 호스트의 MAC 주소를 확인하여 포트 할당)을 보유
- (허브 대비)목적지가 자신인 패킷 외에는 받아볼 수 없으므로(프러미스큐어스 불가) 스니핑 방어 장비로 활용 가능
스위칭 환경 스니핑 공격
※ 스위치 재밍(Switch Jamming): 스위치를 직접 공격(MAC Flooding 공격)
- MAC 주소 테이블 오버플로우: 공격자는 다량의 위조된 ARP Reply(위조 MAC 주소)를 지속적으로 전송
- 스위치의 MAC 주소 테이블이 가득차게 만들어 허브처럼 브로드캐스팅 동작시켜(Fail Open) 패킷 스니핑 가능한 환경을 만듦
※ ARP Redirect: 공격자가 자신이 라우터인 것처럼 MAC 주소 위조
- 공격자가 피해자 PC의 ARP cache table 조작(Cache poisoning)하는 2계층 공격(ARP 프로토콜의 평문으로 주고받는 구조적 취약점을 이용)
- (cf. ARP Spoofing: 호스트 대 호스트 공격 / ARP redirect: 모든 호스트 대 라우터)
- 라우터와 피해대상 사이에서 속이는 공격(Spoofing 일환)
① 공격자는 자신의 MAC주소를 라우터의 MAC주소라고 속이고, 위조된 ARP 정보를 Broadcasting 형태로 네트워크로 연결된 모든 호스트에 전송 (ARP reply)
② 호스트는 공격자가 라우터인줄 알고 패킷을 보냄
③ 공격자는 수신한 모든 패킷을 다시 라우터로 릴레이(중계)
※ ICMP Redirect: 네트워크에 라우터(or 게이트웨이) 2개 이상 운영
- ICMP Redirect 메시지: 송신자로부터 패킷을 수신받은 라우터가, 특정 목적지로 가는 더 짧은 경로를 갖는 다른 라우터가 있음을 알릴 때 사용되는 메시지(ICMP Type 5)
- ICMP Redirect 메시지를 수신받은 호스트는 자신의 라우팅 테이블에 특정 목적지로 가는 게이트웨이 주소를 변경
- 공격 대상에 위조된 ICMP Redirect 패킷 보낸 후 공격자 호스트가 라우터라고 인지하도록 하여 공격자를 거쳐 라우터에 relay(중계)
- 3계층 공격. 피해자의 라우팅 테이블 변조
스니핑 공격 대응책
※ 능동적 대응책
① ping을 이용한 탐지
: 의심이 가는 호스트에 네트워크에 존재하지 않는 MAC 주소를 위장하여 ping 보냄.
만약 ICMP Echo Reply를 받으면 해당 호스트의 스니핑 탐지(∵존재하지 않는 MAC주소라면 ping은 유실)
② ARP를 이용한 탐지
: 위조된 ARP Request를 스니퍼임을 확인하고자 하는 시스템에 보냄
대상 시스템이 ARP Response 응답을 보내면, 프러미스큐어스 모드 동작중인 스니퍼임을 확인
③ DNS를 이용한 탐지
: 테스트 대상 네트워크로 Ping Sweep을 보내고, 들어오는 Inverse-DNS lookup 감시
④ Decoy(유인)를 이용한 탐지(허니팟)
: 가짜 정보(계정, 패스워드)를 뿌려 공격자가 가짜 정보로 접속을 시도하면, 접속을 시도하는 시스템 탐지
⑤ ARP Watch를 이용한 탐지
※ 수동적(예방적) 대응책(통신 암호화)
① SSL(Secure Socket Layer): 암호화된 웹 통신 (현재 TLS)
② PGP, PEM, S/MIME: 암호화된 이메일 전송
③ SSH(Secure Shell): 서비스 암호화(telnet)
④ VPN(Virtual Private Network): 암호화된 트래픽. L2(PPTP), L3(IPSec)
공부하면서 학습 목적으로 작성한 포스팅이므로 내용이 완전하지 않습니다ㅠ
계속해서 학습 후 지식이 좀 더 쌓이면 수시로 수정해나갈 예정입니다!
틀린 내용은 둥글게 댓글 달아주시면 빠른 확인 후 수정하겠습니다. :)
참고
'보안 > 네트워크 보안' 카테고리의 다른 글
세션 하이재킹(Session Hijacking) (0) | 2020.12.14 |
---|---|
스푸핑(Spoofing) (1) | 2020.12.14 |
스캐닝 공격 분석(Nmap, 와이어샤크 이용) (0) | 2020.12.14 |
사이버공격 - 정보수집(스캐닝) (0) | 2020.12.13 |
사이버공격 - 정보수집 (0) | 2020.12.13 |
댓글