Browser Forensics – Part 1
Ngày nay, việc lướt web hay sử dụng Internet đã trở thành một thói quen, một hoạt động hằng ngày của chúng ta. Hầu hết mọi người đều truy cập Internet qua các trình duyệt web hay còn gọi là browser. Bên cạnh đó, một phần không nhỏ các sự cố liên quan đến mã độc như đánh cắp thông tin tài khoản bằng Spyware, tài nguyên máy tính quá tải do CoinMiner, … có nguồn gốc là từ các trình duyệt web.
1. Background
Gần đây, mình có gặp qua một case máy người dùng bị nhiễm mã độc mà có nguồn gốc từ internet. Sau khi kiểm tra log, mình nhận thấy một tiến trình bất thường:
Hình 1.1 Tiến trình bất thường
Sau một loạt các kiểm tra, điều tra số, mình nghi ngờ tiến trình này đến từ một file được download trên mạng về. Ngay lập tức, mình thực hiện điều tra lịch sử trình duyệt web lấy trong log thu thập về từ máy người dùng và nhận được kết quả như mong đợi.
Hình 1.2 File được download về
Hình 1.3 Đường dẫn download file
Hình 1.4 Nguồn gốc của mọi việc
Thực hiện điều tra số xong, có thể rút được kết luận sơ bộ sự cố xảy ra do người dùng thực hiện crack Windows 10 và download file từ hướng dẫn. File đã download về chứa mã độc và máy người dùng đã bị mã độc tấn công.
Qua đây, có thể nhận thấy rằng đối với một máy client mà nói, trình duyệt web là một nguồn thông tin/bằng chứng dồi dào mà điều tra viên không thể bỏ sót khi thực hiện điều tra số. Nhân tiện sự cố lần này, mình cũng thực hiện luôn một bài viết nói về việc điều tra số trình duyệt web. Mình sẽ tập trung vào các artifacts quan trọng cũng như một số công cụ được sử dụng phổ biến trên các trình duyệt web mà bản thân mình hay gặp nhất trong quá trình làm việc.
2. Overview
Mặc dù hiện tại có rất nhiều các trình duyệt web khác nhau, tuy nhiên thì các bằng chứng cũng chỉ chủ yếu tập trung vào mấy loại cơ bản như sau:
- Lịch sử trình duyệt: cho chúng ta nhiều thông tin quan trọng như
- Những trang web mà người dùng đã duyệt qua
- Thời gian chi tiết cho mỗi lần duyệt web
- Tần suất duyệt web
- Thời gian sử dụng trình duyệt
- Local User đã thực hiện các lượt duyệt web
- Cache – bộ nhớ đệm: là các phần của một trang web được trình duyệt lưu lại tạm thời trong một khoảng thời gian để giảm tải và tăng tốc thời gian loading trang web đó.
- Gồm các file cần thiết để dựng lại trang web tại thời điểm người dùng truy cập.
- Có thể thu được thông tin về các hành vi và hoạt động mà người dùng đã thực hiện
- Cookie: được các trang web sử dụng để lưu lại một số thông tin của người dùng khi truy cập vào trang web đó. Cung cấp các thông tin như:
- Website đã lưu lại cookie đó
- Local user sử dụng
- Thời gian tạo, sửa, truy cập của file cookie
- Dữ liệu được lưu lại trong cookie
- Lịch sử tải xuống: cung cấp các thông tin như:
- Đường dẫn file tải về
- Local path lưu file
- Thời gian bắt đầu và kết thúc tải file
- Lượng bytes đã nhận và lượng bytes tổng
Những bằng chứng này lưu lại các dấu vết khi người dùng sử dụng trình duyệt web, giúp chúng ta hiểu được hầu hết tuần tự những hành động mà người dùng đã thực hiện, từ đó củng cố thêm thông tin để xây dựng luồng logic của một sự cố từ trước, trong và sau khi xảy ra.
Trên thị trường có nhiều công cụ được phát triển để parse được các thông tin quan trọng này, tuy nhiên phổ biến và được sử dụng rộng rãi nhất là bộ công cụ của NirSoft, bao gồm BrowsingHistoryView, BrowserDownloadView, WebCacheImageInfo, …
Vừa rồi là một số thông tin chung về những artifacts mà chúng ta nên để ý khi thực hiện điều tra trình duyệt web. Tiếp theo, chúng ta sẽ đi vào chi tiết các loại trình duyệt web mà theo bản thân mình thấy rằng hay gặp trong các case xử lý thực tế nhất.
3. Microsoft Edge
Các phiên bản Windows trước 8 và 8.1 thì Microsoft đều cài đặt Internet Explorer (IE) làm trình duyệt web mặc định trên hệ điều hành của mình. Cho đến ngày hôm nay, mặc dù đã ngừng hỗ trợ và không còn được sử dụng nữa, nhưng IE11 vẫn còn được mặc định cài đặt khi chúng ta cài Windows. Tuy nhiên vào ngày 19/04/2015, Microsoft Edge được hãng tung ra để cạnh tranh với các ông lớn khác như Google, Firefox, …
Tại thời điểm viết bài viết này, tháng 10 năm 2024, Edge cũng đã trải qua 2 thời kỳ. Thời kỳ đầu tiên, từ năm 2014 đến 2019 (Edge v44 trở xuống), Edge thời này (hay còn gọi là Edge Legacy) lưu trữ các artifacts của mình không khác biệt nhiều so với IE11. Do vậy, chúng ta vẫn có thể tìm thấy chúng một cách dễ dàng. Tuy nhiên, việc Microsoft đưa Edge làm trình reader mặc định cho PDF, chúng ta sẽ thấy nhiều cached PDF files được lưu lại hơn. Edge mới (New Edge – từ Edge v79+) được xây dựng dựa trên Chromium source code và do vậy, các artifact có phần giống với Google Chrome.
Metadata: Edge Legacy lưu lại các file WebCacheV*.dat chứa các thông tin chung về trình duyệt web như lịch sử duyệt web, cache, cookie, lịch sử tải về, …
- Vị trí: %USERPROFILE%\AppData\Local\Microsoft\Windows\WebCache
- Định dạng: cơ sở dữ liệu ESE (Extensible Storage Engine).
- Công cụ: ESEDatabaseView, …
Hình 3.1 Tables trong WebCacheV01.dat
Hình 3.2 Bảng Containers
- Trong file WebCacheV*.dat, có 1 bảng tên là “Containers” chứa một danh sách các thông tin mô tả cho các bảng tên “Container_*”. Ta có thể xem thông tin mình muốn tìm kiểm là gì ở cột “Name” và ánh xạ sang cột “ContainerId” để tìm được bảng chứa thông tin tương ứng
Hình 3.3 Bảng Container_2
- Có thể thấy ở hình 3.2, bảng Container có ID bằng 2 chứa các thông tin về lịch sử duyệt web. Dựa vào đó, tìm bảng Container_2 và chúng ta có được các thông tin chi tiết hơn như đường dẫn Url, số lượt truy cập hay các mốc thời gian được ghi lại.
Lịch sử duyệt web:
- Vị trí:
- %USERPROFILE%\AppData\Local\Microsoft\Windows\WebCache (Edge Legacy)
- %USERPROFILE%\AppData\Local\Microsoft\Edge\User Data\Default\History (New Edge)
- Định dạng: ESE database trên Edge Legacy, SQLite trên New Edge
- Công cụ: ESEDatabaseView, Sqlitebrowser, Sqliteviewer, …
Hình 3.4 Edge History
- Có thể thấy trong ảnh, cột last_visit_time lưu một dãy số. Dãy số này chính là thời gian lần cuối truy cập được lưu ở định dạng Epoch. Có thể sử dụng Epoch Converter để đổi sang dạng human readable
Cache:
- Vị trí:
- %USERPROFILE%\AppData\Local\Packages\microsoft.microsoftedge_<APPID>\AC\MicrosoftEdge\Cache (Edge Legacy)
- %USERPROFILE%\AppData\Local\Microsoft\Edge\User Data\Default\Cache\Cache_Data (New Edge)
- Định dạng: một index file, một data block file, và các data file lưu trữ dữ liệu
- Công cụ: ChromeCacheView, các tools đọc content type tương ứng, …
Hình 3.5 Edge Cache
- ChromeCacheView cho phép chúng ta có thể mở file cache trực tiếp qua các trình đọc tương ứng.
Cookies:
- Có một lưu ý nhỏ là chỉ persistent cookie là được lưu lại thành file trên đĩa, các loại khác như session cookie, secure cookie chỉ được lưu trên memory.
- Vị trí:
- %USERPROFILE%\AppData\Local\Packages\microsoft.microsoftedge_<APPID>\AC\MicrosoftEdge\Cookies (Edge Legacy)
- %USERPROFILE%\AppData\Local\Microsoft\Edge\User Data\Default\Network\Cookies (New Edge)
- Định dạng: SQLite database
- Công cụ: Sqlitebrowser, Sqliteviewer, …
Hình 3.6 Edge Cookies
- Có thể sử dụng Epoch Converter để đọc thời gian tạo, thời gian hết hạn và thời gian truy cập
Lịch sử tải về:
- Vị trí:
- %USERPROFILE%\AppData\Local\Microsoft\Windows\WebCache\WebCacheV*.dat (Edge Legacy)
- %USERPROFILE%\AppData\Local\Microsoft\Edge\User Data\Default\History (New Edge)
- Định dạng: SQLite database
- Công cụ: Sqlitebrowser, Sqliteviewer, …
Hình 3.7 Edge Download History part 1
Hình 3.8 Edge Download History part 2
- Ở trên hình, có thể nhìn thấy rất nhiều thông tin hữu dụng được ghi lại như file path, thời gian bắt đầu/kết thúc tải về, bytes đã nhận, bytes tổng, …
Trên đây mình chỉ liệt kê một vài artifacts mà mình thường xuyên phải sử dụng. Tuy nhiên, còn nhiều loại artifacts khác cũng đáng xem qua để hiểu hơn về hành vi của người dùng như Bookmarks, Preferences, AutoComplete, Login Data, … có thể được tìm thấy trong thư mục %USERPROFILE%\AppData\Local\Microsoft\Edge\User Data
Internet Explorer
Ngoài MS Edge, đối với các case Windows, mình cũng sẽ để ý thêm các artifact do IE để lại. Tuy hầu như không còn ai sử dụng, nhưng IE vẫn có ghi lại các hoạt động của người dùng như đường dẫn tuyệt đối của các tệp đã mở qua browser (kể cả qua Edge) hoặc mở qua file share, hoặc được các service như SharePoint hoặc Onedrive sử dụng dữ liệu, … Đối với Windows 7, ta có IE8/9 và trên Windows 10, ta có IE10/11
Lịch sử duyệt web, lịch sử tải về:
- IE8/9: %USERPROFILE%\AppData\Local\Microsoft\Windows\History\(Low)
- IE10/11: %USERPROFILE%\AppData\Local\Microsoft\Windows\WebCache
Cache:
- IE8/9/10: %USERPROFILE% AppData Local Microsoft Windows\Temporary Internet Files\(Low)
- IE11: %USERPROFILE%\AppData\Local\Microsoft\Windows\INetCache\IE \(Low)
Cookies:
- IE8/9/10: %USERPROFILE%\AppData\Roaming\Microsoft\Windows\Cookies\(Low)
- IE11: %USERPROFILE%\AppData\Local\Microsoft\Windows\INetCookies\(Low)
4. Google Chrome
Ra mắt vào năm 2008, mở ra một cuộc cách mạng cho trình duyệt web, Google Chrome đã trở thành một trình duyệt không thể thiếu trên mọi máy tính từ người già đến trẻ nhỏ. Tính đến tháng 8 năm 2024, Google Chrome vẫn nằm chễm chệ trên vị trí top 1 browser được sử dụng nhiều nhất với 65.18% theo số liệu đã ghi nhận được.
Không phức tạp như Edge và IE trên Windows. Google Chrome hầu như là đồng nhất các phiên bản ở trên mọi hệ điều hành. Hơn thế nữa, artifacts ghi lại bởi chrome nằm gọn trong chỉ một folder duy nhất: %USERPROFILE%\AppData\Local\Google\Chrome\User Data. Các artifacts của Chrome cũng được lưu lại ở các định dạng rất phổ biến, hầu hết là SQLite và JSON. Do vậy, việc tìm kiếm và parse dấu vết từ các lần duyệt web của người dùng trở nên đơn giản hơn rất nhiều.
Không như Edge Legacy, Chrome không có một dạng metadata lưu lại các thông tin về các loại artifacts nó thu thập.
Lịch sử duyệt web:
- Vị trí: %USERPROFILE%\AppData\Local\Google\Chrome\User Data\Profile 1 (hoặc Default)\History
- Định dạng: SQLite database
- Công cụ: ChromeCacheView, Sqlitebrowser, Sqliteviewer, …
Hình 4.1 Chrome History
- Có thể nhận ra sự tương đồng, ngay khi Microsoft tận dụng open source của Chrome, artifacts của 2 bên giống nhau đến lạ kỳ.
Cache:
- Vị trí : %USERPROFILE%\AppData\Local\Google\Chrome\User Data\Profile 1 (hoặc Default)\Cache\Cache_Data
- Định dạng: một index file, một data block file, và các data file lưu trữ dữ liệu
- Công cụ: ChromeCacheView, các tools đọc content type tương ứng, …
Hình 4.2 Chrome Cache
Cookies:
- Vị trí: %USERPROFILE%\AppData\Local\Google\Chrome\User Data\Profile 1 (hoặc Default)\Network\Cookies (New Edge)
- Định dạng: SQLite database
- Công cụ: ChromeCookiesView, Sqlitebrowser, Sqliteviewer, …
Hình 4.3 Chrome Cookies
Lịch sử tải về:
- Vị trí: %USERPROFILE%\AppData\Local\Google\Chrome\User Data\Profile 1 (hoặc Default)\History
- Định dạng: SQLite database
- Công cụ: Sqlitebrowser, Sqliteviewer, …
Hình 4.4 Chrome Download History
Do cùng một họ mã nguồn (Chromium family), nên Chrome cũng lưu lại rất nhiều dấu vết khác mà chúng ta có thể tận dụng. Chúng ta có thể tìm tại folder %USERPROFILE%\AppData\Local\Google\Chrome\User Data.
Ngoài 2 loại trình duyệt phổ biến này ra, còn một số loại trình duyệt khác như Safari cho MacOS, Firefox, … và một phần khá quan trọng đó là Private Browsing (hay duyệt web ở chế độ ẩn danh). Tuy việc ẩn danh không ghi lại lịch sử duyệt web của các bạn một cách trực tiếp, tuy nhiên thì vẫn có một số các bằng chứng quan trọng mà ta có thể trích xuất được từ đây. Mình sẽ tiếp tục nói về những phần này ở bài viết sau.
5. Tổng kết
Đi lần lượt qua các artifacts, ta có thể dựng được bức tranh toàn cảnh những hành động mà người dùng đã thực hiện trên browser của mình. Kiểm tra download history có thể xác định được nguồn gốc của file độc hại. Xem qua các file lịch sử để biết được người dùng đã duyệt qua các website nào cũng như bước đầu xác định được đường dẫn URL bất thường. Tiếp đó, kiểm tra cache file và cookie để dựng lại những gì có trên website, dự đoán hành động của người dùng trên website đó. Như vậy, có thể nắm được gần với đầy đủ nhất các bằng chứng để luận ra sự việc.
By Doanh Thịnh – Blue Team