#Daily Writing
매일매일 하루 한가지.. ^^
오늘은 Chrome 브라우저에서 히스토리 분석툴을 소개 합니다.
Chrome에서 브라우저 접근 히스토리를 분석하는 방법은 다양하게 존재 합니다. 우선 맥PC를 기준으로 한다면 간단하게 다양한 접근 히스토리등을 보고 싶다면.. 아래와 같은 방법을 사용할수 있습니다.
기본적으로 Chrome의 데이터 저장은 SQLite3 DB를 이용하여 저장하게 되므로 해당 파일에 직접 접근해서 볼 수 있습니다. 간단하게 SQL Tool을 이용하면 아래와 같이 접근하여 볼수 있습니다.
/Users/<userid>/Library/Application Support/Google/Chrome/Default
위 폴더의 하위에 있는 파일이 Chrome에서 저장하고 있는 여러가지 이력들 파일 입니다.
해당 파일의 History를 열면 아래와 같이 어떠한 것을 했는지에 대한 상세한 이력등을 다 볼수 있습니다. 이외에도 해당 폴더에는 다양한 정보가 많이 저장되어 있습니다. 상세한 Chrome 사용 분석이 필요한 경우 사용할 수 있습니다.
% 툴과 각 OS별 Chrome 브라우저의 DB 파일 위치는 아래 링크를 참고 하시기 바랍니다.
https://www.foxtonforensics.com/browser-history-examiner/chrome-history-location
이제 하나하나씩 모두 DB를 보고 Select 를 하는게 편할 경우 위의 방법을 사용할 수 있지만 만약 난 그냥 엑셀로 보는게 편하고 URL이나 외부에 접근 항목만 보는게 편할때에는 아래의 툴을 사용할수 있습니다.
https://github.com/obsidianforensics/hindsight
파이선으로 개발되어 github에 공개되고 있는 툴로서 간단한 웹 UI도 제공하고 있고 읽어들인 정보를 엑셀로 출력하는 기능도 제공하고 있으므로 DB에 익숙하지 않은 분들이 간단하게 사용을 하고 싶으시다면 사용해 볼수 있습니다. 다만 기본적으로 파이선 3 버전을 설치 하셔야 하고 PIP 설정과 하부 플러그인을 설치 하셔야 하므로 위의 방법이 더 편하다고 저는 느껴 집니다.
Python 3.x
PIP
위의 github을 git clone하여 받으신 다음 해당 폴더로 이동 합니다.
#pip3 install -r requirements.txt
Collecting plyvel>=1.2
Downloading plyvel-1.3.0.tar.gz (149 kB)
|████████████████████████████████| 149 kB 954 kB/s
Collecting keyring>=21.2.1
Downloading keyring-21.4.0-py3-none-any.whl (31 kB)
Collecting pytz>=2020.1
Downloading pytz-2020.4-py2.py3-none-any.whl (509 kB)
|████████████████████████████████| 509 kB 6.8 MB/s
Collecting pycryptodome>=3.9.7
Downloading pycryptodome-3.9.9-cp37-cp37m-macosx_10_6_intel.whl (14.1 MB)
|████████████████████████████████| 14.1 MB 42 kB/s
Collecting pycryptodomex>=3.9.7
Downloading pycryptodomex-3.9.9-cp37-cp37m-macosx_10_6_intel.whl (14.1 MB)
|████████████████████████████████| 14.1 MB 14.2 MB/s
Collecting xlsxwriter>=1.2.9
Downloading XlsxWriter-1.3.7-py2.py3-none-any.whl (144 kB)
|████████████████████████████████| 144 kB 19.8 MB/s
Requirement already satisfied: bottle>=0.12.18 in /usr/local/lib/python3.7/site-packages (from -r requirements.txt (line 7)) (0.12.18)
Collecting importlib-metadata; python_version < "3.8"
Downloading importlib_metadata-2.0.0-py2.py3-none-any.whl (31 kB)
파이선과 모듈을 모두 설치 하였다면 이제는 아래의 명령어로 실행합니다.
#python3 hindsight_gui.py
이제 브라우저를 열어서 http://localhost:8080 으로 접속하면 아래와 같은 사이트가 보입니다.
위의 페이제에 Profile Path에 현재 나의 OS 버전에 맞게 Chrome의 DB 위치를 지정해 주면 됩니다. 만약 맥의 경우라면 위에서 사용했던 아래의 위치를 사용하면 됩니다.
/Users/<userid>/Library/Application Support/Google/Chrome/Default
크롬의 SQLite3의 DB에서 정보를 가져오기 떄문에 크롬이 실행중인 경우 database is locked를 띄우면서 읽어 올수가 없다. 이런 에러 메시지가 뜰 경우 크롬이 실행중인 상태이므로 크롬을 종료한 이후 실행하면 됩니다.
SQLite3 error; is the Chrome profile in use? Hindsight cannot access history files if Chrome has them locked. This error most often occurs when trying to analyze a local Chrome installation while it is running. Please close Chrome and try again.
Traceback (most recent call last):
File "/Users/gimhyeong-gi/git/hindsight-1/pyhindsight/browsers/webbrowser.py", line 77, in build_structure
cursor.execute("SELECT name FROM sqlite_master WHERE type='table'")
sqlite3.OperationalError: database is locked
During handling of the above exception, another exception occurred:
이제 Run을 누르면 얼마 지나지 않아 어떤게 채집 되었는지 표시해 줍니다. 이제는 이걸 가지고 엑셀로 뽑아 봅니다.
출력된 파일에는 위에서 체크한 각종 URL 정보가 모두 포함되어 있는것을 확인 할수 있습니다.
% SQLite와 DB에 익숙하고 WEB 브라우저와 기본 구동 원리를 잘 아는분은 특별히 필요 없겠지만.. 툴을 설치해 놓고 Chrome의 이력만을 뽑아서 보고 싶은 경우에는 유용하게 사용 가능한 툴이였습니다.
% 본 글은 특정 단체의 입장을 대변하지 않습니다.