Giới thiệu dự án

Trong bối cảnh bùng nổ của các cuộc tấn công mạng có chủ đích (Advanced Persistent Threats - APT) và chiến tranh thông tin mạng (Cyber Warfare), các hệ thống phòng thủ truyền thống dựa trên tường lửa tĩnh hay chữ ký nhận diện (signature-based IDS) đang dần bộc lộ nhiều lỗ hổng nghiêm trọng. Theo các báo cáo an ninh mạng toàn cầu, chi phí thiệt hại do rò rỉ dữ liệu và tấn công gián điệp mạng liên tục gia tăng qua từng năm, đặt ra bài toán cấp bách về việc xây dựng các mô hình phòng thủ chủ động và tối ưu hóa nguồn lực bảo mật.

Đồ án tốt nghiệp chuyên ngành Khoa học Máy tính tại Trường Đại học Sư phạm TP.HCM với đề tài "Ứng dụng Lý thuyết Đồ thị và Lý thuyết Trò chơi vào việc mô phỏng hệ thống đối kháng trong không gian mạng" được thực hiện nhằm giải quyết trực tiếp bài toán ra quyết định chiến lược trong điều kiện thông tin bất cân xứng giữa hai phe: phe tấn công (Attacker) và phe phòng thủ (Defender).

                      +------------------------------------------+
                      |       Không gian mạng (Cyber Space)      |
                      +--------------------+---------------------+
                                           |
                    +----------------------+----------------------+
                    |                                             |
                    v                                             v
       +-------------------------+                   +-------------------------+
       |   Phe Phòng Thủ (P1)    |                   |   Phe Tấn Công (P2)     |
       |  - Quan sát / Đặt bẫy   | <--- Zero-Sum --->|  - Thâm nhập / Rút lui  |
       |  - Chi phí: Pc = 5      |      Payoff       |  - Chi phí: Ac = 7      |
       |  - Ngân sách: Budget=10 |      Matrix       |  - Tối đa hóa phần thưởng|
       +-------------------------+                   +-------------------------+
                    |                                             |
                    +----------------------+----------------------+
                                           |
                                           v
                      +------------------------------------------+
                      |   Cân bằng Nash / Minimax Optimization   |
                      +------------------------------------------+

Mục tiêu dự án

  1. Mô hình hóa không gian mạng dưới dạng đồ thị có trọng số: Áp dụng Lý thuyết Đồ thị (Graph Theory) để trừu tượng hóa các máy chủ, lỗ hổng bảo mật thành các nút (nodes) với trọng số giá trị tài sản ($w_v$), và các đường truyền/khả năng khai thác thành các cạnh (edges).
  2. Xây dựng khung lý thuyết trò chơi tổng bằng không (Zero-Sum Game): Định nghĩa không gian chiến lược, hàm thưởng phạt (payoff matrix) và mô hình hóa xung đột lợi ích giữa kẻ tấn công và người phòng thủ.
  3. Phát triển và tối ưu hóa thuật toán chiến thuật: Thiết lập thuật toán tìm đường đi dài nhất (Longest Path) cho phe tấn công và thuật toán đường giao nhau (Intersecting Path Trap Strategy) cho phe phòng thủ.
  4. Xây dựng ứng dụng mô phỏng trực quan: Hiện thực hóa phần mềm mô phỏng tương tác đối kháng theo lượt, hỗ trợ tính toán cân bằng Nash và quy hoạch tuyến tính (Linear Programming).

Phương pháp tiếp cận và phạm vi

  • Phương pháp tiếp cận: Kết hợp mô hình toán học giải tích, quy hoạch tuyến tính Minimax và thuật toán đồ thị duyệt vết để đưa ra quyết định đặt bẫy honeypot tối ưu dựa trên ngân sách cố định ($\sum P_c \le \text{budget}$).
  • Phạm vi nghiên cứu: Trò chơi đối kháng 2 người chơi (2-player game) trên các cấu trúc liên kết mạng tiêu chuẩn (Star, Bus, Ring, Mesh, Hierarchical Topology) với thông tin không hoàn hảo.

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

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

Trước khi đề xuất mô hình, việc đánh giá các giải pháp phòng thủ hiện hữu là điều kiện tiên quyết:

Tiêu chí so sánh Hệ thống phòng thủ tĩnh (Static IDS/IPS) Mô hình Học tăng cường (Aggarwal et al. - HoneyGame) Mô hình Lý thuyết Trò chơi & Đồ thị (Đề tài)
Cơ chế ra quyết định Dựa trên luật cố định/Rule-based Dựa trên thử - sai (Trial & Error Q-Learning) Dựa trên điểm cân bằng Nash & Tối ưu Minimax
Yêu cầu dữ liệu Rất cao (Cơ sở dữ liệu mẫu chữ ký) Cần tập dữ liệu huấn luyện hành vi khổng lồ Không phụ thuộc dữ liệu lịch sử, dựa trên cấu trúc đồ thị
Khả năng dự đoán Thấp, chỉ phản ứng khi đã bị tấn công Trung bình, phụ thuộc vào độ hội tụ mô hình Cao, dự đoán dựa trên đường giao nhau tối ưu
Tối ưu hóa ngân sách Kém linh hoạt Chưa hỗ trợ ràng buộc ngân sách cứng Tối ưu hóa chặt chẽ qua $\sum P_c \le \text{budget}$
Tính minh bạch (Explainability) Cao nhưng cứng nhắc Rất thấp (Hộp đen AI) Rất cao (Chứng minh toán học chặt chẽ)

Phân tích yêu cầu MoSCoW

  • Must have: Ma trận thưởng phạt $R_1, R_2$; mô phỏng cấu trúc liên kết mạng $G(V, E)$; thuật toán đặt bẫy đường giao nhau; giới hạn chi phí $P_c, A_c$.
  • Should have: Giao diện trực quan hóa đồ thị và đường đi thời gian thực; tính toán chiến lược hỗn hợp qua quy hoạch tuyến tính.
  • Could have: Hỗ trợ đa dạng các dạng cấu trúc mạng phức tạp (Hybrid Topology); xuất log diễn tiến trận đấu.
  • Won't have (trong phiên bản hiện tại): Học sâu tăng cường thời gian thực (Deep RL); mô phỏng hàng triệu nút mạng phân tán quy mô Internet.

Thiết kế hệ thống

Kiến trúc phần mềm được thiết kế theo mô hình phân lớp rõ ràng nhằm tách biệt giữa xử lý toán học, quản lý trạng thái đồ thị và hiển thị giao diện:

graph TD
    A[Giao diện Mô phỏng GUI] --> B[Bộ điều phối Game Engine]
    B --> C[Quản lý Đồ thị Topology Manager]
    B --> D[Bộ giải Toán học Payoff & LP Solver]
    
    C --> C1[Tính toán Đường đi Dài nhất]
    C --> C2[Phân tích Đường giao nhau Intersecting Cuts]
    
    D --> D1[Ma trận Thưởng phạt Payoff Matrix]
    D --> D2[Quy hoạch Tuyến tính Minimax LP]
    
    B --> E[Quản lý Trạng thái State & Budget Manager]

Technology Stack

  • Ngôn ngữ lập trình: Python 3.9+
  • Thư viện đồ thị: NetworkX 2.8+ (xử lý cấu trúc đồ thị và liên kết $G(V, E)$)
  • Thư viện tối ưu hóa: SciPy 1.9+ (scipy.optimize.linprog cho bài toán Minimax)
  • Giao diện người dùng: Tkinter / PyQt5 UI framework
  • Thư viện trực quan hóa: Matplotlib 3.5+, Graphviz

Mô hình Toán học và Hàm Thưởng phạt

Quy ước trò chơi tổng bằng không là bộ ba $(N, A, R)$:

  • $N = {1, 2}$: Người chơi 1 (Phòng thủ), Người chơi 2 (Tấn công).
  • $A = A_1 \times A_2$: Tập hành động của hai bên.
  • $P_c$: Chi phí đặt bẫy ($P_c = 5$).
  • $A_c$: Chi phí thực hiện một lượt tấn công ($A_c = 7$).
  • $Cap$: Hệ số thưởng khi bắt thành công kẻ tấn công.
  • $Esc$: Hệ số thưởng khi kẻ tấn công thoát bẫy thành công.
  • $w_v$: Trọng số giá trị của nút $v \in V$.

Hàm phần thưởng của phe phòng thủ $R_1(a_1, a_2)$ được xác định: $$R_1(a_1, a_2) = \begin{cases} -P_c + A_c + Cap \cdot w_v & \text{khi } a_1 = e_{a,v}, a_2 = v \quad (\text{Bắt được}) \ -P_c + A_c - Esc \cdot w_u & \text{khi } a_1 = e_{a,v}, a_2 = u \ (u \neq v) \quad (\text{Thoát bẫy}) \ -P_c & \text{khi } a_1 = e_{a,v}, a_2 = 0 \quad (\text{Tấn công rút lui}) \ 0 & \text{khi } a_1 = 0, a_2 = 0 \quad (\text{Cả hai không hành động}) \end{cases}$$ Do tính chất trò chơi tổng bằng không: $R_2(a_1, a_2) = -R_1(a_1, a_2)$.

Phương pháp luận (Methodology)

Dự án áp dụng quy trình phát triển lặp thích ứng theo 4 giai đoạn chính với sự kiểm soát rủi ro nghiêm ngặt:

  1. Giai đoạn 1 (Tuần 1 - 4): Nghiên cứu lý thuyết, hoàn thiện mô hình toán học và chứng minh bổ đề hội tụ cân bằng Nash.
  2. Giai đoạn 2 (Tuần 5 - 8): Hiện thực hóa cấu trúc đồ thị mạng và phát triển các thuật toán chiến thuật lõi ($O(V+E)$ và $O(V \cdot E)$).
  3. Giai đoạn 3 (Tuần 9 - 12): Xây dựng Game Engine, tích hợp bộ giải quy hoạch tuyến tính và thiết kế GUI.
  4. Giai đoạn 4 (Tuần 13 - 16): Thực nghiệm đa kịch bản (Scenario Testing), đánh giá hiệu năng và hiệu chỉnh tham số.

Implementation và kết quả

Quá trình phát triển và thuật toán cốt lõi

Trọng tâm triển khai kỹ thuật nằm ở 2 thuật toán chiến thuật đối kháng:

1. Thuật toán Phe Tấn công: Tìm đường đi có trọng số lớn nhất (Longest Weighted Path)

Phe tấn công khai thác thông tin mạng để tìm chuỗi các nút có tổng trọng số lớn nhất nhằm tối đa hóa phần thưởng: $$\mathcal{P}^* = \arg\max_{\mathcal{P} \in \text{Paths}(v_{start}, v_{target})} \sum_{v \in \mathcal{P}} w_v - |\mathcal{P}| \cdot A_c$$

2. Thuật toán Phe Phòng thủ: Bẫy đường giao nhau (Intersecting Path Trap Selection)

Thay vì đặt bẫy bị động ở nút đích, hệ thống tìm tất cả các đường đi tiềm năng $\mathcal{P}1, \mathcal{P}2, \dots, \mathcal{P}k$ từ vị trí cuối cùng của kẻ tấn công ($v{last}$) đến các nút mục tiêu có trọng số cao. Cạnh có tần suất xuất hiện cao nhất trong tập đường đi sẽ được chọn để đặt bẫy: $$e^* = \arg\max{e \in E} \sum{i=1}^k \mathbb{I}(e \in \mathcal{P}_i)$$

import networkx as nx
from typing import List, Tuple, Dict

class DefenseStrategyOptimizer:
    def __init__(self, graph: nx.Graph, budget: int = 10, trap_cost: int = 5):
        self.graph = graph
        self.budget = budget
        self.trap_cost = trap_cost

    def find_intersecting_edges(self, start_node: int, target_nodes: List[int]) -> List[Tuple[int, int]]:
        """
        Tìm các cạnh giao nhau có tần suất xuất hiện lớn nhất trên các đường đi
        từ start_node đến danh sách target_nodes.
        """
        edge_frequency: Dict[Tuple[int, int], int] = {}
        
        for target in target_nodes:
            if nx.has_path(self.graph, start_node, target):
                # Tìm tất cả các đường đi đơn giản giữa start và target
                all_paths = list(nx.all_simple_paths(self.graph, source=start_node, target=target))
                for path in all_paths:
                    for i in range(len(path) - 1):
                        edge = tuple(sorted((path[i], path[i+1])))
                        edge_frequency[edge] = edge_frequency.get(edge, 0) + 1
        
        # Sắp xếp các cạnh theo tần suất xuất hiện giảm dần
        sorted_edges = sorted(edge_frequency.items(), key=lambda item: item[1], reverse=True)
        
        # Lựa chọn cạnh đặt bẫy theo ràng buộc ngân sách
        trapped_edges = []
        current_cost = 0
        for edge, freq in sorted_edges:
            if current_cost + self.trap_cost <= self.budget:
                trapped_edges.append(edge)
                current_cost += self.trap_cost
            else:
                break
                
        return trapped_edges

Thử nghiệm và đánh giá thực nghiệm

Mô hình được thử nghiệm trên không gian đồ thị mạng phân cấp gồm 7 đến 15 nút với các thông số cấu hình chuẩn:

  • Ngân sách phòng thủ: $\text{budget} = 10$
  • Chi phí đặt bẫy: $P_c = 5$
  • Chi phí tấn công: $A_c = 7$
  • Phần thưởng bắt giữ: $Cap = 15$
  • Phần thưởng trốn thoát: $Esc = 10$
+-------------------------------------------------------------------------------+
|                      BẢNG THEO DÕI DIỄN TIẾN TRẬN ĐẤU MÔ PHỎNG                |
+------+----------------+----------------+----------------+--------------------+
| Lượt | Vị trí Attack  | Cạnh Đặt Bẫy   | Điểm Attack    | Trạng thái Lượt    |
+------+----------------+----------------+----------------+--------------------+
| T=1  | Node 0         | (0, 2), (2, 9) | 73             | Khởi tạo thâm nhập |
| T=2  | Node 8 -> 1    | (2, 4), (2, 9) | 181 (+108)     | Tấn công thành công|
| T=3  | Node 1 -> 4    | (0, 3)         | 249 (+68)      | Tấn công thành công|
| T=4  | Node 4 -> 3    | (4, 3)         | 0 (Bị bắt)     | Sập bẫy giao nhau  |
+------+----------------+----------------+----------------+--------------------+
gantt
    title Tiến độ Thực thi và Triển khai Đồ án (16 Tuần)
    dateFormat  YYYY-MM-DD
    section Nghiên cứu lý thuyết
    Khảo sát tài liệu & Lý thuyết Trò chơi :2022-01-01, 28d
    Mô hình hóa toán học & Payoff Matrix   :2022-01-15, 21d
    section Hiện thực thuật toán
    Cấu trúc đồ thị NetworkX & Topology   :2022-02-05, 21d
    Thuật toán Longest Path & Intersecting :2022-02-20, 28d
    section Xây dựng Game Engine
    Tích hợp Bộ giải Minimax LP           :2022-03-15, 21d
    Phát triển GUI Mô phỏng               :2022-03-25, 25d
    section Đánh giá & Hoàn thiện
    Thực nghiệm & Tối ưu tham số          :2022-04-10, 20d
    Viết báo cáo & Khóa luận tốt nghiệp   :2022-04-20, 25d

Kết quả đạt được

  • Độ chính xác bẫy bắt: Chiến thuật đường giao nhau giúp tăng tỷ lệ bắt giữ kẻ tấn công lên đến 71.4%, vượt trội hoàn toàn so với mức 28.6% của chiến thuật đặt bẫy đơn lẻ tại nút cực đại.
  • Tối ưu hóa tài nguyên: 100% các quyết định đặt bẫy đều tuân thủ nghiêm ngặt điều kiện ràng buộc ngân sách $\sum P_c \le 10$.
  • Thời gian xử lý thuật toán: Thời gian tính toán nước đi trung bình đạt dưới 15ms trên đồ thị 20 nút, đảm bảo khả năng đáp ứng theo thời gian thực.

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

  1. Chuyển dịch từ lý thuyết thuần túy sang mô hình hóa thực nghiệm: Khắc phục hạn chế của các nghiên cứu quốc tế trước đó vốn chỉ dừng lại ở chứng minh toán học thuần túy hoặc phụ thuộc vào tập dữ liệu người dùng hạn chế.
  2. Chiến thuật bẫy đường giao nhau (Novel Intersecting Cut Strategy): Thay vì bảo vệ tài nguyên trọng yếu một cách thụ động, thuật toán chủ động chặn các "nút thắt cổ chai" (bottlenecks) trên đồ thị dựa trên phân tích tập đường đi $k$-shortest/longest paths.
  3. Mô hình hóa đa cấu trúc mạng: Cho phép cấu hình linh hoạt từ mạng dạng hình sao (Star), dạng tuyến (Bus), dạng vòng (Ring), dạng lưới (Mesh) đến mạng phân cấp (Hierarchical), phản ánh chân thực các kiến trúc mạng doanh nghiệp thực tế.

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

Kịch bản ứng dụng thực tế

  • Hệ thống Honeynet thông minh trong SOC/SIEM: Triển khai tự động các bẫy Honeypot ảo tại các giao điểm mạng chiến lược khi phát hiện dấu hiệu xâm nhập ngang (lateral movement).
  • Mô phỏng Diễn tập An ninh mạng (Cyber Range): Huấn luyện đội ngũ Red Team / Blue Team thông qua môi trường đối kháng tự động với các chiến thuật tối ưu hóa toán học.

Hướng dẫn triển khai và Yêu cầu hệ thống

  • Yêu cầu phần cứng tối thiểu: CPU Dual Core 2.0 GHz, 4GB RAM, 500MB ổ cứng trống.
  • Môi trường phần mềm: Hỗ trợ trên các hệ điều hành Ubuntu 20.04+, CentOS 8+, Windows 10/11, macOS 12+.
  • Quy trình cài đặt:
    # 1. Khởi tạo môi trường ảo Python
    python3 -m venv venv_cybergame
    source venv_cybergame/bin/activate
    
    # 2. Cài đặt các thư viện phụ thuộc
    pip install networkx==2.8.8 scipy==1.9.3 matplotlib==3.5.3 PyQt5==5.15.7
    
    # 3. Khởi chạy chương trình mô phỏng
    python main_simulation.py --topology hierarchical --budget 10 --pc 5 --ac 7
    

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

Hạn chế kỹ thuật

  • Giả định tổng bằng không (Zero-Sum Assumption): Trong thực tế, thiệt hại của bên bị tấn công có thể lớn hơn rất nhiều so với lợi ích của kẻ tấn công (ví dụ: tấn công phá hoại DoS/DDoS hoặc mã hóa tống tiền).
  • Mô hình theo lượt (Turn-based): Chưa phản ánh hoàn toàn tính liên tục và bất đối xứng về thời gian (real-time streaming traffic) của không gian mạng thực.

Hướng phát triển mở rộng

  1. Mở rộng sang Trò chơi tổng khác không (Non-Zero-Sum Game)Mô hình Markov một phần quan sát được (POMDP).
  2. Ứng dụng giải thuật Deep Reinforcement Learning (Multi-Agent PPO / MADDPG) cho các đồ thị mạng quy mô lớn hàng nghìn nút.
  3. Tích hợp trực tiếp dữ liệu quét lỗ hổng thực tế từ các công cụ như Nmap, Nessus để tự động sinh đồ thị $G(V, E)$.

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

+-------------------------------------------------------------------------------+
|                       LỢI ÍCH ĐỊNH LƯỢNG CHO CÁC NHÓM ĐỐI TƯỢNG               |
+-------------------+-----------------------------------------------------------+
| Đối tượng         | Lợi ích & Giá trị thực tiễn                              |
+-------------------+-----------------------------------------------------------+
| Sinh viên CNTT    | - Tiếp cận mã nguồn mẫu trực quan hóa lý thuyết trò chơi.  |
|                   | - Tài liệu tham khảo chuẩn mực về đồ thị ứng dụng.        |
+-------------------+-----------------------------------------------------------+
| Kỹ sư An toàn TT  | - Thuật toán phân bổ Honeypot tối ưu ngân sách.           |
| (SecOps/SOC)      | - Giảm đến 35% chi phí tài nguyên thiết lập bẫy.          |
+-------------------+-----------------------------------------------------------+
| Doanh nghiệp      | - Cung cấp cơ sở khoa học để thiết kế kiến trúc mạng.     |
|                   | - Nâng cao năng lực phòng thủ chủ động trước mã độc APT.  |
+-------------------+-----------------------------------------------------------+
| Nhà nghiên cứu    | - Khung toán học mở rộng cho các bài toán đối kháng mới.  |
|                   | - Bổ đề đã được chứng minh về hội tụ chiến lược hỗn hợp.  |
+-------------------+-----------------------------------------------------------+

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

1. Yêu cầu kỹ thuật tối thiểu để triển khai hệ thống mô phỏng là gì?

Hệ thống yêu cầu môi trường Python 3.9 trở lên, tương thích tốt với mọi hệ điều hành (Linux/Windows/macOS). Các thư viện bắt buộc gồm networkx để quản trị đồ thị, scipy để xử lý bài toán quy hoạch tuyến tính và matplotlib/PyQt5 cho giao diện đồ họa.

2. Thuật toán xử lý thế nào khi không gian trạng thái đồ thị tăng lên hàng nghìn nút?

Với các đồ thị quy mô lớn, thuật toán áp dụng kỹ thuật phân cụm (Graph Clustering) dựa trên hệ số phân cụm (Clustering Coefficient) và độ đo trung tâm (Betweenness Centrality) để rút gọn đồ thị thành các phân vùng trọng yếu trước khi giải ma trận Minimax, đảm bảo độ phức tạp tính toán duy trì ở mức đa thức.

3. Hệ thống có thể tích hợp với các công cụ giám sát mạng hiện có như thế nào?

Mô hình có thể đóng vai trò như một Decision Support Engine cho SIEM/SOAR. Khi SIEM phát hiện cảnh báo quét cổng (Port Scanning) hoặc leo thang đặc quyền, vị trí nghi vấn sẽ được chuyển thành nút $v_{last}$ trong đồ thị, từ đó kích hoạt thuật toán gợi ý các cổng/IP cần triển khai bẫy ảo ngay lập tức.

4. Tại sao lại chọn mô hình Trò chơi có Tổng bằng Không (Zero-Sum)?

Trò chơi tổng bằng không là mô hình chuẩn mực và chặt chẽ nhất để mô tả các cuộc xung đột trực tiếp mất - còn. Việc áp dụng mô hình này cho phép sử dụng định lý Minimax của John von Neumann, đảm bảo luôn tìm được ít nhất một trạng thái cân bằng Nash trong không gian chiến lược hỗn hợp.

5. Chi phí triển khai và hiệu quả đầu tư (ROI) của giải pháp này ra sao?

Giải pháp giúp doanh nghiệp chuyển đổi từ việc đầu tư dàn trải sang phân bổ tài nguyên bảo mật có trọng tâm. Nhờ ràng buộc $\sum P_c \le \text{budget}$, doanh nghiệp có thể tiết kiệm tới 40% chi phí phần cứng dành cho máy chủ ảo hóa honeypot mà vẫn đảm bảo tỷ lệ bao phủ và phát hiện tấn công đạt trên 70%.


Kết luận

Khóa luận tốt nghiệp "Ứng dụng Lý thuyết Đồ thị và Lý thuyết Trò chơi vào việc mô phỏng hệ thống đối kháng trong không gian mạng" của nhóm tác giả Nguyễn Ngọc Toàn, Trương Đức Hải Nguyên dưới sự hướng dẫn của TS. Đặng Quang Vinh đã đóng góp một giải pháp khoa học toàn diện, kết hợp hài hòa giữa cơ sở toán học giải tích và kỹ thuật lập trình mô phỏng thực tế.

Đề tài không chỉ mở ra một hướng tiếp cận trực quan, khả thi cho bài toán phòng thủ an ninh mạng chủ động mà còn là tài liệu tham khảo giá trị cho các kỹ sư bảo mật, sinh viên và các nhà nghiên cứu trong việc thiết kế các hệ sinh thái phòng thủ thông minh trong tương lai.