파이썬은 고급 프로그래밍 언어로써, 검증된 포렌식 라이브러리와 모듈을 제공한다. 이를 이용하면 사이버 범죄 수사에 필요한 휘발성 메모리 분석, 이메일, 네트워크 패킷 모니터링 등 다양한 측면에서 활용할 수 있다.



메타데이터(Metadata)는 데이터에 관한 구조화된 데이터이다. 메타데이터는 포렌식 관점에서 다양한 정보를 제공해준다. 예를 들면, 해당 문서 파일을 누가, 언제, 무슨 프로그램으로 작성했는지, 사진이 촬영된 위치가 어디인지, 최초 생성된 위치가 어디인지 등등의 정보이다.

만약 아이폰으로 촬영된 수천장의 사진들 가운데에서 디지털 증거분석 조사를 시작한다고 가정해보자. 촬영된 사진에는 카메라 자체의 정보와 촬영 당시의 시간, 노출, 플래시 사용 여부, 해상도, 사진 크기 등의 사진 정보를 화상 데이터에 덧붙여서 같이 저장하게 되어 있다. 여기에는 GPS 위치정보까지 포함되어있는데, 이를 이용하면 사진이 어디에서 촬영되었는지를 도식화하여 구글 맵에 표현해 볼 수 있다.

이미지가 촬영된 곳의 위치정보를 구글맵에 표시
이미지가 촬영된 곳의 위치정보를 구글맵에 표시
이 이미지(image.jpg)가 생성된 위치는 어디일까?
이 이미지(image.jpg)가 생성된 위치는 어디일까?

image.jpg 파일을 열어서 해당 파일이 JPG 포맷의 파일인지 확인 후, GPS 정보가 포함되어있다면 이를 추출한다. 계산된 GPS 정보를 구글맵상에서 육안으로 쉽게 확인하기 위하여 KML 형식의 파일을 생성하여 저장하도록 한다.

* 이 작업을 파이썬으로 수행하기 위해선, PIL(Python Imaging Library)를 먼저 설치하여야 한다. 다운로드는 ( http://pythonware.com/products/pil ) 를 참조. 맥에서 설치하려는 경우 pip를 깔고 pip install pillow 하면 된다.

파이썬 소스코드는 다음과 같다.


위의 소스코드를 수행하면, KML 파일이 생성된다.


생성된 KML 파일에는 GPS 정보가 포함되어 있다. KML 파일을 볼 수 있는 KML Viewer로는 대표적으로 ( http://ivanrublev.me/kml/  ) 가 있다. 별도의 프로그램 설치 없이, 브라우져 상에서 *.kml 파일을 드래그 앤 드롭하여 확인가능하다.

마우스를 이용하여 image.jpg 파일을 드래그 드롭하면 해당 위치가 구글 맵상에 표시된다.마우스를 이용하여 image.jpg 파일을 드래그 드롭하면 해당 위치가 구글 맵상에 표시된다.
마우스를 이용하여 image.jpg 파일을 드래그 드롭하면 해당 위치가 구글 맵상에 표시된다.


참고 : SANS FORENSICS 의 White paper (http://www.sans.org/reading-room/whitepapers/forensics ) 항목 중 Grow Your Own Forensic Tools: A Taxonomy of Python Libraries Helpful for Forensic Analysis (by T.J. OConnor - September 13, 2010) 을 참고하였음. 관련파일 첨부.



CPUU님의 창작활동을 응원하고 싶으세요?