no image
Project Spartan Forensic - Edge
1. Introduction Project Spartan이란 IE의 뒤를 이어 새로 나온 MS의 Edge의 코드네임이다. 이번 문서를 통해서는 이러한 Edge가 남기는 Artifacts에 대하여 알아볼 것이며 ,무엇이 이러한 흔적으로 남는지, 어느 위치에 해당 흔적이 남는 지, 어떻게 수집되는 지를 분석할 것이다. 또한 이 문서는 결국 이전의 IE와 차이가 크지 않다는 결론으로 이끌게 될 것이며 이는 동작하는 방식과 데이터를 저장하는 방식이 이전과 유사함을 의미한다. 그리고 이러한 흔적을 자동적으로 수집할 수 있게 도와주는 도구에 대하여 알아볼 것이다. 웹 브라우징 활동은 포렌식 분석에 있어서 중요한 요소이기에 많은 도구들이 이를 위하여 존재하고 있기도 하다. 이러한 도구들은 웹 브라우저의 구조에 많이 ..
2015.09.30
윈도우 아티팩트 요소
분석 요소(Analysis factors)파일 시스템 아티팩트(FileSystem Artifact)파일 시스템과 관련된 분석 내용은 사실, 디스크 및 파일 시스템 분석 과정에서 통합적으로 다루는 것이 옳다. 하지만 전통적으로 윈도우에서 가장 많이 사용하는 파일 시스템인 NTFS의 경우에는 파일 시스템 메타 데이터를 또다른 파일 형태로 관리하기에, 아티팩트 분석 시 같이 추출하여 분석하기에 용이하고, 시간 흐름에 따른 파일의 상태 등과 같은 정보를 제공하여 시스템 분석에 상당한 도움을 준다는 특징이 있다.따라서, 분석 대상 시스템의 파티션이 NTFS로 포멧되어 있다면, 반드시 관련 아티팩트를 수집하여 분석을 진행할 필요가 있다. 웹 아티팩트(Web Artifact)인터넷에 접속하기 위한 목적으로 사용되는 ..
2015.09.28
no image
LNK File ( Windows ShortCut)
Lnk FileLnk 확장자 파일은 보통 바로가기라 하면 된다. 하지만 바로가기라고만 표현하기에는 너무나 많은 정보를 포함하고 있기에 포렌식의 관점에서 이에 대하여 다루고자 한다. 링크파일은 주로 아래의 위치에 많이 리스트화 되어 존재한다. # 바탕화면(Desktop) 폴더Windows XP : C:\Documents and Settings\\DesktopWindows 7 : C:\Users\\Desktop# 최근문서(Recent) 폴더 Windows XP : C:\Documents and Settings\\RecentWindows 7 : C:\Users\AppData\Roaming\Microsoft\Windows\Recent# 시작프로그램(Start) 폴더 Windows XP : C:\Documents..
2015.09.27
no image
Jump List
Jump List 윈도우 7 이전에는 Recent와 UserAssist로 사용자의 편의성을 위하여 목록들을 유지하였다. 하지만 7에 와서는 이 두개에 더해 새로운 기능이 추가되었는데 바로 점프리스트이다.점프 리스트란 작업 표시줄에서 아이콘에 마우스를 우클릭하면 이전에 열었던 목록이나 자주 여는 파일의 목록들이 나타난다. 이를 점프 리스트라 한다.오른쪽의 그림에서는 최근의 항목들만 존재하지만 이외에도 크롬으로 확인을 해볼 경우 자주 들어가는 사이트와 최근에 닫은 탭까지 점프리스트에 유지가 되는 것을 확인할 수가 있었다.다. 아래는 다른 항목들을 나타내 준다. Recent(최근 항목) : 응용프로그램을 통해 최근 열람한 파일 Frequent(자주 사용하는 항목) : 응용프로그램을 통해 자주 열람하는 파일 T..
2015.09.27
no image
File System Tunneling
File System Tunneling파일시스템 터널링이란 짧은 시간동안 해당 폴더에 삭제된 파일의 이름과 같은 파일을 생성할 경우 생성시간이 유지된다는 개념이다. 기본적으로 시간은 15초이며 이는 FAT와 NTFS에서 기본적으로 지원하는 기능이다.이는 사실상 두번째로 생성된 파일이 삭제된 파일의 메타데이터(타임스탬프)를 재사용 하는 것이다. 이는 파일이 제거될 때 제거된 파일의 메타데이터는 임시적으로 저장되는데, 이 임시로 저장된 메타데이터는 같은 파일의 이름이 생성될 경우 해당 파일을 가리키며 결국 타임스탬프가 유지된다. Practice - 1간단한 실습을 해보자면 아래의 그림과 같이 dir /tc 옵션을 통하여 파일의 생성시간을 확인할 수가 있다. 처음의 file1의 생성시간은 PM 06:33으로 ..
2015.09.23
no image
Web Forensic
Web Forensic 웹 포렌식이란 흔히 사용하는 웹 브라우저를 통해 생기는 아티팩트들을 수집하고 분석하는 것을 말한다. 현대에 웹 브라우저는 우리와 땔 수 없는 관계가 되어있으므로 이를 통한 정보 수집은 결코 시간낭비적인 것이 아니라, 오히려 정황 증거들을 수집할 수 있게 도와주므로 분석의 길잡이 역할을 해준다. 웹 브라우저로 다양한 프로그램들이 존재하지만 여기서는 자주 쓰이는 몇개의 브라우저에 대해서만 다룰 것이다. 각 브라우저에서 공통적으로 존재하는 요소들에 대하여 알아보자. Cache 웹 캐시는 웹 사이트 접속 시 방문사이트로부터 자동으로 전달받는 데이터로 한번 이상 접속하였던 웹 사이트를 다시 접속할 때, 변경되지 않은 정보는 다운 받지 않고 캐시에서 로딩하는 방식을 이용해 속도를 향상시키고자..
2015.09.19
no image
Covert TimeStamp
TimeStamp포렌식이나 리버싱을 하다보면 HxD 같은 툴을 이용해서 바이너리를 직접 확인해야 하는 경우가 많다. 그러면서 각 파일들의 구조도 보게되며 많은 구조들을 접할 수 있게된다. 그 중에서 항상 어딜가나 빠지지 않는 것이 바로 타임스탬프이다. 이러한 타임스탬프의 경우 그리 중요하지 않게 여기기도 하지만 포렌식에 있어서 시간은 사건에 직접적으로 관련이 있으므로 중요하다. 이러한 타임스탬프의 경우 다양한 툴 PEViewr나 PrefetchView 등 많은 프로그램이 자체적으로 확인을 해서 나타내준다. 하지만 이번에 포스팅을 하는 가장 큰 이유는 프리패치와 카빙을 공부하면서 직접 바이너리로 봐야할 경우가 있을 것 같기에 포스팅을 해본다. 4WebHelp시간을 변환해주는 다양한 툴들이 존재하겠지만, 필..
2015.09.18
no image
ADS (Alternate Data Stream)
ADSADS란 Alternate Data Stream의 약자로 NTFS 구조에서는 다중의 데이터 스트림을 지원하는데, 이러한 데이터 스트림이 여러개라는 것은 파일이 하나 이상의 데이터를 담을수 있다는 것이다. 이를 이용하여 원하는 데이터를 다른 파일 안에 숨길 수가 있다. 아래의 그림을 보면 FAT 에서는 하나의 Data Stream만이 존재하지만 NTFS의 구조에는 Main Stream이 존재한다. 하지만 Main Stream 외에도 여러개의 Data Stream이 존재하는 것을 확인할 수가 있는데, 바로 이것이 Alternate Data Stream인 것이다.이러한 ADS를 사용하여 데이터를 은닉할 수가 있으며 은닉된 데이터느 일반 사용자가 알아차리기가 힘들기 때문에 악성코드를 넣는 등 악의적인 용도..
2015.09.17

1. Introduction


 Project Spartan이란 IE의 뒤를 이어 새로 나온 MS의 Edge의 코드네임이다. 이번 문서를 통해서는 이러한 Edge가 남기는 Artifacts에 대하여 알아볼 것이며 ,무엇이 이러한 흔적으로 남는지, 어느 위치에 해당 흔적이 남는 지, 어떻게 수집되는 지를 분석할 것이다. 또한 이 문서는 결국 이전의 IE와 차이가 크지 않다는 결론으로 이끌게 될 것이며 이는 동작하는 방식과 데이터를 저장하는 방식이 이전과 유사함을 의미한다. 그리고 이러한 흔적을 자동적으로 수집할 수 있게 도와주는 도구에 대하여 알아볼 것이다.

 웹 브라우징 활동은 포렌식 분석에 있어서 중요한 요소이기에 많은 도구들이 이를 위하여 존재하고 있기도 하다. 이러한 도구들은 웹 브라우저의 구조에 많이 의존하며 그렇기에 각 버전이나 새로운 브라우저에 따라 다른 경로 파악이나 코드를 사용하여야 한다.

 마이크로소프트는 Windows 10으로 오면서 기존의 IE를 벗어나 Edge를 적용하였으며 그렇기에 필자의 목적은 Edge의 아티팩트를 수집하고 분석하는 것에 초점을 두고 있다. 해당 참고 포스터가 2015.07.27인 점을 보아 현재의 Edge와 다른 부분이 꽤 존재하고 있기에 이러한 부분은 필자가 직접 확인하고 올바르게 나타내도록 하겠다.

1.1 Scope, Motivation and research question

 Edge는 웹 브라우저 중 가장 최근에 개발된 것으로 아티팩트 분석에 있어서 많은 흥미를 유발시키며 점차 많은 사람들이 윈도우10을 사용하게 될 경우 이는 더욱 중요한 사하잉 된다. 그러므로 이러한 정보들은 디지털 포렌식의 가치가 있으며 지속적인 조사가 필요하다. 해당 포스팅은 아래의 문구에 주로 초점을 두고 작성되었으며 이를 상기하며 분석을 진행할 것이다.

What and where are the artifacts Project Spartan leaves behind on workstations, and how can these artifacts be gathered for further analysis to serve as forensic evidence? 

 이러한 연구 주제는 아래와 같은 Sub research Question으로 나누어 볼 수가 있다.

- 프로젝트 스파르탄이 기존과 얼마나 다른지, 기존의 툴킷들이 Edge에서도 사용 가능한가?

- 자동화 방식으로 웹 브라우저의 아티팩트를 수집하기 위한 툴이 개발 될 수 있는가?


2. Related work


 Windows 10과 Microsoft Edge는 최근에 공개되었기에 상대적으로 관련된 공개 문서나 자료가 적은 것은 사실이다. 따라서 여기서는 프로젝트 스파르탄의 구조를 분석할 것이고 Microsoft IE의 최근 버전의 정보 저장에 대하여 분석할 것이다. 그러므로 우리는 두 개(IE & Edge)를 서로 비교하는 경우(아티팩트와 관련하여)가 존재할 것임을 알아야 한다.

2.1 Browser Forensic

 브라우저와 관련된 포렌식은 흔히 디스크에서 아티팩트가 저장되는 장소와 연관이 크며 이는 브라우저마다 상이하다. 그렇기에 새로운 브라우저가 출시되면 해당 장소에 대한 정보와 아티팩트 수집에 관한 방법이 요구된다. 포렌식 조사자는 웹 브라우저 아티팩트에 관한 자세하고 신뢰성 있는 정보들이 필요하며 이러한 정보는 조사에 있어서 매우 중요한 가치가 있을 수 있다. 따라서 이러한 사용자 활동의 증거 분석을 게을리 할 수가 없다.

 Private browsing은 브라우징을 하는 동안 개인정보호를 위하여 점차 증가되는 추세이다. 이러한 Private browsing은 크롬이나 파폭, IE 등에서 지원을 하지만, 개인 정보 보호의 입장에서는 IE 보다는 크롬이나 파폭이 인기가 더 있는 추세이다. Private browsing은 사용자 활동의 증거를 거의 남기지 않아 포렌식의 입장에서 꾸준한 개발을 지속하고 있다. 

2.2 Structure of Internet Explorer

 이번 조사의 가장 큰 목적은 IE 10이나 그 이후의 버전과 관련이 되었으며 이는 많은 구조에서 Project Spartan과 유사함을 알 수가 있었다. IE 10v+와 Project Spartan은 정보 저장에 있어서 Extensible Storage Engine(ESE) DataBase와 Joint Engine Technology(JET)에 의존하는 것을 확인할 수가 있었다. IE 10은 WebCacheV1.dat이라는 하나의 데이터 베이스에 아티팩트를 저장하며 이 위치는 아래와 같다.

ESE Database 관련 참고 자료 : http://forensicmethods.com/ese-recovery

 IE Web Cache Database location : %LocalAppData%\Microsoft\Windows\WebCache

 해당 데이터베이스에 나타난 아티팩트는 다른 유형(Cache, hHstory, Cookies)들과는 차이가 있으며 이러한 유형들은 다른 컨테이너 테이블('Container XX')에 안에 나누어져 있다. 각 컨테이너는 같은 필드를 공유하며 이는 포렌식 조사에 있어서 가치가 있다고 할 수 있다. 메모리에서 로그 캐시에 있는 트랜젝션과 관련된 정보가 ESE 첫 부분에 저장될 때, 그 후 메모리에서 데이터베이스 페이지를 저장한다. 시스템이 로그 파일을 기록할 준비가 되자마자 가능하다면 데이터베이스가 Clean State에서 새 트렌젹센와 함께 업데트 되고 만약 가능하지 않다면 Dirty State로 진행이 된다. 만약 데이트베이스가 Dirty일 경우 .chk파일과 log 파일을 사용하여 복구가 진행될 것이다. 또한 esentutl Windows Tool을 사용하여 Clean State로 복구가 될 수 있다.  대부분의 아티팩트들이 여기에 저장될 뿐만 아니라 디스크에서 파일로서도 발견이 된다. 이러한 IE의 파일들은 아래의 경로에 위치한다. 

IE Directory location : %LocalAppData%\Microsoft\InternetExplorer\ 

 해당 경로에는 캐시파일과 쿠키 등을 볼 수가 있다. 이러한 정보는 레지스트리에서도 확인이 가능하다. 

IE Registry Key location : HKCU\SOFTWARE\Microsoft\Internet Explorer\


3. Approach


연구의 첫 번째 파트는 프로젝트 스파르탄의 구조를 이해하고 사용자에 대한 정보를 저장하는 방법에 대한 이해를 이야기 할 것이고. 두번째 파트는 어떻게, 어디에서 아티팩트가 발견되는지를 조사할 것이다. 그 후 웹브라우저 도구들을 이용하여 테스트를 진행할 것이다. 마지막 스텝에서는 툴을 이용하여 가치있는 무엇을 찾을 수 있는지 확인할 것이다. 해당 연구에서는 아래의 도구들이 사용되었다.

- ESEDatabaseView v1.30

- ESECarve v1.20

- Notepad++ v6.7.8


4. Artifacts Analysis


여기서는 프로젝트 스파르탄(현재의 Edge)가 어디에 아티팩트를 저장하는지를 설명할 것이며, 어떠한 특징이 있는지 어떠한 아티팩트를 남기는지에 대하여 설명할 것이다. 본문에서는 Spartan이라는 디렉터리나 레지스트리 키가 자주 보이지만 이 포스터에서는 본인의 PC (Windows 10)에서 Edge에 해당하는 부분으로 직접 찾아서 설명할 것이다.

4.1 Database

 Microsoft의 Edge는 IE의 최선버전들과 같은 DB 구조(ESE)를 가지고 있다. 메인 WebCache DB 파일은 사용자에 따라 %LocalAppData% 환경변수 항목에 위치하고 있으며 이 경로는 아래와 같다.         // 해당 부분의 DB를 Edge에서는 찾지 못해 스파르탄의 형태로 나타내었습니다.

 Spartan's WebCache database location : %LocalAppData%\Spartan\Database\WebCacheV01.dat

DB 파일을 읽기 위해 존재하는 많은 종류의 도구들이 존재하지만 여기서는 위에서 말했던 도구들을 사용할 것이다. 해당 DB 파일에는 저장된 정보들이 정렬되어 있지만 많은 실질적인 내용이 많이 존재하지는 않는다. 대신에 이는 실질적인 아티팩트가 저장되어 있는 주소에 대한 인덱스와 같다.

 이 파일을 HxD로 열려고 할 때, 기존에 사용되던 버전과 같은 구조를 같음을 확인할 수가 있었다. DB 파일의 헤더 부분을 해석하면 아래의 그림과 같다. 각 바이트는 리틀 엔디언으로 기록되어 있으며 해당 값을 읽을 때는 역순으로 읽어야한다. 

AppData\Local\Microsoft\Windows\WebCache\WebCacheV01.dat

해당 Database에는 시스템에서 지역적으로 저장되어 있는 모든 다른 아티팩트의 주소를 포함하고 있다. 해당 컨테이너에서는 다른 컨테이너의 ID 항목들을 볼 수가 있으며 컨테이너에 어떤 내용이 있는지 또한 확인을 할 수 있다.

4.2 Cache

 Edge의 경우 분산된 형태로 캐시를 저장하며 해당하는 경로는 아래와 같다. 아래에서 #!xxx라고 표시한 부분에는 #!001, #!002, #!121이라는 3개의 디렉터리가 존재하며 각 폴더 모두에 해당 데이터 들이 저장되어 있다.

 Edge's Cache location : %LocalAppData%\Packages\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\AC\#!xxx\MicrosoftEdge\Cache\

 IE와 유사하게 각 캐시폴더에는 많은 내용의 캐시 내용들이 저장되어 있으며 웹 브라우징 중에 생긴 HTML 페이지나 사진 등 많은 내용들이 저장되어 있는 것을 확인할 수가 있다. 

추가 : \AppData\Local\Packages\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\AC\MicrosoftEdge\Cache

4.3 Cookies

 Edge의 쿠키 내용들이 저장되는 경로는 아래와 같으며 이 역시 !#xxx의 형태로 나뉘어 저장된다. 해당 폴더를 확인하면 .txt의 형태로 여러개의 랜덤한 이름의 파일이 존재하는 것을 확인할 수가 있다. 해당 파일의 내용에 바로 쿠기 내용이 저장되어 있다. 해당 쿠키들이 어느 도메인에 속한지 WebCacheV01.dat를 봐도 알 수가 있다.

 Edge's Cookies location : %LocalAppData%\Packages\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\AC\#!xxx\MicrosoftEdge\Cookies\

추가 ; \AppData\Local\Packages\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\AC\MicrosoftEdge\Cookies

4.4 Bookmark

 Edge의 북마크 목록 또한 아티팩트로 존재하는데 이는 아래의 경로에 존재한다. 해당 경로로 가면 .url의 형태로 존재하는데 내용을 확인해보면 해당 사이트의 URL을 출력해주는 것을 확인할 수가 있다.

Edge's Bookmark : %LocalAppData%\Local\Packages\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\AC\MicrosoftEdge\User\Default\Favorites\


4.5 Visited URLs (History)

 사용자가 방문했던 URL의 정보는 실질적인 내용을 보여주지 않지만, 포렌식 조사에 있어서 충분히 가치가 있는 정보들이다. 이러한 URL 정보들은 위의 4.1에서 다루었던 DB 파일에 저장이 되어있으며 이는 중요한 아티팩트가 될 수가 있다. 

4.6 Download list

 다운로드 리스트는 4.5와 같이 4.1의 DB에서 발견할 수가 있다. 해당 컨테이너의 이름은 iedownload이며 해당 지점에 그 이름으로 여러개의 컨테이너가 존재하지만 시스템에서 컨테이너 ID 17이 바로 해당 컨테이너이다. 해당 컨테이너에는 hex 코드로 되어 있으므로 ASCII로 변환하여 읽어야 한다.

4.7 Web Notes

 Edge에서부터는 웹노트라는 기능이 추가되어 브라우저에서 웹페이지를 캡처하여 바로 메모를 할 수게 해주는 기능이다. 이러한 웹노트는 두 경로를 알아야하는데, 하나는 임시로 저장되는 경로와 다른 하나는 완성된 파일이 기록으로 남는 장소이다.

 Web note location : \AppData\Local\Packages\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\AC\MicrosoftEdge\User\Default\Favorites

Temporary location : %LocalAppData%\Packages\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\AC\#!xxx\\MicrosoftEdge\History

4.8 Cortana

 Cortana란 인공지능 인식 서비스로 원래는 윈도우 폰에 적용되던 서비스지만 윈도우 10부턴 PC에 적용이 되어 사용자의 편의를 돕는다. 하지만 이런 기능은 일부 국가 언어에서만 지원하기에 한국에서는 아직 사용할 수가 없다. 이에 대한 정보는 4.1에서 'Dependency Entry 5'라는 컨테이너에 존재하므로 해당 컨테이너를 확인하여야 한다.

4.9 Reading List

 Reading List는 읽기 목록으로 즐겨 찾기에 추가된 것이 아니라 읽기 목록이라는 카테고리가 따로 존재한다. 읽기 목록에 새로운 페이지를 추가할 경우 아래의 파일에 해당 주소가 추가되어 아티팩트가 남는다.

%LocalAppDatPackages\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\AC\MicrosoftEdge\User\Default\DataStore\Data\nouser1\120712-0049\DBStore\spartan.edb

4.10 Tiles

 윈도우 8부터 타일은 사용이 가능했으며 수정이 가능했다. 이 타일 기능은 당연히 Edge에도 포함이 되었으며, 타일은 글꼴, 색상, 인터페이스 요소로 구성되어 있다. 이 타일은 ESE DB에 저장이 되지 않지만 디스크에서는 발견이 가능하다. 해당 경로는 아래와 같다.

 Edge's tiles location : %LocalAppData%\Packages\Microsoft.MicrosoftEde_8wekyb3d8bbwe\AC\#!xxx\MicrosoftEdge\User\Default\Tiles\

4.11 Private Browsing

 Private Browsing을 분석함에 있어, 우리는 PC 환경을 최신버전으로 업그레이드 시킬 필요가 있으며 Edge는 개인정보보호 브라우징을 제공한다. 사용자가 방문했던 페이지를 검색하기 위해서 우리는 ESECarve를 사용할 것이다. 해당 툴은 윈도우 10에서 inpriveate 브라우징 아티팩트를 검색하기 위하여 사용되며 윈도우10에서 호환성을 위하여 해당 디렉터리에 DB 파일(.chk & WebCache01.vat)을 포함해야 한다. 이를 통하여 찾게 된 로그들은 라이프 사이클에 대하여 설명할 수 있는 하나의 단서가 되며, inprivate 히스토리는 ESEDatavaseview를 통하여 복구할 수 있다. 


5. Result


 이번 장에서는 위에서 조사한 결과를 토대로 정리할 것이다. 그리고 IE와 Edge를 비교하여 유사한 점과 차이점에 대하여 정리할 것이다. 

5.1 Project Spartan vs Internet Explorer (Similarities and differences)

 이번 절에서는 두 브라우저가 남기는 아티팩트를 비교하여 정리할 것이다. 전체적으로 두 브라우저가 남기는 아티팩트는 유사한 점이 많았다. 프로젝트 스파르탄의 모든 기능을 언급하기에는 힘들기에 모든 차이점과 유사점에 대해 언급하는 것은 어렵다.

 가장 먼저, 둘의 유사점에 대하여 정리하면 그들은 사용자 활동에 대한 정보를 저장하기 위해, 크러시가 발생했을 때 복구를 하기 위하여 ESE database라는 같은 엔진을 사용한다. 두 브라우저가  Microsoft Exchange server, Active Directory와 Desktop search에 사용되는 ESE라는 database 엔진을 사용하는 것을 알 수가 있다. 그 결과 Project Spartan과 IE가 매우 유사한 구조를 가질 수 밖에 없음을 알 수 있다. 이는 ESE database에서 아티팩트를 찾도록 만들어진 소프트웨어가 Project Spartan에서도 사용이 가능하다는 것을 알 수가 있다. 하지만 약간의 문제들로 인하여 윈도우 10에 최적화될 필요가 있다.

 바로 프로젝트 스파으탄에서부터 도입된 새로운 기능들이 존재한다. 이러한새로운 기능은 포렌식에서 중요하다고 여겨질 수 있는 새로운 아티팩트를 남긴다. 새로운 기능이란 4장에서 다룬 것 중에서와 같이 Cortana가 있다. 코타나를 통하여 어떠한 조사 가치가 있는 정보들이 저장이 된다. 또한 코타나 외에도 Reading List나 웹 노트의 경우에도 새로운 아티팩트들을 남겨주는 것을 확인할 수가 있었다. 결론적으로, 스파르탄의 구조는 IE의 최신버전과 유사함을 알 수가 있다. 새로운 아티팩트들은 IE에 없던 기능들에서부터 생겨나는 것으로 위에서 몇 가지 요소에 대하여 다루었다.


6. Reference


Project Spartanhttp://articles.forensicfocus.com/2015/07/27/project-spartan-forensics/





'Forensic > Theory' 카테고리의 다른 글

Practice USB Artifacts  (0) 2015.10.01
USB Artifacts 관련 정리 - 150930  (0) 2015.09.30
윈도우 아티팩트 요소  (0) 2015.09.28
LNK File ( Windows ShortCut)  (0) 2015.09.27
Jump List  (0) 2015.09.27

분석 요소(Analysis factors)


파일 시스템 아티팩트(FileSystem Artifact)

파일 시스템과 관련된 분석 내용은 사실, 디스크 및 파일 시스템 분석 과정에서 통합적으로 다루는 것이 옳다. 하지만 전통적으로 윈도우에서 가장 많이 사용하는 파일 시스템인 NTFS의 경우에는 파일 시스템 메타 데이터를 또다른 파일 형태로 관리하기에, 아티팩트 분석 시 같이 추출하여 분석하기에 용이하고, 시간 흐름에 따른 파일의 상태 등과 같은 정보를 제공하여 시스템 분석에 상당한 도움을 준다는 특징이 있다.

따라서, 분석 대상 시스템의 파티션이 NTFS로 포멧되어 있다면, 반드시 관련 아티팩트를 수집하여 분석을 진행할 필요가 있다.


웹 아티팩트(Web Artifact)

인터넷에 접속하기 위한 목적으로 사용되는 웹 브라우저는 문서작업, 게임과 더불어 PC의 일반적인 사용 목적이기도 하며, 사용자의 성향, 관심사를 파악할 수 있는 흔적을 많이 남기게 되므로 포렌식 조사시 매우 중요한 역할을 한다.

분석가는 주로 웹 히스토리, 웹 캐시, 웹 쿠키, 다운로드 파일 등을 통해 사용자의 웹 브라우저 사용 내역을 조사하게 된다. 또한 인터넷 익스플로러, 크롬, 사파리, 파이어폭스, 오페라가 5대 웹 브라우저로서 주 분석 대상이 되는데, 익스플로러를 제외한 브라우저는 비 윈도우 계열의 시스템이나 모바일 운영체제에서도 비슷한 형태로 흔적을 남기기 때문에, 분석 방법을 숙지해둘 경우 분석이 큰 도움이 될 것이다.

http://kali-km.tistory.com/entry/Web-Forensic


이벤트 로그(Event Log)

윈도우 이벤트 로그는 윈도우의 특정 동작(이벤트)에 관한 내용을 기록하여 보관하는 바이너리 로그 어플리케이션이다. 사용자의 행위보다는 시스템의 운용 상태를 알 수 있는 정보가 많이 포함되기 때문에, 부정 조사보다는 침해사고 대응에 조금 더 유용하다는 특징이 있지만, 운영체제 설정에 따라 사용자의 기본적인 시스템 운용까지도 파악할 수 있는 로그를 기록하기 때문에, 조사 시 꼭 살펴볼 필요가 있다.


프리패치 & 슈퍼패치(Prefetch & Super fetch)

%SystmRoot%\Prefetch\*.pf

프리패치는 원래 보조기억장치와 주기억장치의 I/O속도 차이에 따른 시스템 부하를 최대한 극복하고자 자주 사용되는 응용프로그램을 미리 메모리에 로드하기 위해 사용된 윈도우 시스템의 요소이다.

이러한 프리패치는, 본연의 역할을 충실히 수행하기 위해 실행파일에 대한 다양한 정보를 내부에 기록해 두고 있다는 특징이 있다. 디지털 포렌식 관점에서 실행파일의 사용 흔적을 조사할 때 프리패치에 기록된 내용은 반드시 살펴볼 필요가 있다.

http://kali-km.tistory.com/entry/Prefetch-Format


바로가기 숏컷(lnk, Shortcut) 

윈도우 바로가기 파일은 시스템 사용자가 편의를 위해서 사용하는 경우도 많지만, 운영체제가 자동 실행이나 최근 접근한 데이터에 관한 정보를 관리할 때에 사용하기도 한다.

바로가기 파일에는 링크 대상 파일에 관한 생성.접근.수정시간 정보 및 원본 위치 등에 관한 기록을 포함하고 있으므로, 정보 유출에 관한 조사나 시스템 사용에 관한 시간 관계를 정리할 때 유용하게 사용되는 경우가 많다.

http://kali-km.tistory.com/entry/LNK-File-Windows-ShortCut


점프 리스트(Jump list) 

%UserProfile%\AppData\Roaming\Microsoft\Windows\Recen\AutomaticDestinations  or CustomDestinations 

점프리스트는 Windows 7부터 추가된 기능으로 바로가기의 확장형이라고 볼 수 있기 때문에, 정보의 해석과 활용은 바로가기 링크 파일과 유사하다. 전용 포멧을 사용하는 .CustomDestinations파일과 컴파운드 파일 포맷을 사용하는 .automaticDestination-ms파일이 각각 존재하기 때문에, 전용 도구와 컴파운드 뷰어를 활용하여 분석이 가능하다.

바로가기 파일 분석 시 점프리스트가 존재한다면 반드시 교차 분석을 하도록 하자.

http://kali-km.tistory.com/entry/Jump-List


시스템 복원 지점(Restore point)

시스템 복원 지점은 안정적인 운영체제의 운용을 위해 주기적으로 시스템의 상태를 기록하여, 중대한 오류가 발생한 경우나 사용자가 원하는 경우 특정 시점으로 시스템의 상태를 돌리기 위해 사용된다.

짐작할 수 있는 바와 같이, 각 시점의 시스템의 상태를 기록하며, 각종 아티팩트나 주요 파일을 같이 저장해 두기 때문에, 과거 시점의 시스템 설정 상태 등을 조사할 때 매우 유용하게 사용된다.

다만, 그 크기가 크고 조사 대상의 내용이 비 효율적으로 많기 때문에 최후까지 분석이 미뤄지는 경우가 많다. 하지만 극한의 상황에서 많은 사건이 시스템 복원 지점에 있는 데이터에 의해 해결되기도 한다는 사실을 반드시 기억하고 활용토록 하자.


휴지통(Recycle)

휴지통에는 사용자가 임의로 삭제했거나 은닉을 목적으로 이동된 데이터가 존재한다. 고맙게도 윈도우 시스템은, 휴지통 폴더 내부에 간단한 형태로 삭제된 파일에 관한 정보를 기록한다. 이에 따라 삭제된 파일의 삭제 시점과 같은 중요 정보를 파악할 수도 있으며, 정보파일에 기록되지 않은 파일은 의도적인 은닉 파일이라고 간주할 수도 있다.


시스템 로그(Windows System Logs)

윈도우 시스템도 간단하게 축적해야할 정보는 텍스트 로그로 기록한다. 대부분, 운영체제 설치 시점부터 지속적으로 발생하는 여러 동작들을 기록하기 때문에 다른 아티팩트와 교차분석하여 결과의 신뢰도를 높일 수 있는 여지를 주기도 하며, 추가적인 정 역시 제공하는 측면이 있다. 따라서, 각 시스템 로그에서 기록하는 정보를 미리 파악해 둘 경우 분석에 큰 도움이 될 것이다.


시스템 임시파일(System Temp)

운영체제를 사용하다보면, 여러가지 이유에서 임시 파일이 생성되고 삭제되는 것이 반복된다. 이와 같은 임시파일의 흔적은, 이를 생성한 어플리케이션의 사용 기록을 입증할 수 있는 단서가 되기도 하며, 중요한 증거가 미처 삭제되지 않은 채 발견될 경우 조사에 큰 도움을 주기도 한다.

그 밖에도 임시폴더가 직접 접근되지는 않는 폴더라는 속성을 악용하여, 데이터를 은닉시키기 위한 목적으로 사용되기도 하는 등, 혹시 모르는 단서를 찾기 위해 임시폴더를 간단히 확인하는 작업을 진행할 필요가 있다. 


미리보기 썸네일(Thumnail)

 %UserProfile%\AppData\Local\Microsoft\Windows\Explore

썸네일은 윈도우 미디어 파일에 대한 미리보기 데이터베이스 파일을 의미한다. 윈도우에서는 그림 파일 등을 열지 않아도, 미리 간단히 내용을 확인할 수 있도록 미리보기 기능을 지원하는데, 이 때 보여지는 작은 그림파일은 특정 데이터베이스에 저장되어 관리된다.

중요한 것은, 원본 파일이 삭제되더라도 썸네일 데이터베이스 내부의 미리보기 파일은 삭제되지 않고 존재할 가능성이 크기 때문에, 원본 파일의 존재 가능성을 입증하는 등에 중요하게 활용될 수 있다.

http://kali-km.tistory.com/entry/Thumbnail-Forensics


윈도우 검색 데이터베이스(Windows search DB) 

윈도우 검색 데이터베이스는, 윈도우 검색에 사용하기 위한 색인 정보를 저장한다. 보통, 빠른 검색을 위해 색인한 결과를 저장하기 위해 사용되지만, 사용자의 기본 폴더나 이메일, 인터넷 히스토리 정보등이 기록되는 경우가 있기 때문에, 조사 시 간단하게나마 짚고 넘어갈 필요가 있는 아티팩트이다.


기타 아티팩트(etc.)

위에서 나열된 아티팩트 이외에도, 스티커 메모나 프린트 스풀링 파일 과 같은 정보들이 다양하게 시스템의 분석을 위해 사용될 수 있으며, 서두에서 설명한 바와 같이 시스템 아티팩트의 범위에는 제한이 없다. 

따라서 분석에 도움을 주는 모든 정보에 관련된 데이터는 시스템 아티팩트로 취급될 필요가 있다.

이와 같은 추가적인 아티팩트는 는 보통, 미리 알려진 아티팩트에서 얻은 키워드를 검색 을 수행하다가 추가적으로 발견되는 경우가 많으며, 이를 놓치지 않고 자신의 스킬셋에  포함해 두었다가 추후 분석에 활용하는 분석가가 진정 경쟁력 있는 분석가임을 잊지 말자.



Reference


http://portable-forensics.com/document.html

http://portable-forensics.blogspot.kr/2014/10/windows-artifact-analysis.html

'Forensic > Theory' 카테고리의 다른 글

USB Artifacts 관련 정리 - 150930  (0) 2015.09.30
Project Spartan Forensic - Edge  (0) 2015.09.30
LNK File ( Windows ShortCut)  (0) 2015.09.27
Jump List  (0) 2015.09.27
File System Tunneling  (0) 2015.09.23

Lnk File


Lnk 확장자 파일은 보통 바로가기라 하면 된다. 하지만 바로가기라고만 표현하기에는 너무나 많은 정보를 포함하고 있기에 포렌식의 관점에서 이에 대하여 다루고자 한다. 링크파일은 주로 아래의 위치에 많이 리스트화 되어 존재한다.


# 바탕화면(Desktop) 폴더

  • Windows XP : C:\Documents and Settings\<user name>\Desktop
  • Windows 7 : C:\Users\<user name>\Desktop

# 최근문서(Recent) 폴더

  • Windows XP : C:\Documents and Settings\<user name>\Recent
  • Windows 7 : C:\Users<user name>\AppData\Roaming\Microsoft\Windows\Recent

# 시작프로그램(Start) 폴더

  • Windows XP : C:\Documents and Settings\<user name>\Start Menu\Programs
  • Windows 7 : C:\Users\<user name>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs

# 빠른실행(QuickLaunch) 폴더

  • Windows XP : C:\Documents and Settings\<user name>\Application Data\Microsoft\Internet Explorer\Quick Launch
  • Windows 7 : C:\Users\<user name>\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch


Lnk File Format


Lnk File Format에는 크게 5가지 부분으로 나눌 수가 있다. 

  • ShellLinkHeader(default) : 기본적인 헤더로 식별 정보, 시간 정보, 대상 파일 크기, 대상 파일 특성 등의 정보가 저장된다.
  • LinkTargetIDList(optional) : ShellLinkHeader의 HasLinkTargetIDList 플래그가 설정되어 있을때만 존재하는 구조로, 링크된 대상의 다양한 정보를 리스트 형태로 구성해놓은 구조이다.
  • LinkInfo(optional) : ShellLinkHeader의 HasLinkInfo 플래그가 설정되어 있을때만 존재하는 구조로 링크 대상을 참조하기 위한 정보를 가진 구조이다.
  • StringData(optional) : 역시나 링크 대상의 문자열 정보(이름, 상대경로, 작업디렉터리 등)를 저장하는 구조로 ShellLinkHeader에 관련된 플래그가 설정되어 있을 때만 존재한다.
  • ExtraData(optional) : 링크 대상의 화면 표시 정보, 문자열 코드페이지, 환경 변수와 같은 추가적인 정보 저장을 위한 구조이다.

  • ShellLinkHeader 구조

    기본적인 헤더로 식별 정보, 시간 정보, 대상 파일 크기, 대상 파일 특성 등의 정보가 저장된다.

     범위(Hex) 크기(Byte) 이름 설명
    0 – 34 HeaderSize 헤더의 크기로 항상 0x0000004C(76) 값
    4 – 1316 LinkCLSID 클래스 식별자(class identifier;CLSID)로 항상 00021401-0000-0000-C000-000000000046 값
    14 – 174 LinkFlags 링크 대상의 다양한 정보에 대한 플래그
    18 – 1B4 FileAttributes 링크 대상의 파일 특성 정보
    1C – 23 CreationTime 링크 대상의 생성 시간
    24 –  2B AccessTime 링크 대상의 접근 시간
    2C – 33 WriteTime 링크 대상의 쓰기 시간
    34 – 37 FileSize 링크 대상의 크기
    38 – 3B IconIndex 아이콘 인덱스
    3C – 3F ShowCommand 링크가 실행될 때 응용프로그램의 동작 모드
    40 – 41 HotKey 핫키 정보
    42 – 43 Reserved1 예약된 필드 (항상 0)
    44 – 47 Reserved2 예약된 필드 (항상 0)
    48 – 4B Reserved3 예약된 필드 (항상 0)


    LinkTargetIDList 구조
    ShellLinkHeader의 HasLinkTargetIDList 플래그가 설정되어 있을때만 존재하는 구조로, 링크된 대상의 다양한 정보를 리스트 형태로 구성해놓은 구조이다.


    LinkInfo 구조
    ShellLinkHeader의 HasLinkInfo 플래그가 설정되어 있을때만 존재하는 구조로 링크 대상을 참조하기 위한 정보를 가진 구조이다.

    VolumeID 구조에는 DriveType, DriveSerialNumber 등의 정보가 포함되고, CommonNetworkRelativeLink 구조에는 링크 대상의 경로가 포함된다. 경로 정보는 StringData 구조의 정보를 이용해도 얻을 수 있다. 따라서, LinkInfo 구조에서 포렌식적으로 의미있는 정보를 다음과 같다. 


    • DriveType : 링크 대상이 위치한 드라이브 형식
    • DRIVE_UNKNOWN : 0x00000000
    • DRIVE_NO_ROOT_DIR : 0x00000001
    • DRIVE_REMOVABLE : 0x00000002
    • DRIVE_FIXED : 0x00000003
    • DRIVE_REMOTE : 0x00000004
    • DRIVE_CDROM : 0x00000005
    • DRIVE_RAMDISK : 0x00000006
    DriveSerialNumber : 링크 대상이 위치한 드라이브의 시리얼 번호

    LocalBasePath : 링크 대상 경로



    결론


    링크 파일을 통하여 알 수 있는 정보는 꽤 많다. 아래는 LNK Parser를 통하여 보이는 화면을 캡처한 것으로 링크된 파일의 이름과 해당 파일의 경로, 그리고 파일의 사이즈 비교를 통하여 찾고자 했던 파일의 크기와 비교를 할 수가 있으며, 바로가기 생성시간, 접근시간, 쓰기 시간 등과 그리고 타겟 파일에 대한 타임스탬프가 존재한다. 또한 마지막으로 해당 파일이 만약 USB와 같은 외부 저장장치에서 실행이 됐다면 그 Volume Label과 해당 드라이브의 시리얼 넘버를 알 수가 있다.



    참고

    http://forensic-proof.com/archives/607


    'Forensic > Theory' 카테고리의 다른 글

    Project Spartan Forensic - Edge  (0) 2015.09.30
    윈도우 아티팩트 요소  (0) 2015.09.28
    Jump List  (0) 2015.09.27
    File System Tunneling  (0) 2015.09.23
    Web Forensic  (0) 2015.09.19

    Jump List

    Kail-KM
    |2015. 9. 27. 14:50

    Jump List




    윈도우 7 이전에는 Recent와 UserAssist로 사용자의 편의성을 위하여 목록들을 유지하였다. 하지만 7에 와서는 이 두개에 더해 새로운 기능이 추가되었는데 바로 점프리스트이다.

    점프 리스트란 작업 표시줄에서 아이콘에 마우스를 우클릭하면 이전에 열었던 목록이나 자주 여는 파일의 목록들이 나타난다. 이를 점프 리스트라 한다.

    오른쪽의 그림에서는 최근의 항목들만 존재하지만 이외에도 크롬으로 확인을 해볼 경우 자주 들어가는 사이트와 최근에 닫은 탭까지 점프리스트에 유지가 되는 것을 확인할 수가 있었다.다. 아래는 다른 항목들을 나타내 준다.

  • Recent(최근 항목) : 응용프로그램을 통해 최근 열람한 파일 
  • Frequent(자주 사용하는 항목) : 응용프로그램을 통해 자주 열람하는 파일 
  • Tasks(작업) : 경우에 따라 미디어 재생, 새 문서 작성 등의 기능을 빠르게 이용
  • Pinned(사용자 고정) : 응용프로그램의 사용이 종료되어도 작업 표시줄에 응용프로그램 아이콘을 남겨두기 위한 기능(사용자가 자주 사용하는 응용프로그램일 가능성이 크다


  • Path


    점프리스트의 목록은 %UserProfile%\AppData\Roaming\Microsoft\Windows\Recent 디렉터리에 있는 또 다른 디렉터리에 존재한다. Recent 디렉터리에는 최근에 사용된 파일이나 폴더들의 항목들이 '바로가기'의 형태로 존재하고 있다. 이러한 바로가기에 대해서는 http://kali-km.tistory.com/entry/LNK-File-Windows-ShortCut 을 참고하면 된다.

    Recent에는 바로가기 형태의 파일이 존재하면 점프리스트는 어디에 있단 것인가? 바로 아래의 사진과 같은 경로에 위치하고 있다. 아래에는 2개의 디렉터리가 존재하고 있는데 두 곳에 각 각의 점프리스트가 존재한다.

    AutomaticDestinations : 최근 사용한 목록(Recent)나 사용자가 직접 고정시킨 항목(Pinned)가 위치하고 있다.

    CustomDestinations : 자주 사용되는 목록(Frequent)나 작업목록(Tasks)가 존재하고 있다.


    저장 형태


    각 폴더에는 아래와 같이 알수 없는 이름의 긴 name의 파일들이 존재한다. 앞의 16글자는 바로 App ID로 각 App에 해당하는 ID를 띄고 있으며 각 파일의 내부를 확인해보면 여러 항목들이 존재하는 것을 확인할 수가 있다. 이러한 App ID는 http://kali-km.tistory.com/entry/Jump-List-App-ID  에서 Ctrl+F로 찾아서 어떠한 프로그램의 점프 리스트 목록인지 확인할 수가 있다.

    내용을 확인할 때는 HxD로 열어서 확인하거나 BinText를 통해서도 확인이 가능하다. 하지만 정확히 분석하기 위해서는 JumpList와 관련된 툴을 이용하는 것이 좋다.


    결론


    이러한 점프 리스트를 통하여 분석가는 사용자의 응용프로그램 사용흔적 및 패턴을 파악할 수가 있으며, 사용자가 직접 삭제하지 않는 이상 운영체제 설치 시 부터 지속적으로 로그가 저장되어 있다. 따라서 이러한 사용자의 행위를 파아하거나 정보 유출 사건 분석에 있어서 큰 역할을 기대할 수가 있다.


    참고


    http://forensic-proof.com/archives/1904


    'Forensic > Theory' 카테고리의 다른 글

    윈도우 아티팩트 요소  (0) 2015.09.28
    LNK File ( Windows ShortCut)  (0) 2015.09.27
    File System Tunneling  (0) 2015.09.23
    Web Forensic  (0) 2015.09.19
    Covert TimeStamp  (0) 2015.09.18

    File System Tunneling

    Kail-KM
    |2015. 9. 23. 19:51

    File System Tunneling


    파일시스템 터널링이란 짧은 시간동안 해당 폴더에 삭제된 파일의 이름과 같은 파일을 생성할 경우 생성시간이 유지된다는 개념이다. 기본적으로 시간은 15초이며 이는 FAT와 NTFS에서 기본적으로 지원하는 기능이다.

    이는 사실상 두번째로 생성된 파일이 삭제된 파일의 메타데이터(타임스탬프)를 재사용 하는 것이다. 이는 파일이 제거될 때 제거된 파일의 메타데이터는 임시적으로 저장되는데, 이 임시로 저장된 메타데이터는 같은 파일의 이름이 생성될 경우 해당 파일을 가리키며 결국 타임스탬프가 유지된다.


    Practice - 1


    간단한 실습을 해보자면 아래의 그림과 같이 dir /tc 옵션을 통하여 파일의 생성시간을 확인할 수가 있다. 처음의 file1의 생성시간은 PM 06:33으로 되어있다. 이제 ren 명령어를 통하여 해당 파일의 이름을 file2로 변경하여준다.

    그 후 echo > file1을 통하여 새로운 file1을 생성한다. 여기서 파일의 생성시간을 확인하기 위하여 다시 dir /tc 옵션을 줄 경우 기존의 file1의 생성시간과 같다는 것을 확인할 수가 있다. 저 시점에서의 현재시간은 19:23:09.47로 현재 시간이 아닌 기존 파일의 생성시간을 갖는 것을 확인할 수가 있다.


    이처럼 새로 생성된 파일이 그 내용 또한 갖고 오는지 확인하기 위하여 확인을 해본 결과, 타임스탬프는 가지고 오지만 해당 파일의 내용까지 가지고 오는 것은 아님을 확인할 수가 있었다.


    Practice - 2


    이번엔 직접 악성코드가 어떻게 동작할지 예상을 해보기 위하여 파일 시스템 터널링이 어떻게 동작할지 직접 Python을 통하여 코드를 작성해보고 실행해보았다. 가상의 시나리오는 악성코드가 kernel32.dll을 삭제하고 해당 폴더에 다시 같은 이름으로 악의적인 DLL을 설치하는 과정을 가정해보았다.

    기존의 kernel32.dll의 data는 "ECHO가 설정되어 있습니다." 이지만 해당 악성코드를 실행후에는 "This is File System Tunneling."으로 변화한 것을 볼 수가 있다. 여기서 생성 시간은 유지되므로 대체적으로 운영체제가 설치될 때의 시간과 같은 생성시간(다른 정상적인 주요 DLL과 같이)을 띄고 있다.


    이에 해당하는 코드는 아래와 같다. (...허접하다 참)


    Reference


    http://forensic-proof.com/archives/4829

    'Forensic > Theory' 카테고리의 다른 글

    LNK File ( Windows ShortCut)  (0) 2015.09.27
    Jump List  (0) 2015.09.27
    Web Forensic  (0) 2015.09.19
    Covert TimeStamp  (0) 2015.09.18
    ADS (Alternate Data Stream)  (0) 2015.09.17

    Web Forensic

    Kail-KM
    |2015. 9. 19. 16:51

    Web Forensic


    웹 포렌식이란 흔히 사용하는 웹 브라우저를 통해 생기는 아티팩트들을 수집하고 분석하는 것을 말한다. 현대에 웹 브라우저는 우리와 땔 수 없는 관계가 되어있으므로 이를 통한 정보 수집은 결코 시간낭비적인 것이 아니라, 오히려 정황 증거들을 수집할 수 있게 도와주므로 분석의 길잡이 역할을 해준다. 웹 브라우저로 다양한 프로그램들이 존재하지만 여기서는 자주 쓰이는 몇개의 브라우저에 대해서만 다룰 것이다. 각 브라우저에서 공통적으로 존재하는 요소들에 대하여 알아보자.

    Cache

     웹 캐시는 웹 사이트 접속 시 방문사이트로부터 자동으로 전달받는 데이터로 한번 이상 접속하였던 웹 사이트를 다시 접속할 때, 변경되지 않은 정보는 다운 받지 않고 캐시에서 로딩하는 방식을 이용해 속도를 향상시키고자 사용되는 방법이다. 캐시에는 이미지파일, 텍스트파일, 아이콘, HTML파일, XML파일, 스크립트 파일 등 웹 페이지를 표현하기 위한 데이터들이 다양하게 저장되어 있다. 

    Cache의 인덱스 정보로는 캐시 데이터의 위치, 다운로드 URL, 다운로드 시간, 다운로드 크기, 캐시 파일 정보 등을 얻을 수가 있다. 또한 html의 형태로 저장된 캐시의 경우 메일 본문의 가능성이 있으며 바로 열어보기가 가능.

    Cookie

    쿠키란 웹사이트에서 사용자의 하드 디스크에 저장시켜놓는 사용자에 관한 데이터로, 웹 사이트에서 사용자 별로 개인화된 서비스 제공을 위해 사용한다. 주로 자동 로그인이나 쇼핑몰의 열람한 물건 목록, P2P 사이트의 찜해놓은 자료나 다운받은 자료 목록 등과 같은 정보를 알 수가 있다.

    쿠키 정보를 통해서 호스트, 경로, 쿠키 수정시간, 만료시간, 이름, 값을 알 수가 있다. 여기서 호스트란 접속한 사이트를 알 수 있게 해주며 경로를 통해 사용한 서비스를 유추가 가능하며, 쿠키 수정시간을 통하여 해당 사이트에 마지막으로 접속한 시간을 확인할 수가 있다. 마지막으로 이름이나 값을 통해 로그인 아이디 정보에 획득이 가능하기도 하며 사용자의 Unique ID등을 확인할 수가 있다.

    History

    히스토리는 단어 그대로 사용자가 방문한 웹 사이트의 정보에 대하여 알려준다. 이는 사용자의 편의를 위해서 제공된 것으로 예전에 방문한 사이트를 다시 방문하고자 할때 월별이나 일별 목록으로 확인을 통해 접근이 가능하다. 저장 방식에는 직접 접근과 간접 접근이 존재하는데 직접 접근은 URL 입력창에 직접 주소를 입력하는 방식이며 간접 접근은 링크를 통해서 접근하는 방식이다.

    히스토리를 통하여 방문 사이트의 URL, 방문 시간, 방문 횟수, 웹페이지 제목(Title)과 방문 URL 내에 GET 방식으로 포함된 인자값을 통하여 검색어 정보를 추출하거나 아이디나 패스워드 정보를 추출할 수가 있다.

    Download List

    사용자가 의도적으로 선택해서 다운받은 파일에 대한 정보들을 리스트화 해놓은 것이다. 이는 사용자의 의도와는 관계없이 받아지는 캐시와는 구분 되는 것으로 사용자의 편의를 위하여 제공되는 기능이다. 목록을 통해서 한번 다운받았던 파일을 다시 다운 받을 수가 있다.

    다운로드 리스트를 통해 파일의 저장경로, 다운로드 URL, 파일 크기, 다운로드 시간, 다운로드 성공여부 등을 확인할 수가 있다. 그리고 다운받은 목록에는 있지만 현재에는 존재하지 않을 경우 해당 파일을 다시 해당 URL에서 다운받아서 분석이 가능하다.


    Internet Explorer


    Cache

    캐시 정보의 경우 다운로드된 캐시는 Temporary Internet 파일 형태로 저장이 되며 index.dat 파일은 해당 폴더 내 파일들의 Cache 인덱스를 저장하고 있다. 수집 방법으로는 Content.IE5 폴더 아래 , index.dat 을 수집 하거나 Content.IE5 아래의 모든 폴더를 수집하는 방식이 있다. 

    Windows 10 - IE 11 : %UserProfile%\AppData\Local\Microsoft\Windows\INetCache

    \AppData\Local\Microsoft\Windows\WebCache

    History

    History.IE5폴더 아래에 index.dat 파일의 형태로 저장이 된다. 또한 해당 폴더 안에는 다른 폴더들이 존재하는데 이는 해당 기간에 속한 히스토리의 정보들이 들어가 있다. 따라서 수집 방법으로는 index.dat 파일을 수집하거나 폴더 안에 있는 서브 폴더까지 함께 수집하는 방법이 있다.

    Cookie

    실제 쿠키 정보는 "계정명@호스트명.txt" 형식의 쿠키 파일 안에 저장되며, index.dat 파일은 쿠키 파일들의 인덱스 정보를 저장하고 있다. 수집 방법으로는 Cookies 폴더 아래에 index.dat를 수집하거나 폴더 아래의 모든 텍스트 파일을 수집하는 방법이 있다.

    Download List

    IE 9 이후부터 존재하는 기능으로 IEDownloadhistory 폴더 아래 index.dat를 수집하면 된다.


    Chrome


    Cache

    캐시 정보의 경우 ‘data_0 ‘파일에 데이터 인덱스 정보를, data_1, data_2, data_3 파일과 나머지 파일에 캐시 데이터가 저장되며 수집 방법으로는 Cache 폴더 아래 모든 파일을 수집하여야 한다.

    History, Cookie, Download List

    SQLite Database 파일 형태로 각각 저장되며 History 정보의 경우 History에 저장되며, Cookie 정보는 Cookies에 저장이 된다. 마지막으로 Download 정보의 경우 History에 같이 저장이 되어있다. History 정보의 경우, 월별 정보가 ‘History Index <년-월>’ SQLite 파일로 저장되며 Download List 정보는 History 정보와 함께 ‘History’ SQLite 파일 안에 저장된다. 수집 방법으로는 Default 폴더 아래, History, History Index <년-월>, Cookie 파일 수집하여야 한다.


    Firefox


    여기서 <Random> 이라는 디렉터리가 존재하는데 이 <Random>에 해당하는 값은 firefox 폴더 아래 'profiles.ini' 파일 안에 저장되어 있으므로 해당 파일을 참고하면 된다.

    Cache

    캐시 정보의 경우 Cache Map File, Separate Cache Data Files, Three Cache Block Files 와 같이 3가지 구조로 이루어져 있다. 여기서 Cache Map File(_CACHE__)에는 각 Cache 인덱스 정보가 저장되어 있으며 이러한 인덱스 정보를 바탕으로 Meta 데이터와 Content 데이터가 Separate Cache Data Files와 Three Cache Block Files에 저장 된다. 수집하는 방법으로는  Cache 폴더 아래, _CACHE_MAP_, _CACHE_001_, _CACHE_002_, _CACHE_003_ 파일 수집하거나 Cache 폴더 아래, 모든 폴더 수집를 수집하면 된다.

    History, Cookie, Download List

    이 세가지는 모두 SQLite Database 파일 형태로 각각 저장되는데 History 정보의 경우 places.sqlite에 저장이 되며 Cookie 정보의 경우에는 cookies.sqlite 에 저장이 된다. 마지막으로 Download 정보는 downloads.sqlite 저장이 되므로 수집하는 방법은 <Random>.default 아래 places.sqlite, cookies.sqlite, downloads.sqlite 파일을 수집하면 된다.


    Safari


    Cache, History, Cookie, Download List

    Cache 데이터, 인덱스 정보 모두 SQLite Database 인 Cache.db 파일에 저장되며 History, Cookie, Download List 정보는 각각 Plist 파일 형태로 저장된다. History 정보는 History.plist에 Cookie 정보는 Cookies.plist에, 마지막으로 Download List 정보는 Downloads.plist 에 저장이 된다. 따라서 수집 방법으로는 Safari 폴더 아래, Cache.db 파일을 수집해야하며, Cookies 폴더 아래, Cookies.plist 파일 수집, Safari 폴더 아래, History.plist, Downloads.plist 파일 수집을 해야한다.


    Opera


    Cache

    Cache 인덱스 정보는 dcache4.url 파일에 저장되며 Cache 데이터 정보는 cache 폴더 아래, 각 서브 폴더에 파일 형태로 저장된다. 따라서 수집 방법으로는 cache 폴더 아래, dcache4.url 파일 수집하거나 cache 폴더 아래, 모든 서브 폴더 수집를 수집해야 한다.

    History, Cookie, Download List

    History 정보는 global_history.dat에 저장이 되며 Cookie 정보의 경우 cookies4.dat에 저장이 된다. 마지막으로 Download List 정보는 download.dat에 저장이 된다. 그러므로 이를 수집하기 위해선 Opera 폴더 아래의 각 파일들을 수집하여야 한다.


    Edge


     Windows 10으로 넘어오면서 Microsoft는 IE가 아니라 새로운 Microsoft Edge를 배포하였다. 하지만 Edge의 경우 액티브X 라는 비효율적인 시스템으로 인하여 우리나라에선 영향력 있게 자리잡지 못하고 있다. 하지만 MS에서 지속적으로 밀어붙일려고 하는 형태이므로 추가적으로 기록을 해본다.


    Edge의 경우 아직 명확하게 밝혀지고 연구된 것이 적어 아래의 정보도 정확하지는 않을 수가 있지만 그래도 필자의 PC가 현재 Windows 10인만큼 내 PC만큼에서 쓰는건데 한번 찾아보자는 마음으로 검색을 진행하였다.

     \AppData\Local\Packages\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\AC\#!001\MicrosoftEdge\***

     \AppData\Local\Packages\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\AC\#!002\MicrosoftEdge\***

     \AppData\Local\Packages\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\AC\MicrosoftEdge\***

    우선 위와 같이 총 3개의 폴더에 저장된다고 인터넷에서 검색이 되었지만 각 폴더에 어떤 파일이 저장이 되는지는 아직 정확하게 알지 못한다는 점은 양해를 바란다. 이에 대해서는 추후에 더 알게 되면 수정을 할 것이다.

     위의 경로 중에 하나를 예로 알아본다면 저 폴더의 위치로 이동했을 경우 .DAT 파일과 User라는 디렉터리만 존재하는 것을 확인할 수가 있다. 하지만 다른 폴더들은 감춰진 것으로 존재하지 않는 것이 아니라는 것을 명심해야 한다. CMD를 통해 dir 만을 입력할 경우 눈에 보이는 것과 같이 나오지만 dir /a 옵션을 주면 감춰져있던 디렉터리들을 볼 수가 있다. 이런 식으로 해당 폴더에 접근이 가능하다.

     하지만 History의 경우에는 아무리 찾아도 디렉터리만 존재할 뿐 아무 내용이 없었다. 적어도 별도의 설정을 하지 않은 나의 PC에서 저 위치에 없다는 것은 저 위치가 아니거나 다른 방법으로 접근하거나 아예 저장이 안되었거나..라는 경우의 수가 있다.


    Reference


    http://forensicinsight.org/wp-content/uploads/2012/03/INSIGHT_Web-Browser-Forensics_Part1.pdf

    http://portable-forensics.blogspot.kr/2014/11/web-artifact.html

    http://blueangel-forensic-note.tistory.com/entry/Web-Browser-Forensics-%EA%B0%9C%EC%9A%94

    http://windows.microsoft.com/ko-kr/windows-10/microsoft-edge

    http://stackoverflow.com/questions/31945227/edge-browser-cookie-store-location-and-access


    'Forensic > Theory' 카테고리의 다른 글

    Jump List  (0) 2015.09.27
    File System Tunneling  (0) 2015.09.23
    Covert TimeStamp  (0) 2015.09.18
    ADS (Alternate Data Stream)  (0) 2015.09.17
    Steganography  (0) 2015.09.16

    Covert TimeStamp

    Kail-KM
    |2015. 9. 18. 00:42

    TimeStamp


    포렌식이나 리버싱을 하다보면 HxD 같은 툴을 이용해서 바이너리를 직접 확인해야 하는 경우가 많다. 그러면서 각 파일들의 구조도 보게되며 많은 구조들을 접할 수 있게된다. 그 중에서 항상 어딜가나 빠지지 않는 것이 바로 타임스탬프이다. 이러한 타임스탬프의 경우 그리 중요하지 않게 여기기도 하지만 포렌식에 있어서 시간은 사건에 직접적으로 관련이 있으므로 중요하다.

    이러한 타임스탬프의 경우 다양한 툴 PEViewr나 PrefetchView 등 많은 프로그램이 자체적으로 확인을 해서 나타내준다. 하지만 이번에 포스팅을 하는 가장 큰 이유는 프리패치와 카빙을 공부하면서 직접 바이너리로 봐야할 경우가 있을 것 같기에 포스팅을 해본다.


    4WebHelp


    시간을 변환해주는 다양한 툴들이 존재하겠지만, 필자는 간단하게 어디서든 접근할 수 있는 온라인사이트를 통하여 진행하였다. http://www.4webhelp.net/ 에 접속을 하면 아래와 같이 Unix Timestamp Converter라고 되어있는 부분을 클릭하면 된다. 


    HxD를 통해 확인한 파일의 타임스탬프는 0x4CF52765 라고 되어 있으며 이를 10진수로 변환해주면 아래와 같은 값이 된다.


    이 값을 아래에 넣어주고 Convert to a date 버튼을 눌러주면 해당 날짜가 출력이 되는 것을 확인할 수가 있다. 참고로 위에선 Unix라고 되어있긴하지만 필자의 pc는 윈도우에서 진행했음에도 불구하고 올바른 시간 값을 출력하는 것을 확인했다. 따라서 굳이 귀찮게 다른 사이트와 비교하는 등 하지 않고 그냥 기본 설정 그대로 클릭 몇번만 해서 시간을 변환하면 된다.


    'Forensic > Theory' 카테고리의 다른 글

    File System Tunneling  (0) 2015.09.23
    Web Forensic  (0) 2015.09.19
    ADS (Alternate Data Stream)  (0) 2015.09.17
    Steganography  (0) 2015.09.16
    Icon Forensic ( ICON 분석)  (2) 2015.09.13

    ADS


    ADS란 Alternate Data Stream의 약자로 NTFS 구조에서는 다중의 데이터 스트림을 지원하는데, 이러한 데이터 스트림이 여러개라는 것은 파일이 하나 이상의 데이터를 담을수 있다는 것이다. 이를 이용하여 원하는 데이터를 다른 파일 안에 숨길 수가 있다.

    아래의 그림을 보면 FAT 에서는 하나의 Data Stream만이 존재하지만 NTFS의 구조에는 Main Stream이 존재한다. 하지만 Main Stream 외에도 여러개의 Data Stream이 존재하는 것을 확인할 수가 있는데, 바로 이것이 Alternate Data Stream인 것이다.

    이러한 ADS를 사용하여 데이터를 은닉할 수가 있으며 은닉된 데이터느 일반 사용자가 알아차리기가 힘들기 때문에 악성코드를 넣는 등 악의적인 용도로 사용이 가능하기에 Windows XP 이후에는 이러한 ADS에서 실행파일을 실행되지 않도록 했기에 더이상은 실행파일이 실행되지 않는다. 그렇다하여 ADS에 대해 모르는 것보다는 알고 있는 것이 좋다. 



    Practice


    이제 ADS를 직접 이용해보자. 가장 편하게 만들 수 있는 방법은 CMD와 echo 명령어를 이용하는 것이다. 아래에 그림과 같이 echo "This is ADS" > file.txt:ads.txt이라고 입력을 해준다. 여기서 중요한 것은 바로 " : " 표시이다. 저 기호를 통해 우리는 ADS로 접근을 할 수 있게 되는 것이다. 

    파일이 생성된 이후 해당 파일의 내용을 확인해보면 아무것도 나타나지 않는다. 하지만 " : "을 이용해서 ADS에 접근하면 우리가 첫 줄에서 은닉하고자 했던 데이터 문자열이 출력되는 것을 확인할 수가 있다. 그리고 그 후에 디렉터리를 확인해보면 file.txt에는 아무 내용도 없는 것처럼 0바이트의 크기를 차지하고 있다는 것을 확인할 수가 있다. 즉, 우리는 ADS를 탐지하지 못하고 있다.


    하지만 dir 명령어에 /r 이라는 옵션을 넣어주면 우리는 숨겨져있던 ADS의 목록을 볼 수가 있다. dir /r 을 입력해준 결과 아래와 같이 출력 되는 것을 확인할 수가 있다. file.txt 는 분명히 0 바이트를 차지하지만 그 바로 밑에 있는 file.txt:ads.txt는 16바이트의 크기를 차지하고 있다.


    또한 아래와 같이 디렉터리 자체에도 ADS를 형성할 수가 있다.



    Conclusion


    이렇게 간략한 방법으로 ADS를 형성할 수 있다는 것을 확인하였다. 만약 아직도 ADS에 있는 실행파일을 실행할 수 있게 된다면 이는 악성코드로 부터 많이 사용될 확률이 높다. 현재는 이러한 기능이 차단되어 XP까지만 가능하지만, Power Shell을 이용하는 방법 등 아예 실행하지 못하는 것은 아닌 것 같다. 이에 대해서는 추후에 지식을 더 쌓게 되어 다루게 된다면 다시 포스팅 하겠다.




    Reference


    http://www.codeblack.net/2015/03/ntfs-file-system-adsalternate-data.html

    http://blog.naver.com/PostView.nhn?blogId=ifkiller&logNo=70156536987&redirect=Dlog&widgetTypeCall=true




    2018-06-19

    ADS 또한 실행 할 수 있는 방법이 존재한다. 아래의 방법은 Windows 7 x64 에서 Test 했을 때 성공적으로 실행되었다. 다른 환경은 아직 테스트 해보지 않았다.

     WMIC process call create "%temp%\\dummy.txt:ads.exe" 

    참조 링크 : http://asec.ahnlab.com/1090?category=342979

    'Forensic > Theory' 카테고리의 다른 글

    Web Forensic  (0) 2015.09.19
    Covert TimeStamp  (0) 2015.09.18
    Steganography  (0) 2015.09.16
    Icon Forensic ( ICON 분석)  (2) 2015.09.13
    Thumbnail Forensics (썸네일 분석)  (0) 2015.09.13