반응형

네트워크 스니핑 : 

 

네트워크 스니핑 = 회선 스니핑(sniffing the wire) = 네트워크 태핑(tapping the network) = 회선 태핑(tapping into the wire)

 


 

패킷 스니핑을 할 때는 흔적을 남기지 않고 필요한 데이터를 수집하는 것과 물리적인 장치의 구성이 중요하다.

 

즉, 캡처된 네트워크 트래픽을 훼손시키지 않아야 하고 패킷 스니퍼를 어느 위치에 배치하냐에 따라 분석하고자 하는 바를 정확히 할 수 있기 때문에 패킷을 분석하는 것보다 더 어려운 경우가 있다.

 

특히 최신 네트워크 장비인 스위치나 라우터 같은 경우는 트래픽을 서로 다르게 처리하기 때문에 분석할 네트워크 장비의 물리적인 속성을 잘 고려해야 한다.

 


 

허브에서의 스니핑

허브에서는 해당 허브가 연결된 모든 포트를 통과하기 때문에 허브에서의 스니핑은 비교적 정말 편하다.

 

허브에 연결된 컴퓨터를 통해 실행되는 트래픽을 분석하려면 그저 패킷 스니퍼를 허브의 빈 포트에 연결하면 된다.

 

그러면 모든 통신과 해당 허브에 연결된 다른 장치 간의 통신을 전부 스니핑 할 수 있다.

 

 

하지만 허브는 한 번에 하나의 장치만 통신할 수 있기 때문에 허브에 연결된 장치들은 대역폭을 사용하기 위해 다른 장치들과 경쟁해야 하므로 두 개 이상의 장치가 동시에 패킷을 허브에 전송하면 패킷이 충돌하여 패킷이 손실될 수 있고, 이를 위해 통신 장치는 패킷을 재전송하는데 이로 인해 네트워크 혼잡과 충돌을 가중시킬 수 있다.

 

즉, 트래픽 레벨에서 충돌 횟수가 증가하면 증가할수록 장치에서 패킷을 3 ~ 4회 재전송해야 할 수 있고, 이로 인해 네트워크 성능이 대폭 저하된다.

 

그러므로 허브를 사용하는 경우는 드물지만, ICS(Industrial Control System) 네트워크 같은 좀 오래된 하드웨어나 특수 장치를 지원하는 네트워크에서는 허브를 사용한다.

 

 

허브가 사용 중인지를 확인하는 가장 쉬운 방법은 서버실 혹은 네트워크 캐비닛을 보면 된다.

 

대부분 허브에 레이블이 붙어있다.

 

진짜 허브인지 가짜 허브인지 구별하기 가장 좋은 방법은 두 대의 컴퓨터를 허브에 연결하여 한 컴퓨터에서 네트워크에 있는 다른 컴퓨터와 다양한 다른 장치들 간의 트래픽을 스니핑 할 수 있는지 확인하는 것이다.

 

 


 

스위치에서의 스니핑

스위치는 브로드캐스트, 유니캐스트, 멀티캐스트 트래픽을 통해 데이터를 전송하는 효율적인 방법을 사용한다.

 

또한, 전이중 통신이 가능하므로 동시에 데이터를 송수신 할 수 있다.

 

하지만 전이중 통신이 가능하기 때문에 스니핑 작업을 더 어렵게 만든다.

 

 

패킷 스니퍼를 스위치의 빈 포트에 연결하면 패킷 스니퍼가 설치된 장치에서 송수신하는 브로드캐스트 트래픽만 스니핑 할 수 있다.

 

즉, 스위치 환경에서 스니핑을 할 때 다른 컴퓨터의 패킷을 스니핑 하기 위해서는 포트 미러링(port mirroring), 허빙 아웃(hubbing out), 탭(tap) 사용, ARP 캐시 포이즈닝(ARP cache poisoning)이라는 4가지 방법 중 하나를 추가적으로 해줘야 한다.

 

TIP) 트래픽을 캡처하려는 단일 장치에 패킷 스니핑 애플리케이션을 직접 설치하는 것을 고려한다면 총 5가지 방법이 된다.

 


 

포트 미러링(port Mirroring)

포트 미러링 = 포트 스패닝(port spanning)

 

스위치 환경에서 타겟 장치에 대해 트래픽을 캡처하는 가장 쉬운 방법 중 하나이다.

 

이 방법을 사용할 때는 target 컴퓨터가 연결되어 있는 스위치의 커맨드 라인이나 웹 관리 인터페이스에 접근할 수 있어야 하고, 스위치는 포트 미러링을 지원해야 하며 스니퍼를 연결할 수 있는 빈 포트가 있어야 한다.

 

이 방법을 사용할 때는 스위치가 한 포트의 모든 트래픽을 강제로 다른 포트에 복사하도록 하는 명령을 실행해야 한다.

ex) 스위치의 포트 1번에 연결되어 있는 장치에서 송수신되는 모든 트래픽을 캡처하기 위해서는 스니퍼를 스위치의 포트 2번에 연결하고 1번 포트로부터 2번 포트로 미러링 하는 명령을 실행해야 한다.

 

 

미러링 명령어는 아래와 같다.

Cisco - set span <src port> <dst port>

Enterasys - set port mirroring create <src port> <dst port>

Nortel - port-mirroring mode mirror-port <src port> moniter-port <dst port>

 

포트 미러링을 할 때는 미러링하는 포트의 처리율도 알아야 한다.

 

여러 개의 포트를 하나의 포트로 미러링 할 수 있는 경우도 있으므로 단일 스위치에서 둘 이상의 장치 간 통신을 분석할 때 유용하기 때문이다.

 

주의할 점으로는 단일 포트의 트래픽이 임계값 수준을 넘으면 패킷 손실이나 네트워크 속도 저하가 생길 수 있는데 이를 과다 신청(oversubscription)이라고 하고, 이 때 스위치는 초과된 패킷을 전부 삭제하거나 내부 회로를 일시 중지하여 통신을 완전히 차단하기 때문에 이러한 문제가 발생하지 않게 해야 한다.

 

그리고 포트 미러링특정 네트워크 세그먼트를 지속적으로 모니터링하는 좋으면서도 저렴한 솔루션처럼 보일 수 있으나, 일반적으로 신뢰성이 떨어지고, 높은 처리량 수준에서의 포트 미러링은 일관성 없는 결과를 제공하며, 추적하기 어려운 데이터 손실을 유발할 수 있기 때문에 이럴 때에는 탭을 사용하는 것이 좋다.

 


 

허빙 아웃

허빙 아웃을 사용하면 타겟 장치와 분석 시스템을 모두 허브에 직접 연결하여 동일한 네트워크 세그먼트에 배치할 수 있다.

 

허빙 아웃은 포트 미러링을 수행할 수 없고 타겟 장치가 연결된 스위치에 물리적으로 접근할 수 있을 때는 유효한 솔루션이다.

 

허빙 아웃을 하려면 허브와 네트워크 케이블만 있으면 되고, 아래와 같이 물리적으로 구성을 하면 타겟 장치, 패킷 스니퍼가 동일한 브로드캐스트 도메인에 있게 되기에 타겟 장치로부터의 브로드캐스트되는 모든 트래픽을 캡처할 수 있다.

 

1. 타겟 장치가 연결된 스위치를 찾아 타겟 장치의 연결을 해제한 뒤, 타겟 장치의 네트워크 케이블을 허브에 연결한다.

2. 스니퍼에 연결된 또 다른 케이블을 허브에 연결한다.

3. 허브와 네트워크 스위치를 케이블로 연결하여 허브를 네트워크와 연결한다.

 

 

대부분 허빙 아웃의 경우는 타겟 장치의 전이중 통신을 반으로 줄여 단방향으로 줄이게 된다.

 

하지만 허브에는 찾기 어려운 전원 연결이 필요하다.

 


 

탭 사용

네트워크 탭케이블링 시스템의 두 지점 사이에 배치하여 두 지점 사이의 패킷을 캡처할 수 있는 하드웨어 장치이다.

 

허빙 아웃과 유사한 점 : 네트워크에 하드웨어를 배치해 필요한 패킷을 캡처할 수 있다.

허빙 아웃과 차이점 : 허브를 사용하는 대신 네트워크 분석용으로 설계된 특수 하드웨어를 사용한다.

 

네트워크 탭에는 집계 탭비집계 탭 2가지 유형이 있다.

 

집계 탭 : 케이블이 덜 필요하고 스니퍼 컴퓨터의 NIC가 두 개 이상 필요하지 않기에 대부분 이 방법을 사용한다.

비집계 탭 : 많은 양의 트래픽을 캡처하거나 한 방향으로만 가는 트래픽을 살펴봐야 하는 경우 사용

 

집계 탭과 비 집계 탭 유사한 점 : 스니핑하기 위해 두 장치 사이에 둔다.

집계 탭과 비 집계 탭 차이점 : 비집계 탭에서는 별도의 인터페이스가 필요로 하고, 집계 탭에서는 단일 인터페이스로 양방향으로 모니터링할 수 있다.

 

 

집계 탭

양방향 트래픽을 스니핑 하기 위한 물리적 모니터 포트를 하나만 갖고 있다.

 

한 대의 컴퓨터에서 들어오고 나가는 모든 트래픽을 캡처할 때 아래와 같이 구성하면 된다.

1. 스위치에서 컴퓨터의 플러그를 분리한다.

2. 네트워크 케이블의 한쪽을 컴퓨터에, 다른 쪽을 tap의 in 포트에 연결

3. 다른 네트워크 케이블의 한쪽을 네트워크 스위치에, 다른 쪽을 tap의 out 포트에 연결

4. 최종 케이블의 한 쪽을 tap의 모니터 포트에 연결, 다른 쪽을 스니퍼 역할을 하는 컴퓨터에 연결



컴퓨터 - 집계 탭 - 스위치

          |

        스니퍼

 

 

비 집계 탭

집계 탭보다 트래픽을 캡처하는 것에 있어 조금 더 유연하게 사용할 수 있다.

 

집계 탭은 양방향 통신을 수신하는 데 사용하는 단일 모니터 포트를 갖는 대신

비집계 탭은 두 개의 모니터 포트가 있다.

하나의 모니터 포트는 트래픽에 연결된 컴퓨터 -> 한 방향 트래픽을 스니핑 하는 데 사용

다른 하나의 모니터 포트는 다른 방향 -> 트래픽에 연결된 컴퓨터 트래픽을 스니핑하는 데 사용된다.

 

스위치에 연결된 한 대의 컴퓨터로 들어오고 나가는 모든 트래픽을 캡처하려면 아래와 같이 구성하면 된다.

1. 스위치에서 컴퓨터의 플러그를 분리한다.

2. 네트워크 케이블의 한 쪽을 컴퓨터에, 다른 쪽을 tap의 in 포트에 연결

3. 두번 째 네트워크 케이블의 한 쪽을 네트워크 스위치에, 다른 쪽을 tap의 out 포트에 연결

4. 세번 째 네트워크 케이블의 한 쪽을 스니퍼 역할을 하는 컴퓨터의 한 NIC에, 다른 쪽을 tap의 모니터 A 포트에 연결

5. 최종 케이블의 한 쪽을 스니퍼 역할을 하는 컴퓨터의 두 번째 NIC에, 다른 쪽을 tap의 모니터 B 포트에 연결

컴퓨터  -  비집계 탭  -  스위치
(모니터 A) |     | (모니터 B)
         |      |
           스니퍼

 

위에서는 tap을 사용하여 하나의 장치만 모니터링하는 예시를 들었지만, 예를 들어 전체 네트워크 세그먼트와 인터넷 사이의 모든 통신을 모니터링하려는 경우 다른 모든 장치가 연결된 스위치와 라우터 사이에 탭을 배치하여 모든 통신을 모니터링할 수 있다.

 

주의할 점은 엔터프라이즈 애플리케이션에 tap을 사용할 때는 탭에 fail-open 기능이 있는지 확인해야 한다.

탭이 오작동하거나 동작하지 않으면 패킷은 여전히 통과하게 되고, 네트워크를 통과하는 탭된 링크에 대한 연결이 중단되지 않기 때문이다.

 


 

ARP 캐시 포이즈닝

ARP 캐시 포이즈닝 = ARP Spoofing

 

스니핑 하는 가장 좋은 방법 중 하나이다.

 

다른 컴퓨터의 트래픽을 가로채기 위해 ARP 메시지를 이더넷 스위치나 가짜 MAC 주소로 바꾸어 가짜 MAC 주소가 있는 라우터로 전송한다.

 

정상적인 트래픽 패턴은 target 컴퓨터 <-> 스위치 <-> 라우터 이지만

스푸핑 된 즉 포이즌 된 ARP 캐시는 target 컴퓨터 <-> 스니퍼 <-> 라우터이다.

 

보통 ARP 스푸핑은 공격자가 특정 트래픽을 가로채거나 목표로 하는 target 시스템에 Dos 공격을 하기 위해 잘못 지정된 패킷을 클라이언트 시스템에 보내는 데 사용되지만, 스위치 네트워크에서 target 시스템의 패킷을 캡처하는 정당한 방법이다.

 

 

주의할 점으로는 ARP 캐시 포이즈닝을 구현하는 시스템의 역할을 잘 알고 있어야 한다.

 

만약 target 장치가 네트워크에 대해 1Gbps 링크를 갖는 파일 서버와 같이 네트워크 이용률이 매우 높은 경우에는 ARP 캐시 포이즈닝을 사용하지 않는 것이 좋다.

 

ARP 캐시 포이즈닝을 사용하여 트래픽을 다시 라우팅 하면 타겟 시스템에서 송수신되는 모든 트래픽이 먼저 패킷 분석 시스템을 거쳐야 하기 때문에 통신 과정에서 병목 현상을 일으킬 수 있으며, 이 경로 재설정은 분석 중인 시스템에 Dos 공격과 같은 현상을 가져올 수 있고 이로 인해 네트워크 성능이 저하되어 분석 데이터가 잘못될 수 있다.

 

또한, 트래픽 정체로 인해 TLS 기반 통신이 예상대로 동작하지 않을 수도 있다.

 


 

스위치에서의 스니핑에서 사용되는 기술 정리

기법 요약
포트 미러링 - 네트워크 흔적을 남기지 않고 추가적인 패킷을 생성하지 않기 때문에 선호.
- 클라이언트를 오프라인 절차 없이 구성할 수 있어 라우터나 서버 포트를 미러링할 때 편리
- 스위치로부터 자원 처리가 필요하고, 높은 처리량 수준과 일치하지 않을 수 있다.
허빙 아웃 - 일시적으로 호스트를 오프라인 상태로 만들지 않아도 되는 경우에 이상적
- 여러 호스트에서 트래픽을 캡처해야 하는 경우에 충돌 및 패킷 손실 가능성이 있어서 비효율적
- 대부분의 허브가 10Mbps이기 때문에 최신 100/1000Mbps 호스트에서는 패킷 손실이 발생할 수 있다.
탭 사용 - 일시적으로 호스트를 오프라인 상태로 만들지 않아도 되는 경우에 이상적.
- 광섬유 연결에서 트래픽을 스니핑하고자 할 때에 유일한 방법
- 탭이 안정적이고 높은 처리량 링크로 확장될 수 있기 때문에 엔터프라이즈 패킷 캡처 및 지속적인 모니터링에 적합한 솔루션
- 탭은 수작업으로 이뤄지고 최신 네트워크 속도와 동등하기에 허빙 아웃보다 우수함
- 구축 비용이 많이들 수 있다.
ARP 스푸핑 - 네트워크가 스니퍼를 통해 트래픽을 다시 라우팅하기 위해 패킷을 삽입해야 하므로 적절치 않음
- 포트 미러링이 옵션이 아닌 경우에 장치를 오프라인으로 전환하지 않고 트래픽을 신속하게 캡처할 수 있어서 효과적
- 네트워크 기능에 영향을 미치지 않게 세심한 주의가 필요
직접 설치 - 호스트가 정확하게 표현되지 않아 패킷이 삭제되거나 조작될 수 있으므로 일반적으로 권장되지 않음
- 호스트의 NIC가 무차별 모드일 필요가 없다.
- 테스트 환경, 성능 검사 및 기준 설정, 다른 곳에서 생성된 캡처 파일 검사에 적합

 


 

라우터에서의 스니핑

스위치에서의 스니핑에서 이용 가능한 기술들은 라우터에서의 스니핑에서도 적용할 수 있다.

 

다양한 네트워크 세그먼트에서 발생하는 문제를 해결할 때 라우터 환경에서는 스니퍼를 어디에 배치해야 하는지가 중요하다.

 

어느 장치의 브로드캐스트 도메인은 라우터에 도달하기 전까지 계속해서 확장이 가능하다.

 

트래픽은 어느 시점에서 다음 라우터로 전송되는데 데이터가 여러 라우터를 통해 전송되는 경우에 라우터의 모든 부분에서 트래픽을 분석하는 것이 중요하다.

 



스니핑을 위한 가장 좋은 방법 결정 다이어그램

 

반응형

'Network > 네트워크 이론' 카테고리의 다른 글

SSL/TLS handshake process  (0) 2022.06.27
ARP 프로세스  (0) 2022.02.20
무차별 모드란  (0) 2022.02.20
네트워크 트래픽 분류  (0) 2022.02.18
허브(hub), 스위치, 라우터  (0) 2022.02.18

+ Recent posts