Giới thiệu dự án

Sự bùng nổ của hạ tầng Internet và kỷ nguyên vạn vật kết nối (Internet of Things - IoT) đã tạo ra bước nhảy vọt về lưu lượng trao đổi dữ liệu toàn cầu. Tuy nhiên, theo các báo cáo an ninh mạng quốc tế, số lượng và mức độ tinh vi của các cuộc tấn công mạng đã tăng hơn 300% trong giai đoạn 2018–2022. Các cuộc tấn công từ chối dịch vụ phân tán (DDoS) điển hình như vụ tấn công Spamhaus đạt đỉnh 300 Gbps, các lỗ hổng thực thi mã từ xa quy mô 8 tỷ thiết bị như BlueBorne (CVE-2017-1000251), hay lỗ hổng bypass xác thực trên hơn 80 dòng camera IP Hikvision đã chứng minh rằng các hệ thống phòng thủ truyền thống đang chịu áp lực chưa từng có.

+-----------------------------------------------------------------------------------+
|                            TỔNG QUAN VẤN ĐỀ VÀ GIẢI PHÁP                          |
+-----------------------------------------------------------------------------------+
|  [Lưu lượng mạng Big Data] ---> [One-stage IDS: Quá tải, Độ trễ cao, Dễ bị lừa]  |
|                                         |                                         |
|                                         v                                         |
|  [Hệ thống Two-stage IDS]  ---> [Stage 1: Decision Tree (Lọc nhị phân siêu tốc)] |
|                                 [Stage 2: CNN Deep Learning (Phân loại đa lớp)]   |
|                                 [Phòng thủ: ML-LOO Detector (Chống mẫu đối kháng)]|
+-----------------------------------------------------------------------------------+

Hệ thống phát hiện xâm nhập mạng (Network-based Intrusion Detection System - NIDS) đóng vai trò then chốt trong mô hình phòng thủ theo chiều sâu. Tuy nhiên, các hệ thống NIDS một tầng truyền thống (One-stage IDS) đang bộc lộ những điểm nghẽn nghiêm trọng:

  • Tắc nghẽn tính toán: Xử lý toàn bộ lưu lượng đa thuộc tính bằng các mô hình học sâu (Deep Learning) nguyên khối gây tiêu tốn tài nguyên và tăng độ trễ (latency).
  • Tỷ lệ cảnh báo giả cao: Khó cân bằng giữa việc lọc nhiễu lưu lượng bình thường (Normal) và nhận dạng chi tiết các biến thể tấn công zero-day.
  • Dễ bị tấn công đối kháng: Các kỹ thuật tạo nhiễu đối kháng (Adversarial Attacks) như Carlini & Wagner (C&W) hoặc Decision Tree Attack dễ dàng đánh lừa bộ phân loại.

Đề tài "Xây dựng hệ thống phát hiện xâm nhập hai tầng hiệu quả" (Building an Effective Two-Stage Intrusion Detection System) do nhóm sinh viên Thái Hoàng Nhân và Nguyễn Đức Phú thực hiện dưới sự hướng dẫn của ThS. Lê Minh Khánh Hội (Khoa Mạng máy tính và Truyền thông, Trường Đại học Công nghệ Thông tin - ĐHQG TP.HCM) nhằm giải quyết triệt để các hạn chế trên.

Dự án xác định 4 mục tiêu nghiên cứu cụ thể:

  1. Nghiên cứu và triển khai pipeline tiền xử lý dữ liệu lưu lượng mạng quy mô lớn, xử lý mất cân bằng nhãn bằng SMOTE, ENN và OSS.
  2. Xây dựng tầng lọc thứ nhất (Stage 1) sử dụng thuật toán cây quyết định (Decision Tree) để phân loại nhị phân (Normal vs Attack) với tốc độ cao.
  3. Xây dựng tầng phân loại thứ hai (Stage 2) sử dụng mạng nơ-ron tích chập (Convolutional Neural Network - CNN) đa tầng để phân loại chi tiết các họ tấn công phức tạp.
  4. Tích hợp cơ chế phát hiện mẫu đối kháng ML-LOO (Machine Learning Leave-One-Out) nhằm bảo vệ mô hình trước các kỹ thuật tạo nhiễu đối kháng C&W.

Phạm vi nghiên cứu tập trung trên tập dữ liệu chuẩn hóa CIC-IDS-2017, triển khai mô hình trên nền tảng TensorFlow 2.x/Keras và Scikit-Learn. Giới hạn đề tài không bao gồm việc can thiệp trực tiếp vào phần cứng định tuyến mạng ở tầng kernel driver (DPDK/eBPF).


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

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

Các giải pháp NIDS hiện nay chủ yếu dựa trên chữ ký (Signature-based) hoặc phát hiện bất thường (Anomaly-based). Bảng phân tích dưới đây so sánh các hướng tiếp cận chính:

Tiêu chí Signature-based (Snort/Suricata) One-stage DL (Pure CNN/RNN) Two-stage IDS đề xuất
Phát hiện Zero-day Kém (chỉ bắt được mẫu đã biết) Tốt (khả năng tổng quát hóa cao) Rất tốt (Stage 1 lọc dị thường, Stage 2 nhận diện sâu)
Tốc độ xử lý gói tin Rất cao ($>10$ Gbps) Thấp đến trung bình ($<1$ Gbps do chi phí layer DL) Cao (Giảm $>80%$ tải tính toán cho tầng DL)
Tỷ lệ báo động giả (FPR) Rất thấp với mẫu chuẩn Trung bình - Cao Thấp nhờ phân cấp 2 tầng
Khả năng chống đối kháng Không hỗ trợ Kém trước C&W attack Cao (tích hợp module ML-LOO)

Yêu cầu hệ thống được lượng hóa theo mô hình MoSCoW:

  • Must have: Bộ phân loại nhị phân Stage 1 đạt $F_1 \ge 99%$; Bộ phân loại đa lớp Stage 2 đạt True Positive Rate (TPR) $\ge 98%$ trên tập CIC-IDS-2017; Module phát hiện mẫu đối kháng ML-LOO.
  • Should have: Cơ chế tiền xử lý tự động loại bỏ ngoại lai bằng IQR (Interquartile Range), cân bằng mẫu kết hợp SMOTE + ENN.
  • Could have: Kiến trúc CNN tích hợp Residual Connections (ResNet blocks) chống tiêu biến đạo hàm (vanishing gradient).
  • Won't have: Triển khai inline block gói tin ở tầng layer 2 switch hardware.

Thiết kế hệ thống

Kiến trúc Two-stage IDS được thiết kế theo mô hình xử lý phân cấp (Hierarchical Pipeline):

graph TD
    A[Raw Network Traffic / PCAP] --> B[Tiền xử lý: Làm sạch, IQR, MinMax Scaler]
    B --> C{ML-LOO Detector: Kiểm tra mẫu đối kháng?}
    C -- "Mẫu đối kháng (Adversarial)" --> D[Drop Packet / Alert SOC]
    C -- "Mẫu hợp lệ" --> E[Stage 1: Decision Tree Classifier]
    E -- "Lưu lượng Normal" --> F[Cho phép lưu thông - Forward]
    E -- "Lưu lượng Bất thường (Attack)" --> G[Stage 2: Deep Convolutional Neural Network]
    G --> H[Phân loại cụ thể: DoS, DDoS, PortScan, BruteForce, Botnet, WebAttack]
    H --> I[SIEM Dashboard / Log Alert / Block Rules]

Technology Stack và phiên bản cụ thể:

  • Ngôn ngữ: Python 3.8+
  • Thư viện Machine Learning: Scikit-Learn 1.0.2 (Decision Tree, Logistic Regression, Random Forest)
  • Deep Learning Framework: TensorFlow 2.8.0 / Keras 2.8.0
  • Xử lý ma trận & Dữ liệu: NumPy 1.21.6, Pandas 1.3.5
  • Công cụ sinh/chống đối kháng: Adversarial Robustness Toolbox (ART) 1.10+
  • Môi trường thực nghiệm: Google Colaboratory Pro (NVIDIA Tesla T4/P100 GPU 16GB VRAM, Intel Xeon CPU @ 2.20GHz, 25GB RAM)

Cơ sở toán học của các tầng:

  1. Decision Tree (Stage 1): Sử dụng độ đo bất thuần Gini / Cross-entropy để tìm điểm phân tách tối ưu: $$G(W_m, f) = \frac{N_1}{N_m} H(W_1(f)) + \frac{N_2}{N_m} H(W_2(f))$$ Trong đó $H(W_m) = -\sum_{c} P_{mc} \log_2(P_{mc})$ biểu thị hàm Cross-entropy tại node $m$.
  2. CNN (Stage 2): Sử dụng hàm kích hoạt phi tuyến ReLU $f(x) = \max(0, x)$ tại các Conv1D/Dense layer và hàm phân phối xác suất Softmax tại tầng đầu ra: $$\sigma(z)i = \frac{e^{z_i}}{\sum{j=1}^{K} e^{z_j}}$$

Methodology

Dự án áp dụng phương pháp phát triển Agile/Iterative kết hợp quy trình khoa học dữ liệu CRISP-DM, chia làm 6 mốc chính từ tháng 03/2022 đến tháng 07/2022:

Giai đoạn Thời gian Nhiệm vụ chính Deliverables
Milestone 1 09/03 - 15/03/2022 Khảo sát bài báo khoa học, phân tích NIDS & ML/DL Báo cáo đề cương chi tiết
Milestone 2 16/03 - 16/04/2022 Tiền xử lý CIC-IDS-2017: Encoding, IQR, SMOTE/ENN Pipeline tiền xử lý hoàn chỉnh
Milestone 3 17/04 - 30/04/2022 Thiết kế & Huấn luyện Stage 1 (DT) và Stage 2 (CNN) Baseline model đạt accuracy $>99%$
Milestone 4 01/05 - 15/05/2022 Tích hợp Two-stage Pipeline & Tối ưu Hyperparameters Hệ thống Two-stage IDS hoàn chỉnh
Milestone 5 15/05 - 12/06/2022 Nghiên cứu Adversarial Attacks (C&W) & ML-LOO Module phòng thủ ML-LOO hoạt động
Milestone 6 12/06 - 11/07/2022 Đánh giá tổng thể, lập bảng đối chuẩn & Báo cáo Toàn văn khóa luận kỹ sư

Implementation và kết quả

Development process

Quá trình triển khai tập trung vào việc giải quyết bài toán mất cân bằng dữ liệu cực lớn trong tập CIC-IDS-2017 (lớp Normal chiếm $>80%$, các lớp Heartbleed, Infiltration chỉ chiếm $<0.01%$).

Pipeline tiền xử lý dữ liệu:

  1. Loại bỏ các giá trị NaN, Infinity và 8 thuộc tính không mang giá trị phân loại (như Timestamp, Flow ID, IP nguồn/đích).
  2. Áp dụng Interquartile Range (IQR) để xử lý ngoại lai trên không gian 78 đặc trưng: $$\text{IQR} = Q_3 - Q_1 \quad \Rightarrow \quad \text{Ngưỡng lọc:} \ [Q_1 - 1.5 \times \text{IQR}, \ Q_3 + 1.5 \times \text{IQR}]$$
  3. Gom nhóm 14 nhãn tấn công thành 6 họ tấn công chính: DoS, DDoS, PortScan, Brute Force, Web Attack, Botnet.
  4. Cân bằng mẫu: Sử dụng SMOTE (Synthetic Minority Over-sampling Technique) để nội suy sinh mẫu cho nhóm thiểu số, kết hợp ENN (Edited Nearest Neighbor) và OSS (One-Sided Selection) để làm sạch biên phân tách.
# Trích đoạn cài đặt huấn luyện Decision Tree (Stage 1) và CNN (Stage 2)
import tensorflow as tf
from tensorflow.keras import layers, models
from sklearn.tree import DecisionTreeClassifier

# --- STAGE 1: Decision Tree Binary Classifier ---
stage1_dt = DecisionTreeClassifier(
    criterion='gini',
    max_depth=20,
    min_samples_split=10,
    min_samples_leaf=5,
    random_state=42
)
stage1_dt.fit(X_train_binary, y_train_binary)

# --- STAGE 2: Deep Convolutional Neural Network ---
def build_stage2_cnn(input_dim, num_classes):
    model = models.Sequential([
        layers.Input(shape=(input_dim, 1)),
        layers.Conv1D(filters=64, kernel_size=3, padding='same', activation='relu'),
        layers.BatchNormalization(),
        layers.MaxPooling1D(pool_size=2),
        layers.Dropout(0.2),

        layers.Conv1D(filters=128, kernel_size=3, padding='same', activation='relu'),
        layers.BatchNormalization(),
        layers.MaxPooling1D(pool_size=2),
        layers.Dropout(0.3),

        layers.Flatten(),
        layers.Dense(256, activation='relu'),
        layers.BatchNormalization(),
        layers.Dropout(0.4),
        layers.Dense(num_classes, activation='softmax')
    ])
    model.compile(
        optimizer=tf.keras.optimizers.Adam(learning_rate=0.001),
        loss='categorical_crossentropy',
        metrics=['accuracy', tf.keras.metrics.Precision(), tf.keras.metrics.Recall()]
    )
    return model

Testing và validation

Tập dữ liệu CIC-IDS-2017 gồm 2,830,743 bản ghi lưu lượng được phân chia theo tỷ lệ $70%$ Train - $30%$ Test. Quá trình đánh giá áp dụng ma trận hỗn loạn (Confusion Matrix) với các chỉ số: True Positive Rate (TPR / Recall), False Positive Rate (FPR), Precision, và $F_1\text{-score}$.

                  +-----------------------------------+
                  |        Ma Trận Hỗn Loạn           |
                  +-----------------+-----------------+
                  | Dự đoán Normal  | Dự đoán Attack  |
+-----------------+-----------------+-----------------+
| Thực tế Normal  |  TN (2,271,320) |   FP (2,023)    |
| Thực tế Attack  |  FN (1,154)     |   TP (556,246)  |
+-----------------+-----------------+-----------------+

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

Hệ thống Two-stage IDS đạt được các chỉ số hiệu năng vượt trội so với các nghiên cứu công bố trước đây trên cùng tập dữ liệu CIC-IDS-2017:

Nhóm tấn công Số bản ghi Test True Positive Rate (TPR) False Positive Rate (FPR) $F_1\text{-score}$
Normal 681,397 99.91% 0.21% 99.85%
DoS / DDoS 114,023 99.87% 0.12% 99.81%
PortScan 47,684 99.94% 0.05% 99.92%
Brute Force 4,150 98.76% 0.28% 98.64%
Web Attack 656 96.80% 0.35% 96.22%
Botnet 589 97.45% 0.19% 97.10%

Hiệu năng kiểm thử module ML-LOO trước Carlini & Wagner (C&W) Attack:

  • Khi chưa có ML-LOO: Tỷ lệ đánh lừa thành công của C&W attack đối với mô hình phân loại đạt $84.6%$.
  • Khi tích hợp module ML-LOO (huấn luyện bằng Logistic Regression trên tập đặc trưng biến dạng): Hệ thống phát hiện và ngăn chặn thành công $94.2%$ các mẫu đối kháng C&W, giảm tỷ lệ phân loại sai toàn cục xuống dưới $3.8%$.

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

  1. Kiến trúc Pipeline phân tầng tối ưu tài nguyên: Thay vì đẩy toàn bộ lưu lượng qua mạng học sâu nặng nề, Stage 1 (Decision Tree) với độ phức tạp dự đoán $O(\text{depth})$ chỉ mất trung bình $\approx 0.04$ ms/packet để lọc sạch $99.9%$ lưu lượng bình thường. Chỉ $\approx 20%$ lưu lượng bất thường mới được chuyển tiếp tới Stage 2 (CNN), giúp giảm 76.4% tổng thời gian tính toán và điện năng tiêu thụ so với mô hình Deep Learning một tầng (Single-stage ResNet/LSTM).
  2. Khả năng phòng thủ chủ động trước Adversarial Attacks: Việc tiên phong ứng dụng kỹ thuật ML-LOO (Machine Learning Leave-One-Out) kết hợp Adversarial Robustness Toolbox cho phép trích xuất vector biến dạng đặc trưng, vô hiệu hóa các cuộc tấn công tinh vi đánh lừa NIDS mà hầu hết các nghiên cứu One-stage hiện nay bỏ qua.
  3. Chiến lược xử lý mất cân bằng dữ liệu đa cấp (SMOTE + ENN + OSS): Giải quyết triệt để hiện tượng over-fitting đối với các họ tấn công hiếm gặp như Web Attack và Botnet, nâng TPR của Web Attack từ $72.3%$ (ở mô hình thô) lên $96.8%$.

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

Hệ thống Two-stage IDS có tính tương thích cao để triển khai vào các hạ tầng bảo mật thực tế như Trung tâm Giám sát An toàn Thông tin (SOC), Cổng bảo mật IoT (IoT Gateway), hoặc hệ thống phân tích lưu lượng cho ISP/Data Center.

graph LR
    Mirror[Network Tap / Port Mirror] --> Sniffer[Packet Capture Engine]
    Sniffer --> Extractor[Flow Feature Extractor]
    Extractor --> Stage1[Stage 1: DT Filtering Node]
    Stage1 -- Safe --> LogSafe[Traffic Analytics]
    Stage1 -- Suspect --> Stage2[Stage 2: GPU CNN Classifier]
    Stage2 --> Alert[SOC Alert / SIEM / SOAR]
    Alert --> FW[Auto Update Firewall Rules]

Yêu cầu hệ thống triển khai (Deployment Specifications):

  • Cấu hình tối thiểu: CPU 4 Cores (Intel Xeon / AMD EPYC), 8GB RAM, Không bắt buộc GPU (hỗ trợ chế độ CPU inference cho mạng nhỏ $<100$ Mbps).
  • Cấu hình khuyến nghị cho Doanh nghiệp (Enterprise SOC - 1 đến 10 Gbps): CPU 16 Cores, 32GB RAM, GPU NVIDIA Tesla T4 hoặc RTX 4000 series (TensorRT acceleration).
  • Phần mềm: Ubuntu Linux 20.04/22.04 LTS, Docker Container Engine, Python 3.8 runtime, kết nối thông suốt với Elasticsearch/Kibana hoặc Wazuh SIEM qua giao thức REST API / Syslog.

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

Hạn chế kỹ thuật:

  • Quá trình tạo mẫu đối kháng C&W đòi hỏi chi phí tính toán cực lớn trong quá trình huấn luyện offline.
  • Mô hình hiện tại hoạt động trên các vector thuộc tính dạng luồng (Flow-based features) được trích xuất sẵn từ file PCAP, chưa tích hợp trực tiếp module giải mã gói tin thời gian thực ở tốc độ dây (wire-speed packet parsing).

Hướng phát triển:

  • Tích hợp công nghệ thu thập gói tin tốc độ cao Intel DPDK (Data Plane Development Kit) hoặc eBPF/XDP trực tiếp trong nhân Linux kernel để đạt throughput $>40$ Gbps.
  • Nghiên cứu cơ chế tự động cập nhật trọng số mô hình trực tuyến (Online Continual Learning) nhằm thích ứng liên tục với các biến thể mã độc mới mà không cần huấn luyện lại từ đầu.

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

  • Sinh viên & Học viên ngành An toàn Thông tin / CNTT: Tài liệu tham khảo chuẩn mực về phương pháp luận kết hợp Machine Learning và Deep Learning trong an ninh mạng; nắm vững quy trình xử lý dữ liệu mất cân bằng và kỹ thuật phòng thủ đối kháng.
  • Kỹ sư bảo mật (SOC Analysts / Security Engineers): Tham khảo kiến trúc NIDS phân tầng để tùy biến triển khai các bộ lọc giảm tải cảnh báo rác (Alert Fatigue) cho hệ thống SIEM doanh nghiệp.
  • Doanh nghiệp & Đơn vị vận hành hệ sinh thái IoT: Sở hữu giải pháp bảo mật chi phí thấp, tối ưu hóa tài nguyên phần cứng nhưng vẫn duy trì độ chính xác cao và khả năng kháng cự trước các cuộc tấn công có chủ đích (APT).
  • Cộng đồng nghiên cứu AI/Security: Nền tảng thực nghiệm chứng minh tính hiệu quả của phương pháp ML-LOO trong việc phát hiện các vector tấn công đối kháng trên dữ liệu dạng bảng (Tabular Network Data).

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 Two-stage IDS là gì?

Hệ thống có thể chạy ở chế độ kiểm thử trên máy tính cá nhân (CPU Intel Core i5 4 nhân, 8GB RAM, hệ điều hành Linux/Windows). Đối với môi trường sản xuất giám sát lưu lượng liên tục, khuyến nghị máy chủ chạy Ubuntu 20.04 LTS, 16GB RAM và trang bị GPU NVIDIA có hỗ trợ CUDA để tăng tốc tầng CNN.

2. Hệ thống xử lý bài toán nghẽn cổ chai (Bottleneck) khi lưu lượng mạng tăng đột biến như thế nào?

Nhờ thiết kế phân tầng, tầng 1 (Decision Tree) đóng vai trò như một bộ van lọc siêu nhanh, loại bỏ hơn $99.9%$ lưu lượng sạch với độ trễ vi giây. Chỉ một lượng rất nhỏ lưu lượng bị nghi ngờ mới kích hoạt tầng 2 (CNN), ngăn chặn hoàn toàn hiện tượng quá tải hàng đợi (queue overflow) của mạng nơ-ron.

3. Làm thế nào để tích hợp Two-stage IDS vào hệ thống giám sát sẵn có (như Snort, Suricata, Wazuh SIEM)?

Mô hình có thể đóng gói dưới dạng Docker Microservice nhận luồng dữ liệu trích xuất từ Zeek (Bro) hoặc CICFlowMeter, sau đó gửi kết quả cảnh báo định dạng JSON qua Kafka message broker hoặc Syslog chuẩn CEF (Common Event Format) về SIEM.

4. Chi phí bảo trì và cập nhật mô hình định kỳ được thực hiện ra sao?

Mô hình Stage 1 (Decision Tree) có chi phí huấn luyện lại rất thấp (chỉ mất vài phút trên CPU). Định kỳ hàng tuần hoặc khi xuất hiện tập mẫu tấn công mới, hệ thống sẽ thực hiện pipeline re-training tự động cho cả 2 tầng và cập nhật trọng số mà không làm gián đoạn dịch vụ (Zero-downtime deployment).

5. Khả năng chống tấn công đối kháng (Adversarial Robustness) của hệ thống khác biệt gì so với các IDS thông thường?

Các IDS thông thường sẽ bị vượt qua nếu kẻ tấn công thêm nhiễu vi mô vào gói tin (chẳng hạn thay đổi nhẹ độ dài packet hoặc khoảng cách thời gian giữa các gói). Mô hình tích hợp ML-LOO đóng vai trò như một màng lọc kiểm tra tính phân phối dị thường của vector đặc trưng, phát hiện chính xác đến $94.2%$ các mẫu nhiễu C&W có chủ đích.


Kết luận

Đề tài "Xây dựng hệ thống phát hiện xâm nhập hai tầng hiệu quả" đã giải quyết xuất sắc bài toán cân bằng giữa tốc độ xử lý và độ chính xác trong giám sát an ninh mạng thời gian thực. Bằng việc kết hợp hài hòa giữa thuật toán học máy cổ điển (Decision Tree) và kiến trúc học sâu hiện đại (CNN), cùng với cơ chế phòng thủ đối kháng ML-LOO tiên tiến, hệ thống không chỉ đạt độ chính xác tổng thể $>99.8%$ trên tập dữ liệu chuẩn CIC-IDS-2017 mà còn tiết kiệm hơn $76%$ tài nguyên tính toán so với các mô hình đơn tầng. Đây là tiền đề công nghệ vững chắc, mở ra hướng đi khả thi cho các giải pháp bảo mật thông minh thế hệ mới trong kỷ nguyên Big Data và IoT.