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