Sniffing and Spoofing
네트워크 배경에 대한 복습과 패킷 분석하는 방법에 대해 알아보자.
네트워크 하드웨어
허브
여러개의 포트에 RJ-45 케이블(=LAN 케이블) 을 꽂아서 사용한다.
허브와 연결함으로써 각각의 컴퓨터가 하나의 네트워크를 구성할 수 있다.
*허브의 특징 : 포워딩 테이블(MAC table)을 고려하지 않는다. A한테 신호를 받았을 때, 목적지인 B한테만 보내는게 아니라 Broadcasting을 하는 기법을 쓴다. 하지만 B만 디코딩을 하고 C,D는 패킷을 버림. --> multi-port repeater
BUT 신호가 중첩되면 충돌이 발생하여 해석이 불가능해지고 성능이 저하되어 신호가 담고있는 정보가 옳바르게 전달될 수 없다.
그래서 Hub 대신에 Layer-2 Switch를 쓴다. (다른 명칭 : 브리지, 스위칭 허브, 브리징 허브, 등)
Layer-2 Switch는 Hub와 다르게, 브로드캐스팅을 하지 않고 스위치가 목적지에만 데이터를 보낸다. (traffic 감소)sh
Switch는 연결된 각각의 장치의 Layer 2 주소를 CAM테이블 ( Content-addressable memory table)에 저장한다.
CAM table 다른 명칭 : MAC(forwarding) table ..... 틀린표현 : ARP table
MAC Table vs ARP Table (강의 자료)
MAC Table
- 스위치에서 MAC 주소를 알기 위해 쓰인다
- 5분마다 expire
ARP Table
- MAC 주소, IP 주소를 찾기위해 쓰임
- ARP 항목이 없으면 ARP 브로드캐스트가 전송되고 테이블이 응답으로 업데이트된다
- 2~4시간마다 expire
- 각 호스트는 각각의 ARP 테이블을 관리한다.
- Layer 3 Switch 에서는 Forwarding table 과 ARP table 두 개가 존재한다.
왜냐하면 관리 인터페이스 및 서브넷 간 forwarding 을 수행하기 위해 라우터 기능이 필요하기 때문이다.
Layer-3 Router : 두 개 이상의 네트워크를 연결, 패킷 전송을 할 수 있는 라우터
라우터란, 스위치나 허브보다 훨씬 높은 수준의 기능을 가진 고급 네트워크 장치이다.
Layer-3 Router의 장점 : 각각 스위치로 연결되어있는 컴퓨터들 사이에서, 전송되는 데이터는 주변에 있는 호스트가 받지않더라도 정해진 경로로 전달이 된다
Network Traffic
Broadcast Traffic (1:N) - L2 (Link Layer)에서 MAC 주소 ff:ff:ff:ff:ff:ff 라는 주소로 브로드캐스팅 함 - L3에서는 192.168.0.20에 대해 네트워크 주소에서 호스트 ID를 모두 1로 바꾼 주소를 Broadcast Address
Multicast Traffic (1:N , N이라는 다수가 ALL이 아니라 일부)
Unicast Traffic (1:1)
Broadcast Domain
: 브로드캐스트 패킷이 이동할 수 있는 범위, 네트워크 세그먼트가 라우터를 통하지 않고 다른 컴퓨터로 전송될 수 있는 범위임
Packet Analysis and Packet Sniffers
Packet Analysis (= 패킷 분석, 패킷 스니핑, 프로토콜 분석)
- 네트워크에서 무슨 일이 일어나는지 (즉, 네트워크의 동작) 이해하기 위해 네트워크의 라이브 데이터를 캡처하고 해석 하는 과정
- 패킷 스니퍼로 캡처, 분석함.
패킷 스니퍼 : 와이어에서 통하고 있는 네트워크 데이터 그 자체를 캡처하는 HW, SW 장치(툴)
뭘 얻을 수 있는가 ?
- 네트워크 특성
- 네트워크 연결 사용자
- 사용가능한 bandwith
- 네트워크 활용의 피크 타임
- 악성 활동을 감지
- 비정상적으로 동작하는 어플리케이션 감지
패킷 스니퍼 장치를 만들어보자.
- 노트북에서 네트워크 패킷을 스니핑 하려면 promiscuous mode 드라이버를 지원하는 Network Interface Card (NIC) 필요
* promiscuous mode가 NIC가 모든 패킷을 볼 수 있게 해줌. Promiscuous mode 가 아니면, 본인의 주소가 아닌 패킷 버림
* Wi-Fi(무선랜)에서, monitor mode 도 가능
* 대부분의 NIC는 Promiscuous 모드를 지원하며, Wireshark에는 libpcap/WinPcap 드라이버가 포함되어 있어 Wireshark GUI에서 NIC를 직접 promiscuous mode로 전환할 수 있음 (data sheet 에서 분석 가능)
Hub Sniffing
- Hub만을 이용해서 네트워크를 Sniffing 하는 것은 모든 패킷 분석가의 꿈( ... ?)
* 컴퓨터와 그 허브를 이용하는 모든 장치의 소통 과정을 볼 수 있음
* 하지만, 허브-기반 네트워크는 굉장히 드물다. 왜냐 ? 관리자가 골치가 아프다 (...?) (높은 패킷 충돌 가능성, 네트워크 성능 저하 때문에)
- 허브 스니핑은 무한한 Visibility Window를 제공함.
* Visibility Window : 패킷 스니퍼로 트래픽을 볼 수 있는 네트워크 상의 장치
스위치 환경 Sniffing
- Switch가 요즘엔 연결 장치로 사용되는 장치 중에 가장 흔한 타입이다.
- 스위치의 포트에 스니퍼를 연결하면, 스니퍼가 연결된 장치의 송수신 트래픽만 볼 수 있다.
* 캡처하는데 4가지 방법이 있다.
: port mirroring, hubbing out, using a tap, ARP cache poisoning
> Port Mirroring (=Port SPANning; SPAN= Switched Port Analyzer >>CISCO에서는 이렇게 부름)
: 포트 미러링은 네트워크 스위치의 어떤 한 포트에서 보이는 모든 네트워크 패킷 혹은 전체 VLAN의 모든 패킷들을 다른 모니터링 포트로 복제하는데 사용된다.
이러한 유형의 셋업에서는, managed switch의 Command Line 또는 Web Management Interface에 액세스 할 수 있어야한다.
unmanged switch (transparent switch)이면 불가능!
또한, 스위치에서 포트 미러링을 지원하고 스니퍼를 연결할 수 있는 빈 포트가 있어야한다. (많은 엔터프라이즈급 스위치에서 포트 미러링 지원)
Multiple port를 하나의 포트로 미러링할 수 있다. 그러나 oversubscription이 될 경우에 물리적인 임계값을 초과하므로 트래픽이 특정 수준에 도달하면 패킷 손실 또는 네트워크 속도의 저하가 생길 수 있다.
따라서, 일반적으로 포트 미러링은 신뢰할 수 없다.
(특히 높은 처리량 수준에서 포트 미러링은 일관성 없는 결과를 제공하고 추적하기 어려운 데이터 손실을 초래할 수 있다. )
> Hubbing Out
- 이 기술을 사용하여 대상 장치와 분석기 시스템을 허브에 직접 연결하여 동일한 네트워크 세그먼트에 배치
* 많은 사람들이 Hubbing out을 "cheating"이라고 생각하지만 사실 포트 미러링을 수행할 수는 없지만 대상 장치가 연결된 스위치에 물리적으로 액세스할 수 있는 경우에는 가능한 솔루션이다.
- 대부분의 상황에서 허브 아웃은 대상 장치의 이중화를 전체(양방향)에서 절반(단방향)으로 줄인다. -> 인터넷 성능이 저하될 수 있다, 패킷 손실이 많이 일어날 것이다. (단점)
- 성능상 문제 때문에 Hub가 시장에서 줄었기 때문에, 실제 "Hub"를 찾기 어렵다. 보통은 스위치를 허브라고 잘못 label되어있더라.. + 요즘 호스트는 100/1000Mbps 속도인데 허브는 10Mbps 이기 때문에 패킷 손실이 일어날 수 있다.
> Using a Tap
- 전선의 피복을 변경하여 전기적 신호의 흐름 경로를 변경
- Nonaggregated tap : 전송되는 경로에 따라 두 개의 Tap을 붙여서 경로를 다르게 함
* 4개의 포트가 필요함
- Aggregated tap : 전송 방향에 관계 없이 하나의 전송로만 만듬
* 3개의 포트가 필요함
> ARP Cache Poisoning
- ARP 스푸핑이라고도 불림 .. 스푸핑을 통해 스누핑!
- 스위치 네트워크에서 wire을 Tap 하는 고급 형태
- 다른 컴퓨터의 트래픽을 가로채기 위해 가짜 MAC(L2)주소를 가진 이더넷 스위치 또는 라우터에 ARP 메시지를 보내는 방식으로 작동
- 대상 컴퓨터를 속이기 위해 스니퍼는 대상 컴퓨터의 MAC 주소를 사용하여 트래픽을 재라우팅함
- 이 기법은 공격자가 특정 트래픽을 가로채거나 DoS공격을 유발하기 위해 잘못된 주소를 가진 패킷을 클라이언트 시스템에 보내는 데 일반적으로 사용됨
- 대상이 네트워크 활용도가 매우 높은 경우에는 바람직하지 않다. 성능이 저하되므로 여러 SSL 기반 통신 시도에 실패할 수 있다. (상대가 반드시 눈치 챔!)
Routed 환경 Sniffing
스위치 환경에서와 동일하게 스니핑이 가능하지만, 라우터로 연결된 여러 네트워크를 스니퍼를 설치할 때에는 배치가 중요하다.
*
라우터는 계층 3(네트워크 계층)에서 작동하며 네트워크를 다른 네트워크로 연결하는 데 사용된다. 스위치와 라우터 간의 차이를 쉽게 이해하려면 LAN과 WAN을 생각하면 된다. 기기는 스위치를 통해 로컬로 연결되고 네트워크는 라우터를 통해 다른 네트워크에 연결된다.
패킷 스니퍼를 어디에 둬야하는가? (sniffing the wire, tapping the network, tapping into the wire)
- 네트워크의 장치는 각각 트래픽을 다르게 처리하므로 분석 중인 네트워크의 물리적 설정을 고려하여 설정
Wireshark : pcap 기반 오픈소스 패킷 분석기 : 실시간 네트워크 연결에서 데이터를 캡처하거나 이미 캡처된 패킷을 기록한 파일에서 데이터를 읽을 수 있음
- tcpdump와 유사함
- tshark (자동 패킷 스니핑) 명령어 프로그램을 포함함
- 이더넷, IEEE 등 다양한 유형의 네트워크에서 실시간 데이터를 읽을 수 있음
- 디스플레이 필터 사용하여 데이터 디스플레이 조정 가능
- 명령줄 스위치를 통해 프로그램 방식으로 편집하거나, 'editcap'프로그램으로 변환할 수 있음
- 새 프로토콜을 분석하기 위해 플러그인을 만들 수 있음
- USB 트래픽도 캡처 가능