Lời nói đầu
Digital Forensic - Điều tra số là là một ngành khoa học điều tra dựa trên những dữ liệu được lưu trữ trên thiết bị số nhằm mục đích tìm kiếm, thu thập các bằng chứng và tiến hành phân tích các bằng chứng đó để phục vụ công tác điều tra, truy vết tội phạm công nghệ cao. Qua một thời gian được học hỏi và xử lý các case thực tế, mình xin chia sẻ những kiến thức hạn hẹp đó qua loạt bài về Digital Forensic này và mình xin bắt đầu bằng series bài Windows Registry. Trong điều tra số, việc hiểu, nắm được cấu hình, cài đặt của hệ thống, hay xác định được một số hành vi của người dùng trên máy tính đó là một việc rất quan trọng. Và trên hệ điều hành Windows, những thông tin hữu ích này có thể được tìm thấy tại Registry. Trước khi đi vào tìm kiếm và phân tích các bằng chứng hữu ích trong Registry chúng ta cần phải biết được Registry là gì? Nó nằm ở đâu? Cấu trúc của nó như thế nào?. Và ở phần đầu tiên này, chúng ta sẽ bắt đầu tìm hiểu những điều cơ bản về Registry để trả lời cho câu hỏi đó, nó cung cấp cho bạn nền tảng cần thiết để hiểu cách đọc thông tin từ Registry. Lưu ý rằng, đối với những bạn mới bắt đầu tìm hiểu về registry hay forensic để hiểu được những phần lý thuyết ban đầu sẽ khá khô khan này không có gì tốt hơn là tiến hành thực nghiệm và gần gũi nhất là ngay trên máy tính (Windows OS) của bạn! Vì bạn có thể đã hiểu hơn về máy tính của bạn hay thói quen sử dụng của bản thân trên máy đó một phần nào đó rồi.1. Registry là gì?
Registry có thể được coi như một cơ sở dữ liệu có cấu trúc của Windows. Registry được sử dụng để lưu trữ thông tin cấu hình, cài đặt của hệ điều hành và cả của các services và ứng dụng. Vì vậy, nó là một nguồn thông tin hữu ích của các chứng cứ trên máy tính. Nhưng có một lưu ý rằng không phải là tất cả các ứng dụng đều sử dụng registry để lưu cấu hình, cài đặt của nó, một số chương trình sử dụng tập tin .XML hay .INI để lưu cấu hình. Ngoài ra Registry còn hỗ trợ cấu trúc mutil-profile lưu trữ cài đặt của người dùng, mỗi người dùng sẽ có cấu hình khác nhau dành riêng cho tài khoản của họ, một ví dụ đơn giản như là UserA cài đặt Unikey khởi động cùng Windows còn UserB thì không cài chương trình đó, Registry sẽ ghi lại những điều này và lưu vào thư mục riêng của mỗi người dùng. Chúng ta đi sẽ thảo luận chi tiết hơn về điều này ở phần sau.2. Registry Strucure
Trên HĐH Windows bạn có thể sử dụng Registry Editor:
- Root key: Trong Windows từ Win8.1 có năm root keys, mỗi root key có một mục đích cụ thể. Nó còn có tên khác như là HKEY hay hive.
- Subkey: subkey giống như một thư mục con trong một thư mục.
- Key: Key là một thư mục trong registry có thể chứa các giá trị hoặc thư mục bổ sung. Cả root key và subkey đều là key.


- REG_NONE: Không có loại
- REG_SZ: Chuỗi kí tự bất kì
- REG_BINARY: Dữ liệu dạng nhị phân
- REG_DWORD: Một số 32-bit
3. Registry Root Keys
Registry được chia thành 5 root key:- HKEY_LOCAL_MACHINE (HKLM)
- HKEY_CURRENT_USER (HKCU)
- HKEY_CLASSES_ROOT
- HKEY_CURRENT_CONFIG
- HKEY_USERS
a) HKEY_CLASSES_ROOT
Rootkey này chứa các subkey, mỗi subkey được đặt tên theo một extention có thể được tìm thấy trong hệ thống, chẳng hạn nhu .exe hay .evxt, ... Dựa vào những key này chúng ta có thể biết được chương trình nào được sử dụng để mở một định dạng file cụ thể, ví dụ như với file có .evxt extention sau đây:


- HKEY_LOCAL_MACHINE\Software\Classes
- HKEY_CURRENT_USER\Software\Classes

b) HKEY_LOCAL_MACHINE
Chứa thông tin cấu hình, cài đặt của máy tính. Rootkey này dùng cho bất kỳ user nào. Rootkey này có 5 subkeys chính:- System: Chứa cấu hình hệ thống, chẳng hạn như computer name, system time zone, network interfaces.
- Software: Chứa cài đặt, cấu hình về những ứng dụng được cài đặt trên hệ thống và những services của hệ điều hành.
- SAM: Security Account Manager, chứa thông tin bảo mật về user và group.
- Security: Chứa chính sách bảo mật của hệ thống.
- Hardware: Thông tin về thiết bị hardware kết nối tới hệ thống. Những thông tin này được lưu trữ trong suốt quát trình hệ thống khởi động.
c) HKEY_USERS
Lưu những thông tin của tất cả các user, mỗi user là một nhánh với tên là số ID của user đó. Hãy cùng xem ví dụ sau đây:- Default: Đây là cấu hình mặc định cho bất ký user nào và nó nằm tại
- S-1-5-18: Đây là system profile và nó nằm tại
- S-1-5-19: Liên quan đến LocalService nằm tại
- S-1-5-20: Liên quan đến NetworkService tại
- S-1-5-21-3482516662-285582109-1244947143-1001: Đây chính là người dụng hiện đăng đăng nhập với SID đầy đủ của họ. Và nó nằm tại C:\User\[username].
- Còn mục S-1-5-21-3482516662-285582109-1244947143-1001-Classes chính là phần chúng ta đã nhắc tới trong HKEY_CLASSES_ROOT.
d) HKEY_CURRENT_USER
Lưu những thông tin cho người dùng đang đăng nhập. Các thư mục, màu màn hình, cài đặt Control Panel được lưu trữ tại đây. Thông tin này được liên kết với profile của user. Nó là nhánh con của HKEY_USERS.

4. System hives
Ở phần trên, chúng ta đã quyết được vấn đề Registry là gì và cấu trúc của nó. Đây là những gì thể hiện trên Registry editor để dễ dàng đọc và chỉnh sửa nhưng thực chất dữ liệu nằm ở đâu, phần tiếp theo chúng ta sẽ đi tìm hiểu vị trí lưu registry. Windows Registry không đơn giản là một file mà là một tập hợp các file riêng lẻ, gọi là hive. Mỗi hive chứa một nhánh Registry. Hầu hết được lưu trong thư mục “Windows\System32\Config”. Cụ thể: HKEY_LOCAL_MACHINE\SYSTEM: \system32\config\system HKEY_LOCAL_MACHINE\SAM: \system32\config\sam HKEY_LOCAL_MACHINE\SECURITY: \system32\config\security HKEY_LOCAL_MACHINE\SOFTWARE: \system32\config\software Các registry hives này là DEFAULT, SAM, SECURITY, SOFTWARE và SYSTEM. Các tệp tương ứng với ý nghĩa của chúng trong registry.
5. User Registry Hives

- Đối với hệ thống máy tính có nhiếu user. Mỗi user đều sẽ có một registry hive riêng.
- Registry hive theo từng cá nhân sẽ cung cấp cho chúng ta thông tin về hoạt động của họ trên máy tính và đây là một thông tin rất quan trọng trong điều tra số.
NTUSER.DAT
Ví trí của file trên các OS:- C:\Documents and Settings\<username>\NTUSER.dat (XP)
- C:\Users\<username>\NTUSER. dat (Win7-Win10)

USRCLASS.DAT
Trong Win7-Win10, file này nằm tại: C:\Users\<username>\AppData\Local\Microsoft\Windows\USRCLASS.DAT Hive chứa một số thông tin chính liên quan đến thông tin thực thi của chương trình. Key này sẽ cho chúng ta cho biết rằng liệu người dùng đã mở hay đóng thư mục nào đó chưa?. Mục đích chính của UsrClass.dat là hỗ trợ registry root ảo hóa cho User Account Control (UAC). Tổng kết Bài viết này mình đã trình bày về khái niệm, cấu trúc của Registry và vị trí lưu của chúng. Việc hiểu được vị trí lưu trữ và cách đọc Registry sẽ cần thiết cho việc đi phân tích chúng dõ hơn. Hẹn các bạn ở phần tiếp theo By, T4fi_RE_Team 4293 lượt xem