보안정보

전문화된 보안 관련 자료, 보안 트렌드를 엿볼 수 있는
차세대 통합보안관리 기업 이글루코퍼레이션 보안정보입니다.

Microsoft Edge Web Browser Forensics

2018.06.26

18,100

서비스사업본부 보안분석팀 이경엽

 

1. 개요

 

컴퓨터 포렌식은 전자적 증거물 등을 사법기관에 제출하기 위해 데이터를 수집, 분석, 보고서를 작성하는 일련의 작업을 말한다. 다양한 기기에서 증거물을 얻을 수 있으며 그 중 기기 사용자가 인터넷을 사용한 흔적을 수집하기 위하여 ‘웹 브라우저 포렌식’을 수행하며, 이를 위하여 Edge, Internet Explorer, Chrome, Firefox등의 브라우저 HIstory, Cache, Cookie, Download List 등을 분석하게 된다. 

 

이번 호에서는 Windows 10 환경에서 기본 브라우저로 설정되어 있는 Microsoft Edge의 로그 데이터를 수집하여 분석하는 방법 및 삭제된 로그 데이터를 복구하여 수집하고, InPrivate 모드에서 사용한 흔적을 수집하여 분석하는 방법을 알아보도록 하자.

  

 [그림 1] Microsoft Edge Browser

 

 

2. 분석 대상 정보 

 

웹 브라우저 포렌식에서 분석 할 대상인 History, Cache, Cookie, Download List에 대해 알아보자. 

 

1) HIstory 정보 

 

사용자가 방문한 웹 사이트의 접속 정보로, 편의를 위하여 저장된다. 각 정보는 아래와 같이 이루어져 있다. 

 

ㆍ방문 URL과 방문 시간 : 해당 사이트의 방문 시간 정보

ㆍ방문 URL의 GET 방식 인자값 : 검색어, 아이디, 패스워드

ㆍ방문 횟수 

ㆍ웹 페이지 제목 

 

 

2) Cache 정보 

 

웹 사이트 재 접속 시 이미지나 정보들을 다시 다운로드 받지 않고 빠르게 로딩하기 위하여, 사이트로부터 자동으로 받는 데이터

 

ㆍCache 데이터 : 다운로드 받은 데이터, 이미지, 텍스트, 아이콘 등

ㆍCache 인덱스 정보 : Cache 데이터 위치, 다운로드 URL, 다운로드 시간, 크기 등

 

 

 

[그림 2] Cache 목록

 

 

3) Cookie 정보 

 

웹 사이트에서 사용하는 사용자에 관한 데이터로, 사용자의 하드 또는 서버에 저장된다. 기능은 아래와 같다.  

 

ㆍ자동 로그인 기능

ㆍ웹 쇼핑몰의 장바구니, 상품 저장 목록

ㆍ기타 개인화된 서비스에 이용

 

 

4) Download List 

 

사용자가 의도적으로 선택하여 자신의 컴퓨터에 내려 받은 파일들에 대한 정보, 사용자의 의도와 관계없이 다운로드 하는 캐시와는 구분이 필요하다.

 

ㆍ저장 경로, 다운로드 URL, 파일 크기, 다운로드 시간 등을 수집 가능

 

 

3. Edge 브라우저의 로그 데이터 수집과 분석

 

Edge 브라우저의 분석 대상 데이터에 대해 알아보며, 이를 수집하고 도구를 이용하여 분석 해보자.

 

ㆍ분석 대상 OS : Windows 10 기준 (Windows 7 이상의 OS)
ㆍInternet Explorer 10 이전 버전에서 사용하던 경로에는 “container.dat” 라는 빈 파일이 존재
ㆍInternet Explorer 10 이전 버전에서 사용하던 경로에는 “container.dat” 라는 빈 파일이 존재​

  

정보

경로

분석 도구

Cache

1)

%USERPROFILE%AppDataLocalMicrosoftWindowsWebcacheWebCacheV01.dat

2) esentutl

 

ESEDatabaseView

 

IE10Analyzer

History

Cookie

Download

 

[표 1] Edge 브라우저 로그 경로 및 분석 도구

 

1) %USERPROFILE% : Profile 경로를 의미 ex) C:Usersigloo

2) esentutl : Microsoft 사가 개발한 ESE(Extensible Storage Engine) 데이터베이스 포맷 파일을 관리하기 위한 도구 

 

 

ㆍWebCacheV01.dat : ESE(Extensible Storage Engine) Database Format의 파일이다. 헤더와 페이지로 이루어져 있으며, B+ 트리 구조로 이루어져 있다. 아래 [그림 5-3] 에서 파일의 구조를 볼 수 있다.

 

 

[그림 3] WebCacheV01.dat 파일의 구조 

 

 

 

[그림 4] WebCacheV01.dat 데이터베이스 파일의 헤더 구조 (출처 : forensicfocus.com)

 

 

1) 데이터 수집 

 

Edge 브라우저는 “WebCacheV01.dat” 파일을 통하여 모든 History, Cache, Cookie 등 로그를 관리한다. 따라서 해당 파일을 분석하면 되지만, TaskHost 프로세스를 사용하고 있어 일반적인 복사로는 수집이 되지 않으며 “EseDatabaseViewer”로도 분석을 수행할 수 없다. 수집 방법은 아래와 같다.

 

ㆍWindows를 정상 종료하여 Clean Shutdown 상태의 파일을 수집

ㆍTaskHost 프로세스를 강제 종료한 후 Dirty Shutdown 상태의 WebCacheV01.dat 파일 수집

→ esentutl 도구를 이용하여 Clean Shutdown 상태로 복구 가능

 

이 중 TaskHost 프로세스를 강제 종료한 후 수집하는 방법을 알아보자.

 

① 데이터 수집 

숨김 파일을 보이도록 설정한 후 

%USERPROFILE%AppDataLocalMicrosoftWindowsWebcacheWebCacheV01.dat 파일 확인

 

 

[그림 5] WebCacheV01.dat 경로

 

 

② taskhost 프로세스 종료 

명령창에서 다음 명령어를 실행하여 관련 프로세스들을 확인한 후 종료시킨다. - 프로세스 확인 : tasklist | find “taskhost”

- 프로세스 종료 : taskkill /f /im "taskhostw.exe" /t

 

  

 

[그림 6] taskhost 관련 프로세스 종료

 

 

③ 아티팩트 수집 완료 및 복구

WebCache 폴더에서 WebCacheV01.dat을  복사하여 임의의 경로에 붙여넣기 한다. 이로써 Edge 브라우저의 아티팩트를 수집하였다. 이후 아래 명령어를 통하여 Clean Shutdown 상태로 복구할 수 있다. 복구 시 다소의 데이터가 손실 될 수 있음을 참고하자.

- 파일 상태 확인 : esentutl /mh WebCacheV01.dat

- CleanShutdown 상태로 복구 : esentutl /p WebCacheV01.dat

 

 

 

[그림 7] WebCacheV01.dat 파일 상태 확인

 

 

 

[그림 8] ] Clean Shutdown 상태로 복구

 

 

 

[그림 9] Clean Shutdown상태 복구 확인

 

 

2) 데이터 분석

 

수집한 WebCacheV01.dat를 ESEDatabaseView 도구를 이용하여 분석한다.

- 분석 도구 출처 : https://www.nirsoft.net/utils/ese_database_view.html 

 

① 브라우저 로그 데이터 파일 열람

ESEDatabaseView 도구를 이용하여 WebCacheV01.dat 파일을 열람한다.

 

ㆍ각 정보들은 Container_N 형식의 이를을 가진 테이블에 저장되어 있음

ㆍ각 Container_N 테이블에 저장되는 정보의 종류는 Containers 테이블의 ContainerId 칼럼과 Name 칼럼을 참조

ㆍ아래 [그림 10]에서는 Container_2 테이블에 History 정보가 저장되어 있는 것을 확인

 

 

[그림 10] Containers 테이블

 

② Cache 정보 분석

ㆍContainers 테이블의 Name 값이 “Content” 인 테이블에 해당

ㆍ아래 [그림 11]에서는 Name 칼럼의 값이 ”Content”인 행의 ContainerId 값이 1 이므로 Container_1 테이블에 Cache 값이 기록되어 있음 

 

 

[그림 11] Cache 데이터가 포함된 테이블명 확인

 

 

 

[그림 12] Cache 데이터가 포함된 테이블의 칼럼 일부

 

 

필드

설명

Url

해당 Cache 데이터를 다운로드 한 URL

Access Time

Cache 데이터 다운로드(접근) 시간 (FILETIME 10진수로 변환한 값)

Creation Time

Cache 데이터 생성 시간

Modified Time

해당 Cache의 웹 서버에서의 마지막 수정 시간

Expiry Time

해당 Cache 데이터의 만료 시간, 이 값이 0일 경우, 해당 데이터는 웹 브라우저가 종료되거나 다른 페이지로 넘어갈 시 바로 삭제

Sync Time

Access Time과 동일

Filename

Cache 데이터 파일명

Filesize

Cache 데이터 크기

SecureDirectory

해당 Cache 데이터가 저장되어 있는 폴더의 인덱스 정보

ResponseHeader

해당 Cache 데이터의 HTTP 헤더(Hex 형태)

 

[표 2] Cache 테이블의 주요 필드 별 저장 정보 

 

 

ㆍSecureDirectory 폴더 정보는 Containers 테이블의 SecureDirectories 필드의 16진수 값을 사용

- 해당 16진수 값을 8자 단위로 끊어서 배열로 만듦

- SecureDirectory 필드의 인덱스 값을 위에서 만든 배열에 적용

- 인덱스 값을 통해 배열에서 얻어온 16진수가 해당 캐시 데이터가 저장되어 있는 폴더 명

   → 이를 통해 해당 캐시데이터가 저장되어 있는 전체 경로를 구할 수 있음

 

③ History 정보 분석

ㆍContainers 테이블의 Name 값이 “History” 또는 “MSHist01~” 인 테이블에 해당

 

 

[그림 13] History 데이터가 포함된 테이블 확인

 

 

필드

설명

Url

http://~ : 방문 사이트 URL

file:///~ : 열람한 파일 전체 경로

Access Time

해당 사이트 접근 시간 or 해당 파일 열람 시간 (FILETIME10진수로 변환한 값)

Creation Time

항상 0

Modified Time

Access Time과 동일 (조금 차이 날 수 도 있지만 변환해 보면 초 시간까지 동일)

Expiry Time

해당 History 데이터 만료 시간, 해당 기간이 만료되면 테이블에서 레코드가 삭제됨 (기본 20)

Sync Time

Access Time과 동일

ResponseHeader

웹 페이지 제목 정보가 들어있는 데이터가 저장됨 ( Hex )

- 시작 위치부터 0x3A 위치에 4바이트 크기로 웹 페이지 제목 문자열 크기가 저장됨

- 웹 페이지 제목은 유니코드이므로 실제 값에 2배를 해주어야 읽을 바이트 수를 구할 수 있음

- 문자열 크기 데이터에 바로 이어서 웹 페이지 제목 문자열이 유니코드로 저장됨

 

[표 3] History 테이블의 주요 필드 별 저장 정보

 

 

④ Cookie 정보 분석

ㆍContainers 테이블의 Name 값이 “Cookies” 인 테이블에 해당

 

 

[그림 14] Cookie 데이터가 포함된 테이블 확인

 

 

필드

설명

Url

해당 Cookie 호스트 정보

Access Time

해당 사이트 마지막 접근 시간 (FILETIME10진수로 변환한 값)

Creation Time

해당 쿠키 파일 생성 시간

Modified Time

Access Time과 동일 (약간의 차이가 날 수 있음)

Expiry Time

해당 Cookie 데이터 만료 시간, 해당 기간이 만료되면 테이블에서 레코드가 삭제됨 (기본 20)

Sync Time

Access Time과 동일

Filename

실제 쿠키 정보를 저장하고 있는 쿠키 파일의 이름

-경로는 Containers 테이블의 Directory에서 확인

 

 [표 4] Cookies 테이블의 주요 필드 별 저장 정보

 

 

 

 

⑤ download 정보 분석

ㆍContainers 테이블의 Name 값이 “iedownload” 인 테이블에 해당

 

 

[그림 16] 데이터가 포함된 테이블 확인

 

 

필드

설명

Url

다운로드 GUID 값 저장

Access Time

다운로드 시간 ( FILETIME10진수로 변환한 값 )

Creation Time

항상 0

Modified Time

항상 0

Expiry Time

항상 0

Sync Time

Access Time 과 동일

ResponseHeader

소스 URL, 저장 경로 정보가 들어 있는 데이터가 저장됨 ( Hex )

-시작 위치 부터 0x48 위치에 다운로드 데이터 크기 정보 ( 8byte )
-시작 위치 부터 0x148(index.dat 에서는 0x138) 위치에 문자열 배열 시작

 

[표 5] iedownload 테이블의 주요 필드 별 저장 정보

 

 

 

 

[그림 17] ResponseHeader 값 확인

 

 

⑥ IE10Analyzer 도구 사용

ㆍWebCacheV01.dat 데이터를 보다 편리하게 분석 가능

ㆍWebCacheV01.dat 파일을 복사하는 일련의 과정 없이 바로 파일 열람 가능

ㆍ삭제된 데이터를 복구하여 분석 가능

ㆍ분석 위해 파일 열람 시 UTC+9 로 설정

ㆍ출처 : http://moaistory.blogspot.com/2016/07/internet-explorer-10-microsoft-edge.html

 

 

[그림 18] 데이터가 포함된 테이블 확인

 

 

3) 삭제 데이터 복구

 

ㆍESE 데이터베이스 파일은 레코드를 삭제하면 태그와 데이터가 삭제되지 않고, 레코드 수와 페이지 종류만 변경된다. 따라서 브라우저를 통해 삭제한 기록은 WebCacheV01.dat 파일을 통해 복구가 가능하다. 

ㆍIE10Analyzer 도구를 이용하여 복구 및 분석 진행 

ㆍEdge와 InternetExplorer 브라우저의 기록을 삭제 후 복구를 진행

 

 

 

[그림 19] 삭제된 기록 복구 옵션 설정

 

 

 

 

[그림 20] 데이터가 복구된 테이블 확인

 

 

4) InPrivate Browsing 데이터 분석

 

ㆍEdge에서 사용자의 기록을 남기지 않고 브라우저를 사용하는 방법으로 InPrivate 모드를 이용한다.

ㆍ일반적인 방법으로는 InPrivate 모드에서 사용한 기록을 분석 할 수 없다.

ㆍWebCacheV01.dat 파일의 Carving 과정을 거쳐 분석을 진행해야 한다. 

ㆍ분석 도구는 IE10Analyzer를 이용한다. 

 

 

[그림 21] InPrivate 기록 복구 옵션 설정

 ​ 

 

 

[그림 22] InPrivate 기록 복구 완료

 

 

4. 기타 브라우저 로그 데이터 경로 및 분석 도구

 

1) Internet Explorer 10 이상 

 

정보

경로

도구

Cache

%USERPROFILE%AppDataLocalMicrosoftWindowsWebcacheWebCacheV01.dat

or

%USERPROFILE%AppDataLocalMicrosoftWindowsWebcacheWebCacheV24.dat

esentutl

 

ESEDatabaseView

 

IE10Analyzer

History

Cookie

Download

 

[표 6] IE 10 이상의 브라우저 로그 경로 및 도구

 

2) Chrome

  

정보

경로

도구

Cache

%USERPROFILE%AppDataLocalGoogleChromeUser DataDefaultCache

ChromeCacheView

History

%USERPROFILE%AppDataLocalGoogleChromeUser DataDefaultHistory

DB Browser for SQLite

Cookie

%USERPROFILE%AppDataLocalGoogleChromeUser DataDefaultCookies

Download

%USERPROFILE%AppDataLocalGoogleChromeUser DataDefaultHistory

 

[표 7] Chrome 브라우저 로그 경로 및 도구

 

 

3) Firefox

  

정보

경로

도구

Cache

%USERPROFILE%AppDataLocalMozillaFirefoxProfiles.defaultcache2

MozillaCacheView

History

%USERPROFILE%AppDataRoamingMozillaFirefoxProfiles.defaultplaces.sqlite

DB Browser for SQLite

Cookie

%USERPROFILE%AppDataRoamingMozillaFirefoxProfiles.defaultcookies.sqlite

Download

%USERPROFILE%AppDataRoamingMozillaFirefoxProfiles.defaultdownload.sqlite

 

[표 8] Firefox 브라우저 로그 경로 및 도구

 

 

5. 참고자료


[1] NirSoft ESEDatabaseView    

http://www.nirsoft.net/

[2] IE10Analyzer

http://moaistory.blogspot.com/2016/07/internet-explorer-10-microsoft-edge.html

[3] F-INSIGHT (blueangel) IE10 Forensics

http://forensicinsight.org/wp-content/uploads/2012/09/INSIGHT-IE-10-Forensics.pdf

[4] Project Spartan Forensics 

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

[5] Internet Explorer 10 Forensic

http://maj3sty.tistory.com/1047

[6] WebCacheV01.dat 수집 & 분석 방법

http://blog.naver.com/gyurse/220253178395

[7] Recovery method of deleted records and tables from ESE database

https://www.sciencedirect.com/science/article/pii/S1742287616300342