2010년 4월 27일 화요일

패킷 분석 비주얼(Visual) 하게 살펴보자 - NetGrok

수 많은 패킷 파일 데이터와 뚫어져라 쳐다보는 눈과의 싸움. 그렇기 때문에 패킷 분석 시 어떻게 하면
빨리 분석을 수행할 수 있을지 다양한 방법들이 있다. 특히, 비주얼하게 패킷 데이터를 볼 수 있으면
분석은 한층 쉬워질 것이다. 다양하게 표현하는 방법이 있지만, 그 중에서도 오늘 소개해 보고자 하는 것은
NetGrok 이다.

자반 기반으로 플랫폼에 독립적으로 사용이 가능하며, 실시간적으로 비주얼 하게 표시도 해주며
PCAP 포맷의 패킷파일도 표현할 수 있다. 또한, 트리맵 구조로도 표시가 가능하다. 이렇게 설명하는 것 보다
직접 한번 보고 실행해 보는 것이 낳을 것이다.

일단, 관련 정보 및 파일은 아래의 URL 에서 받을 수 있다.


다운 받은 netgrok20080928.zip 의 압축을 해제하면 여러 파일들이 보이는데 그 중에서 배치파일이
눈에 띄일 것이다. netgrok20080928.bat 를 에디터로 열어 보면 아래와 같이 적혀 있다.

java -jar netgrok20080902.jar
pause

그런데, 실행해 보면 실행이 안된다. 그 이유는 파일의 이름이 잘못되어 있다. 다운 받은 파일은 20080928.jar
인데, 배치파일에는 20080902.jar 로 되어 있다. 아마 배포하면서 제대로 수정이 안된것 같으므로 20080928.jar
로 변경하여 수행해 보자.

실행해 보면 또 에러가 발생하였다. groups.ini 의 내용에서 문제가 생긴것 같은데,
groups.ini 를 보면

[local]
Private1=Wireless=192.168.0.0/16
Private2=172.16.0.0/12
Private3=10.0.0.0/8

위와 같다. 나의 경우는 첫 번째 라인을 아래와 같이 변경하고서는 정상적으로 수행이 되었다.

Private1=Wireless=192.168.0.0/16 -> Private=192.168.0.0/16 과 같이 변경

groups.ini 는 데이터를 표현할 때 하나의 그룹으로 표현될 주소를 기록해 두는 곳이다. 일단 실행하고
File 에서 실시간 패킷 캡쳐를 수행하면, 아래 그림과 같이 비주얼한 화면을 볼 수 있다. 현재의 상황에
따라 비주얼하게 각 데이터들이 움직이면서 변화하기 때문에, 특정 공격과 같은 특이한 행동 패턴은
금방 알아챌 수 있을 것이다.


좀더 테스트를 해보기 위하여 Syn Flooding 이 일어난 패킷 데이터를 가지고 테스트 해 보았다. 목적지
192.168.0.2 는 일부로 목적지 IP 를 변경한 것이고, 패킷파일의 목적지, 출발지 변경은 앞서 소개한
포스팅에서 다루고 있으니 tcprewrite 로 찾아보기 바란다.


자, 위와 같은 데이터를 읽어보았더니 아래와 같은 형태로 표시되었다. 가운데 192.168.0.2 를 중심으로
수 많은 녹색색깔의 원이 둘러 싸고 있다. 녹색색깔이 여러개 인 것은 소스 IP 주소가 랜덤하게
스푸핑 된 형태이기 때문이다. 즉, 목적지 한 곳으로 출발지가 아주 랜덤하게 다양한 것으로 추정할 수 있다.

아래 이미지는 TreeMap 으로 본 것이다. 전체 노란색에서 우측에 빨간색 부분이 약간 보인다.

오래 테스트 해보지는 않았지만, 비주얼하게 화면을 보여주는 면에서는 나쁘지 않았다. 다만, 대용량
패킷 파일을 처리하기에는 힘들어 보이지 않을까 한다. 로딩하여 데이터를 파싱하는 과정도 시간이
오래 걸리고 실시간적으로 표현하는 과정에서도 멈춤 현상이 보였다.

@Rigel

댓글 2개:

  1. 얼마전 와이어 샤크의 플로우 그래프만 보고도 우와 햇었는데......

    이건 눈이 휘둥그레지네요..ㅎㅎ



    근데 왜 전 실행이 안될까요???

    그냥 실행했을때 한 세줄뜨면서 안되고... 배치 파일고치고 실행하니 여섯줄 정도 뜨면서 안되고.... ini 파일 수정하고 실행하니.....화면이 넘어가는 정도로 뭐가 휙휙 지나가더만 아무키나 또 누르라고 하네요..ㅠㅠ

    답글삭제
  2. @홍홍 - 2010/04/27 17:28
    저도 처음에는 잘 실행이 안 되더군요. 이것저것 수정하고 나서 실행이 되었는데. 에러 메시지를 보시고 머가 빠졌는지 확인해 보셔야 할 것 같습니다. 혹시 JDK 는 제대로 설치가 되어있는지요? 제 컴퓨터에도 기본적으로 설치가 되어 있었지만, 먼가 빠져있더군요. 최신 버전으로 설치후, 이것저것 컴파일 테스트 해본후 해 보니 잘 됩니다. 물론. 콘솔 창에는 머가 잔뜩 뜨기는 하지만. 일단 실행은 됩니다 :-)

    조만간에 와이어샤크의 플로우 그래프에 대해서도 다룰 예정입니다.

    답글삭제