# Windows Data Acquisition

Hệ điều hành Windows là một trong những hệ điều hành được sử dụng rộng rãi nhất trên thới giới, nên việc thu thập dữ liệu hiệu quả trên nền tảng này là rất quan trọng.

Các mục đích chính: bao gồm giám sát hiệu suất hệ thống, phát hiện các vi phạm bảo mật, phân tích lỗi và kiểm tra hành vi của người dùng.

&#x20;Có 2 loại dữ liệu cơ bản có thể được thu thập trên hệ điều hành windows:

* **Dữ liệu dễ bay hơi (Volatile Data) -** có thể được truy cập khi hệ thống đang chạy và sẽ bị mất khi mất điện (ví dụ như RAM).&#x20;
* **Dữ liệu không dễ bay hơi (Non-Volatile Data) -** có thể truy cập nay cả sau khi mất điện (ví dụ: các tệp trên ổ cứng).

## 1. Volatile and Non-Volatile Data on Windows

### 1.1. Volatile Data

Dữ liệu dễ bay hơi là loại dữ liệu bị mất khi nguồn điện của máy tính bị gián đoạn. Ví dụ như thông tin được lưu trữ trong RAM (Random Access Memory), CPU caches, system registers, thông tin kết nối mạng.

Dữ liệu dễ bay hơi chứa thông tin có giá trị về các sự kiện và hoạt động đang xảy ra khi hệ thống đang chạy. Dữ liệu này đặc biệt quan trọng trong các cuộc điều tra pháp lý và phân tích bảo mật hệ thống. Thông tin này phải được thu thập trong quá trình thu thập dữ liệu trực tiếp khi hệ thống vẫn đang hoạt động.

Hệ điều hành Windows có rất nhiều thông tin được lưu trữ trong RAM khi chạy, do đó, dữ liệu dễ bay hơi là rất cần thiết trong Pháp lý Kỹ thuật Số và Ứng phó Sự cố (DFIR).

Trong nhiều vụ vi phạm an ninh mạng, nhiều dấu vết của kẻ tấn công trên một hệ thống chưa được khởi động lại có thể được thu thập thông qua dữ liệu dễ bay hơi, trong khi không thể truy cập dữ liệu này trên các hệ thống đã khởi động lại.

Việc thu thập dữ liệu dễ bay hơi được thực hiện bằng cách sử dụng các công cụ và lệnh chuyên dụng. Ví dụ: các công cụ như "**FTK Imager**" và "**procdump**" có thể được sử dụng để sao chép nội dung của RAM. Ngoài ra, các lệnh như "**netstat**" và "**tasklist**" giúp thu thập thông tin như kết nối mạng và các tiến trình đang chạy.

### 1.2. Non-Volatile Data

Dữ liệu không dễ bay hơi là loại dữ liệu được lưu trữ bất chấp sự gián đoạn nguồn điện. Ổ cứng (HDD, SSD), USB và CD/DVD là các đơn vị lưu trữ được sử dụng để lưu trữ loại dữ liệu này.

Dữ liệu không dễ bay hơi bao gồm một loạt thông tin như cấu hình hệ thống, tệp người dùng, bản ghi nhật ký và dữ liệu ứng dụng. Thông tin này là cơ sở cho phân tích dài hạn, phát hiện xu hướng và điều tra pháp lý.

Dữ liệu không dễ bay hơi thường được thu thập từ các hệ thống trực tiếp khi hệ thống ngừng hoạt động hoặc thông qua phần mềm chuyên dụng. Để bảo vệ tính toàn vẹn của dữ liệu, các công cụ có khả năng sao chép ở cấp độ bit như "<mark style="color:red;">**dd**</mark>" hoặc các công cụ sao chép pháp lý được sử dụng trong quá trình sao chép. Để chứng minh tính xác thực của dữ liệu đã sao chép và dữ liệu đó không bị thay đổi, các giá trị hash của dữ liệu đã sao chép được ghi lại.

**Tóm lại:** Việc thu thập cả hai loại này đều yêu cầu các kỹ thuật và công cụ riêng biệt, đồng thời đặc biệt chú ý đến tính toàn vẹn và bảo mật dữ liệu trong quá trình này.

## 2. Live Data Acquisition on Windows

Việc thu thập dữ liệu trực tiếp là rất quan trọng khi dữ liệu cần được thu thập tại hiện trường xảy ra sự cố hoặc các hệ thống vận hành quan trọng.

Mục đích chính là truy xuất dữ liệu một cách an toàn từ một hệ thống máy tính hoặc thiết bị khi nó đang chạy, với sự sửa đổi ít nhất có thể. Điều này đảm bảo dữ liệu dễ bay hơi có thể thay đổi theo thời gian hoặc biến mất khi hệ thống tắt.

### 2.1. Collection of RAM Content

RAM hệ thống chứa thông tin quan trọng như các tiến trình đang chạy, các tệp đang mở, system and application settings, và các lệnh được thực thi trên HĐH. RAM dump tools được sử dụng để tạo bản sao dữ liệu tạm thời này.

* **Memory Capture with Hardware:** phương pháp này sử dụng phần cứng và các công cụ chuyên dụng để trực tiếp đọc bản sao của các chip nhớ từ bo mạch chủ của hệ thống đang hoạt động. Mặc dù đảm bảo kết quả chính xác nhất, nhưng pp này đắt tiền và đòi hỏi thiết bị chuyên dụng và chuyên môn.
* **Memory Capture with Software**: pp này sử dụng một chương trình chạy trong hệ điều hành để tạo ra một memory dump. Đây là một pp ít phức tạp hơn, tuy nhiên, không phải lúc nào cũng đảm bảo rằng một bản sao chính xác sẽ được thực hiện do các lý do cấu hình hệ điều hành và các công cụ bảo mật đang chạy trên nó.

### 2.2. Collection of Network Traffic

Các kết nối mạng đang hoạt động và lưu lượng mạng được giám sát và ghi lại trong quá trình thu thập dữ liệu trực tiếp. Phân tích data này có thể cung cấp thông tin có giá trị như điểm bắt đầu của sự cố, cách nó tiến triển, liệu có vi phạm dữ liệu hay các tác nhân đe dọa đang hoạt động trên hệ thống hay không, và hơn thế nữa. Có nhiều phương pháp để thu thập lưu lượng mạng.

### 2.3. Collection of System and Application Logs

Các tệp nhật ký do các hệ thống và ứng dụng đang chạy tạo ra có thể được thu thập trong quá trình thu thập dữ liệu trực tiếp.&#x20;

Các nhật ký duy trì bởi hệ điều hành Windows có thể xem bằng công cụ **Event Viewer**. Tuy nhiên, do cài đặt mặc định của HĐH, có nguy cơ ghi đè lên nhiều tập nhật ký quan trọng. HĐH có các cài đặt kích thước tệp mặc định cho các nhật ký này và chúng bị xóa bất đầu từ nhập ký cũ nhất khi đạt đến kích thước này.&#x20;

Việc truy cập của nhà phân tích DFIR vào hệ thống và một số hoạt động tiếp theo của họ có thể dẫn đến việc các nhật ký mới được ghi lại vào các tệp này dẫn đến việc xóa một số nhật ký cũ rất có giá trị. Do đó, một trong những hành động đầu tiên phải là tạo một bản sao của thư mục `"%SystemRoot%\System32\winevt\"`

`%SystemRoot%\System32\Dns\Dns.log`

`%SystemRoot%\System32\dhcp\DhcpSrv.log`

Các ứng dụng đang chạy trên HĐH Windows lưu trữ dữ liệu tạm thời trong các thư mục `"temp"` khi chạy. Các tệp trong các thư mục này có thể chứa dữ liệu quan trọng.

Vì dữ liệu tạm thời được ghi lại vào các khu vực này có thể bị xóa khi một số dịch vụ và ứng dụng bị chấm dứt (terminated), nên cần phải tạo một bản sao dữ liệu này trước khi chấm dứt bất cứ ứng dụng nào. Các thư mục `temp` mặc định trong HĐH Windows như sau:

* **`%SystemRoot%\Temp`**
* **`%UserProfile%\AppData\Local\Temp`**
* **`C:\Users<user_name>\AppData\Roaming\Temp`**
* **`%ProgramData%\Temp`**

### 2.4. Windows Registry

Windows Registry là một cơ sở dữ liệu chứa thông tin về cài đặt hệ thống và tùy chọn của người dùng. Bản sao của nó có thể sử dụng để ghi lại cấu hình của hệ thống khi chạy.

### Important Points to Consider

* **Rủi ro tác động đến hệ thống:** tránh các hoạt động có thể ảnh hướng xấu đến hiệu suất của hệ thống hoặc gây ra thay đổi vĩnh viễn cho hệ thống trong quá trình thu thập dữ liệu trực tiếp (live data)
* **Cân nhắc về pháp lý và đạo đức:** việc thu thập phải được thực hiện theo luật pháp và các quy tắc đọa đức hiện hành, đặc biệt trong các trường hợp liên quan đến personal data (dữ liệu cá nhân).

## 3. Live Data Acquisition Tools

### 3.1. Microsoft Sysinternals Tools

Các công cụ Microsoft Sysinternals là các tiện ích miễn phí được thiết kế để quản lý và khắc phục sự cố toàn diện của hệ điều hành Windows. Nó có thể giúp tìm hiểu thêm về cách Windows hoạt động, tối ưu hóa hiệu suất, gỡ lỗi và cải thiện bảo mật hệ thống.&#x20;

Bạn có thể tải xuống các công cụ Microsoft Sysinternals:

{% embed url="<https://learn.microsoft.com/en-us/sysinternals/downloads/>" %}

Bộ công cụ này có thể được sử dụng cho nhiều tác vụ khác nhau trong quá trình thu thập dữ liệu trực tiếp, chằng hạn như memory dump, registry capture, giám sát tiến trình hệ thống.

Danh sách đầy đủ các công cụ có trong bộ công cụ này như sau:

Tuyệt vời, đây là bản dịch tiếng Việt của bảng bạn cung cấp: ([link](https://ld-images-2.s3.us-east-2.amazonaws.com/Windows+Data+Acquisition/4.Live+Data+Acquisition+Tools/table4_1.png))

<table><thead><tr><th width="190">Tên Công Cụ</th><th>Mục Đích Sử Dụng</th></tr></thead><tbody><tr><td>AccessChk</td><td>Kiểm soát quyền truy cập đối với một tệp hoặc thư mục.</td></tr><tr><td>AdExplorer</td><td>Hiển thị và quản lý các đối tượng và thuộc tính Active Directory.</td></tr><tr><td>AutoRuns</td><td>Liệt kê và quản lý các chương trình và dịch vụ khởi động tự động khi hệ thống khởi động.</td></tr><tr><td>Autorunsc</td><td>Liệt kê các autorun keys và mục registry.</td></tr><tr><td>BgInfo</td><td>Hiển thị thông tin hệ thống on the desktop.</td></tr><tr><td>BitLocker</td><td>Mã hóa ổ đĩa cứng.</td></tr><tr><td>CDBurnerXP</td><td>Ghi đĩa CD và DVD.</td></tr><tr><td>Contig</td><td>Tập hợp các tệp lại với nhau trên đĩa.</td></tr><tr><td>Coreinfo</td><td>Hiển thị thông tin về kernel hệ thống.</td></tr><tr><td>Ctrl2Cap</td><td>Chụp ảnh màn hình.</td></tr><tr><td>DebugView</td><td>Hiển thị các thông báo gỡ lỗi và thông tin hệ thống khác.</td></tr><tr><td>Desktops</td><td>Cho phép bạn tạo và quản lý nhiều desktop.</td></tr><tr><td>Disk2vhd</td><td>Tạo ổ đĩa cứng ảo.</td></tr><tr><td>DiskMon</td><td>Giám sát hoạt động của đĩa.</td></tr><tr><td>DiskView</td><td>Hiển thị các phân vùng đĩa và hệ thống tệp.</td></tr><tr><td>DList</td><td>Liệt kê các tiến trình và DLLs.</td></tr><tr><td>Dos2Zip</td><td>Nén các tệp vào một kho lưu trữ ZIP.</td></tr><tr><td>Edit</td><td>Chỉnh sửa các tệp văn bản.</td></tr><tr><td>ERDNT</td><td>Tạo môi trường khôi phục Windows.</td></tr></tbody></table>

<table><thead><tr><th width="189">Tên Công Cụ</th><th>Mục Đích Sử Dụng</th></tr></thead><tbody><tr><td>EventLog</td><td>Hiển thị và quản lý nhật ký sự kiện.</td></tr><tr><td>Filemon</td><td>Giám sát các thay đổi đối với file system.</td></tr><tr><td>FindLinks</td><td>Tìm tất cả các liên kết trong một tệp hoặc thư mục.</td></tr><tr><td>FixACL</td><td>Sửa các quyền tệp và thư mục.</td></tr><tr><td>FlashFXP</td><td>Là một trình FTP client.</td></tr><tr><td>FreeCon</td><td>Tạo một cửa sổ console tự do.</td></tr><tr><td>GFlags</td><td>Hiển thị và quản lý cài đặt Group Policy.</td></tr><tr><td>Handle</td><td>Liệt kê các handle đang mở của một tiến trình.</td></tr><tr><td>Hex2Dec</td><td>Chuyển đổi các số thập lục phân thành số thập phân.</td></tr><tr><td>HijackThis</td><td>Phát hiện các tiện ích mở rộng trình duyệt và các chương trình không mong muốn tiềm ẩn khác.</td></tr><tr><td>IceCap</td><td>Chuyển đổi thông tin hệ thống thành báo cáo HTML.</td></tr><tr><td>ImageX</td><td>Tạo và quản lý các image Windows.</td></tr><tr><td>Junction</td><td>Tạo các kết nối tượng trưng.</td></tr><tr><td>Kill</td><td>Chấm dứt một tiến trình.</td></tr><tr><td>ListDLLs</td><td>Liệt kê các DLL đã cài đặt của một tiến trình.</td></tr><tr><td>LiveKd</td><td>Là trình gỡ lỗi kernel.</td></tr></tbody></table>

<table><thead><tr><th width="192">Tên Công Cụ</th><th>Mục Đích Sử Dụng</th></tr></thead><tbody><tr><td>LoadLibrary</td><td>Tải một DLL vào bộ nhớ.</td></tr><tr><td>LogonTracer</td><td>Theo dõi thông tin đăng nhập và đăng xuất của người dùng.</td></tr><tr><td>Macro Recorder</td><td>Ghi lại và lặp lại các cú nhấp chuột và thao tác bàn phím.</td></tr><tr><td>MarkRuss</td><td>Sửa chữa các hệ thống tệp NTFS bị hỏng.</td></tr><tr><td>MemTest86</td><td>Kiểm tra lỗi bộ nhớ.</td></tr><tr><td>Merge</td><td>Kết hợp hai tệp.</td></tr><tr><td>Monitor</td><td>Giám sát hiệu suất hệ thống.</td></tr><tr><td>MountVol</td><td>Mount một ổ đĩa cứng ảo.</td></tr><tr><td>MoveFile</td><td>Di chuyển một tệp hoặc thư mục.</td></tr><tr><td>Msinfo32</td><td>Hiển thị thông tin hệ thống.</td></tr><tr><td>NTFSDos</td><td>Hiển thị và quản lý hệ thống tệp NTFS.</td></tr><tr><td>NTFS Permissions Reporter</td><td>Báo cáo các quyền tệp và thư mục NTFS.</td></tr><tr><td>PageDefrag</td><td>Chống phân mảnh các trang bộ nhớ.</td></tr><tr><td>PendMoves</td><td>Hiển thị các hoạt động di chuyển và sao chép tệp đang chờ xử lý.</td></tr><tr><td>PipeList</td><td>Liệt kê các named pipes.</td></tr><tr><td>PortQry</td><td>Liệt kê các cổng TCP và UDP.</td></tr></tbody></table>

Danh sách các công cụ có sẵn để Live Data Acquisition, bao gồm các công cụ trên và mục đích sử dụng của chúng, như sau:

<table><thead><tr><th width="169">Tên Công Cụ</th><th width="242">Mục Đích Sử Dụng</th><th width="325">Tính Năng Live Data Acquisition</th></tr></thead><tbody><tr><td>LiveKd</td><td>Trình gỡ lỗi kernel.</td><td>Tạo memory dump và phân tích bộ nhớ hệ thống.</td></tr><tr><td>Volatility</td><td>Phân tích memory dump và khôi phục dữ liệu dễ bay hơi.</td><td>Khôi phục các tệp đã xóa, registry keys và các dữ liệu dễ bay hơi khác.</td></tr><tr><td>Sysmon</td><td>Giám sát hoạt động hệ thống và thu thập dữ liệu để phản hồi các sự kiện cụ thể.</td><td>Giám sát các thay đổi trong hệ thống và phát hiện các hoạt động đáng ngờ.</td></tr><tr><td>ProcDump</td><td>Xuất process dump ra một tệp.</td><td>Phân tích bộ nhớ của một tiến trình cụ thể.</td></tr><tr><td>RegShot</td><td>Chụp snapshot của registry.</td><td>Giám sát các thay đổi trong registry và tạo điểm khôi phục hệ thống.</td></tr><tr><td>Strings</td><td>Tìm kiếm tất cả các chuỗi văn bản trong một tệp hoặc memory dump.</td><td>Tìm mật khẩu và các thông tin nhạy cảm khác.</td></tr><tr><td>PsTools</td><td>Một tập hợp các công cụ dòng lệnh để quản lý các tiến trình.</td><td>Chấm dứt các tiến trình cụ thể, thay đổi mức độ ưu tiên của chúng hoặc xem thông tin về các tiến trình khác.</td></tr><tr><td>WinPmem_mini</td><td>Một công cụ di động để tạo bản sao bộ nhớ hệ thống.</td><td>Tạo bản sao đầy đủ bộ nhớ hệ thống một cách nhanh chóng và an toàn để phân tích.</td></tr></tbody></table>

### 3.2. WinPmem

WinPmem là một công cụ Memory Dump hữu ích, nhỏ và không cần cài đặt.&#x20;

Nó có sẵn tại địa chỉ sau:&#x20;

{% embed url="<https://github.com/Velocidex/WinPmem/releases>" %}

Sau khi giải nén tệp zip đã tải xuống, hãy mở **PowerShell** hoặc dòng lệnh với quyền **"Administrator"** và chạy lệnh sau:

```powershell
Winpmem_mini_x64_rc2.exe memdump.raw
```

<figure><img src="/files/3R4CuVTdNcqzskJotHAl" alt=""><figcaption></figcaption></figure>

Trong vài phút, một tệp memory dump có tên "memorydump.raw" sẽ được tạo trong thư mục nơi lệnh được thực thi. Sau đó tệp này có thể đươc phân tích bằng các công cụ phân tích bộ nhớ.

### 3.3. FTK Imager

FTK Imager là một công cụ hữu ích để take images cả các ổ đĩa được kết nối với hệ thống và bộ nhớ trên các hệ thống windows.

The FTK Imager tool installation file có thể được tải xuống:

{% embed url="<https://go.exterro.com/l/43312/2023-05-03/fc4b78>" %}

Sau khi tải xuống tệp cài đặt, công cụ sẽ sẵn sàng để sử dụng khi trình cài đặt được chạy và các bước cài đặt được hoàn thiện.

Sau khi quá trình cài đặt hoàn tất, bạn có thể bắt đầu quá trình chụp memory image bằng cách chạy với tùy chọn **"Run As Administrator"** và theo memu **"File > Capture Memory".**

<figure><img src="/files/SRJMDogf7WvejGqyQWiJ" alt=""><figcaption></figcaption></figure>

Khi quá trình được bắt đầu, hãy chọn nơi để lưu tệp memory dump.

<figure><img src="/files/XNnqrhjguIF8lzsUJVCF" alt=""><figcaption></figcaption></figure>

Bước cuối cùng là nhấp vào nút "**Capture Memory"**. Khi quá trình hoàn tất, một tệp memory dump có tên "**memorydump.mem**" sẽ được tạo trong thư mục "**C:\volatility**".

<figure><img src="/files/ko10gDXWRzMqeVIVje4K" alt=""><figcaption></figcaption></figure>

### 3.4. Volatility

Volatility là một công cụ mạnh mẽ để phân tích cả memory images Linux và Windows. Được phát triển bằng Python, nó có thể sử dụng trên hầu hết mọi hệ điều hành có Python.

Để cài đặt Volatility trên windows (giả sử Python 3.11 được cài đặt trên hệ thống), trước tiên hãy tải xuống từ:

{% embed url="<https://github.com/volatilityfoundation/volatility3/releases>" %}

Và Plugins (for Windows):

{% embed url="<https://github.com/volatilityfoundation/volatility/wiki/Command-Reference>" %}

File zip đã được tải xuống được giải nén vào một thư mục. Ví dụ như "**C:\volatility**".

<figure><img src="/files/3SsG8U8krofXjjHLdL3R" alt=""><figcaption></figcaption></figure>

Để hoàn tất cài đặt Volatility, hãy tải xuống "**Microsoft C++ Build Tools**". Nó có sẵn:

{% embed url="<https://visualstudio.microsoft.com/visual-cpp-build-tools/>" %}

Việc cài đặt Volatility yêu cầu thêm một vài cài đặt nữa. Một trong số đó là gói “**Snappy**” cho Python. Có nhiều phiên bản khác nhau của gói này có sẵn trong nhiều kho lưu trữ, nhưng các phiên bản ngoại trừ phiên bản được tải xuống từ liên kết bên dưới không hoạt động:

{% embed url="<https://download.lfd.uci.edu/pythonlibs/archived/python_snappy-0.6.1-cp311-cp311-win_amd64.whl>" %}

Sau khi sao chép tệp đã tải xuống cho Python Snappy vào thư mục “**C:\volatility**”, hãy mở phiên PowerShell và cài đặt thư viện này. Đối với quá trình này, trước tiên, hãy chuyển đến đường dẫn chứa tệp trên PowerShell. Sau đó, bạn có thể cài đặt nó bằng lệnh sau:

```bash
pip install .\python_snappy-0.6.1-cpp311-cpp311-win_amd64.whl
```

<figure><img src="/files/WkRlKqGnBBYAdN73zKQF" alt=""><figcaption></figcaption></figure>

Sau khi tất cả các cài đặt này hoàn tất, bước cuối cùng là cài đặt các dependency khác của Volatility. Bạn có thể sử dụng lệnh sau cho quá trình này:

```bash
pip install -r .\requirements.txt
```

<figure><img src="/files/V0GLcyKmX8j0LJ4eFT5C" alt=""><figcaption></figcaption></figure>

Nếu tất cả các cài đặt này thành công, công cụ Volatility đã sẵn sàng để sử dụng. Bạn có thể sử dụng lệnh sau để chạy công cụ Volatility:

```bash
python .\vol.py
```

Để phân tích memory image bằng Volatility, bạn phải chạy một lệnh như sau:

```
python .\vol.py -f memdump.mem windows.info.info
```

Tham số “<mark style="color:red;">**-f**</mark>” trong lệnh dùng để chỉ định tệp memory image. Tham số cuối cùng trong lệnh đề cập đến plugin volatility sẽ được sử dụng cho phân tích.

<figure><img src="/files/QigkWVK5ZI7KcisKxDP8" alt=""><figcaption></figcaption></figure>

## 4. Dynamic Acquisition on Windows

Thu thập dữ liệu động là một kỹ thuật nhằm mục đích nắm bắt các sự kiện đang diễn ra trong một hệ thống trực tiếp và trạng thái hiện tại của hệ thống. Phương pháp này tập trung vào việc thu thập dữ liệu dễ bay hơi, đặc biệt là bộ nhớ hệ thống.

Mục đích là cung cấp một bản ghi toàn diện về phần mềm độc hại, hoạt động của người dùng, các kết nối mạng đang mở, và các thông tin hệ thống dễ bay hơi khác.

Với kỹ thuật này giúp cho các chuyên gia pháp lý có thể tiếp cận những thông tin có giá trị để hiểu cách một cuộc tấn công xảy ra, cách phần mềm độc hại được đưa vào hệ thống và cách các lỗ hổng trong hệ thống bị khai thác.&#x20;

Mặc dù tương tự nhau về phương pháp, nhưng Live Data Acquisition and Dynamic Acquisition là hai cách tiếp cận khác nhau về mặt trọng tâm. Bảng dưới đây cung cấp sự hiểu biết rõ hơn về sự khác biệt:

<table><thead><tr><th width="126">Đặc điểm</th><th>Live Data Acquisition</th><th>Dynamic Acquisition</th></tr></thead><tbody><tr><td><strong>Định nghĩa</strong></td><td>Là quá trình sao chép bộ nhớ và các dữ liệu dễ bay hơi khác của một hệ thống đang chạy.</td><td>Là quá trình sao chép một số dữ liệu nhất định của một hệ thống đang chạy theo các khoảng thời gian nhất định hoặc để phản hồi các sự kiện nhất định.</td></tr><tr><td><strong>Mục đích</strong></td><td>Nắm bắt trạng thái của hệ điều hành và các chương trình khác đang chạy cũng như các bằng chứng có thể có trong bộ nhớ.</td><td>Giám sát và thu thập liên tục dữ liệu cụ thể trong khi vẫn giữ cho hệ thống hoạt động.</td></tr><tr><td><strong>Ưu điểm</strong></td><td>Có thể thu thập nhiều dữ liệu hơn, dữ liệu đã xóa hoặc bị thay đổi có thể được phục hồi, và mật khẩu cùng thông tin nhạy cảm khác có thể được khám phá.</td><td>Không làm khóa hoặc treo hệ thống, đòi hỏi ít chuyên môn và công cụ chuyên dụng hơn, và mất ít thời gian và tài nguyên hơn.</td></tr><tr><td><strong>Nhược điểm</strong></td><td>Có thể làm khóa hoặc treo hệ thống, đòi hỏi chuyên môn và công cụ chuyên dụng, và mất nhiều thời gian và tài nguyên hơn.</td><td>Không toàn diện như thu thập dữ liệu trực tiếp, dữ liệu đã xóa hoặc bị thay đổi không thể được phục hồi, và mật khẩu cùng thông tin nhạy cảm khác có thể không được khám phá.</td></tr></tbody></table>

### 4.1. Dynamic Acquisition Methods

* **System and Application Logs:** system, application, and security logs là các thành phần thiết yếu của quá trình thu thập dữ liệu động. Chúng chứa chi tiết về các sự kiện hệ thống, thông báo lỗi, hoạt động của người dùng và các vi phạm bảo mật.
* **Network Monitoring:** Lưu lượng truy cập và kết nối mạng được giám sát bằng các công cụ thu thập dữ liệu động. Nó rất quan trọng để phát hiện các mối đe dọa bảo mật tiềm ẩn và các hành vi bất thường trên mạng.
* **Performance Monitoring:** Hiệu suất hệ thống và ứng dụng được giám sát thông qua các chỉ số như mức độ sử dụng CPU, memory và các hoạt động I/O trên đĩa. Thông tin này được sử dụng để tối ưu hóa hệ thống và lập kế hoạch dung lượng. (capacity planning).

### 4.2. Dynamic Data Acquisition Tools

Nhiều công cụ quản lý và giám sát hệ thống khác nhau được thiết kế đặc biệt cho hệ điều hành Windows tạo điều kiện thuận lợi cho việc thu thập dữ liệu động. Các công cụ này theo dõi nhật ký hệ thống, các chỉ số hiệu suất và hoạt động mạng. Một ví dụ đáng chú ý là "**SysInternals Suite**" được Microsoft phân phối miễn phí. Bộ công cụ này chứa nhiều công cụ khác nhau, trong đó một số công cụ đặc biệt hữu ích cho việc thu thập dữ liệu động. Dưới đây là một số công cụ:

* Process Explorer
* AutoRuns
* Regedit
* Security Tools

#### 4.2.1. Process Explorer

Process Explorer cung cấp thông tin chi tiết về các tiến trình đang chạy, bộ nhớ hệ thống và các tài nguyên hệ thống khác. Nó có giao diện đơn giản và hiển thị thông tin về các tiến trình đang chạy trên hệ thống, cùng với các biểu đồ hiển thị trạng thái tải của hệ thống khi nó được mở lần đầu.

<figure><img src="/files/xgPF0cncycYwiRpyKFF0" alt=""><figcaption></figcaption></figure>

Bằng cách nhấp chuột phải vào bất kỳ tiến trình nào, bạn có thể thay đổi mức độ ưu tiên của tiến trình, terminate, pause, restart và dump tiến trình đó.

<figure><img src="/files/d5VCkXLbb8ggfk79Vffx" alt=""><figcaption></figcaption></figure>

Nhấp vào “Properties” sẽ mở ra một cửa sổ với các tab khác nhau. Tên của các tab này và thông tin có trong chúng như sau:

* **Image:** Thông tin chung về tiến trình, điểm số VirusTotal, tiến trình cha, runtime, v.v.
* **TCP/IP:** Hiển thị các kết nối mạng đang hoạt động của tiến trình.
* **Strings:** Hiển thị các chuỗi có thể đọc được của con người bên trong tiến trình.
* **Performance:** Hiển thị mức sử dụng CPU, RAM và đĩa của ứng dụng.
* **Security:** Hiển thị quyền sở hữu tệp và ủy quyền của người dùng.
* **Services:** Hiển thị các dịch vụ được sử dụng bởi ứng dụng.

<figure><img src="/files/x1YFmiObFSWQFeRCZXZc" alt=""><figcaption></figcaption></figure>

Như bạn có thể thấy trong hình trên, công cụ Process Explorer có thể được sử dụng để truy cập thông tin khác nhau trên hệ thống một cách chi tiết.

#### 4.2.2. AutoRuns

Hệ điều hành Windows có nhiều cơ chế để khởi chạy các ứng dụng khi hệ thống khởi động hoặc tự động. Những kẻ tấn công thường khai thác các cơ chế này ở bước Duy trì (Persistence).&#x20;

AutoRuns là một công cụ tuyệt vời để quét các ứng dụng như vậy và hiển thị tất cả chúng trên một màn hình.

<figure><img src="/files/3kfIX5UNNem08A2mXq3f" alt=""><figcaption></figcaption></figure>

Màn hình AutoRuns hiển thị thông tin như chi tiết nhà xuất bản của bất kỳ ứng dụng nào, liệu nó có được ký hay không, ngày nó được cài đặt và thư mục mà nó đang chạy. Ngoài ra, nếu bạn nhấp chuột phải vào bất kỳ ứng dụng nào và sử dụng tùy chọn “**Check VirusTotal**” trong menu thả xuống, báo cáo VirusTotal sẽ được hiển thị trên cùng màn hình.

Ngoài ra, bạn có thể lưu thông tin này để xem xét sau bằng cách theo đường dẫn "**File > Save**".

#### 4.2.3. Regedit

“Windows Registry” là một cơ sở dữ liệu phân cấp trung tâm, nơi lưu trữ tất cả các cài đặt cấu hình cho hệ điều hành Windows và các chương trình đã cài đặt. “**Regedit**” là một công cụ được cài đặt sẵn trong Windows và cho phép bạn read/modify/backup cơ sở dữ liệu này.

Sau khi theo menu "**Start > Run**", "**Regedit**" sẽ mở khi bạn nhập "**regedit.exe**" và nhấn enter. Sử dụng tùy chọn "**File > Export**" để tạo bản sao trạng thái hiện tại của các mục trong Regedit.

<figure><img src="/files/B2xaPIBmC9SXX3n4jAXZ" alt=""><figcaption></figcaption></figure>

#### 4.2.4. Security Tools

Tường lửa, phần mềm diệt virus và các giải pháp bảo mật khác đóng một vai trò quan trọng trong quá trình thu thập dữ liệu động. Các công cụ này giám sát các mối đe dọa bảo mật và các hoạt động đáng ngờ trên hệ thống. Mỗi công ty và môi trường có thể sử dụng các giải pháp bảo mật khác nhau, nhưng tất cả các phần mềm bảo mật đều duy trì nhật ký về lịch sử và hoạt động của các mối đe dọa. Điều quan trọng là phải bao gồm và tạo bản sao của các nhật ký như vậy từ sản phẩm bảo mật hiện có trên hệ thống đang được điều tra để có một cuộc điều tra kỹ lưỡng. Dưới đây là hình ảnh từ màn hình “Protection History” của sản phẩm bảo mật “Windows Defender” đi kèm với hệ điều hành Windows.

<figure><img src="/files/BMlfeIywk1TVjWIcE88D" alt=""><figcaption></figcaption></figure>

Một số công cụ bảo mật điểm cuối có hệ thống quản lý tập trung, gây khó khăn cho việc truy cập các bản ghi đã đề cập từ thiết bị điểm cuối đang được điều tra. Do đó, có thể cần phải truy cập vào bảng điều khiển quản lý của giải pháp bảo mật để truy xuất các bản ghi.

## 5. Data Acquisition Methods

### 5.1. Bit-Level Copy

Một bản sao chính xác của các đĩa vật lý hoặc logic được tạo ở cấp độ bit (as a disk image). Phương pháp này cho phép sao chép tất cả dữ liệu, tệp cấu hình và các phân vùng ẩn trên đĩa.

Quá trình sao chép chuyển dữ liệu từ một nguồn sang một đích. Nguồn và đích có thể là các phương tiện lưu trữ dữ liệu khác nhau như ổ đĩa cứng, thiết bị bộ nhớ hoặc tệp.

Một thao tác a bit-level copy sao chép từng bit dữ liệu riêng lẻ. Một đơn vị dữ liệu có thể chứa nhiều bit, chẳng hạn như một byte (8 bit), một word (16 bit) hoặc một dword (32 bit).

Bit-level copying có thể được thực hiện bằng nhiều phương pháp khác nhau. Các phương pháp phổ biến nhất là:

* **Sector Copy:** Phương pháp này sao chép từng sector (512 bytes) trên đĩa một.
* **File Copy:** Phương pháp này sao chép tất cả dữ liệu trong một tệp.
* **Memory Copy:** Phương pháp này sao chép tất cả dữ liệu trong bộ nhớ của hệ thống máy tính.

Lỗi có thể xảy ra trong quá trình bit-level copy. Các thuật toán phát hiện lỗi được sử dụng để phát hiện và sửa các lỗi này.

#### 5.1.1. Advantages of Bit-Level Copying

* Bit-level copy tạo ra một bản sao chính xác của nguồn. Điều này có nghĩa là, không giống như các phương pháp sao chép khác, nó cũng có thể sao chép dữ liệu đã xóa hoặc bị hỏng.
* Bit-level copy đáng tin cậy hơn các phương pháp sao chép khác. Các thuật toán phát hiện lỗi giúp có thể phát hiện và sửa lỗi.

#### 5.1.2. Disadvantages of Bit-Level Copying

* Bit-level copy phức tạp hơn các phương pháp sao chép khác. Nó có thể yêu cầu phần mềm và phần cứng chuyên dụng.
* Bit-level copy mất nhiều thời gian hơn các phương pháp sao chép khác. Điều này có thể mất nhiều thời gian đối với một lượng lớn dữ liệu.

### 5.2. Selective Copy

Đó là quá trình sao chép các tệp hoặc thư mục cụ thể. Các tài liệu quan trọng, email và các tệp quan trọng khác có thể được sao chép bằng phương pháp này.

## 6. Data Duplication Tools

Trong HĐH Windows, có nhiều cách để sao chép và nhân bản dữ liệu. Các tính năng copy/paste của hệ điều hành thường là đủ cho việc này. Tuy nhiên, khi nói đến DFIR, thông tin về đĩa và hệ thống tệp trở nên quan trọng để kiểm tra lành mạnh, ngoài nội dung và trạng thái hiện tại của các tệp. Do đó, đầu tiên, a copy của các đĩa trên hệ điều hành được tạo ra trong các nghiên cứu Pháp lý Kỹ thuật số.

Công cụ “**FTK Imager**” có thể được sử dụng cho việc này.

Sau khi mở công cụ **FTK Imager**, hãy chọn đĩa hoặc phân vùng cần tạo image trong “**Evidence Tree**”. (Trong ví dụ này, “EFI system partition” được chọn.) Bằng cách nhấp chuột phải vào phân vùng đã chọn, tùy chọn “**export image**” sẽ xuất hiện. Tiếp tục với tùy chọn này và nhấp vào nút “**Create Image**” trong cửa sổ mở ra. Bạn nên chỉ định chi tiết của thao tác xuất trên cửa sổ này.

<figure><img src="/files/8NgGMkNbnFADfpVyCgHT" alt=""><figcaption></figcaption></figure>

Đầu tiên, hãy nhấp vào nút “**Add…**”. Chọn “**Destination Image Type**” từ cửa sổ đã mở.

<figure><img src="/files/D81n9ueIQQqQJEZtscuR" alt=""><figcaption></figcaption></figure>

Bạn nên biết ý nghĩa của các tùy chọn trong cửa sổ này trước khi tiếp tục:

* **Raw (dd):** Định dạng này tạo một bản sao chính xác của nội dung đĩa ở **mức bit**. Nó không chứa hệ thống tệp hoặc thông tin cấu trúc, nó chỉ sao chép dữ liệu thô (bit). Đây là định dạng image đĩa cơ bản nhất và thường được lưu với các phần mở rộng tệp “**.img**” hoặc “**.bin**”. Định dạng RAW cung cấp khả năng tương thích rộng rãi trong khôi phục dữ liệu và phân tích pháp lý vì nó không yêu cầu bất kỳ kiến thức hệ thống tệp cụ thể nào.
* **Smart:** SMART là một định dạng image đĩa cụ thể được sử dụng trong cộng đồng pháp lý. Định dạng SMART chứa image đĩa cùng với thông tin bổ sung như metadata và log files. Thông tin bổ sung này giúp theo dõi và ghi lại các hoạt động được thực hiện trên image đĩa trong quá trình phân tích pháp lý. Định dạng SMART **được ưu tiên** cho các cuộc điều tra pháp lý vì nó cung cấp nhiều ngữ cảnh hơn trong quá trình phân tích.
* **E01:** Đây là một định dạng image đĩa được phát triển bởi Encase và được sử dụng rộng rãi trong pháp lý. Định dạng E01 lưu trữ image đĩa ở định **dạng nén**, giúp **tiết kiệm không gian lưu trữ**. Nó cũng cung cấp các tính năng như **giá trị hash** và **bảo vệ bằng mật khẩu** tùy chọn để bảo vệ tính **toàn vẹn** của tệp. Định dạng E01 cung cấp hiệu quả và bảo mật cần thiết cho phân tích pháp lý.
* **AFF:** Advanced Forensic Format là một định dạng tệp mã nguồn mở được thiết kế cho mục đích pháp lý. AFF có thể **nén và phân đoạn dữ liệu image** đĩa và **xác minh tính toàn vẹn** của tệp bằng các giá trị hash mật mã. Nó cũng có thể lưu trữ thông tin về các hoạt động được thực hiện trên image đĩa bằng cách thêm siêu dữ liệu. Định dạng AFF **được các chuyên gia pháp lý ưa chuộng** vì tính **linh hoạt và nhiều tính năng**.

Trong ví dụ này, quá trình tiếp tục bằng cách chọn định dạng AFF. Khi bạn chọn định dạng AFF và chuyển sang bước tiếp theo bằng cách nhấp vào “**Next**”, bạn sẽ cần nhập một số thông tin mô tả về quá trình kiểm tra:

<figure><img src="/files/H3upslOR6yKiGI34vtCp" alt=""><figcaption></figcaption></figure>

Các trường này có thể được điền theo định dạng cụ thể theo nhu cầu của bạn hoặc chúng có thể được điền bằng thông tin ngắn gọn như trong hình trên.

Trong bước tiếp theo, bạn sẽ được hỏi nơi lưu tệp xuất.

<figure><img src="/files/hyvNpw09XJpEaFKRHhsV" alt=""><figcaption></figcaption></figure>

Trong ví dụ này, một vị trí đã được chọn trên đĩa “C” của cùng một máy tính, nhưng trong một trường hợp thực tế, bạn nên tránh ghi bất kỳ dữ liệu nào vào đĩa nằm trên hệ thống đang được điều tra.

Khi bạn chọn tùy chọn “**Use AFF Encryption**”, image sẽ được bảo vệ bằng mật khẩu. Điều này ngăn image bị mở trong trường hợp nó bị người không mong muốn lấy được.

Ở giai đoạn này, hãy nhấp vào nút “**Finish**” và đặt mật khẩu cho image. Sau khi đặt mật khẩu, màn hình sau sẽ mở ra:

<figure><img src="/files/HEqBndetdVSH6h5Y82T4" alt=""><figcaption></figcaption></figure>

* Bằng cách chọn tùy chọn “**Verify images after they are created**”, bạn có thể kiểm tra độ chính xác của image sau quá trình tạo image.
* Bằng cách nhấp vào tùy chọn "**Create directory listing of all files in the image after they are created**", bạn có thể tạo danh sách tệp của image đã tạo.

Sau tất cả các bước này, hãy nhấp vào “**Start**” để bắt đầu quá trình tạo image đĩa. Khi quá trình hoàn tất, bạn sẽ thấy một màn hình tóm tắt như hình bên dưới:

<figure><img src="/files/5eGElPd2mzskZiEq0vMF" alt=""><figcaption></figcaption></figure>

Các tệp được tạo sau quá trình như được hiển thị trong hình bên dưới:

<figure><img src="/files/6360XRDQxrodAQzKaLs9" alt=""><figcaption></figcaption></figure>

Như bạn có thể thấy trong hình trên, kích thước của tệp image “**.aff**” đã giảm từ 200 MB xuống còn khoảng 15 MB với thuật toán nén được sử dụng.

Tệp có phần mở rộng “**.txt**” là tệp nhật ký ghi lại dữ liệu của thao tác. Nội dung tệp như hình bên dưới:

<figure><img src="/files/ud4g5D8zOfCqzZykwEwU" alt=""><figcaption></figcaption></figure>

Tệp có phần mở rộng “**.csv**” là danh sách các tệp được tạo theo tùy chọn đã chọn:

<figure><img src="/files/2gcNlAMblsiwZbcCSG11" alt=""><figcaption></figcaption></figure>

Bạn có thể mở và kiểm tra tệp image này bằng bất kỳ công cụ nào hỗ trợ định dạng AFF (ví dụ: FTK Imager trên một máy tính khác).

## 7. Points to Consider

### 7.1. Hash Values and Digital Signatures

Trong quá trình sao chép và nhân bản, giá trị hash được sử dụng để xác minh tính toàn vẹn của dữ liệu. Nếu hai giá trị hash có cùng giá trị sau khi dữ liệu đã được sao chép, thì đó là dấu hiệu cho thấy dữ liệu không bị thay đổi.

Trong Windows, công cụ **`CertUtil.exe`** có thể được sử dụng để tính giá trị hash của một tệp. CertUtil là một công cụ có thể được sử dụng cho một số mục đích. Để tính giá trị hash, nó phải được chạy với tham số “**-hashfile**”. Sau đó, chỉ cần chỉ định tên của tệp cần được hash và thuật toán sẽ được sử dụng để tính giá trị hash. Tùy thuộc vào kích thước của tệp, việc tính giá trị hash có thể mất một chút thời gian. Khi quá trình hoàn tất, một giá trị hash sẽ được in trên màn hình, như được hiển thị trong ảnh chụp màn hình bên dưới.&#x20;

Đây là giá trị hash duy nhất cho tệp. Trừ khi nội dung của tệp thay đổi, giá trị này phải được lấy bất kể phương tiện mà giá trị hash SHA256 được tính toán. Phương pháp này được sử dụng để xác định xem các tệp đã được sửa đổi hay chưa.

```bash
certutil -hashfile memdump.mem SHA256
```

<figure><img src="/files/ex37yUEpYxbuZqdnNTLo" alt=""><figcaption></figcaption></figure>

### 7.2. Legal and Ethical Issues

Bạn nên tuân thủ các luật và chính sách bảo mật có liên quan, đặc biệt là khi sao chép và nhân bản dữ liệu cá nhân. Hơn nữa, một số nghĩa vụ pháp lý yêu cầu một số thủ tục ký và xác minh nhất định để dữ liệu được thu thập có thể được sử dụng hợp pháp làm bằng chứng.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://viettaliii.gitbook.io/home/soc-and-dfir/dfir/windows-data-acquisition.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
