'포렌식'에 해당되는 글 7건

  1. 2012.04.03 1.시작하며... (3)
  2. 2011.04.08 사용자 분석을 위한 포렌식 도구 Winproof [ 동영상 ] (1)
  3. 2011.03.07 사용자 분석을 위한 포렌식 도구 Winproof (17)
  4. 2010.07.26 Motive (1)
  5. 2010.07.25 Forensic 이란? (3)
  6. 2010.07.25 Digital Forensic Tool Winproof (1)
  7. 2010.06.10 Registry Data Structure Viewer (4)

Naver Perl Community & Study Cafe


2012.04.03 16:33

1.시작하며...


안녕하세요 h0ney 입니다!

이번 강좌에 설명할 내용은 레지스트리 Hive 파일 포멧 분석기(Registry Hive File Format Analyzer)  입니다.

사이버 포렌식에서 Registry Hive 파일 분석은 선택이 아니라 필수일 정도로 중요도가 높습니다.

이를 프로그래밍 도구를 만들면서 전체 구조를 파악하며 공부하는 글을 적어보려고 합니다.

프로그래밍 분석에 사용될 언어는 perl 이며 Windows Forensic Analysis의 regpl.pl 을 참고하여 설명드리겠습니다.


보안 공부를 할때 기본적으로 배우는 개념 중 PE 구조 라는 것이 있습니다.

(PE구조란 윈도우 운영체제에서 지원되는 실행 파일의 형식을 뜻하며 실행을 할 수 있는 구조를 가진 파일입니다. )


이런 PE구조를 분석 및 공부를 하려면 

PE구조에 관련된 서적을 열심히 읽어야 하는데

책을 아무리 읽어도 16진수가 난무하는 알 수 없는 값들 때문에

눈꺼플이 무거워지고 꾸벅꾸벅 잠만 쏟아집니다 ^^;;


PE구조 같은 파일구조를 공부하기에 좋은 방법을 소개하자면

첫 번째로는 샘플 파일을 Hex Editor를 통해 직접 값들을 확인하며 공부하는 방법.

두 번째로는 파일에 관련된 도구를 직접 사용해서 내부 구조를 확인하는 방법

세 번째로는 프로그래밍으로 직접 파일구조 분석 도구를 만들어 보는 방법입니다.


Hex Editor 나 도구를 이용해서 구조를 확인하고 넘어가도 상관이 없지만 

도구를 직접 만들어 본다는 것만으로 설레이지 않나요?? ㅎㅎ


좋은 점에 대해서 부연 설명을 드리자면...

1. 분석도구를 만드려면 파일 구조가 온전한지 값이 잘 출력되는지 

    테스트를 하며 만들어야 하기 때문에 자연스럽게  파일구조가 머릿속에서 그려집니다.


2. 책에서 봤던 혹은 알고있는 내용과는 다르게 다양한 변수들이 많이 생기는데

   이런 변수들을 하나하나 해결할 수록 단단한 내공이 쌓여지게 됩니다.


3. 파일의 구조를 생성하는 것에 대한 알고리즘을 알게되어 다른 형식의 파일을 접하더라도

   쉽게 이해할 수 있는 지식도 생기게 되죠!!


도구로 만들고 싶다는 생각이 불쑥불쑥 솟아 나시죠??!!


레지스트리 Hive 파일 분석기를 잘 만들어 두면 레지스트리 값들을 모두 

얻을 수도 있고, 지워진 레지스트리 값도 복구가 가능하기 때문에

많은 분야로 확장 가능할 것이라 생각됩니다.


강좌는 아래와 같이 2가지로 나누어서 진행하려고 합니다.

1. perl을 이용하여 내부 값들을 알아보며 각각의 키와 값들을 뽑아내어 보는 파트 


2. C#을 이용하여 UI를 꾸며 분석도구를 만들어가는 파트


두 파트 모두 도구는 만들어져 있으니 어떻게 설명하느냐가 

중요할 것 같습니다.. 부담이 되네요 ㅡ_ㅠ

모르는 부분도 많으니 피드백 주시면 감사하겠습니다 ^^/


준비물

1. Perl 설치 ( 링크를 참고 하시면 됩니다 ^^ 이럴때 카페 홍보!! )

2. Registry Hive File 문서 ( 문제가 될 시 삭제 하겠습니다.)

The WindowsNT Registry File Format.pdf

FORENSIC ANALYSIS OF UNALLOCATED SPACE.pdf

3. Windows Forensic Analysis의 perl 소스코드

4. Hex Editor - ICY Hexplorer ( 제가 좋아하는 Hex Editor 입니다 )

hex_setup216.exe

5. 끝없는 열정!


신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Trackback 0 Comment 3
2011.04.08 11:20

사용자 분석을 위한 포렌식 도구 Winproof [ 동영상 ]



프로그램은 작년에 완성이 되었는데 미루고 미루다가
이번에 새로 동영상을 찍었습니다.

프로그램 설명은 아래 링크에 있습니다 :)
http://honeyperl.tistory.com/121

facebook도 동영상이 깔끔하게 올라가네요~
고화질로 보시려면 HQ를 눌러주시길!
외부링크를 쓰니깐 HQ 고화질 모드가 지원이 안되는군요.. ㅠ_ㅠ
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Trackback 0 Comment 1
2011.03.07 05:38

사용자 분석을 위한 포렌식 도구 Winproof




사용자 분석을 위한 포렌식 도구 Winproof 

Team Name : Source Diet

Project Leader :
h0ney
Project Member : lscpjyoon,  golee07
Development-time : 2010.9.1 ~ 2010.11.31

개발 환경 : Windows XP
개발 도구 : MS Visual Studio 2008
개발 언어 : C/C++, C# , perl
버전 관리 : SVN

작년 한해동안 했던 여러 프로젝트 중에서
가장 심혈을 기울였던 작품입니다.

프로젝트를 시작하기 전 사전조사만  2달동안 밤새도록 했고,
국내와 국외의 포렌식 자료는 모조리 조사하고 긁어모으며,
포렌식이라는 학문을 이해하려고 노력하였습니다.

어떻게 하면 기존의 있는 도구보다 더 나은 툴을 만들 수 있을까
차별화된 기능은 무엇인가 많은 고민도 했지만,
기본 기능에도 충실했던 프로젝트입니다.

디지털 포렌식이 무엇인지 알고 싶으신 분은 제 블로그의 Forensic 이란? 을 읽어봐주세요 :)


- System Architecture




윈도우 XP 운영체제에서 닷넷프레임워크 3.5 C# 으로 제작을 하였으며

Assessment/Intergrity(평가 / 무결성 확보), Acquisition(수집), Analysis(분석), Restore(복구),
Document(문서화 및 보고)로 이루어 집니다.

이 과정에 따라 전체 적인 Architecture를 구성 하였으며,
데이터를 수집 시에 무결성, 저장 매체에 대한 디스크 이미징 기술,
정보 수집 기술을 바탕으로 데이터를 수집 합니다.

수집한 데이터를 바탕으로 복구기술을 거쳐,
필요한 정보들을 뽑아 내어, Registry Hive , Web Log, System Log 의 분류에 따라
데이터를 분류하여 분석하게 됩니다.

디지털 증거를 분석하고, 분석 완료 후 분류된 데이터를 타임프레임(timeframe)으로 표현이 가능하며, 
분석 결과 및 전반적인 절차와 정보를 기술한 보고서를 작성 할 수도 있습니다.



Winproof는 디지털 데이터 원본 저장소로부터 데이터를 획득하여
원본 저장소의 배드섹터를 제외한 모든 디지털 데이터 원본과
비트 단위로 동일하게 생성하여 복사 원본 생성 합니다.

이런 과정에서 무결성을 확보 하기 위하여 MD5를 사용 하였으며
비휘발성 데이터를 복제할 경우 활성 파일 시스템의 타임스탬프가 변경될 가능성이 있으므로
복사하기 전 실제 원본 데이터의 타임 스탬프를 저장 한 후,
복사 완료시 실제 원본데이터의 타임스탬프의 시간대로 적용 시켰습니다.

획득한 복사 원본들을 데이터 유형에 따라 데이터를 분류하여 상세 분석을 하였으며,
타임프레임(timeframe)에 따른 분류를 통해 효율적이고, 신속한 증거 분석을 가능 하게 해줍니다.


- System Main UI



Winproof 의 메인 화면입니다.

분석은 2가지 모드로 이루어지며  Nomal 모드와 Document 모드로 구성되어 있습니다.



Nomal 모드는 총 4가지 모드로 이루어져 있으며,
레지스트리 분석, 웹로그 분석, 시스템 로그 파일 분석, 파일 복구 기능을 수행 할 수 있습니다.



Document 모드에는 TimeLine 기능과 문서 생성 기능을 수행 합니다.

TimeLine은 Registry, Systemlog, Weblog에서 분석된 데이터를 
년, 월, 일 시에 따른 로그별 데이터 타임 라인을 제공합니다.

문서 생성 기능에서는 사용자 지정에 따른 각 모듈별 문서 작성 기능 및 문서 출력 기능을 할 수 있습니다.




Normal모드에는 디지털 증거 데이터를 상세 분석을 위한,
Registry Analysis, WebLog Analysis, Local Analysis, FileRecovery 기능이 있으며,
Documnet 모드는 Timeline Mode, 시나리오에 따른 문서화 기능으로 구성 되어 있습니다.

Setting 모드에는 디지털 저장 매체를
디스크 이미징, 조사관, 조사번호, 조사 내용을 설정을 위한 설정으로 되어 있습니다.



디지털 저장 매체로부터 디스크 이미지를 하기 위해,
디지털 저장의 볼륨명을 선택 하는 장면입니다.

간단히 저장 매체에 대한 이름, 볼륨 타임, 파일 시스템 종류,
사용 중인 공간, 사용 가능한 공간 디스크 용량을 알 수 있다.



디스크 이미지 완료 후에는 설정 창에서 Registry, Web, SystemLogFile 등
수집된 데이터들의 종류를 확인 할 수 있습니다.



디지털 저장 매체로부터 디스크 이미지 한 볼륨에 대한 정보를 확인 할 수 있으며
이미지 디스크 드라이브명, 볼륨 시리얼 번호, 이미징 파일 수, 삭제된 파일 수, 총 섹터 수, 시작 섹터,
섹터당 바이트수, 클러스터 바이트수 등에 대한 정보를 확인할 수 있습니다.


- Registry Analysis




레지스트리 하이브파일은 총 6개의 파일로서 사용자의 레지스트리에서 추출해온 데이터를 통해 분석을 합니다.

하이브 파일 분석으로 노드를 구성할 시 약 40만개 이상의 노드로 구성 되기 때문에
속도문제를 우선시로 하여 알고리즘을 처리 했으며, 분석이 완료된 시점에서 완료 버튼이 활성화 되게 됩니다.



레지스트리 Viewer 의 메뉴는 왼쪽과 같습니다.
큰 메뉴로는 레지스트리 Hive 정보, 원본 레지스트리 Tree , 기본정보, 파일 , 활동정보, 로그 등이 있습니다.

 하위메뉴로는 각각의 설정값에 따른 정보들이 있고,
이 설정값들은 원본 레지스트리 Tree의 값들을 참조해서 분석이 된니다.



분석된 Hive 파일을 통해 트리노드를 구성해주며,
윈도우와 동일한 인터페이스를 통해, 분석이 쉽도록 직접 구성을 하였습니다.
각 키 값에 따른 Value 리스트를 확인 할 수 있고, 키의 값들을 직접 확인도 가능합니다.


Registry 종류에 따라 각각의 데이터를 볼 수 있는 Viewer 를 구성하여 선택된 값을
자세하게 확인할 수 있도록 하였습니다.


 키 바로가기 기능은 해당 키를 바로 접근할 수 있습니다.
중요한 키를 바로 접근이 가능하며, 키가 없을 경우 접근하지 못합니다.

검색모드는 2가지로 나누어 집니다.
첫 번째로 내용을 대상으로 찾는 방법, 두 번째로는 날짜별 검색입니다.
날짜별 검색은 키, 값, 데이터를 기준으로 검색이 가능하며,
검색은 일반 레지스트리의 속도보다 훨신 빠르게 검색됩니다.





레지스트리 트리의 현재 키를 북마크에 저장 할 수 있고, 그 키들을 다시 찾아 갈 수 있습니다.





사용자 정보는 윈도우에 있는 사용자에 대한 계정별 정보를 나타냅니다.
사용자의 이름, 설명 홈 폴더경로 등과, 최종 로그인 시간 로그인 횟수 등 중요한 정보들을 가지고
있어 조사관이 분석을 할 때 필수적으로 필요한 항목 중 하나입니다.




윈도우의 설치정보는 윈도우 종류, 버전 , 시스템 루트 , 설치 시각 등을 알 수 있습니다.




네트워크 인터페이스 정보는 컴퓨터에 설치된 인터페이스 카드들의 정보를 알려 줍니다.
각 네트워트 인터페이스 카드별로 당시네트워크 환경을 그대로 재구성되기 때문에
매우 중요한 정보들을 담고 있습니다.


사용자가 접근했던 파일에 따른 정보들을 나열해주고  최근 접근한 파일, 최근 저장된 파일,
Explorer에서 열어본 파일의 정보를 알 수 있습니다.


 최근에 저장된 파일을 확장자에 따라 확인할 수 있습니다.
각 확장자를 클릭하면 해당 확장자에 따른 파일을 확인할 수 있습니다.
위와 마찬가지로 최근에 접근한 순서대로 정렬을 합니다.



 레지스트리 키의 바이너리 파일을 분석하면 Explorer에서 열었던 파일을 확장자 별로 확인할 수 있습니다.



활동했던 정보는 접근했던 Web Site, 실행창에서 입력된 프로그램, 실행된 최근 프로그램,    
설치되었던 소프트웨어 등을 알 수 있습니다.

Explorer에서 접근 했던 WebSite 를 알 수 있고, 바로 그 웹사이트를 확인이 가능합니다.


실행창에서 입력했던 정보까지 알수있죠 :)


레지스트리 키인 UserAssist 를 통해 실행된 최근 프로그램의 파일의 경로 및 실행 횟수,
마지막 접근시간 등을 알 수 있다. 해당 프로그램에 따라 프로그램의 설명도 확인할 수 있습니다.


설치된 소프트웨어 뿐만이 아닌 설치되었던 모든 소프트웨어를 확인 할 수 있으며,
설치된 시각, 프로그램의 이름까지 확인이 가능합니다.
자세한 정보를 확인하기 위한 키 경로를 제공하며 키에 접근도 가능합니다.



USB 사용로그는 USB의 설정을 알 수 있으며 USB를 연결한 시각을 시작해서
USB의 이름, 장치설명, 장치 종류 등을 확인할 수 있습니다.


- Web Log Analysis




Winproof에서는 웹 브라우저 시장 점유율의 90%이상을 차지하는
Internet Explorer, FireFox, Chrome의 생성 파일 분석을 통하여
사용자 웹 브라우저 사용 내역을 효율적으로 추척 할 수 있도록 구현 하였습니다.

Internet Explorer의  Index.dat view, Chrome의 Log File view, Firefox Log File view 기능을 통하여,
사용자의 인터넷 사용 내역을 자세히 볼 수 있는 기능을 구현 하였습니다.

또한 3개의 웹 브라우저의 공통 내역인
방문 사이트, 검색어, 즐겨 찾기, 다운로드 정보 등을 볼 수 있도록 구현 하였습니다.



Internet Explorer는 윈도우즈 시스템에 기본적으로 설치 되어 있으며,
Internet Explorer는 Temporary Internet File, Cookies, History 폴더에 인터넷 사용 자용 정보를 저장합니다.

Temporary Internet File 폴더는 웹 서버로부터 불러온 임시 파일을 저장하며,
Cookies 폴더는 쿠키 파일을, History폴더는 사용자가 접속한 웹 사이트의 목록을 저장합니다

3곳 모두 index.dat파일을 통하여 관련 정보를 관리하는데
각 폴더의 index.dat 파일은 크게 header, Hash table, Activity record 3부분으로 구성 되어 있으며,
각 레코드 부분에서 사용자 흔적을 찾을 수 있습니다.



FireFox 로그 파일 분석


Firefox는 Cache, places,sqlite, cookies.sqlite에 인터넷 사용 정보를 저장합니다.
places.sqlite, cookies.sqlite는 웹 히스트리를 저장하는 파일로서 이름에서도 알 수 있듯이
SQLite database파일입니다.

places.sqlite에서 사용자의 웹 사용 기록을 추적 하기 위해 참조해야 할 테이블은 크게 2개로 구성 되어 있고 cookies.sqlite는 쿠키를 저장하는 파일입니다.



Documents and Settings\<username>\Local Settings\Application Data\Google\Chrome\User Data\Default에는 Web Data, History, Cookies 웹 로그 파일이 존재 합니다.

웹 로그 파일을 분석 하면, url, 웹 사이트 제목, 방문 시간, 숨김 여부,방문 횟수, 검색어,
폐기 날짜 등 사용자 정보 및 패턴을 분석 할 수 있습니다.



계정 정보에 따른 Web Log에 저장 되어 있는 값들을 검색 할 수 있는 기능과
날짜 별로 검색 할 수 있는 기능을 제공 해줍니다.

웹 브라우저를 오래 동안 사용 했을 경우, 로그 값들이 많이 존재 하기 때문에,
단어별 검색, 날짜별 검색 기능을 구현 하였습니다.



- System Log Analysis



이 모드는 XP가 설치된 PC 로컬 상에 존재하는 모든 파일들의 분석을 위해 존재합니다.

첫 번째 보이는 화면은 무결성에 의해 복사된 분석대상 파일들의 용량과 개수를 보여 줍니다.
크게 의미있는 정보는 아니지만 분석자에게 분석 대상을 확실하게 하기 위함입니다.




파일시스템 상에 존재하는 모든 파일 중에서도 다음 아래의 항목이 분석 대상입니다.

1. 이벤트 로그 분석
2. 윈도우 복원지점 분석
3. ADS 검색 모드
4. 파일 포맷 검색 모드
5. 바로가기(LNK) 분석 모드
6. JPEG 분석 모드
7. Application Prefetch 분석 모드
8. 윈도우 기본 로그 정보
9. 휴지통 분석



이벤트 로그 분석

기본적으로 3가지 기본 이벤트 로그 파일을 분석하며 분석자가 원한다면
다른 이벤트 로그 파일도 분석이 가능합니다.

여기서 제공되는 이벤트로그 뷰어가 기본적으로 윈도우에 존재하는 이벤트로그 뷰어와 차이점이라면,
복사한 .evt 파일을 자신의 윈도우즈 데스크톱 시스템으로 복사했을 경우에
손상된 파일이라는 메시지가 나올 수 있습니다.

이는 API에서 문제점을 발견할 수 있었는데, 이벤트 로그가 지워졌을 경우에
이벤트 로그의 영역 바로 앞의 첫 번째 레코드를 버퍼 영역으로 남겨 놓기 때문이었습니다.

이 버퍼 영역은 API를 통해서는 읽혀지지 않게 처리되며,
새로운 이벤트 레코드가 파일에 쓰여지는 경우에 이 영역은 순환 버퍼에서 없어지게 되는 구조였습니다.

따라서 바이너리로 읽어들였을 경우에는 API로 읽어들일 때와는
다른 온전한 삭제된 이벤트 로그에 접근 할 수 있었습니다.



해당 이벤트 리스트에서 더 자세한 정보를 원하는 이벤트에 대해
왼쪽과 같은 정보 창을 만들어 보았습니다.

이는 기본적인 이벤트 ID의 소스, 설명 등을 보여주며, 분석자의 편의를 위해
해당하는 EventID정보를 제공하는 웹사이트인
EventID.net의 Comment 내용을 파싱하여 분석자에게 제공한다는 점입니다.



윈도우 복원 지점 분석이란 XP 시스템의 복원 지점에서 유지되는 로그 파일들을 분석한 것입니다.
이 로그들의 특징은 컴퓨터가 수행되는 동안 차례대로 로그가 저장되며,
포렌식 관점에서 볼 때 만약 로그파일들의 시간대 순서가 변경되었다면
그 컴퓨터의 사용자가 임의로 시간대를 변경했다는 증거가 됩니다.

아래 화면에서 보는 것과 같이 복원 지점의 로그인 Rp.log와 Change.log.x를 분석하여 보여주며
이 로그들을 이용하여 <복원 지점이 생성된 시점>, <복원 지점의 타입>, <복원 지점의 설명>, <
복원 지점의 사이즈>, <복원 지점의 디렉터리명>, <복원 지점의 파일 리스트>,
<복원 지점 생성 시간의 연속성 여부>등을 보여 줍니다.



NTFS의 ADS 영역을 시각적으로 보여주는 탐색기. 유저 인터페이스 구성은 위와 같으며
ADS영역은 붉은 색으로 보여지게 구성하였습니다.

또 ADS 영역에 존재하는 파일을 검색해주는 기 능을 갖추고 있는데, 총 3가지 입니다.
<윈도우 기반 디렉터리 검색>, <전체 검색>, <해당 디렉터리만  검색> 이 있는데
기본적으로 V3나 알약과 같은 ADS 영역에 대한 악성코드 분석은 이루어 지지 않고 있으며,
악의적인 목적으로 바이너리 파일을 숨길 가능성이 있기 때문에 이러한 모드를 추가하였습니다.




파일 포맷 검색 모드란 어떠한 사용자가 임의로 확장자를 바꿔버렸을 경우에 사용된니다.

JPG, PDF등의 문서파일의 확장자를 감추더라도 파일의 바이너리를 분석하여 매칭시켜 찾아내는 모드입니다.
속도의 향상을 위해 1개 ~ 3개의 멀티 쓰레드를 사용하여 분석을 수행합니다.
이는 듀얼코어의 IBM 노트북에서 테스트를 거쳐 설정하였습니다.



기본적으로 저장된 파일 포맷의 종류는 총 282가지이며,
조사자가 임의로 검색할 확장자를 선택할 수 있게 인터페이스를 구축하였습니다.



바로가기파일인 LNK를 분석하여 보여줍니다.

조사 대상 하드디스크의 바로가기들을 사용자 계정별로
쉽고 빠르게 찾아낼 수 있는 인터페이스를 구축하였습니다.

LNK는 어느 한 시점에 사용자가 접근했던 파일 및 시간은 물론이고,
사용자가 시스템에 장착했던 장치의 파일들 (또는 네트워크 공유)에 관한 정보를 제공할 수 있습니다.



JPEG 파일의 Exif를 분석하여 보여주게 된니다.
Exif에는 포렌식 관점에서 유용한 정보를 많이 얻을 수 있습니다.
포토샵 수정 여부 등이나 기타 여러 가지 속성 정보를 알기 쉽게 리스트로 보여주게 되며,
JPEG 파일을 빠르게 보여주기 위해 3가지의 미리보기 형식으로 탐색하게 됩니다.
마찬가지로 여러 가지 검색기능을 제공한다.


프리패치 파일은 시스템의 부팅 및 실행 속도를 향상시키기 위해 만들어진 파일입니다.

프리패치 파일은 윈도우 메모리 관리자의 구성요소 중 하나인 프리패처가 만들고 관리되는데,
조사자는 이 프리패치에서 과거 또는 현재에 어떠한 프로그램이 설치 되었는지를 확인 할 수있습니다.

윈도우 어플리케이션 프리패치 파일을 분석해서 보여주는 모드인데
여기서 생성된 파일의 시간과 수행횟수, 프로세스 경로, 마지막 실행 시간등을 분석자에게 제공하며
프리패칭 파일 내부의 등록된 경로와 파일들을 간편하게 보여주는 모드입니다.



윈도우 기본 로그를 묶어서 보여주는 모드입니다.

포렌식 관점에서 유용하다는 로드들을 가져와서 보여주게 된니다.
여기서 보여지는 로그들은 자체적으로 파일포맷의 형식이 아닌 텍스트문서이므로
크게 수정을 하지 않아도 로그를 읽는데에는 불편함이 없기에 따로 크게 가공하여 보여주지는 않습니다.

항목으로는 <Setupact.log>, <Setupapi.log>, <Netsetup.log>, <Schedlgu.txt>,
<Mrt.log>, <Dr.watson> 등이 있습니다.



휴지통의 정보를 가지는 INFO2 파일을 분석하여 보여줍니다.
이를 이용하여 <마지막으로 휴지통을 비운 시점>, <마지막으로 삭제 작업을 한 시점>,
<SID>, <삭제된 파일 총 개수>, <삭제된 파일의 총 사이즈>등을 보여 주게 됩니다.

- File System


디스크 이미지 한 볼륨에 대해 파일 및 폴더를  파일 시스템 트리로 구성 하였습니다.  
파일 및 폴더에 대한 이름, 크기, 종류, 수정한 날짜, 만든 날짜의 정보가 나타 납니다.



NTFS(New Technology File System)에 대한 검색 기능을 추가 하였습니다.
윈도우의 가상 파일 시스템에 대한 API 검색이 아닌,
NTFS의 MFT(Master File Table) 검색을 통해서 파일에 대한 정보를 가지고 왔습니다.
MFT에는 볼륨에 존재하는 모든 파일과 디렉토리의 정보를 담고 있는 테이블입니다.

그러므로 이 테이블을 분석 하면 볼륨에 있는 모든 파일과 디렉토리에 대한 정보를 전부 알아 낼 수 있습니다.
운영체제 API의 검색이 아닌 파일 시스템 그 자체의 검색이 가능 하기 때문에 검색 속도를 향상 시킬 수도 있습니다.


NTFS 파일 시스템에서 삭제된 파일에 대해 복구를 할 수 있는 기능입니다.
MFT 파일레코드를 순차적으로 읽어 들여 삭제된 파일을 목록화 합니다.
삭제된 파일에 대해 파일 이름, 만든 날짜 마지막 접근 날짜, 속성 값 등을 확인 할 수 있습니다. 



복구 할 파일에 대해 새 파일 이름을 지정, 저장 경로를 지정 하여 삭제된 파일을 복구 시킵니다.
복구가 가능한 파일은 복구 완료 메시지 함께, 복구가 됩니다.
복구 실패 시, 복구를 할 수 없다는 메시지와 함께, 창이 종료 됩니다.



- 보고서 작성


분석관이 보고서를 작성할 때 쉽고 편하게 보고서를 작성하기 위해,
분석된 자료에 따라 자동으로 보고서를 작성하는 기능을 구현하였습니다.


Microsoft Word 양식인 DOC 포맷으로 파일이 저장 되며,
다양한 형태로 문서를 작성 할 수 있는 기능을 가지고 있습니다.


- TimeLine Viewer






조사자에게 각 사건에 대한 시간대를 보는 것은 중요합니다.
우리는 이점을 고려하여 현재 존재하는 타임라인의 인터페이스를 더욱 개선시키고,
타임라인 항목을 더 보완하였습니다.




마지막은 팀원들 사진입니다 ㅋㅋ



참고문헌       

- The Windows NTRegistry File Format Version 0.4  Timothy D. Morgan tim- 
   registry(a)sentinelchicken.org , June 9, 2009

- The Secrets Of Registry Analysis Revealed - Harlan Carvey

- 인사이드 윈도우즈 포렌식 Windows Forensic Analysis 2/e, 정상민, 정명수, 비제이퍼블릭

- 해킹 사례로 풀어쓴 웹 보안, 심슨 가핀켈, 진파포드 저, 한및미디어

- 사이버범죄 소탕작전 : 컴퓨터 포렌식 핸드북 Ed Tittel/강 유 에이콘

- 해킹과 포렌식 입문, ALFRED C, 그린

- 윈도우 포렌식 실전 가이드, 고원봉 ,한빛미디어

- 인사이드 윈도우즈 포렌식  / 할렌 카비 / 디지털 해킹 분석 및 대응의 기술 퍼블릭


====================================================================================================

- 후기

프로젝트 기간이 3개월 정도인 단기간인데도 불구하고
소스코드가 라이브러리를 포함하여 약 14만줄 정도 나왔습니다.

또한 꾸준히 SVN을 사용하여서 3400여개가 넘는 네이버 오픈소스 프로젝트중에
네이버에서 활동랭킹 37위까지 올랐던 추억이 남아있네요 ^^;



다양한 언어 및 플랫폼을 격어본것도 나름 매력 있었습니다.
C# (UI 및 모듈 ) , C/C++ ( 파일 복구 ) , Perl ( 포렌식 도구 소스코드 분석 ) , WPF ( 타임라인 )

이건 올려도 될지 모르겠지만...
경찰청 포렌식 센터에서 도구에 대한 검증 세미나 까지 했었습니다 >_< /

이렇게 열정을 쏟아낸 프로그램이지만
아쉽게도 프로그램을 사용하는 사람은 한정적이고,
대중성이 없다보니 마땅히 공모전을 낼 곳이 없군요..

하지만 즐겁고, 재밌었고, 그리고 무지무지하게 빡셌던 프로젝트였습니다.

마지막으로 사랑한다 우리 Source Diet 팀~ㅋㅋ

신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Trackback 0 Comment 17
2010.07.26 03:51

Motive


포렌식 도구 Winproof가 왜 필요한지 설명을 해보겠습니다.




국내에는 통합 포렌식 툴이 없습니다.



포렌식 툴이 없다는 것이 아닌 통합적인 포렌식 툴이 없습니다.

여기서 제가 말하는 통합 포렌식 툴이란 레지스트리, 웹, 시스템 로그 그리고

사용자 분석을 위한 복구기술까지 포함된 툴을

기준으로 이야기 하였습니다.

국내에 포렌식 툴을 만드는 사람도 없고 공개화된 커뮤니티도 없습니다.

그래서 포렌식 툴을 사용할 때는 항상 외국의 툴을 사용해야 하고,

영어의 압박을 받으며, 주어진 기능대로만 사용해야 합니다.






국외의 통합툴의 경우에는 제품의 가격이 비싸고,

도구를 사용할 시 익히기도 어렵습니다.



국내 및 해외의 점유율이 가장 높은 포렌식 툴인

encase 의 경우 메뉴얼 페이지만 약 500페이지 가량 됩니다.

이 툴을 익히고 정보를 뽑아내는 데에 있어 

많은 시간 투자해야 할 것입니다.


이렇게 포렌식 툴에 대한 가격이 비싼 이유는 디지털 포렌식에 관련된 문서가

공개화 되어 있지 않은 부분이 많으며,

국내 포렌식 시장이 활성화 되지 않아 개발이 어려운 부분이 크기 때문입니다.






단순한 데이터를 보여주는 것 뿐만이 아닌

필요한 데이터들만 선택하여 그 데이터들만 추출하여

보고서를 만들어 줍니다.



이 기능의 경우에는 누구나 보고서를 읽어도 이해 할 수 있도록

쉽게 작성되도록 노력할 것이며, 전문적인 내용이 들어가도록

이 보고서의 추출된 데이터에 관련된 부연 설명이 들어가게 됩니다.



이상 Motive 의 설명을 마치겠습니다 :)
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Trackback 0 Comment 1
2010.07.25 17:45

Forensic 이란?


winproof 툴을 설명하기에 앞서 디지털 포렌식에 관하여 먼저 설명을 드리겠습니다.

위키백과의 글에 따르면 디지털 포렌식이란 ,

전자 증거물 등을 사법기관에 제출하기 위해

데이터를 수집, 분석, 보고서를 작성하는 일련의 작업을 말합니다.





forensics 이라는 의미 자체는 법의학을 이야기 하며, 

범죄에 관한 과학수사를 의미합니다.
 
여기에 디지털이라는 단어가 수식어로 붙어서,

컴퓨터에 남겨진 여러 자료들을 수집하여 사법기관에 제출하기 위한 

법적으로 효용성이 있는 데이터들을 뽑아내는 작업을 디지털 포렌식이라 이야기 합니다.




더 알기 쉽도록 설명한다면

수사시에 조사를 받아야 하는 용의자에 대하여

용의자가 소지한 디지털 매체에서 관련 자료들을 추출 해 낸 뒤,

경찰측에서 증거를 확보하여 용의자의 범죄를 입증하는 기술을 의미합니다.

꼭 범인을 결론짓는 기술이 아닌, 용의자의 무죄를 입증하거나

조사용으로도 많이 활용되는 기술이 디지털 포렌식 기술입니다.





디지털 포렌식은 크게 3가지 절차로 이루어집니다.

첫번째로 증거 수집 ( Gathering of proofs)

두번째로 증거 분석 ( Evidence analysis )

세번째로 보고서 작성 ( Dcuments Production)

으로 이루어지며,
 
세번째 항목이 보고서 작성이 아닌 증거 제출 ( 무결성 및 툴 검증 ) 으로 분류되기도 합니다.




첫번째로 증거 수집은  손상되기 쉽고, 사라지기 쉬운

디지털 증거가 저장된 저장매체 (컴퓨터 메모리, 하드디스크, USB 등)에서

데이터의 무결성을 보장 하면서 데이터를 읽어 내야 합니다.

이 때 무결성이란 원 저장매체에 대한 데이터 변조가 일어나지 않음을 의미하고 ,

증거수집을 할때 무결성을 보장하는 이미징 기술이 사용되기도 합니다.




두번째 증거 분석은 얻은 데이터로부터 유용한 정보를 이끌어 내야 기술입니다.
 
유용한 정보는 보통 저장 매체에 존재하는 파일 시스템의 내부나 외부에 존재할 수 있습니다.

예를 들면, 범죄자는 저장매체에 존재하는 NTFS와 같은 파일 시스템 내부나,

NTFS에서 사용하지 않는 저장매체 구역에 중요 정보를 숨길 수 있습니다.

PPT 상으로는 나열된 데이터들은

증거 분석에서 가장 많이 쓰이는 3종류( Registry Hive , Web Log , System Log )의 파일에 대하여

나열해 보았습니다.

증거 분석에서 유용한 기술로는

삭제된 파일 복구 기술이나 암호화된 파일 해독 및 문자열 검색 기술 등을 들 수 있습니다.



세번째 보고서 작성은

디지털 증거수집, 운송 및 보관, 조사/분석 단계의 모든 내용을

문서화해 법정에 제출하는 단계입니다.

보고서를 읽게 되는 법관, 배심원, 변호사 등은

컴퓨터에 대한 기본 지식이 부족한 경우가 대부분이기 때문에

누구나 보고서를 읽어도 이해할 수 있도록 쉽게 작성하며,

전문적인 내용은 상세한 설명을 첨부해야 합니다.



마지막 보고서 제출같은 경우 외국의 전문화 된 툴일 경우에는 

툴을 사용해서 보고서를 작성한다고 해도

일반 이해하기가 힘든 부분이 허다합니다.

그 뿐만이 아니라 증거물 획득, 보관, 분석 등의 과정을 6하 원칙에 따라 명백하고

객관성있게 설명해야 하며,
 
예상하지 못한 사고로 데이터가 유실되어 변경이 생겼을 경우 이를 명확히 기재하고,

범죄 혐의 입증에 무리가 없음을 논리적으로 설득할 수 있어야 합니다.

어떻게 보면 상당히 까다로우며, 정확성을 요구하는 작업이 보고서 작성 부분입니다.


컴퓨터 포렌식 서비스 또는 전문가에게 상담을 의뢰하였다면

그 결과를 전문가 소견서 형태로 제출하고,

전문가를 법정에 참고인으로 출석할 수 있게 하는 과정도 포함해야 합니다.




- 참고

* 위키백과(http://ko.wikipedia.org/wiki/컴퓨터_포렌식)

* 디지털 포렌식의 기술 및 동향 ( http://ettrends.etri.re.kr/PDFData/22-1_097_104.pdf )

* 포렌식을 이용한 정보보호
 (http://www.digipine.com/?mid=software&listStyle=gallery&page=1&document_srl=2958)

신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Trackback 0 Comment 3
2010.07.25 06:19

Digital Forensic Tool Winproof







사용자 분석을 위한 포렌식 도구 Winproof 개발 일지입니다.


Team Name : Source Diet

Project Leader :
h0ney

Project Member : lscpjyoon,  golee07

Development-time : 2010.8.1 ~ 2010.10.31


화이팅~ :)
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Trackback 0 Comment 1
2010.06.10 07:52

Registry Data Structure Viewer



자료를 찾다보니 국내에서는 아직 Hive 파일을 이용하여,

레지스트리를 분석한 논문이나 글이 없더군요.


(국내 뿐만 아니라 해외에서도 찾기 어렵습니다ㅡ _ㅠ)




그나마 영어로 된 논문하나를 찾게 되어

이 문서를 보면서 Hive 파일을 분석하는 Tool 을 만들고 있습니다.

(이 문서도 완벽하지는 않네요 ^^;)
 

C# 으로 프로토타입으로 작업한 스샷입니다.




완성단계까지 99.9% 남았네요 ^^;;


도움을 주고 계시는 진원이형 고맙습니다. ㅋ
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Trackback 2 Comment 4


티스토리 툴바