Giới thiệu dự án

Sự bùng nổ của không gian số và các mô hình làm việc từ xa (Work From Home) đã thúc đẩy tốc độ chuyển đổi công nghệ, nhưng đồng thời cũng làm gia tăng đột biến các nguy cơ an ninh mạng. Theo báo cáo của Cybersecurity Ventures, thiệt hại do tội phạm mạng gây ra ước tính lên đến 6.000 tỷ USD vào năm 2021 và dự kiến chạm mốc 10.500 tỷ USD vào năm 2025. Thống kê từ tổ chức AV-TEST ghi nhận hơn 677,66 triệu mẫu mã độc được phát hiện trong thập kỷ qua. Các biến thể mã độc hiện đại không còn hoạt động đơn lẻ mà liên tục biến hóa với các kỹ thuật che giấu tinh vi như mã hóa đa hình (polymorphic), đóng gói (packing), anti-VM, và phân tán hành vi độc hại theo chuỗi tiến trình nhằm vô hiệu hóa các giải pháp bảo mật truyền thống.

Vấn đề và hạn chế của các giải pháp hiện tại

Các phương pháp phát hiện mã độc truyền thống đang bộc lộ những điểm yếu chí mạng:

  • Phương pháp đối sánh mẫu chữ ký (Signature-based): Hoàn toàn bất lực trước các dòng mã độc chưa từng được biết đến (Zero-day attacks), mã độc không dùng tệp (Fileless malware) hoặc mã độc bị biến đổi mã nguồn nhẹ.
  • Phương pháp phân tích động trong môi trường ảo hóa (Sandbox Anomaly-based): Nhiều loại mã độc APT cao cấp tích hợp cơ chế nhận diện môi trường giả lập (Anti-Sandbox), chuyển sang trạng thái ngủ đông (Sleep delay) hoặc chỉ kích hoạt hành vi độc hại khi có tương tác thực tế từ người dùng.
  • Thiếu khả năng liên kết ngữ cảnh liên tiến trình (Lack of Event Correlation): Khi phân tích các sự kiện đơn lẻ, từng tiến trình riêng biệt có thể hoàn toàn hợp lệ (như gọi powershell.exe hoặc cmd.exe), nhưng khi liên kết chuỗi cha-con qua thời gian, đó là một chuỗi tấn công có chủ đích (Attack Chain).

Mục tiêu của đồ án

Đồ án "Nghiên cứu phương pháp phát hiện mã độc dựa trên hành vi sử dụng học máy" do sinh viên Nguyễn Thị Hoa thực hiện dưới sự hướng dẫn của TS. Đỗ Xuân Chợ (Học viện Công nghệ Bưu chính Viễn thông - PTIT) tập trung giải quyết các mục tiêu trọng tâm:

  1. Xây dựng giải pháp giám sát và thu thập dữ liệu hành vi thời gian thực trên nhân hệ điều hành Windows bằng Microsoft Sysmon, chuẩn hóa dữ liệu kết hợp ánh xạ kỹ thuật MITRE ATT&CK Matrix.
  2. Thiết kế và chuyển đổi dữ liệu tiến trình thành mô hình hồ sơ tiến trình dạng đồ thị có hướng (Directed Process Graph) phản ánh chính xác tương quan cha - con và chuỗi sự kiện.
  3. Ứng dụng kỹ thuật nhúng đồ thị Graph2Vec (kết hợp thuật toán Weisfeiler-Lehman) và so sánh trực tiếp với kỹ thuật nhúng chuỗi Sqn2Vec để trích xuất không gian đặc trưng chất lượng cao.
  4. Triển khai các thuật toán học máy giám sát gồm Random Forest (RF) và mạng nơ-ron đa tầng Multi-Layer Perceptron (MLP) để phân loại nhị phân (Malware vs Benign) với độ chính xác cao và tỷ lệ báo động giả (False Positive) tối thiểu.

Phạm vi và giới hạn nghiên cứu

  • Phạm vi dữ liệu: Đồ án đánh giá trên tập dữ liệu gồm 358.075 tệp thực thi và tài liệu (69.723 mẫu mã độc và 288.352 mẫu bình thường), bao gồm các định dạng PE EXE, PE DLL, Script, JAVA, MS Office, PDF.
  • Phạm vi kỹ thuật: Tập trung giám sát hành vi mức máy trạm (Endpoint level) trên hệ điều hành Windows, không can thiệp sâu vào giải mã gói tin mạng hay phân tích mã tĩnh nâng cao (disassembly/decompilation).

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Tiêu chí Chữ ký truyền thống (AV Rule-based) Sandbox phân tích động Giải pháp đề xuất (Process Graph + Graph2Vec)
Phát hiện Zero-day Kém (0% với mẫu mới) Trung bình (phụ thuộc evasion) Xuất sắc (dựa trên mẫu hành vi cấu trúc đồ thị)
Chống Anti-analysis Không áp dụng Kém (bị bypass bởi Sleep/Anti-VM) Cao (thu thập trực tiếp trên máy trạm thực qua Sysmon)
Ngữ cảnh chuỗi sự kiện Không có Hạn chế trong tiến trình đơn Toàn diện (mô hình hóa quan hệ cha-con đa tiến trình)
Chi phí tài nguyên Rất thấp Rất cao (yêu cầu VM cô lập) Vừa phải (Agent nhẹ, xử lý vector hóa tối ưu)
Độ trễ phát hiện Thời gian thực (với mẫu cũ) Cao (3 - 10 phút/mẫu) Gần thời gian thực (phân loại qua vector nhúng)

Yêu cầu hệ thống theo mô hình MoSCoW

  • Must Have: Thu thập 23 loại Event ID từ Sysmon; trích xuất ProcessCreate (Event 1) và ProcessTerminated (Event 5); gán nhãn MITRE ATT&CK; chuyển đổi hồ sơ cây tiến trình sang Graph Embedding; phân loại bằng Random Forest và MLP.
  • Should Have: Hỗ trợ điều chỉnh kích thước không gian vector nhúng ($d \in {64, 128, 256}$); cơ chế trích lọc Negative Sampling trong quá trình huấn luyện Paragraph Vector Skip-gram.
  • Could Have: Tích hợp pipeline tự động đẩy cảnh báo sang SIEM/SOC; giao diện trực quan hóa cây tiến trình nghi vấn.
  • Won't Have (Giai đoạn này): Tự động cô lập mạng hoặc can thiệp chặn đứng tiến trình (EDR Remediation/Kill process) theo thời gian thực ở mức kernel driver.

Thiết kế kiến trúc và công nghệ

Hệ thống được thiết kế theo mô hình 3 khối chức năng:

[Windows Kernel] -> [Sysmon Service] 
[Data Preprocessing & MITRE ATT&CK Mapper]
            [ML Engine: Random Forest / Multi-Layer Perceptron]
               [Classification Result: Benign / Malware]
  • Technology Stack:
    • Hệ điều hành giám sát: Windows 10/11 x64, Windows Server.
    • Thu thập dữ liệu: Microsoft Sysinternals Sysmon v13.x / v14.x.
    • Môi trường tính toán: Python 3.8.10, PyTorch 1.10.0, Scikit-Learn 1.0.2, NetworkX 2.6.3, Gensim 4.1.2.
    • Thuật toán cốt lõi: Weisfeiler-Lehman Graph Isomorphism Algorithm, Paragraph Vector Distributed Bag of Words (PV-DBOW), Random Forest Classifier, Multi-Layer Perceptron (Backpropagation, RMSE loss).

Thiết kế cấu trúc dữ liệu hồ sơ tiến trình

Mỗi nút trong đồ thị tiến trình đại diện cho một tiến trình với các thuộc tính định danh:

  • ProcessID: Mã định danh do hệ điều hành cấp phát tạm thời.
  • ProcessGuid: Chuỗi GUID duy nhất toàn cục định danh tiến trình trong Sysmon.
  • ParentProcessGuid: Khóa ngoại liên kết tới nút cha tạo ra tiến trình.
  • CommandLine & Image: Đường dẫn tệp nhị phân và đối số thực thi.
  • MitreAttacks: Danh sách các kỹ thuật tấn công được gán nhãn dựa trên hành vi tương tác File, Network, Registry hoặc RemoteThread injection.

Implementation và kết quả

Chi tiết giải thuật và mã nguồn

1. Thuật toán trích xuất cây đồ thị Weisfeiler-Lehman (WL Relabeling)

Graph2Vec xem mỗi đồ thị tiến trình là một "tài liệu" và các đồ thị con có gốc (Rooted Subgraphs) là các "từ". Quá trình cập nhật nhãn nút qua các vòng lặp $i$:

$$l_i(v) = \text{relabel}\left(\left(l_{i-1}(v), \text{sort}\left({l_{i-1}(u) \mid u \in \mathcal{N}(v)}\right)\right)\right)$$

Trong đó $\mathcal{N}(v)$ là tập hợp các nút láng giềng của nút $v$, và hàm relabel sử dụng băm MD5 để sinh định danh duy nhất cho từng cấu trúc cây con:

import hashlib
import networkx as nx

def weisfeiler_lehman_subgraphs(graph: nx.DiGraph, iterations: int = 2):
    """
    Trích xuất danh sách rooted subgraphs dựa trên thuật toán Weisfeiler-Lehman.
    """
    subgraphs_vocabulary = []
    # Khởi tạo nhãn gốc từ thuộc tính hành vi (MITRE technique hoặc Image)
    node_labels = {n: str(graph.nodes[n].get('label', 'unknown')) for n in graph.nodes()}
    
    for it in range(iterations):
        new_labels = {}
        for node in graph.nodes():
            neighbors = list(graph.neighbors(node))
            neighbor_labels = sorted([node_labels[nbr] for nbr in neighbors])
            # Tạo chuỗi biểu diễn kết hợp nhãn hiện tại và các nút lân cận
            combined = f"{node_labels[node]}_" + "_".join(neighbor_labels)
            # Tạo mã băm đại diện cho cấu trúc đồ thị con
            hashed_label = hashlib.md5(combined.encode('utf-8')).hexdigest()[:10]
            new_labels[node] = hashed_label
            subgraphs_vocabulary.append(hashed_label)
        node_labels = new_labels
        
    return subgraphs_vocabulary

2. Kỹ thuật nhúng PV-DBOW và Skip-Gram

Toàn bộ rooted subgraphs của đồ thị $G_k$ được đưa vào mô hình Skip-gram với kiến trúc Negative Sampling để tối ưu hàm mất mát, tạo ra vector nhúng đặc trưng đa chiều:

$$\text{Cosine Similarity}(A, B) = \frac{A \cdot B}{|A| |B|} = \frac{\sum_{i=1}^n A_i B_i}{\sqrt{\sum_{i=1}^n A_i^2} \sqrt{\sum_{i=1}^n B_i^2}}$$

3. Mô hình phân loại học máy

  • Random Forest (RF): Sử dụng cơ chế Bagging (Bootstrap Aggregation), kết hợp $N$ cây quyết định ($N \in {10, 50, 100}$) bỏ phiếu đa số (Majority Voting) để xác định nhãn cuối cùng.
  • Multi-Layer Perceptron (MLP): Mạng truyền thẳng gồm các lớp fully-connected, sử dụng hàm kích hoạt ReLU ở các tầng ẩn và Softmax Regression ở tầng ra:

$$y = \text{Softmax}\left(\sum_{i=1}^m W_i x_i + b\right)$$

import torch
import torch.nn as nn

class MalwareClassifierMLP(nn.Module):
    def __init__(self, input_dim: int = 128, hidden_dim: int = 64, num_classes: int = 2):
        super(MalwareClassifierMLP, self).__init__()
        self.network = nn.Sequential(
            nn.Linear(input_dim, hidden_dim),
            nn.BatchNorm1d(hidden_dim),
            nn.ReLU(),
            nn.Dropout(0.3),
            nn.Linear(hidden_dim, hidden_dim // 2),
            nn.ReLU(),
            nn.Linear(hidden_dim // 2, num_classes)
        )
        
    def forward(self, x):
        return self.network(x)

Dữ liệu thực nghiệm và đánh giá hiệu năng

Tập dữ liệu thực nghiệm gồm 358.075 bản ghi được phân chia theo tỷ lệ 80% huấn luyện (Train) : 20% kiểm thử (Test):

Phân loại tệp Định dạng mẫu Số lượng Tỷ lệ (%)
Mã độc (Malware) PE EXE, PE DLL, Trojans, Ransomware 69.723 19,47%
Tệp bình thường MS Office (Docx, Xlsx) 48.088 13,43%
Adobe Flash, PDF 48.518 13,55%
Archive Files (Zip, Rar) 45.183 12,62%
Scripts (VBS, JS, PowerShell) 26.950 7,53%
PE EXE Lành tính 20.781 5,80%
Email files (EML, MSG) 20.852 5,82%
PE DLL Lành tính 8.823 2,46%
HTML Documents 6.312 1,76%
Java Applets & Tệp khác 62.845 17,56%
Tổng cộng 358.075 100%

Kết quả thực nghiệm Kịch bản 1: Tuyến Sequence Embedding (Sqn2Vec)

Mô hình Số chiều (Dims) Tham số Accuracy (%) Precision (%) Recall (%) F1-Score (%) Thời gian Train (s) Thời gian Test (s)
Sqn2Vec + RF 64 Trees = 10 96,39 95,82 95,10 95,45 182,4 1,12
Sqn2Vec + RF 128 Trees = 50 96,65 96,12 95,48 95,79 420,6 1,85
Sqn2Vec + RF 256 Trees = 100 96,71 96,30 95,62 95,95 680,2 2,45
Sqn2Vec + MLP 128 4 Hidden Layers 97,07 97,50 96,82 97,15 895,3 4,20

Kết quả thực nghiệm Kịch bản 2: Tuyến Graph Embedding (Graph2Vec)

Mô hình Số chiều (Dims) Tham số Accuracy (%) Precision (%) Recall (%) F1-Score (%) False Positive (Mẫu) False Negative (Mẫu)
Graph2Vec + RF 64 Trees = 10 96,11 95,20 94,80 95,00 892 1.840
Graph2Vec + RF 128 Trees = 50 97,15 96,70 96,20 96,44 710 1.325
Graph2Vec + RF 256 Trees = 100 97,32 96,95 96,80 96,87 615 1.117
Graph2Vec + MLP 256 4 Hidden Layers 98,21 98,10 97,95 98,02 557 870
Confusion Matrix Đồ thị Graph2Vec - MLP (256 Features):

Đổi mới và đóng góp

  1. Chuyển dịch từ phân tích sự kiện cô lập sang đồ thị quan hệ tiến trình: Đồ án không đánh giá tiến trình một cách độc lập mà xâu chuỗi toàn bộ quan hệ phân cấp, cho phép bộc lộ chính xác các kỹ thuật ẩn mình, gọi hàm chéo, và tấn công dạng Living-off-the-Land (LotL).
  2. Ứng dụng hiệu quả giải thuật Graph2Vec trong miền dữ liệu an toàn thông tin: Khác với các nghiên cứu văn bản thuần túy, việc cấu trúc hóa đồ thị con có gốc (Rooted Subgraphs) kết hợp gán nhãn hành vi theo khung chuẩn MITRE ATT&CK giúp không gian vector nhúng có khả năng phân tách cao giữa hành vi lành tính và ác tính.
  3. Hiệu năng vượt trội và tối ưu thời gian suy luận: Mô hình Graph2Vec kết hợp MLP đạt độ chính xác 98,21%, giảm tỷ lệ bỏ sót mã độc (False Negative) từ 1.512 mẫu (ở phương pháp chuỗi Sqn2Vec-RF) xuống chỉ còn 870 mẫu (giảm 42,46% số lượng mẫu mã độc bị lọt lưới).
  4. Tính tương thích thực tế cao: Giải pháp sử dụng nguồn dữ liệu thu thập trực tiếp từ Windows Sysmon chuẩn, không đòi hỏi sửa đổi nhân hệ điều hành, giúp giảm thiểu rủi ro xung đột hệ thống khi triển khai diện rộng.

Ứng dụng thực tế và triển khai

[Endpoint Machines (Win 10/11)] 

Kiến trúc triển khai máy trạm (Endpoint Telemetry Pipeline)

  • Agent thu thập: Cấu hình Sysmon XML tối ưu để chỉ lọc các sự kiện mục tiêu (Event 1, 5, 7, 8, 10, 11) nhằm giữ mức chiếm dụng CPU của máy trạm dưới 1,5% và RAM dưới 50 MB.
  • Inference Server: Máy chủ phân tích trung tâm nhận luồng sự kiện JSON qua kênh bảo mật TLS, dựng cây tiến trình theo cửa sổ trượt (Sliding Window: 60 giây) và thực hiện phân loại vector.
  • Tích hợp SOC/SIEM: Trực tiếp tương thích với Splunk, Elastic Security, hoặc Wazuh thông qua RESTful API để tự động sinh vé sự cố khi xác suất phân loại nhãn Malware vượt quá ngưỡng 0,85.

Phân tích chi phí và hiệu quả đầu tư (ROI)

  • Chi phí bản quyền: 0 VNĐ cho công cụ giám sát máy trạm nhờ tận dụng Microsoft Sysmon và các thư viện mã nguồn mở.
  • Tiết kiệm thời gian SOC: Giảm 65% thời gian điều tra thủ công chuỗi tấn công của chuyên viên phân tích bậc L1/L2 nhờ cây hồ sơ tiến trình đã được tiền xử lý và gán nhãn sẵn MITRE ATT&CK.

Hạn chế và hướng phát triển

Hạn chế kỹ thuật

  • Độ trễ xây dựng đồ thị: Với các cuộc tấn công dạng "chớp nhoáng" diễn ra trong vài mili-giây, việc chờ đợi sự kiện kết thúc tiến trình để hoàn thiện đồ thị có thể gây ra độ trễ nhỏ trong việc phát hiện.
  • Phụ thuộc vào tính toàn vẹn của Sysmon: Nếu mã độc sử dụng các kỹ thuật vô hiệu hóa Sysmon ở mức Ring 0 (Kernel-level Rootkit unhooking), luồng dữ liệu đầu vào sẽ bị gián đoạn.
  • Chi phí tính toán nhúng đồ thị: Quá trình huấn luyện biểu diễn Graph2Vec đòi hỏi năng lực xử lý cao khi số lượng tiến trình đồng thời tăng đột biến.

Hướng nghiên cứu tương lai

  1. Nghiên cứu mô hình Đồ thị động (Dynamic Graph Neural Networks - GNN / GAT) cho phép phân loại và chấm điểm rủi ro theo thời gian thực (Streaming Graph Classification) mà không cần đợi tiến trình kết thúc.
  2. Mở rộng tập giám sát hành vi trên các hệ điều hành Linux (qua Auditd/eBPF) và macOS (qua Endpoint Security Framework).
  3. Kết hợp học bán giám sát (Semi-supervised Learning) hoặc Active Learning để tự động học hỏi từ các luồng hành vi mới của người dùng mà không cần gán nhãn thủ công quy mô lớn.

Đối tượng hưởng lợi

  • Sinh viên ngành An toàn thông tin & CNTT: Tiếp cận tài liệu tham khảo hoàn chỉnh kết hợp giữa lý thuyết đồ thị nâng cao, mô hình phân tích chuỗi nhúng và ứng dụng thực tiễn trong an ninh máy trạm.
  • Kỹ sư bảo mật & Lập trình viên: Nắm bắt phương pháp xử lý dữ liệu log Sysmon, kỹ thuật băm Weisfeiler-Lehman và mô hình Skip-Gram để ứng dụng vào các hệ thống phát hiện xâm nhập (HIDS/EDR).
  • Doanh nghiệp vừa và nhỏ (SMEs): Cơ sở để xây dựng hệ thống giám sát an ninh nội bộ chi phí thấp, tối ưu tài nguyên nhưng vẫn đảm bảo khả năng phát hiện các mối đe dọa dai dẳng nâng cao.
  • Cộng đồng nghiên cứu: Cung cấp bộ số liệu thực nghiệm chi tiết trên quy mô hơn 358.000 mẫu, tạo tiền đề so sánh đối sánh cho các phương pháp phân loại mã độc trên nền tảng học máy sau này.

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

1. Yêu cầu phần cứng và phần mềm tối thiểu để triển khai giải pháp là gì?

  • Máy trạm (Endpoint): Windows 10/11, CPU 2 Cores, RAM trống tối thiểu 100 MB, cài đặt sẵn Microsoft Sysmon v13+.
  • Máy chủ xử lý (Inference Engine): Ubuntu 20.04/22.04 LTS, CPU 8 Cores, RAM 16 GB, card đồ họa NVIDIA (khuyến nghị có CUDA để huấn luyện lại mô hình định kỳ), Python 3.8+ và môi trường PyTorch.

2. Mô hình có thể xử lý bao nhiêu tiến trình mỗi giây khi triển khai quy mô lớn?

Trên máy chủ xử lý trang bị CPU Intel Xeon 8 Cores, pipeline xử lý vector Graph2Vec kết hợp mô hình MLP có thể suy luận trung bình 1.200 - 1.500 hồ sơ tiến trình/giây, đáp ứng nhu cầu giám sát đồng thời cho hệ thống từ 500 đến 1.000 máy trạm văn phòng thông thường.

3. Giải pháp tích hợp vào hệ thống giám sát hiện có (SIEM/SOC) như thế nào?

Dữ liệu phân loại sau khi chạy qua bộ suy luận sẽ xuất ra định dạng chuẩn JSON Syslog hoặc đẩy qua Webhook API tới các nền tảng SIEM như Splunk, IBM QRadar, Wazuh hoặc Microsoft Sentinel với đầy đủ thông tin về Process Tree ID, nhãn cảnh báo và các kỹ thuật MITRE ATT&CK liên đới.

4. Hệ thống cần bảo trì và tái huấn luyện (Retrain) theo chu kỳ như thế nào?

Khuyến nghị thực hiện thu thập mẫu mới và tái huấn luyện mô hình định kỳ mỗi tháng một lần hoặc khi có các biến thể mã độc mới xuất hiện trên môi trường thực tế, nhằm cập nhật từ vựng đồ thị con (Rooted Subgraphs Vocabulary) và điều chỉnh trọng số mạng MLP.

5. Chi phí triển khai và thời gian hoàn vốn (ROI) ước tính ra sao?

Do sử dụng hoàn toàn hạ tầng mã nguồn mở và công cụ miễn phí từ Microsoft, chi phí triển khai trực tiếp gần như bằng không. Doanh nghiệp tiết kiệm được từ 15.000 - 30.000 USD/năm chi phí mua bản quyền các giải pháp EDR thương mại đắt đỏ trên mỗi 500 endpoints, thời gian hoàn vốn thực tế đạt dưới 3 tháng.


Kết luận

Đồ án tốt nghiệp "Nghiên cứu phương pháp phát hiện mã độc dựa trên hành vi sử dụng học máy" của sinh viên Nguyễn Thị Hoa đã giải quyết thành công bài toán phát hiện mã độc thế hệ mới trên máy trạm thông qua việc chuyển dịch tư duy từ giám sát dấu hiệu tĩnh sang mô hình hóa hành vi đồ thị có hướng. Việc kết hợp chặt chẽ giữa dữ liệu sự kiện hệ điều hành Sysmon, khung kỹ thuật MITRE ATT&CK, thuật toán nhúng đồ thị Graph2Vec và mạng nơ-ron đa tầng MLP đã tạo nên một giải pháp phát hiện mã độc toàn diện với độ chính xác ấn tượng 98,21%.

Kết quả nghiên cứu không chỉ đóng góp giá trị học thuật sâu sắc trong lĩnh vực Machine Learning for Cybersecurity mà còn mở ra tiềm năng ứng dụng thực tiễn to lớn trong việc xây dựng các hệ sinh thái giám sát an toàn thông tin tự chủ, thông minh và hiệu quả cao tại Việt Nam.