Bối cảnh và vấn đề nghiên cứu

Trong bối cảnh an ninh mạng và chuyển đổi số, mã độc (malware) ngày càng gia tăng về mức độ tinh vi và độ phức tạp. Nhằm lẩn tránh sự phát hiện của các giải pháp bảo mật và ngăn cản quá trình dịch ngược, mã độc hiện đại thường được tích hợp ba nhóm kỹ thuật lẩn tránh trọng tâm: làm rối mã (obfuscation), chống gỡ lỗi (anti-debugging) và chống môi trường ảo hóa (anti-VM). Theo số liệu thống kê được nhóm tác giả trích dẫn từ 36 họ mã độc dựa trên cơ sở dữ liệu của MITRE giai đoạn 2010 đến giữa năm 2020:

  • 33% số dòng mã độc thực hiện các cơ chế kiểm tra môi trường thực thi.
  • 25% thi hành các truy vấn giao diện quản lý Windows Management Instrumentation (WMI).
  • 19% rà soát các tiến trình đang hoạt động trong hệ thống.
  • 14% truy xuất trực tiếp các khóa Registry để thu thập thông tin định danh máy ảo.

Phần lớn các chuyên gia và nhà phân tích an toàn thông tin hiện nay đều lựa chọn máy ảo làm môi trường cách ly an toàn để thực hiện phân tích hành vi động. Khi phát hiện đang chạy trong môi trường ảo hóa, mã độc thường tự động hủy kích hoạt, ngừng phát tán hoặc thay đổi hoàn toàn hành vi, khiến quá trình phân tích gặp nhiều sai lệch. Để giải quyết thách thức này, đề tài "Xây dựng môi trường phân tích để vượt qua các kĩ thuật phát hiện máy ảo (anti-VM) của mã độc" được thực hiện bởi hai sinh viên Phạm Xuân An và An Văn Hiếu (ngành An toàn thông tin, Khoa Mạng máy tính và Truyền thông, Trường Đại học Công nghệ Thông tin – ĐHQG-HCM), dưới sự hướng dẫn của TS. Phạm Văn Hậu và TS. Nguyễn Tấn Cẩm.

Mục tiêu và nhiệm vụ nghiên cứu của đề tài gồm ba nội dung chính:

  1. Nghiên cứu chi tiết cơ chế hoạt động của các kỹ thuật phát hiện máy ảo phổ biến đang được mã độc sử dụng trong thực tế.
  2. Tìm kiếm và thử nghiệm các giải pháp vượt qua các kỹ thuật anti-VM bằng hướng tiếp cận tự nhiên, hạn chế tối đa việc sử dụng kỹ thuật hooking (móc hàm) hay phần mềm debugging vốn rất dễ bị mã độc phát hiện ngược.
  3. Tận dụng các tính năng sẵn có trên nền tảng ảo hóa (hypervisor) và hệ điều hành máy khách để thiết lập một mô hình máy ảo có khả năng qua mặt các kỹ thuật anti-VM, bảo đảm tính tiện dụng và khả năng vận hành ổn định trong phân tích mã độc thực tế.

Đối tượng nghiên cứu của khóa luận là môi trường máy ảo hóa, cụ thể là máy ảo vận hành hệ điều hành Windows 7 32-bit trên nền tảng ảo hóa VMware Workstation. Phạm vi nghiên cứu tập trung vào các kỹ thuật nhận diện đặc trưng nhắm vào máy ảo VMware, các bộ công cụ kiểm tra môi trường mẫu và kiểm chứng hành vi trên ba dòng mã độc thực tế: Agent Tesla, Zloader và Trickbot.

Cơ sở lý thuyết và phương pháp

Khóa luận xây dựng hệ thống cơ sở lý thuyết dựa trên các kiến trúc ảo hóa phần cứng x86 và hệ điều hành Windows. Các khái niệm và thành phần công nghệ nền tảng được tác giả sử dụng gồm:

  • Cấu trúc tệp cấu hình .vmx: Tệp cấu hình dạng văn bản thuần của VMware lưu trữ toàn bộ tham số thiết lập phần cứng máy ảo như bộ nhớ RAM (memsize), vi xử lý, đĩa cứng và các chỉ thị can thiệp vào tầng hypervisor (monitor_control).
  • Cơ chế Snapshot và tệp bộ nhớ .vmem: Cơ chế chụp ảnh nhanh trạng thái hệ thống tại một thời điểm, lưu lại nội dung toàn bộ RAM vào tệp .vmem, cho phép can thiệp chỉnh sửa dữ liệu nhị phân của bộ nhớ ngoại tuyến trước khi khôi phục trạng thái hoạt động.
  • Bảng cấu trúc phần mềm hệ thống (Firmware): Cấu trúc dữ liệu SMBIOS (System Management BIOS) nằm trong dải địa chỉ bộ nhớ từ 0xF0000 đến 0xFFFFF và ACPI (Advanced Configuration and Power Interface), nơi chứa các chuỗi định danh xuất xưởng của phần cứng ảo.
  • Hệ thống Windows Management Instrumentation (WMI): Cơ chế quản lý tài nguyên của Windows sử dụng không gian tên root\CIMv2. Tác giả sử dụng trình biên dịch MOF (mofcomp.exe) để ghi đè các lớp đối tượng WMI nhạy cảm.
  • Tập lệnh cấp thấp và cổng truyền thông: Lệnh truy vấn kiến trúc vi xử lý CPUID, lệnh đo chu kỳ xung nhịp rdtsc, các lệnh truy xuất bảng mô tả ngắt/phân đoạn sidt, sldt, sgdt, và lệnh giao tiếp I/O qua cổng backdoor IN (0x5658).

Phương pháp nghiên cứu thực nghiệm được triển khai theo hướng tiếp cận phi móc hàm (non-hooking hardening approach). Thay vì can thiệp vào các API của Windows bằng phương pháp chèn hook (vốn dễ bị mã độc quét tính toàn vẹn bộ nhớ để nhận diện), nhóm nghiên cứu lựa chọn:

  • Can thiệp trực tiếp vào tệp cấu hình hypervisor .vmx để che giấu kiến trúc ảo hóa và kiểm soát chu kỳ thực thi lệnh.
  • Ghi đè tệp định dạng MOF bằng mofcomp để điều chỉnh dữ liệu đầu ra của các truy vấn WMI theo đúng cấu trúc máy tính vật lý.
  • Tinh chỉnh thủ công các chuỗi nhị phân trong tệp snapshot bộ nhớ .vmem tại các vùng nhớ lưu trữ SMBIOS và ACPI.
  • Kiểm thử đối chứng (comparative testing): Đánh giá khả năng che giấu trên máy ảo mặc định so với máy ảo đã tinh chỉnh thông qua các bộ công cụ kiểm tra môi trường tiêu chuẩn (pafish, al-khaser, sems), các kịch bản mã nguồn tự viết và ba mẫu mã độc thực tế.

Nguồn dữ liệu kiểm thử bao gồm các công cụ benchmark mã nguồn mở chuyên dụng trong kiểm định chống phân tích và các mẫu mã độc được thu thập phục vụ thực nghiệm.

Thiết kế và triển khai mô hình máy ảo phân tích

Hệ thống được xây dựng trên nền tảng VMware Workstation với máy khách sử dụng hệ điều hành Windows 7 32-bit. Cấu hình phần cứng máy ảo được thiết lập nhằm vượt qua các ngưỡng kiểm tra phần cứng tối thiểu của mã độc: RAM 6 GB, 4 nhân CPU (processor), dung lượng đĩa cứng 120 GB, độ phân giải màn hình đạt các chuẩn thông dụng (1280x1080, 1440x1050 hoặc 1600x900).

Quy trình triển khai mô hình máy ảo kiên cố gồm 8 bước kỹ thuật tuần tự:

Bước thực hiện Thao tác kỹ thuật chính Mục tiêu xử lý
Bước 1 Khởi tạo máy ảo với 6 GB RAM, 4 CPU, ổ cứng 120 GB Đạt ngưỡng thông số phần cứng của máy vật lý
Bước 2 Cài đặt hệ điều hành Windows 7, đặt tên tài khoản thông thường (ví dụ: ASUS) Loại bỏ các chuỗi tên mặc định (CurrentUser, Sandbox, malware)
Bước 3 Chỉnh sửa tệp cấu hình .vmx trên máy chủ (host) Che giấu CPUID, vô hiệu hóa backdoor I/O, tắt ảo hóa rdtsc, đổi địa chỉ MAC và vendor ổ đĩa
Bước 4 Gỡ bỏ hoàn toàn bộ phần mềm VMware Tools trong hệ điều hành khách Loại bỏ các tiến trình và dịch vụ nền đặc trưng của VMware
Bước 5 Tạo kịch bản MOF và dùng mofcomp.exe nạp vào WMI Ghi đè các lớp đối tượng WMI nhạy cảm sang thông số máy tính ASUS
Bước 6 Cài đặt công cụ phân tích (Wireshark, Process Monitor, Process Explorer) và tạo Snapshot Chuẩn bị môi trường giám sát và lưu trạng thái bộ nhớ
Bước 7 Đổi tên 23 tệp trình điều khiển (.sys) và thư viện (.dll) liên quan đến VMware Xóa dấu vết tệp hệ thống của máy ảo trong thư mục System32
Bước 8 Dọn dẹp khóa Registry còn sót lại, dùng công cụ psexec lấy quyền SYSTEM Xóa bỏ triệt để các định danh VMware trong cấu hình hệ thống

Trong Bước 3, các tham số cấu hình quan trọng được bổ sung vào tệp .vmx bao gồm:

  • Vô hiệu hóa cổng backdoor: monitor_control.restrict_backdoor = "TRUE".
  • Vô hiệu hóa bộ đếm thời gian ảo: monitor_control.virtual_rdtsc = "FALSE".
  • Che giấu cờ hypervisor qua CPUID: thiết lập lại các giá trị trả về cpuid.ebx, cpuid.ecx, cpuid.edx tương ứng với các mức gọi EAX = 1 và EAX = 0x40000000.
  • Giả lập nhà sản xuất thiết bị lưu trữ: gán scsi0:0.vendorID = "HP", ide0:0.vendorID = "Slimtype", ide0:0.productID = "SATA-DS8A5SH".
  • Thay đổi địa chỉ vật lý mạng: cấu hình ethernet0.address = "00:13:24:5C:36:72", loại bỏ hoàn toàn các dải OUI mặc định của VMware (00:05:69, 00:0C:29, 00:1C:14, 00:50:56).
  • Thiết lập các chính sách cô lập: bật các chỉ thị isolation.disable = "TRUE" và các cờ ngắt can thiệp nhị phân monitor_control.disable_*.

Tại Bước 5, việc ghi đè WMI được áp dụng cho các lớp thuộc không gian tên root\CIMv2 như: Win32_BIOS, Win32_ComputerSystem, Win32_ComputerSystemProduct, Win32_Fan, Win32_VoltageProbe, Win32_BaseBoard, Win32_CacheMemory, Win32_TemperatureProbe và các lớp tương đương thuộc chuẩn CIM. Dữ liệu nhà sản xuất được chuẩn hóa sang "ASUSTeK COMPUTER INC", BIOS chuyển thành "Phoenix Technologies LTD".

Tại Bước 7, nhóm nghiên cứu rà soát và đổi tên danh mục 23 tệp hệ thống có nguy cơ bị mã độc rà soát:

  • Nhóm tệp trình điều khiển: vmmouse.sys, vmnet.sys, vmxnet.sys, vmhgfs.sys, hgfs.sys, vmmemctl.sys, vm3dmp.sys, vmci.sys, vmstorfl.sys, vm3dmp_loader.sys, vm3dmp-debug.sys, vm3dmp-stats.sys, vmx86.sys.
  • Nhóm tệp thư viện liên kết động: vm3dgl.dll, vmdum.dll, vmtray.dll, vmhgfs.dll, vm3dco.dll, vmhgfs_x86.dll, vmbusCoinstaller.dll, VmdCoinstall.dll, vmstorfltres.dll, vmicres.dll.

Tại Bước 8, các khóa Registry bị khóa quyền hệ thống được chỉnh sửa bằng công cụ psexec của Microsoft Sysinternals để thực thi regedit.exe dưới quyền NT AUTHORITY\SYSTEM. Đồng thời, nhóm tác giả chỉnh sửa tệp .vmem được trích xuất từ snapshot, tìm kiếm nhị phân chuỗi "VMware" trong dải địa chỉ firmware 0xF0000 - 0xFFFFF và thay thế hoàn toàn để vô hiệu hóa kỹ thuật quét bộ nhớ SMBIOS/ACPI.

Nội dung chính theo từng chương

Chương 1. Lí do chọn đề tài

Chương này phân tích tổng quan tình hình an ninh mạng và tính chất cấp bách của việc phân tích mã độc trong bối cảnh các dòng mã độc liên tục bổ sung cơ chế chống phân tích. Tác giả trình bày thống kê dữ liệu từ MITRE đối với 36 họ mã độc, khẳng định tỷ lệ kiểm tra môi trường, truy vấn WMI và rà soát tiến trình/registry chiếm tỷ trọng lớn trong hành vi mã độc thập kỷ qua.

Chương 1 xác định rõ mục tiêu, đối tượng, phạm vi nghiên cứu, đồng thời khảo cứu các công trình liên quan như dự án Evasion của CheckPointSW. Nhóm tác giả chỉ ra điểm hạn chế cốt lõi của các nghiên cứu trước là phụ thuộc quá nhiều vào kỹ thuật API hooking để đánh lừa mã độc, dẫn đến việc dễ bị phát hiện bởi các cơ chế tự kiểm tra của mã độc hiện đại. Từ đó, đề tài xác định định hướng tập trung: xây dựng môi trường kiên cố dựa trên việc cấu hình tầng hypervisor, chỉnh sửa tài nguyên hệ thống nội bộ của Windows và thao tác nhị phân trên tệp ảnh chụp bộ nhớ snapshot (.vmem), không sử dụng hooking hay debugging.

Chương 2 / 3. Các kĩ thuật được nghiên cứu và sử dụng

Chương này tổng hợp và phân loại chi tiết 16 kỹ thuật phát hiện máy ảo thông thường thành 6 nhóm giải pháp chính:

  1. Kiểm tra thuộc tính phần cứng (Hardware Fingerprinting): Bao gồm kiểm tra tập lệnh CPUID (bit 31 thanh ghi ECX khi gọi mức EAX=1, và chuỗi định danh hypervisor khi gọi EAX=0x40000000); kỹ thuật Redpill (kiểm tra địa chỉ các bảng IDT, LDT, GDT thông qua các chỉ thị sidt, sldt, sgdt); kiểm tra tên tài khoản và tên máy (CurrentUser, Sandbox, malware); kiểm tra thông số vật lý thiết bị (số lượng lõi CPU, dung lượng RAM, dung lượng ổ đĩa); kiểm tra định danh nhà sản xuất đĩa cứng/CD-ROM; kiểm tra dải địa chỉ MAC đặc trưng của VMware; truy vấn thông tin thiết bị qua giao diện WMI; và kiểm tra sự thay đổi tọa độ con trỏ chuột theo thời gian (GetCursorPos).
  2. Kiểm tra Registry (Registry Check): Kiểm tra các đường dẫn, khóa và giá trị cấu hình chứa chuỗi "VMWARE" liên quan đến VMware Tools, các dịch vụ hệ thống (vmdebug, vmmouse, VMTools, vmci), và thông tin thiết bị IDE/SCSI.
  3. Kiểm tra bộ nhớ (Memory Check): Kỹ thuật quét bộ nhớ vật lý RAM thông qua API truy xuất firmware hệ thống (RSMB), tìm kiếm chuỗi định danh "VMware" nằm trong cấu trúc bảng SMBIOS và ACPI tại dải địa chỉ 0xF0000 - 0xFFFFF.
  4. Kiểm tra các thuộc tính thời gian (Timing Check): Đọc thời gian hoạt động hệ thống qua hàm GetTickCount() (phát hiện máy vừa khởi động dưới 10-15 phút hoặc cơ chế làm trễ - delay execution); đo độ chênh lệch xung nhịp bằng lệnh rdtsc giữa máy thật và máy ảo; và kỹ thuật chèn lệnh CPUID vào giữa hai lần đo rdtsc để tận dụng độ trễ của lệnh chuyển ngữ cảnh bắt buộc (VM-exit).
  5. Kiểm tra kênh giao tiếp của máy ảo (Communication Channel Check): Thi hành lệnh hợp ngữ IN với các thanh ghi đầu vào đặc thù (EAX = 0x564D5868, DX = 0x5658) nhằm khai thác cổng giao tiếp I/O backdoor giữa máy khách và hypervisor VMware.
  6. Kiểm tra tập tin và tiến trình (File and Process Check): Quét sự tồn tại của các tệp tin driver hệ thống (vmmouse.sys, vmnet.sys,...) và kiểm tra danh sách tiến trình nền đang hoạt động (vmtoolsd.exe, vmware.exe, vm3dservice.exe).

Chương này cũng phân tích các giải pháp liên quan khác:

  • Các loại máy ảo khác: So sánh VMware với VirtualBox, QEMU, Hyper-V, nêu rõ sự khác biệt trong cú pháp tệp cấu hình và tính năng chỉnh sửa BIOS trực tiếp.
  • Sử dụng phần mềm debugging: Đánh giá ưu điểm phân tích nhanh nhưng nhược điểm là vấp phải các cơ chế anti-debugging phức tạp của mã độc.
  • Lồng ảo hóa (Nested Virtualization): Phân tích kỹ thuật chạy máy ảo lồng nhau nhằm ngăn ngừa lây nhiễm ngược sang máy thật và khả năng gom cụm các chỉ thị VM-exit để giảm độ trễ thời gian, đồng thời chỉ ra rào cản về tương thích phần cứng và suy giảm hiệu năng.

Chương 4. Kết quả thử nghiệm

Chương 4 mô tả toàn bộ cấu hình máy ảo thử nghiệm và quy trình 8 bước thiết lập mô hình. Tác giả thực hiện kiểm chứng mô hình qua hai cấp độ:

  1. Thử nghiệm với các công cụ kiểm tra môi trường:
    • Bộ công cụ pafish: So sánh kết quả thực thi giữa máy ảo mặc định, máy thật và máy ảo đã được tinh chỉnh.
    • Bộ công cụ al-khaser: Đánh giá các bài kiểm tra Generic Sandbox, Timing Check và kiểm tra đặc trưng VMware.
    • Bộ công cụ sems và các kịch bản mã nguồn tự viết kiểm tra từng cơ chế riêng lẻ.
  2. Thử nghiệm chuyên sâu với ba mẫu mã độc thực tế:
    • Agent Tesla: Quan sát hành vi tạo tiến trình ngầm, kích hoạt dịch vụ msiserver, thực thi msiexec.exe, thu thập tiến trình qua Process Monitor và Process Explorer, ghi nhận lưu lượng mạng qua Wireshark.
    • Zloader: Phân tích hoạt động nhân bản tệp trong thư mục hệ thống, hành vi của tiến trình zloader và msiexec, cùng lưu lượng mạng C&C.
    • Trickbot: Phân tích cơ chế tự nhân bản, kích hoạt tiến trình ngầm tmp039.exe, và hành vi can thiệp hệ thống, lưu lượng kết nối qua Wireshark.

Kết quả và đóng góp

Mô hình máy ảo kiên cố sau khi hoàn thiện các bước tinh chỉnh đã vượt qua hầu hết các kỹ thuật phát hiện máy ảo thông thường khi đối chiếu với máy ảo tiêu chuẩn.

Hạng mục kiểm thử Máy ảo VMware mặc định Máy ảo kiên cố của khóa luận
Lệnh CPUID & cờ Hypervisor Bị phát hiện (Bit 31 = 1, chuỗi VMware) Vượt qua hoàn toàn (Chuỗi bị vô hiệu hóa)
Cổng giao tiếp Backdoor (Lệnh IN) Trả về phiên bản VMware Bị chặn hoàn toàn qua restrict_backdoor
Tệp tin và thư viện VMware Tools Phát hiện đầy đủ tệp và driver Vượt qua (Đã gỡ bỏ và đổi tên 23 tệp)
Tiến trình nền (vmtoolsd, vmusb...) Hoạt động thường trực Vượt qua (Không còn tiến trình tồn tại)
Khóa Registry hệ thống Tồn tại nhiều khóa chứa nhãn "VMware" Đã dọn dẹp sạch bằng quyền SYSTEM
Bộ đếm thời gian rdtsc Giá trị chênh lệch lớn (> 500 chu kỳ) Giảm thiểu nhờ tắt virtual_rdtsc
Truy vấn WMI (BIOS, System, Fan...) Trả về chuỗi và thông số VMware Trả về thông số máy thật ASUS qua MOF
Bảng cấu trúc Firmware (SMBIOS/ACPI) Chứa chuỗi nhị phân "VMware" trong RAM Đã làm sạch nhị phân trong tệp .vmem

Kết quả thử nghiệm chi tiết trên ba dòng mã độc thực tế ghi nhận sự khác biệt rõ rệt về mặt hành vi:

  • Mã độc Agent Tesla: Trên máy ảo thông thường, mã độc phát hiện môi trường ảo hóa và dừng thực thi hoặc không bộc lộ hành vi phá hoại. Ngược lại, trên máy ảo đã tinh chỉnh của khóa luận, mã độc hoạt động hoàn chỉnh: dịch vụ hệ thống msiserver được khởi động, tạo tiến trình ngầm msiexec.exe được ghi nhận qua Process Explorer; các hoạt động can thiệp tệp/registry được thu thập đầy đủ bằng Process Monitor và toàn bộ kết nối truyền tải dữ liệu bị bắt giữ thông qua Wireshark.
  • Mã độc Zloader: Trên máy ảo kiên cố, Zloader tự động nhân bản thành công vào thư mục hệ thống của máy ảo, đồng thời khởi tạo hai tiến trình song song gồm zloader và msiexec. Công cụ Process Monitor ghi nhận đầy đủ các hành vi can thiệp hệ thống, và Wireshark ghi nhận các gói tin kết nối mạng mà trên máy ảo thường không xuất hiện.
  • Mã độc Trickbot: Báo cáo trên VirusTotal cho thấy mẫu thử có tích hợp nhiều cơ chế anti-analysis. Trên mô hình máy ảo được dựng, Trickbot nhân bản chính mình, lưu lại vào hệ thống và khởi chạy tiến trình nền độc hại mang tên tmp039.exe. Process Monitor và Wireshark đã ghi lại chi tiết các chuỗi hành vi tác động hệ thống và các luồng dữ liệu mạng độc hại tương ứng.

Các đóng góp chính của khóa luận:

  • Hệ thống hóa toàn diện 16 kỹ thuật anti-VM phổ biến thuộc 6 nhóm cơ chế, đi kèm mã nguồn mẫu minh họa trực quan cách thức kiểm tra của mã độc.
  • Xây dựng thành công quy trình chuẩn 8 bước thiết lập môi trường phân tích máy ảo kiên cố trên nền tảng VMware và Windows 7 32-bit mà không cần phụ thuộc vào kỹ thuật hook API hay trình gỡ lỗi.
  • Đóng góp bộ tham số cấu hình .vmx tối ưu, bộ tệp mẫu cấu hình MOF WMI, danh mục 23 tệp artifact cần xử lý, cùng phương pháp can thiệp nhị phân trên tệp ảnh chụp bộ nhớ snapshot .vmem để làm sạch bảng SMBIOS/ACPI.

Hạn chế và hướng nghiên cứu tiếp

Khóa luận chỉ rõ các hạn chế tồn tại trong văn bản như sau:

  • Phạm vi nền tảng hẹp: Mô hình chỉ mới được triển khai và kiểm nghiệm trên hệ điều hành Windows 7 32-bit và hypervisor VMware Workstation; chưa mở rộng sang các hệ điều hành phổ biến hiện đại như Windows 10, Windows 11 (64-bit) cũng như các giải pháp ảo hóa khác (VirtualBox, KVM/QEMU, Hyper-V).
  • Thách thức đối với kỹ thuật đo thời gian nâng cao: Đối với kỹ thuật kiểm tra thời gian sử dụng lệnh CPUID chèn giữa hai lệnh RDTSC, do lệnh gọi CPUID là một chỉ thị VM-exit bắt buộc ở mức phần cứng, thời gian đo được trên máy ảo luôn bị kéo dài bởi chi phí chuyển ngữ cảnh (context switch). Kỹ thuật này phụ thuộc nhiều vào cấu hình và trạng thái luồng của máy chủ vật lý, do đó việc tinh chỉnh cấu hình .vmx chưa thể giải quyết triệt để vấn đề thời gian VM-exit trong mọi trường hợp.
  • Quy trình thao tác còn mang tính thủ công: Việc đổi tên các tệp hệ thống, dọn dẹp Registry bằng psexec và chỉnh sửa chuỗi nhị phân trong tệp .vmem đòi hỏi nhiều thao tác kỹ thuật phức tạp. Nếu hệ thống cần khởi động lại hoàn toàn thay vì khôi phục từ snapshot, một số tệp driver thiết yếu bị đổi tên (như vmmouse.sys) có thể ảnh hưởng đến khả năng tương tác của hệ điều hành.

Hướng nghiên cứu phát triển tiếp theo được nhóm tác giả xác định:

  • Tự động hóa toàn bộ quy trình 8 bước thiết lập và dọn dẹp dấu vết máy ảo thông qua các kịch bản script tự động.
  • Nghiên cứu sâu và áp dụng kỹ thuật lồng ảo hóa (Nested Virtualization) nhằm tận dụng khả năng xử lý gom cụm chỉ thị VM-exit ở máy ảo trung gian, giúp giảm độ trễ đo xung nhịp và phòng chống nguy cơ lây nhiễm ngược từ mã độc sang máy vật lý.
  • Mở rộng kiến trúc kiên cố hóa cho các phiên bản hệ điều hành 64-bit và thử nghiệm trên các nền tảng hypervisor mã nguồn mở.

Giá trị tham khảo

Báo cáo khóa luận có giá trị tham khảo thiết thực cho các nhóm đối tượng và mục đích nghiên cứu chuyên môn:

  • Sinh viên và học viên chuyên ngành An toàn thông tin, Mạng máy tính: Tài liệu cung cấp cơ sở lý thuyết chi tiết về cơ chế nội vi của hệ điều hành Windows, kiến trúc ảo hóa phần cứng x86 và mã nguồn mẫu của 16 kỹ thuật anti-VM, phục vụ học tập các học phần Phân tích mã độc, Kỹ thuật dịch ngược và An ninh hệ thống.
  • Chuyên viên phân tích mã độc (Malware Analyst) và kỹ sư điều tra sự cố (DFIR): Khóa luận cung cấp giải pháp thực tế để dựng môi trường phân tích động (Dynamic Analysis Sandbox) cục bộ có khả năng kháng anti-VM cao mà không tốn chi phí bản quyền giải pháp thương mại, hạn chế tối đa nguy cơ mã độc lẩn tránh.
  • Các nghiên cứu tiếp nối về Virtual Machine Hardening: Quy trình can thiệp WMI bằng MOF Compiler, danh mục 23 tệp trình điều khiển cần làm sạch và phương pháp biên tập tệp snapshot .vmem để xử lý SMBIOS/ACPI là các dữ liệu kỹ thuật có thể kế thừa trực tiếp để phát triển các công cụ tự động hóa che giấu máy ảo.

Câu hỏi thường gặp

1. Tại sao khóa luận lựa chọn hướng tiếp cận thay đổi bên trong hệ thống thay vì sử dụng kỹ thuật API Hooking?

Kỹ thuật API Hooking thường can thiệp vào bảng điều hướng hàm hoặc chèn mã nhảy để chặn các lời gọi API của Windows, qua đó trả về các thông số giả mạo. Tuy nhiên, các dòng mã độc hiện đại có khả năng tự kiểm tra tính toàn vẹn của mã bộ nhớ API trước khi thực thi để phát hiện hook. Việc tiếp cận tự nhiên bằng cách tinh chỉnh tệp cấu hình hypervisor .vmx, cấu hình lại lớp dịch vụ WMI và sửa đổi trực tiếp bộ nhớ snapshot .vmem giúp môi trường máy ảo phản hồi dữ liệu thật từ cấp hệ thống, triệt tiêu nguy cơ bị mã độc phát hiện hook.

2. Nhóm tác giả xử lý dấu vết định danh VMware trong cấu trúc SMBIOS và ACPI trên RAM bằng cách nào?

Do cấu trúc SMBIOS và ACPI được nạp trực tiếp vào bộ nhớ RAM tại dải địa chỉ từ 0xF0000 đến 0xFFFFF ngay trong giai đoạn khởi động của hệ điều hành, người dùng không thể chỉnh sửa trực tiếp dữ liệu này qua phần mềm thông thường trên Windows mà không bị phát hiện. Nhóm tác giả đã giải quyết bằng cách tạo một bản snapshot trên VMware để trích xuất toàn bộ RAM ra tệp nhị phân .vmem trên máy chủ host, sau đó dùng công cụ chỉnh sửa tìm kiếm nhị phân chuỗi ký tự "VMware" trong dải địa chỉ firmware để thay thế trước khi khôi phục máy ảo từ snapshot này.

3. Phương pháp ghi đè thông tin thiết bị qua lệnh WMI được triển khai bằng công cụ gì?

Nhóm tác giả sử dụng công cụ biên dịch MOF Compiler (mofcomp.exe) có sẵn của Windows. Tác giả tạo tệp cấu hình văn bản định nghĩa lại các lớp đối tượng trong không gian tên root\CIMv2 (như Win32_BIOS, Win32_ComputerSystem, Win32_Fan, Win32_VoltageProbe), ghi đè dữ liệu mặc định của VMware bằng các thông số giả lập của nhà sản xuất phần cứng vật lý (như ASUS, Phoenix Technologies), sau đó thực thi lệnh mofcomp <tên_tệp>.txt để nạp trực tiếp vào kho lưu trữ WMI Repository của hệ điều hành.

4. Tại sao lệnh CPUID đặt giữa hai lệnh RDTSC lại giúp mã độc nhận biết được máy ảo?

Lệnh rdtsc đo chu kỳ xung nhịp thực thi. Trên máy thật, việc gọi liên tiếp hai lệnh rdtsc diễn ra rất nhanh (thời gian chênh lệch dưới 100 chu kỳ), trong khi trên máy ảo bộ đếm bị ảo hóa nên thời gian đo thường lớn hơn 500 chu kỳ. Khi mã độc chèn thêm lệnh CPUID vào giữa hai lệnh rdtsc, do CPUID là chỉ thị bắt buộc chuyển ngữ cảnh từ máy khách ra hypervisor (VM-exit), độ trễ thời gian xử lý VM-exit trên máy ảo sẽ tăng vọt (thời gian đo vượt ngưỡng 1000 chu kỳ), giúp mã độc nhận diện chính xác sự hiện diện của môi trường ảo hóa.

5. Sự khác biệt hành vi cụ thể của mã độc Agent Tesla giữa hai môi trường thử nghiệm là gì?

Trên máy ảo thông thường, Agent Tesla nhận diện được các dấu hiệu ảo hóa nên dừng hoạt động hoặc ẩn giấu hành vi lây nhiễm. Trên máy ảo đã được tinh chỉnh của khóa luận, Agent Tesla thực thi hoàn chỉnh chuỗi tấn công: hệ thống ghi nhận dịch vụ msiserver được kích hoạt, tiến trình msiexec.exe chạy ngầm thu thập được qua Process Explorer; các hành vi đọc ghi tệp và khóa registry được Process Monitor bắt giữ trọn vẹn; đồng thời Wireshark ghi nhận toàn bộ lưu lượng mạng phục vụ kết nối độc hại ra bên ngoài.

Kết luận

Khóa luận tốt nghiệp của sinh viên Phạm Xuân An và An Văn Hiếu đã hoàn thành toàn diện mục tiêu nghiên cứu và xây dựng thành công mô hình máy ảo phân tích mã độc kiên cố trên nền tảng VMware và Windows 7 32-bit. Bằng việc kiên định với hướng tiếp cận phi móc hàm (non-hooking), kết hợp tinh chỉnh tầng hypervisor .vmx, biên dịch lại cấu trúc WMI và làm sạch nhị phân bảng firmware SMBIOS/ACPI trên tệp bộ nhớ snapshot .vmem, mô hình đã vô hiệu hóa thành công 16 kỹ thuật anti-VM phổ biến. Kết quả thử nghiệm kích hoạt đầy đủ chuỗi hành vi độc hại của ba dòng mã độc Agent Tesla, Zloader và Trickbot khẳng định giá trị thực tiễn và tính ứng dụng cao của đề tài trong công tác giám sát, điều tra và phân tích mã độc an ninh mạng.