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월 25일 화요일

구글 검색이 더욱 안전해졌다. 왜? SSL 을 적용했다는 사실

구글 검색엔진이 더욱 안전해졌다. 바로 SSL(Secure Socket Layer)을 검색엔진에 적용했기 때문이다.
사용하기 위해서는 https://www.google.com 으로 접속하면 아래와 같은 이미지를 볼 수 있다.
로고의 차이점은 열쇠가 붙어 있다는 점과 베타라는 글씨이다.
SSL 을 이용한 검색에서는 쿼리 내용 및 검색 결과가 암호화 되므로 안전하게 사용할 수 있다. 아래 화면은
SSL 을 이용한 경우와 그렇지 않은 것을 비교한 것으로 SSL 이용시에는 텍스트문구를 전혀 살펴볼 수 없다.
SSL 을 사용한 패킷에서는 TLS 라는 부분을 볼 수 있다. 궁금하다면 직접 와이어샤크를 실행하고 두개의 차이점을 비교해 보시라!

SSL 이 적용하는 것이 머 어렵냐고 반문할수도 있지만, 서비스를 제공하는 기업에서는 쉽지 않은 일이다.
더군다나 구글 같이 엄청난 트래픽이 있는 곳에서는 말이다. SSL 를 이용함으로써 서버에서는 일반적인
경우보다 더 많은 로드가 발생한다. 그 만큼, 서비스 운영 관점에서는 쉽지 않은 일이다. HTTPS 를 지원하기
위하여 추가적인 하드웨어 구매 비용 및 운영 등 여러가지 고려사항이 많았을 것이다.

어찌되었든, 구글의 SSL 검색을 이용하면 안전한 검색을 할 수 있다. 혹시나 당신이 하는 모든 인터넷이
감시당하고 있다고 생각되면 구글 SSL 검색을 이용해 보시라. 그리고 지메일 또한 SSL 을 지원한다는 점.

2010년 5월 24일 월요일

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

패킷 분석 상용프로그램을 보면 이쁘게 나오는 화면에 부러울 따름이다. 물론, 일전에 소개한
자바기반의 프로그램과 같은 것에서는 비주얼한 화면을 보여주기도 하지만,
전반적으로 오픈소스 패킷 분석기에서는 이런 기능이 약한건 사실이다. 비주얼 적으로는 약하지만
그래프가 가르키는 그 의미를 표현하는데는 부족하지 않을 것이다.

와이어샤크의 IO Graphs 기능을 이용하면 어느 정도 표현이 가능하다.  자 일단 화면을 살펴보면
결과는 아래와 같다. Filter 라고 입력되어 있는 부분에 와이어샤크의 출력필터를 이용하여 출력해 낼 것을
선별적으로 거를 수 있다.  그래프 스타일은 Line, Impulse, FBar, Dot 와 같이 4가지 중 하나를 선택할 수 있다.
그리고, 그래프에서 표현하는데 중요한 X 축과 Y 축이 있다. X 축은 시간 주기를 정한 것으로 1초부터 0.1, 0.01 초 등 다양하다. View as time of day 를 클릭하면 시간으로 표시되고, Y 축은 패킷, 바이트, 비트로 나누어 표시된다.  아래예제에서는, 간단히 대표적 프로토콜만 필터에 입력하여 사용한 것으로 검정색 부분은 전체를 뜻한다. TCP 부분인 녹색을 보면 전체적으로 패킷이 TCP 형태임을 알 수 있고, 빨간색은 UDP 로 전체 패킷에서 아주 일부분 밖에 되지 않는다는 것을 쉽게 알 수 있다.

그래프 사용은 아주 쉽게 표현될 수 있는데, 표현하고자 하는 목적에 따라 사용이 달라질 것이다. 중요한 것은

- 그래프를 사용하고자 하는 목적에 따라 달라진다는 점과
- 그래프에 포함시켜 출력하고자 하는 데이터는 무엇인지
- 그 데이터의 범위는 어디까지 인지 정해야 한다. 데이터의 범위라 하면 특정 프로토콜 이든지
또는, 필터를 통해 특정 데이터로 한정한다. 예를들어, UDP 포트가 8338 이라면 udp.port == 8338 과
같이 사용한다. 와이어샤크의 출력필터는 이전에 언급한 포스팅 내용을 참고해 보기 바란다.
- 마지막으로 그래프의 스타일을 정해야 한다. 한 화면에 표현되는 내용이 많으면 그래프가
명확하게 보이지 않기 때문에, 어느 것을 라인으로 표시하고 어느 것을 바 형태로 표현할지 정해야 한다.


그래프는 직접 사용해 보면 어렵지 않다는 것을 알 수 있을 것이다. 와이어샤크의 Statistics -> IO Graphs 를 클릭해보고 사용해보자.  그리고 위 화면에 Copy 는 CSV 형태로 데이터를 저장해 준다. 아래 화면을 보면
다섯개의 그래프 수치가 표현되어 있다. 이걸 어디에 사용할 수 있을까 ? 이것은 다음 그래프 활용과정에서 소개하겠다.  마지막으로 Save 는 화면을 BMP, JPEG 와 같은 이미지 형태로 저장해 주는 기능을 제공한다.
다음 포스팅에서 그래프를 좀더 효과적으로 활용할 수 있는 방법을 소개하겠다.

2010년 5월 23일 일요일

구글 로고에 팩맨(Packman)게임이 된다고?

주말에 쉬다가 구글 페이지에 접속해 보니 먼가 달라 보이는 구글 로고!
단순한 이미지인줄 알았더니, 얼라 화면이 움직인다. 이미지에 살짝 마우스를 대어 보니
나오는 글귀는 팩맨(Packman) 30주년 기념이라고 한다. 어렸을때 재미나게 해 보았던 팩맨게임.

이 화면을 보고 구글이 더 재치있다고 느낀점이. 직접 게임까지 할 수 있다는 점이다. 키보드의
키 커서를 움직여 보니 와~ 움직인다. 게임을 해 볼 수 있다. 왼쪽 하단에 스피커 모양을 클릭해 보면
사운드까지 나온다. 그 발상이 참 남다른거 같다.

검색 아이콘 말고, Insert Coin 도 보인다. 이걸 눌러보면 2인용이 된다. :-)
2인용 키는 W,A,S,D 를 이용하면 된다.

자 구글로고로 게임한번 즐겨보세요.

2010년 5월 20일 목요일

네트워크 패킷 캡쳐 파일에서 파일 추출하기 (using Tcpxtract)

이전의 포스트에서 와이어샤크를 이용한 바이너리 파일 추출에 대해서 소개한 적이 있다.
그때는 특정 프로그램인 와이어샤크를 이용한 방법에 대해 소개하였고, 오늘은
PCAP 에서 파일을 추출하는 간단한 도구를 소개한다.

이름은 Tcpxtract 이다. 이름만 봐도 대충 이 도구의 용도가 추측된다. 말 그대로
네트워크 패킷 캡쳐 파일에서 파일을 추출하는 기능을 가지고 있다.

파일의 소스코드는 다음의 경로에서 받을 수 있다.

데비안이나 우분투 리눅스 시스템이라면 다음과 같이 쉽게 설치할 수 있다.

# apt-get install tcpxtract

옵션은 간단하다. -f 로 Input 으로 사용될 패킷파일을 지정하고, -o 는 추출해 낸 데이터를
저장할 곳을 지정한다. -d 는 네트워크 디바이스를 지정할 수 있다.

다음 화면은 tcpxtract 를 이용하여 파일을 추출해 낸 것이다. 이미지 파일과 HTML 파일이
추출되는 것을 볼 수 있다. 참고로 IP 는 일전에 소개한 Tcprewrite 를 통해 랜덤하게
변경한 주소이다.


추출해낸 파일 중 하나인 00000147.jpg 파일을 들여다 보자. 일단 확장자가 JPG 이니
이미지 파일인것으로 추정할 수 있으나 확실히 확인해 보기 위해 file 명령어를 통해
타입을 살펴보니 JPEG 로 나오고 파일의 헤더를 보아도 이미지 파일이 맞는 것으로 보인다.

재미있는 기능을 하나 소개하자면, 이미지 파일을 텍스트로 보는 기능이다. 이런 기능은
없을까 하고 찾아보았는데, 역시나 있었다. jp2a 라는 것으로 JPEG 이미지를 ACSII 형태로
변환해 준다. 자. 이미지파일을 ASCII 로 변환해 보면 아래 화면과 같이
이미지의 형태를 ASCII 로 표현해 준다. :-)


[참고]

2010년 5월 19일 수요일

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

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

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

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

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


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

2010년 5월 18일 화요일

패킷통신의 흐름을 알아볼땐, Flow Graph 를 사용해 보자

패킷파일을 분석하다 보면 텍스트문자열로는 한계를 느낀다. 그래서 비주얼한 방법들을 이용하여
분석하기 위한 다양한 도구들이 나와있다. 앞서 소개한 포스팅에서도 자바를 이용한 도구를 소개하였다.
이번에는 대중적으로 많이 이용되는 와이어샤크의 자체기능을 몇 가지 알아보고자 한다. 몇 번에
나눠서 소개하고자 하는데, 그 첫번째로 와이어샤크의 상태 기능중 Flow Graph 기능이다.

통신과정을 시퀀스하게 그래프 형태로 보여주는 기능이다. 아래 그림과 같이 각 과정이 시퀀스 형태로
나와있고, 각 통신을 클릭하면 메인화면이 해당 위치로 이동하게 되어, 필요하면 세부 패킷을
살펴볼 수 있다. 텍스트로 이뤄진 파일보다는 통신과정이 한눈에 들어와서 편하다.


해당 그래프를 얻기 위해서는 Statistics -> Flow Graph 를 선택하면 된다.
선택하면 모든 패킷을 대상으로 할 것인지, 선택된 패킷만을 나열할지 선택한다. 그외 간단한 몇 가지
옵션이 더 있는데 여러분들이 필요에 따라 선택하면 된다.

다만, 트래픽이 너무 큰 상태에서라면 그래프 생성에 시간이 많이 소요될 수 있고, 너무 많은 정보가
나열되므로. 이런 경우는 적절히 필터를 사용하여 그래프를 생성하는 것이 좋다.

즉, 내가 분석을 해야 하는 대상의 범위를 정확히 파악해야 한다. HTTP 가 그 대상이라면
HTTP 를 대상으로 범위를 한정해야 할 것이다. 또, 그 반대로 의심스러운 패턴을 찾는다면,
전체중에서 불필요한 것을 제외시키고 반영하면 될 것이다. 이미 알고 있는 프로토콜이거나
내부에서 사용되는 특정한 것이라면 제외를 시켜 필터를 적용하면 문제를 찾아나가는데 수월할 것이다.

또한, Flow Graph 에는 그래프 형태 뿐만 아니라 텍스트로도 저장할 수 있는 기능을 제공한다.
'Save As' 가 보일것이다. 이것을 누르면 화면에서 보는 형태와 같이 시퀀스 형태로 저장해 준다.


텍스트로도 이렇게 깔끔히 정리해 주니 참 편하다. 회사의 보고서 용도로 활용하기에도 썩 나쁘지는
않을 것이다. 통신의 과정을 깔끔하게 얻고 싶다면,
Flow Graph 기능을 이용해 보시라.

다음번에는 와이어샤크의 IO Graph 를 소개하겠다.

2010년 5월 13일 목요일

네트워크 포렌직 분석 도구(NetworkMiner)를 이용한 패킷파일 데이터 분석하기

NetworkMiner(http://networkminer.sourceforge.net/) 는 네트워크 포렌직 분석 도구이다. 유닉스 환경에서 주로 소개하였던 도구와 달리 윈도우에서 실행이 가능하다. 네트워크마이너(NetworkMiner) 는 패킷 캡쳐 기능을
제공하면서 사용하는 운영체제, 세션, 호스트이름, 열려있는 포트 정보등을 탐지할 수 있다.
실시간으로 탐지하는 기능뿐만 아니라, PCAP 파일을 직접 읽어들일 수도 있다.

네트워크 상에서 데이터를 수집하는 기능보다는 네트워크 상의 호스트에 대한
정보를 수집하는 것이다. 실행을 하면 아래와 같은 화면을 볼 수 있다.


호스트, 프레임, 파일, 이미지와 같은 탭을 볼 수가 있다. 각각 클릭해 보면
상세한 정보를 얻을 수 있다. 호스트 탭을 보면 해당 IP 에서
운영체제 정보, 맥 주소, 전송된 정보등을 볼 수 있다. 파일탭에는 파일이
기록되어 바로 오픈하여 볼 수도 있다. NetworkMiner 가 설치된 폴더를 보면
'AssembledFiles' 에서 IP와 포트별로 나뉘어져 저장된 데이터를 볼 수 있으며
Captures 에는 패킷 덤프파일이 기록된다.

그리고 앞서 말한 운영체제의 판단은 'Fingerprints' 에 들어있는 정보를 이용한다.
그중에 하나인 etter.finger.os 는 ettercap 의 정보파일을 이용한 것이다.
각 운영체제마다 특정한 TCP 값 정보를 이용하여 운영체제를 판단하는 것이다.
이와 관련한 정보는 추후 공유하도록 하겠다.

다시 화면으로 돌아가서, Keywords 탭 에서는 내가 찾고자 하는 정보를 쉽게 찾아 볼 수 있다.
특정한 스트링 값이나 헥사(HEX) 값을 입력하고 'Add' 를 누른다. 그리고
우측 하단의 Reload Case Files 를 누르면 다시 파일을 재 로드 하면서 해당
키워드가 포함된 정보가 우측 화면에 나타나게 된다. Credentials 탭에는
사용자 이름/패스워드와 같은 중요정보가 검출되면 나타나게 된다.


NetworkMiner 는 따로 설치도 필요하지 않아, 바로 사용이 가능하고 GUI 환경으로 되어있어,
정보 파악이 쉽게 되어 있다. 패킷 분석 도구만을 이용하는 경우에는 직접 분석가가 세부적으로 각
패킷의 정보를 일일이 확인해야 하는 반면, 이러한 포렌식 형태의 도구는 보다 정보를 빨리
얻을 수 있도록 도와주고, 분석의 접근을 용이하게 해준다. 호스트의 세부정보를 도구의 도움으로
쉽게 얻을 수 있고, 이미지나 파일과 같은 데이터도 Reassemble 하여 저장을 해주니 상당히
편리하다.

도구의 사용에 앞서,
패킷 데이터에서 무엇을 얻고자 하고, 왜 분석을 해야 하는지의 형태에 따라 어떤 방법으로 분석을 접근 해야 할지 결정해야 한다. 그 점은 잊지말자!. 도구가 모든 해결책이 될수는 없다.

여하튼, 앞으로도 네트워크 포렌식 도구에 대해서 몇 가지를 계속 소개해 나갈 것이다.

[참고]
1. 분석에 이용된 패킷 파일
http://holisticinfosec.org/toolsmith/files/nov2k6/toolsmith.pcap

2010년 5월 12일 수요일

맥아피(McAfee)사에서 만든 네트워크 스니퍼 프로그램 - CSniffer

대표적으로 많이 쓰이는 네트워크 캡쳐/분석 프로그램인 와이어샤크 부터 시작하여 너무나 많은 프로그램들이 존재한다. 분석하는 방법에 따라 조금씩 필요한 기능은 다르지만,
그래도 역시나 대표적인것은 와이어샤크일 것이다 :-)

하지만 여러분들에게 많은 것을 소개해 드려야 하니, 오늘은 백신으로 유명한 맥아피사의 커맨드용
스니퍼 프로그램을 소개한다.  머, 많은 기능을 기대하기는 힘들고, 일반적인 스니퍼 기능을 갖고 있다.
기능들을 보면 아래 그림과 같다. 눈에 띄는 -p 기능이 있는데, 직접 해 보니 딱히 이 옵션의 이름과
맞는 기능인가 쉽긴 하다. 패스워드를 보기 좋게 모아주는 기능은 아니다.

다운로드는 다음의 주소에서 할 수 있다.
또한 위 도구에 다른 유용한 것도 있으니 아래 페이지를 방문해 보기 바란다.

실행해 보면 아래와 같은 출력형태의 결과를 얻을 수 있다. 제작 배경을 보면, 기업에서
고객의 문제해결 및 기술지원 측면에서 만들어진 형태로 볼 수 있을 것 같다. 문제가 발생한 고객에게
패킷 캡쳐를 해서 보내달라고 하는 것 보단, 회사에서 만들어진 프로그램을 통해 안내하고
데이터를 얻는 것이 기업 이미지가 더욱 좋지 않겠는가 :-)



2010년 5월 11일 화요일

TCP Flow Control 시뮬레이션 및 비주얼 출력

패킷 인사이드를 자주 방문해 주시는 홍홍 님이 문의하였던 TCP Congestion Protocol 과
관련하여 유용한 도구를 하나 소개해 보고자 한다. 자바로 만들어진 것으로 이름은
TCP Simulator 이다.  자세한 정보는 다음 사이트에서 얻을 수 있다.


실행은 어렵지 않게 할 수 있다.

c:\>java Window_SimGUI 를 수행하면 아래와 같은 다소 복잡한 화면을 볼 수 있다. 크게 보면
왼쪽과 오른쪽 호ㅡ트로 구분되어 있고. 가운데 있는 화면은 패킷의 움직임의 흐름과 Delay/Loss 정보 및
다양한 이벤트 정보를 보여준다.

일단, Simulator -> Load Simulator 에서 원하는 형태를 선택하여 시작할 수 있다. 나의 경우는
왼쪽은 Client, 오른쪽은 서버로 구성하고, Fast Recovery 선택를 선택하였다.

Fast Recovery 는 리시버가 손실된 세그먼트가 도착하면 바로 중복된 ACK 를 보내게 된다.
ACK 는 샌더에게 보낸 세그먼트가 손실된 세그먼트라는 것을 알려주게 된다. 즉,
보내는 샌더 측면에서 보면 중복된 ACK 는 다양한 네트워크 문제에 의해 발생될 수 있다.

아래 화면을 자세히 들여다 보면 왼쪽 호스트에서 PUSH SEND 를 하였고, 푸른색의 바 타입 이미지가
전송이 되는 부분이다. 그 아래의 이미지는 리시버가 받아서 다시 샌더에게 보내고 있다. 여기서는
일부로 Delay 및 Loss 상황을 만들어 주면서 Fast Recovery 가 동작함을 볼 수 있다. Left Host 의 TCP Events 를 보면 Reno in Fast Recovery: Additional Dup ACK received 가 발생했음을 보여준다.


다양한 이벤트가 있으니, TCP Congestion Protocol 을 공부하는 분들에겐 유용한 시뮬레이터가 될 것이다.

[참고정보]
1. TCP Congestion Protocol
http://www.ietf.org/rfc/rfc2581.txt

2010년 5월 8일 토요일

13개의 DNS 루트 서버에 DNSSEC 적용완료 소식

DNS(Domain Name System) 루트 서버에 DNSSEC 을 모두 적용하였다는 소식이다.
DNSSEC(DNS Security Extensions)은 캐쉬 포이즈닝과 같은 DNS 공격을 방어할 수 있으며,
DNS 에 대한 데이터의 무결성 및 기존 DNS 시스템보다 안전한 운영이 가능하다.
DNSSEC 에는 4개의 레코드 타입이 추가되었는데,

- Resource Record Signature(PRSIG)
- DNS Public Key (DNSKEY)
- Delegation Signer (DS)
- Next Secure(NSEC)

와 같다. 새로운 레코드에 대한 것은 RFC 4034 를 참고하기 바란다.

이번 루트서버에 대한 DNSSEC 적용 히스토리를 보면
2009년12월1일에 루트존을 운영하는 VeriSign 과 ICANN 에 의해 적용하기로 협의되었다.

이에 2010년1월 13개의 루트서버중 하나인 L-ROOT 서버부터 적용되었다. 5월 초까지
모든 루트서버에 적용하기로 되어 있었고, 5월5일에 마지막인 J-ROOT 서버에
적용되었다. 7월1일부터 공식적으로 서비스를 제공할 계획으로 잡혀있다.

최근의 업데이트 정보는 다음 주소를 참고하면 된다

업데이트 할 기회가 있으면 다시 정보를 공유하도록 하겠다.

[참고정보]
1. http://www.icann.org/en/announcements/announcement-27jan10-en.htm
2. http://www.root-dnssec.org/
3. http://www.dnssec.net/

2010년 5월 6일 목요일

구글의 얄스버그 (Jarlsberg)를 통해 웹 해킹을 이해해 보자.

웹 보안에 관심이 많다면, 구글에서 개설한 Jarlsberg 사이트를 방문해 보기를 바란다.
이 페이지에서는 다음과 같은 것을 배울 수 있다.
  • 해커가 어떻게 보안 취약점을 찾는지
  • 해커가 웹 응용프로그램을 어떻게 악용하는지
  • 그리고 이 문제점들을 어떻게 멈추게 할 수 있는지 배울 수 있다.

즉, 몇년전 부터 큰 이슈가 되고 있는 웹 보안에 대해서 체계적으로 이해하고 배울 수 있도록 만들어 놓은 페이지이다.  일반적인 웹 취약점인 XSS, 정보노출, 원격코드 실행 등. 많은것을 알 수가 있다.


[출처] Jarlsberg 사이트

하나 하나 한 단계식 밟아가기 위해서는 다음 페이지를 방문하면 된다.


실제 취약점을 내포하고 있는 페이지는 http://jarlsberg.appspot.com/start 로 가면 된다. 구글의 앱 엔진이 시작되면서 Unique 한 ID 를 만들고 시작된다. 물론 이 Jarlsberg 의 소스코드도 받을 수 있다.
여기서 소개한 한 예제인 XSS 를 보면

http://jarlsberg.appspot.com/part2#2__xss_challenge 를 보면 아래와 같은 URL 을 통해 스크립트를 실행할 수 있다.


XSS 는 현재 많이 이용되는 웹 공격 방법중에 하나이며, Jarlsberg 는 어떻게 이런 일이 발생될 수 있고, 어떻게 방어해야 할지 알려준다. 구글의 이런 노력이 너무 좋다. 참 Jarlsberg 의 원래 의미를 찾아보면, 살균우유를 압착해 숙성시킨 노르웨이 하드치즈라고 한다. 발음이 어떻게 될까 했는데, 얄스버그 라고 한다.

와이어샤크 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년 5월 5일 수요일

TCP, UDP 세션별로 패킷(PCAP) 파일 분할하기

PCAP 파일을 자르기 위한 방법을 몇번 언급하였다. 아래는 이와 관련된 포스팅 이므로,
참고하지 못한 분들은 읽어보기 바란다.


이번에 소개하고자 하는 것은 세션 기반의 파일 자르기 이다. 기존에 소개하였던 것이 개수별, 바이트별로 패킷파일을 잘랐다면 이것은 TCP 또는 UDP 세션별로 자르게 된다. 특정한 세션만 봐야 되는 경우, 편리하게 이용할 수 있을 것이다. 또한, 어떤 세션이 많이 있었는지도 판별하기도 쉬워질 것이다.

소개하는 프로그램의 이름은 SplitCap 이며, 윈도우 기반의 프로그램이다.

[SplitCap]
[다운로드]

실행하면 아래 그림과 같은 도움말을 볼 수 있다.

각 옵션을 정리해 보면 아래와 같다:

-r : 읽어들일 pcap 파일을 지정
-o : 결과파일이 나올 디렉토리를 지정
-d : 이전의 데이타 파일 삭제
-p : 파일별 세션의 개수를 지정
-b : 파일별 저장 크기 ( 크기는 바이트 기준)
-s : 트래픽을 그룹으로 나누어 저장 (각 호스트별, 각 호스트 통신 간, 세션별 )

사용은 아주 간단하다.

C:\SplitCap_1-2>SplitCap.exe -r udp_8338.pcap
Splitting pcap file into seperate pcap files...
100%
Please wait while closing all file handles...

실행하면 옆 화면과 같이 세션별로 파일이 나눠진다. 그 형태를 보면
프로토콜, 출발지 IP, 출발지 포트, 목적지 IP, 목적지 포트 로 나온다.

다른 파일 나누기 보다 세션별로 나눌때는 아주 유용할 것이다. 더불어 -s 를 이용한 그룹별 분리도 유용하다.
host 간 트래픽을 저장한다면 -s host 를 사용하면 된다.

이제 어떤 PCAP 을 받더라도 여러분들이 원하는 형태로 쉽게 나눌 수 있을 것이다.  :-)

2010년 5월 4일 화요일

2009년 미국의 감청 승인 현황을 보면...

한국에서도 감청에 대한 이슈가 있고, 일전에 네트워크 패킷 감청에 대한 포스팅도 했었다.
그렇다면, 개인 정보보호에 민감한 미국의 경우는 어떠할까?
 
미연방법원에서는 매년 감청에 대한 리포트를 작성하고 있다.
 

2009년 자료를 보면,
2009년에 정부 및 주에 의해 승인된 도청 건수는 2,376 이다. 감청 장비가 설치되어 운영되는 평균
기간은 42일이며 2008년 41일에 비해 비슷한 수치이다. 감청을 통해 4,537 명이 검거되었다고 한다.
감청되는 범위는 주로 전화이다. (일반 전화 및 모바일 통화 등). 전화를 이용한 감청이 98 퍼센트
이며 이 중 대부분은 휴대전화 통신이다.
 
감청에는 만만치 않은 비용이 소요된다. 2009년 감청을 위한 장비 설치는 평균 $52,200 이 들었으며, 2008년에 비해 10% 증가한 수치다. 감청은 민감한 이슈다. 여러분의 사생활이 누군가에 의해 도청당하고 있다면 어떨까? 그래도 미 정부에서는 이렇게 투명하게 리포트를 작성하여 공개하니 이 점은 잘하는 것이다.

과연 도/감청 없는 세상에서는 살기 힘든것인가?