레이블이 이더리얼인 게시물을 표시합니다. 모든 게시물 표시
레이블이 이더리얼인 게시물을 표시합니다. 모든 게시물 표시

2011년 8월 9일 화요일

Ethereal 과 궁합이 맞는 오픈소스 패킷분석기 Packetzyer

오픈소스 패킷 분석 도구인 Packetyzer 를 소개한다. 사실 이 도구는 더 이상 업데이트가 되고 있지 않지만, 나름 깔끔한 인터페이스로 어느정도 사용하기에는 충분한것 같다. 내가 지금까지 많은 패킷 도구들을 소개해 오고 있지만, 아직도 소개할 패킷도구들이 너무나 많이 남아 있다. 자기한테 적당한 도구를 선택하는 것은 여러분들의 몫이므로, 이런것이 있다는 것만 알아두자.

일단 현재 5.0 버전이며, 이더리얼 0.99.00 과 winpcap 3.1 이 포함되어 있다. 이더리얼의 기능을 이용해 구현된 것이라 볼 수 있다. 현재 와이어샤크로 불리기 이전 버전인 이더리얼 이므로 기능적으로는 와이어샤크에 비하면 못 할 수 잇겠으나 처음 패킷 분석을 접하는 윈도우 사용자에게는 쉬운 인터페이스와 윈도우적인 느낌으로 더 쉽게 다가설 수 있지 않나 싶다.
(참고로, 현재 이더리얼은 와이어샤크로 계속 개발되고 있으며, Ethereal 자체는 개발이 중지된 상태이다)

프로그램은 다음 경로에서 다운로드 받아 설치하면 된다. 윈도우 기반이라 따로 설치하는데 어려움은 없다.

http://www.gotomanage.com/open_source_tools/packetyzer_thankyou

실행하고, 캡쳐를 시작하면 다음과 같은 형태의 화면을 볼 수 있다:


처음 사용하는 사용자라도 몇번 클릭해 보면 어렵지 않게 사용할 수 있으며, 과거 이더리얼이 가지고 있던 기능들을 포함하고 있다. 출력 필터, 캡쳐 필터, 다양한 프로토콜 분석 기능등이 이에 해당한다. 이 프로그램이 또 다른 특징은 패킷 수정/보내기 기능이 있다. Session 메뉴에 Send Packet... 기능이 있는데, 각 헤더를 수정하여, 전송하는 기능을 가지고 있다.

윈도우 기반의 패킷분석기에 관심 있다면, Packetyzer 소스를 살펴보는 것도 도움이 될 것이다.


[참고]
1. Packetyer
http://www.gotomanage.com/open_source_tools/packetyzer
2. Packetyer 소스파일 받을 수 있는 곳
http://sourceforge.net/projects/packetyzer/

2010년 9월 1일 수요일

와이어샤크 1.4.0 정식 버전 공개

6월초 와이어샤크 1.4.0rc1 버전이 공개된 후, 드디어 1.4.0 정식버전이 공개되었다.
정식버전과 함께 1.4.0rc2 버전도 공개되었으니, 이제 1.2.X 를 뒤로 하고,
1.4.0 의 새로운 기능들을 느껴보기 바랍니다.

몇가지 변경된 기능에 대해서는 저번 1.4.0rc1 에서 소개한적이 있고요,


다운로드는 다음의 경로에서 가능합니다.

세부적인 릴리즈 노트는 다음을 참고하세요.

[주요변화]
  • 와이어샤크의 메인 화면에서 컬럼을 쉽게 이동할 수 있거나, 오른쪽 클릭을 통해 조정이 가능
  • 파이썬 스크립트 지원
  • 많은 부분에서 메모리 누수 버그 Fix (그래서 그런가, 처리가 조금 자연스러운듯)
  • 와이어샤크 1.4 버전에서는 윈도우 2000을 지원하지 않음. 그러므로 윈도우 2000 에서는 1.2 나 1.0 버전을 이용해야 함
  • Manually Resolve Address 기능
  • 유용하게 이용할 수 있는 부분인데, IP 를 특정 이름으로 변경시켜 놓을 수 있다. 예를들어, 172.16.1.254 라는 것을 쓰고 있다면 이 기능을 통해 Internal Router 이런식으로 바꿀 수 있다.
  • 'Ignore Packet' 기능, 필요없는 패킷에서 오른쪽 클릭을 통해 무시해 버릴 수 있다.
  • 시간 표시가 이제는 시:분:초 형태로 출력된다.
  • 유닉스와 리눅스 환경의 와이어샤크에서 캡쳐 버퍼 사이즈를 설정할 수 있다.
  • 와이어샤크에서 바로 JPEG 파일을 오픈할 수 있음
    JPEG 파일을 와이어샤크로 던져보면 알 수 있다.
  • 새로운 프로토콜 지원
  • 이외 기타 등등

2010년 7월 23일 금요일

와이어샤크 개발버전 1.4.0RC1 의 새로운 기능을 느껴보자.

6월초에 1.4.0 RC1 에 나왔는데, 여러분들에게 소개한다는 것이 깜빡 잊었다.
현재 사용하는 Stable 버전이 1.2.9 이고, 개발 버전이 1.4.0 이다. 기존까지는 계속 개발 버전으로 나오다
6월초네 RC1 버전이 처음으로 릴리즈 된 것이다. 어느정도 안정화 단계에 들어간것 같으니
멀지않은 시기에 정식버전이 나오리라 생각된다.

외관적으로 크게 변화된 것은 별로 없고, 느낌상으로는 속도가 좀 빨라진것 같다.
몇가지 새롭거나 업데이트 기능을 소개하면 다음과 같다 :
(새롭게 바뀐 기능을 웹에서 찾기가 힘들어, 어떤 기능들이 새로워졌는지 찾는데 시간이 걸렸다. :-) )

  • 와이어샤크의 메인 화면에서 컬럼을 쉽게 이동할 수 있거나, 오른쪽 클릭을 통해 조정이 가능
  • 파이썬 스크립트 지원
  • 많은 부분에서 메모리 누수 버그 Fix (그래서 그런가, 처리가 조금 자연스러운듯)
  • 와이어샤크 1.4 버전에서는 윈도우 2000을 지원하지 않음. 그러므로 윈도우 2000 에서는
    1.2 나 1.0 버전을 이용해야 함
  • Manually Resolve Address 기능
    유용하게 이용할 수 있는 부분인데, IP 를 특정 이름으로 변경시켜 놓을 수 있다.
    예를들어, 172.16.1.254 라는 것을 쓰고 있다면 이 기능을 통해 Internal Router 이런식으로 바꿀 수 있다.
  • 'Ignore Packet' 기능, 필요없는 패킷에서 오른쪽 클릭을 통해 무시해 버릴 수 있다.
  • 시간 표시가 이제는 시:분:초 형태로 출력된다.
  • 유닉스와 리눅스 환경의 와이어샤크에서 캡쳐 버퍼 사이즈를 설정할 수 있다.
  • 와이어샤크에서 바로 JPEG 파일을 오픈할 수 있음
    JPEG 파일을 와이어샤크로 던져보면 알 수 있다.
  • 새로운 프로토콜 지원
  • 이외 기타 등등

몇 가지 분석에 유용한 기능들도 보이고, 계속 발전해 나가는 와이어샤크를 보니 역시 최고의 패킷 분석기 다워 보인다. 말로는 설명하기 다 힘드니, 궁금한 분들은 직접 사용해 보며 느껴보기를 바란다.

2010년 5월 31일 월요일

와이어샤크의 과거 이름은 이더리얼(Ethereal) 이었다.

오늘은 분석과 다른 얘기를 해보도록 하자. 우리가 지금 많이 사용하고 있는 패킷 분석 프로그램을 이야기하자면 단연 와이어샤크이다. 그런데, 인터넷 검색등을 해 보면 이더리얼이라는 이름을 볼 수가 있다. 정확히 말하면 와이어샤크의 이전 이름은 이더리얼(Ethereal) 이다. 이전에 이더리얼을 접해본 분들이라면 이 이름에 익숙할 것이다. 최근까지도 분석프로그램으로 이더리얼이 소개되고 있어, 정리하는 차원에서 몇 자 적어보고자 한다.

이더리얼은 1998년에 소개되어 2006년5월까지 개발이 이뤄지다, 메인 개발자인 Gerald Combs 가 회사를 CACE
Technologies 로 옮기면서 이름도 바뀌게 되었다. CACE Technologies 로 옮기기로 하면서, 웹 사이트, 메일링리스트, 버그트랙, SVN 등 모든 리소스들이 와이어샤크로 옮기게 되었다. 이더리얼의 마지막 버전은 0.99.0 이다.
이러한 사실을 메일링리스트에 공개하면서 여러논의들이 있었고, 말도 많고 충돌도 있었다. 이더리얼의 이름에 대한 것은 이전 회사인 NIS(Network Integration Services)가 소유하고 있어,어쩔 수 없이 변경하게 된 것이다.
다음은 직접 메일링리스트에 어나운스 한 글이다.

벌써 이때가 2006년 6월 이었으니 정말 오랜 시간이 흘렀다. 한가지, 과거 이야기를 더 흘리자면
이더리얼 사이트(http://www.ethereal.com)에 가 보면 우측 상단에 Mirrors 라는 선택화면이 보인다.
여기에 Korea 가 있다. 이더리얼 공식 미러링 사이트로 운영된 곳인데, 필자가 처음으로 한국 공식 미러를
운영하였다. 지금은, 어느덧 과거속으로 잊혀져 가고 있는 곳이지만. 이더리얼 이라는 이름은 내게는
참으로 익숙하고도 기억이 많은 이름이다.

참고로 과거 이더리얼의 화면은 어땠는지 아래 그림을 참고해 보기 바란다. 지금의 와이어샤크와 비교해서
아주 떨어져 보이지는 않는다. 이건 0.10.14 버전의 화면을 캡쳐한 것인데, 더 훨씬 이전 버전의 화면은
UNIX 스타일의 냄새를 풍기는 털털한 화면이었다. :-)
어찌되었든 이제 이더리얼의 이름으로 더 이상 업데이트 되는 것은 없다. 그렇기 때문에 현재 이더리얼
사이트에서 배포되고 있는 버전은 보안적인 문제도 있고, 여러가지 면에서 와이어샤크를 사용할 것을
권장한다.

이더리얼은 이제 과거의 기억속으로...

2010년 5월 28일 금요일

와이어샤크(WireShark)의 그래프 기능 활용하기 - 고급편

그래프 기능 활용 기본편에 이어 이번에는 조금더 고급적으로 쓸 수 있는 방법을 소개하겠다. 와이어샤크의
IO Graph 기능을 단순히 와이어샤크로만 한정하지 않고 다른 방법을 통해 그래프도 좀도 이쁘게 만들 수 있는
방법과 그래프 생성시 SUM, MAX 와 같은 함수를 이용한 그래프 생성 방법이다.

자 일단, 아래의 그림을 살펴보자. 이것은 그래프를 생성할때 Y Axis 에서 Unit 을 Advanced 로 선택하면
Calc 라는 추가 입력을 볼 수 있다. 즉, 합을 구하거나 최대, 최소, 평균 값등을 계산할 때,
이 방법을 사용하면 유용하게 이용할 수 있다. 특정 프로토콜에서 계산이 가능한 값이 있을 경우, 함수를 통해
그래프를 생성하면 좀더 의미있는 형태로 만들 수가 있는 것이다. 아래 예제에서는 http.content_length (빨간색)을 바로 표현했고, 프레임 길이를 녹색으로 그리고 IP 프로토콜의 TTL 을 합산으로 사용해 보았다.
frame.len 을 보면 01:50:57 부터 일정하게 높은 수치가 유지되고 있고 있다. 이뜻은 이 시간에 전송한 패킷 프레임의 길이가 일정하게 큰 수준으로 계속 이어졌다는 것이다.

또한 그래프 화면에서 해당 지점을 클릭하면 어떤 패킷을 가르키는지 와이어샤크의 출력화면이 해당 패킷으로 움직이게 된다. 그래프를 보고서 의심스러운 지점을 찾아 쉽게 볼 수 있는 것이다.


위 화면은 여러분들에게 소개를 하기 위해 임의로 계산을 한 것이지만, 여러분들이 분석하고자 하는 데이터에
따라 사용한다면 아주 유용한 그래프가 될 것이다.

자, 다음으로는 앞서 기본편에서 언급한 IO Graph 에서 Copy 명령을 통해 CSV 형태로 저장할 수 있다고 설명하였다. Copy 를 누른 후 보면 각 데이터는 콤마(,) 로 구분되어 나열되어 있다. 이렇게 저장한 CSV 를 어떻게 활용할 수 있을까 ? 그렇다. 바로 CSV 를 지원하는 도구를 이용하면 그래프를 더욱 멋지게 생성할 수 있는 것이다. 우리가 업무에서 많이 활용하고 있는 엑셀(Excel) 을 예로 들어보자. 아래의 그래프 화면은 엑셀을 이용하여 만들어 본것이다. 엑셀에서 해당 파일을 로드할때 CSV 형태로 로드하면서 구분자는 콤마로 지정한다. 그러면 엑셀에서 원하는 영역을 선택하여 그래프로 만들어주면 아래와 같이 멋진 그래프로 탄생한다.

엑셀을 자유롭게 다루는 분이라면 훨씬 멋진 그래프 화면을 만들어 낼 수가 있을 것이다. 또 다른 예제로 오픈오피스를 이용한 그래프 생성에 대해서도 소개하고자 한다. 이 내용은 아래 주소에서 본 슬라이드를 보고서 소개하는 것이다.


필자는 주로 오픈소스를 사용하기를 원하는데, 적절한 소개인것 같다. 이번에도 마찬가지로, 똑같이 CSV 데이터를 이용하는 것이다. CSV 데이터를 이용하는 부분은 와이어샤크의 메인 화면에 출력되는 컬럼을 이용하는 것이다.

와이어샤크 메인의 기본 컬럼 구성은
번호, 시간, 출발지, 목적지, 프로토콜, 정보 로 구성된다. 이 화면에 출력된 내용을 CSV 로 저장할 수 있는 것이다. 그런데 기본 컬럼을 바꿀 수 있다는 사실을 알고 있을 것이다. Edit->Preference 를 선택하고 Columns 를 보면 된다. 바로 여기에서 아래 부분의 필드타입을 Packet length (bytes) 를 선택하고 Add 를 눌러보자. (컬럼 이름은 Length 라고 정의하였다)그러면 컬럼에 패킷의 길이가 추가된다. 여기 예에서는 패킷 길이를 선택하였지만, 원하는 형태로 선택할 수 있다.

자, 그리고 CSV 데이터를 얻기 위해 File -> Export -> File 을 선택해 보자. 아래 화면과 같이 파일 형식을 CSV 로 선택하고 저장할 파일이름을 적고 저장을 누른다.

이제, 우리가 사용할 데이터를 얻었으니 오픈오피스를 통해 그래프를 생성해 주는 일만 남았다. 오픈오피스 Calc 를 일단 실행하고 파일오픈을 선택하자. * 오픈오피스는 openoffice.org 에서 받을 수 있다.

파일 오픈시 읽어들일 데이터를 CSV 로 선택후 오픈하면 CSV 로 파싱할 화면이 나타난다. 그리고 구분자로 Comma 로 선택하면 필드가 제대로 나뉘어 진다.
그러면 엑셀 형태와 같이 데이터가 기록이 된다. 그래프를 생성해 내고자 하는 형태는 시간별로 얼마나
많은 패킷 데이터가 전송되었는지를 표현하기 위해서이다. 그래서, 앞서 와이어샤크에서 컬럼을 추가해
각 패킷 길이 컬럼을 추가한 것이다.

필요한 컬럼은 시간과 패킷 길이(바이트) 이다. 그런데 라인수가 엄청나다. 아무래도 시간대 별로 한개씩
다 기록되어 있으니 말이다. 그래서 활용하는 방법이 Subtotals 기능을 이용하는 것이다. 시간 컬럼을 기준으로
Length 의 합을 구하는 것이다. 아래 화면과 같이 Group by 에서 Time 을 선택하고 Subtotals 대상인 Length 를 선택후 사용할 기능으로 Sum 을 선택한다.

그러면 화면의 왼쪽 부분에 선 같은 것이 생길것이다. 거기서 2번을 눌러보면 아래 그림과 같이 만들어 진다. 이 화면에서는 불필요한 컬럼은 다 삭제하였고, 시간 부분에 합산을 하고 나면 12시36분27초 Sum 과 같이 생긴다. 이때는 Edit 기능에 있는 Find & Replace 기능을 활용해 변경할 문자열을 Sum 을 선택하고 대상 문자열을 공백으로 두고 Replace 를 눌러버리면 말끔하게 삭제할 수 있다.

이제 마지막까지 왔다. 드디어 그래프를 생성하기 위해 열을 선택하고 Insert 메뉴에서 Chart 를 선택하거나, 메인 화면의 차트 아이콘을 클릭하면 된다. 그리고서 생성을 하면 멋진 그래프가 만들어진다.


비록 하나의 그래프를 생성하기 위해 많은 사전 작업을 거쳤지만, 모든걸 무료로 사용할 수 있다는 점이 매력적이지 않은가? 와이어샤크의 그래프 생성이 비주얼 적으로 이쁘지는 않지만, 데이터를 CSV 로 저장하여 활용한다면 어느 프로그램보다도 멋지게 그래프를 생성할 수 있다.  여기서는 여러분들에게 소개하기 위해서 그래프가 볼품이 없을지도 모르지만, 그건 여러분들이 그래프 생성하는데 얼마나 시간을 쏟느냐에 따라 달려있는 것이다.

와이어샤크의 수 많은 데이터를 이용해서 멋진 그래프를 이제 생성할 수 있다는 사실 !
이제 여러분도 와이어샤크 만으로도 멋진 패킷 분석 보고서를 만들어 낼 수 있을 것이다.

멋진 그래프를 생성한다면 댓글을 달아주세요. 다른 분들과 공유할 수 있도록 예제로 소개해 드리겠습니다.
Good Luck to you!


2010년 5월 19일 수요일

왜 와이어샤크는 한글을 지원하지 않는가?

대중적으로 많이 이용되는 와이어샤크는 거의 영문 버전으로만 사용해 보았을 것이다.
공식적으로 배포하는 것도 물론 영어 뿐이고, 사이트의 내용, 도움말 다 영어이다. 다른 유명한
오픈소스 프로그램들 중에서는 영어뿐만 아니라 다국어를 지원하는 경우를 많이 볼 수 있다.
그런데, 왜 와이어샤크는 없을까?

물론 찾아보면 KLDP 에서 진행하는 와이어샤크 한글화 프로젝트가 있다. 관심있는 분들은 다음
사이트를 참고해 보길 바란다.

일단 공식적으로 와이어샤크에서 다국어를 지원하기 힘든 이유는 여타 다른 프로그램들과 달리
프로토콜을 분석하기 위한 수 백개의 모듈이있기 때문이다. 이걸 다 다국어를 지원하기는 현실적으로 힘들다는
것이다. 더군다나 대부분의 네트워크 관련 프로토콜 자료들은 영어로 기술되어 있다. RFC 나 기타 등.

이런 것들을 제외하고 메뉴 정도는 다국어를 지원할 수 있을 것이다. 하지만, 메뉴만 한글을 지원한다고 해서
이것이 과연 의미가 있을까? 다국어를 지원하기 위해 투자하는 시간과 관리 등등을 고려한다면
쉽지 않기 때문에 와이어샤크에서는 다국어를 지원하고 있지 않은 것이다.  이와 관련한 내용으로
다음 위키에서 언급하고 있다.


프로그램의 메뉴 한글화 보다는 오히려 네트워크를 좀더 이해할 수 있는 프로토콜에 대한 한글화,
분석 방법에 대한 자료등이 어쩌면 우리에게 더욱 필요하지 않을까 생각된다. 그래도 완벽히
한글화가 된 와이어샤크가 있었으면 하는 바램도 있다 :-)

2010년 5월 6일 목요일

와이어샤크 1.2.8 업데이트

와이어샤크가 1.2.8 버전이 나왔다. 이번 버전에서는 새로운 기능 및 프로토콜 추가는 없다.
보고된 버그가 수정되었고, DOCSIS, HTTP, SSL 프로토콜 지원이 업데이트 되었다.
수정된 버그는 아래와 같으며 아래 버그와 관련된 문제를 겪은 분들은 업데이트를 하고,
업데이트가 귀챦으신 분들은 그냥 사용하셔도 되겠다. :-)

  • The DOCSIS dissector could crash. (Bug 4644), (bug 4646)

    Versions affected: 0.9.6 to 1.0.12, 1.2.0 to 1.2.7

The following bugs have been fixed:

  • HTTP parser limits with Content-Length. (Bug 1958)

  • MATE dissector bug with GOGs. (Bug 3010)

  • Changing fonts and deleting system time from preferences, results in wireshark crash. (Bug 3387)

  • ERF file starting with record with timestamp=0,1 or 2 not recognized as ERF file. (Bug 4503)

  • The SSL dissector can not correctly resemple SSL records when the record header is spit between packets. (Bug 4535)

  • TCP reassembly can call subdissector with incorrect TCP sequence number. (Bug 4624)

  • PTP dissector displays big correction field values wrong. (Bug 4635)

  • MSF is at Anthorn, not Rugby. (Bug 4678)

  • ProtoField __tostring() description is missing in Wireshark's Lua API Reference Manual. (Bug 4695)

  • EVRC packet bundling not handled correctly. (Bug 4718)

  • Completely unresponsive when run very first time by root user. (Bug 4308)

    [출처] 와이어샤크 릴리즈 노트 : http://www.wireshark.org/docs/relnotes/wireshark-1.2.8.html

2010년 3월 18일 목요일

불필요한 패킷 제거 시작부터 하자

블로그 초기 개설시, 패킷 분석시 다섯가지 이것만은 알고 시작하자라는 글을 적은적이 있다.
패킷 분석을 처음 접하는 사용자들이, 패킷 파일을 열어 보고는 으레 어려움을 호소한다.
다양한 프로토콜로 많은 내용들이 달려 있으니, 이걸 어떻게 해야 하나 생각이 든다.

패킷 분석의 시작은 일단 불 필요한 패킷 데이터의 제거부터 시작한다. 네트워크 환경에서 발생되는
일반적인 트래픽 정보를 제외하여야 한다는 것이다. 또는 내부에서 사용하는 특정 트래픽이 있다면
그것또한 대상이 될 것이다. 사실 분석의 범위와 대상에 따라 접근 방법이 달라진다.

내가 전혀 모르는 다른 회사 네트워크의 패킷 파일을 받아들인다면 사전 정보가 없기 때문에
일반적으로 발생되는 트래픽 정보를 제외하면서 시작하는 것이 빠를 것이다. 일반적인 트래픽이라
하면 다음과 같은 것들이 해당된다.
- ARP
- Broadcasting
- Multicast
- IPX 및 Netbios
- 스위치간의 통신 프로토콜
- 라우터간의 통신 프로토콜 (HSRP 등)

하지만, 내가 분석하고자 하는 트래픽이 대상이 명확하다면 해당 부분만 필터링 하여
살펴보면 되기 때문에 접근방식은 달라지게 된다. 패킷 분석의 어려움은 내가 그 분석하고자
하는 대상의 네트워크 환경을 정확히 모른다는데에 있다. 그 대상에서 사용하는 특정
프로토콜이 있는지, 어떤 Application 이 동작하여 특정 포트를 사용한다든지, 네트워크 장비 및
구성은 어떤지.. 이 모든 사전 정보가 있어야 보다 정확한 분석을 수행할 수 있다.

어찌되었든, 패킷 분석 시작시 겁 먹지 말고, 필터를 통해 불필요한 패킷 데이터를 제거해 가면서
시작해 보자. 보다 접근이 쉬워질 것이다.
/Rigel