Giới thiệu dự án

Trong bối cảnh chuyển đổi số và bùng nổ lưu lượng mạng toàn cầu, các cuộc tấn công mạng ngày càng gia tăng về cả quy mô lẫn mức độ tinh vi. Theo các báo cáo an ninh mạng quốc tế, các cuộc tấn công từ chối dịch vụ phân tán (DDoS) và khai thác lỗ hổng giao thức mạng tầng ứng dụng/vận chuyển (L3, L4, L7) tăng hơn 150% qua từng năm, gây thiệt hại hàng tỷ USD cho các tổ chức, doanh nghiệp trên toàn thế giới. Hệ thống phát hiện xâm nhập (Intrusion Detection System - IDS) đóng vai trò là chốt chặn phòng thủ trọng yếu trong kiến trúc an toàn thông tin doanh nghiệp.

+-----------------------------------------------------------------------------------+
|                        MÔ HÌNH HỆ THỐNG ĐÁNH GIÁ IDS REAL-TIME                     |
|                                                                                   |
|  [ Botnet Cluster ]        [ Traffic Generator ]                                  |
|  (BoNeSi / Drdos / Docker) (Normal HTTP / TCP)                                    |
|             \                    /                                                |
|              v                  v                                                 |
|          +--------------------------+                                             |
|          | Target Network Interface |                                             |
|          +--------------------------+                                             |
|                       |                                                           |
|                       v                                                           |
|          +--------------------------+                                             |
|          | Real-time Feature Engine | (CICFlowMeter CLI / pcap4j: 78 -> 26 Feats)  |
|          +--------------------------+                                             |
|                       |                                                           |
|                       v                                                           |
|          +--------------------------+                                             |
|          | AI Inference Engine      | (ML: .sav / DL: .tflite / Scikit / TF)      |
|          +--------------------------+                                             |
|                       |                                                           |
|                       v                                                           |
|          +--------------------------+                                             |
|          | Real-time Metrics & Logs | (Accuracy, F1-Score, Latency, Dashboard)    |
|          +--------------------------+                                             |
+-----------------------------------------------------------------------------------+

Vấn đề thực tiễn (Problem Statement)

Mặc dù các thuật toán Trí tuệ Nhân tạo (AI), Máy học (Machine Learning - ML) và Học sâu (Deep Learning - DL) đã chứng minh hiệu quả phân loại vượt trội trên lý thuyết, việc đưa các mô hình này vào triển khai thực tế trong hệ thống IDS gặp phải những rào cản lớn:

  • Sự thiếu hụt bộ dữ liệu chuẩn hóa và cập nhật: Các tập dữ liệu công khai phổ biến như KDD99 hay NSL-KDD đã lỗi thời, không phản ánh chính xác hành vi lưu lượng mạng đương đại, trong khi các bộ dữ liệu mới (như CIC-IDS2017) thường được gán nhãn tĩnh và không hỗ trợ kiểm thử luồng thời gian thực.
  • Tiêu tốn tài nguyên phần cứng: Việc xây dựng một môi trường kiểm thử mạng thực tế (testbed) để sinh tải và đánh giá IDS tiêu tốn chi phí hạ tầng rất lớn, đòi hỏi hệ thống máy chủ đắt đỏ và cấu hình phức tạp.
  • Độ trễ xử lý luồng mạng (Flow Extraction Latency): Việc bắt gói tin, trích xuất đặc trưng thống kê và nạp vào mô hình AI theo thời gian thực thường gặp hiện tượng thắt nút cổ chai (bottleneck), gây nghẽn hàng đợi và mất mát gói tin.

Mục tiêu của đề tài

  1. Thiết kế và xây dựng môi trường giả lập mạng đa giao thức nhẹ (Lightweight Testbed): Tận dụng công nghệ ảo hóa Docker để đóng gói các botnet node, giả lập chính xác các kiểu tấn công DDoS khuếch đại (Amplification Attacks) và lưu lượng bình thường với chi phí tài nguyên tối thiểu.
  2. Cải tiến công cụ trích xuất đặc trưng mạng thời gian thực: Nâng cấp và viết lại công cụ CICFlowMeter sang chế độ dòng lệnh (CLI) sử dụng thư viện pcap4j, tối ưu hóa việc xuất đặc trưng luồng (Flow Features) trực tiếp từ card mạng với độ trễ thấp.
  3. Phát triển framework đánh giá AI linh hoạt: Xây dựng kiến trúc cho phép người dùng tùy biến nạp các mô hình Machine Learning định dạng .sav (Scikit-Learn) hoặc Deep Learning định dạng .tflite (TensorFlow Lite), hỗ trợ cấu hình giảm chiều dữ liệu (PCA/Feature Selection từ 78 xuống 26 thuộc tính).
  4. Kiểm thử và đánh giá hiệu năng thực nghiệm: Định lượng độ chính xác, độ trễ và khả năng phân loại của hàng loạt thuật toán (Decision Tree, KNN, Logistic Regression, ANN, RNN, LSTM, GRU, CNN-LSTM) trên luồng traffic thực tế.

Phương pháp tiếp cận và kết quả kỳ vọng

  • Phương pháp tiếp cận: Kết hợp mô hình mạng ảo hóa trên nền tảng Docker với các công cụ phát sinh lưu lượng chuyên dụng (BoNeSi, drdos-framework, HKUST-SING/TrafficGenerator). Dữ liệu mạng được giám sát và chuyển đổi thành vector đặc trưng thời gian thực trước khi đưa qua pipeline phân loại của các mô hình AI.
  • Kết quả kỳ vọng:
    • Hệ thống sinh tải đạt thông lượng lên tới 150.000 packets/giây trên phần cứng tiêu chuẩn.
    • Trích xuất 78 và 26 đặc trưng mạng theo thời gian thực với độ trễ trích xuất dưới 15ms cho mỗi flow window.
    • Tỷ lệ phát hiện tấn công (Detection Rate/Accuracy) của các mô hình AI đạt trên 98.5% trên luồng dữ liệu thời gian thực.
    • Giảm thiểu 66.7% số chiều đặc trưng (từ 78 xuống 26 features) giúp tiết kiệm tài nguyên tính toán nhưng độ chính xác suy giảm không quá 1.5%.

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

  • Phạm vi đối tượng: Tập trung vào Hệ thống phát hiện xâm nhập mạng (Network-based IDS - NIDS) dựa trên phân loại luồng dữ liệu (Flow-based).
  • Phạm vi giao thức và tấn công: Hỗ trợ mô phỏng và nhận diện các giao thức tầng mạng và ứng dụng phổ biến: DNS (Port 53), Portmap/RPC (Port 111), NTP (Port 123), SNMP (Port 161), LDAP (Port 389), SSDP (Port 1900), Memcached (Port 11211), TCP SYN Flood, UDP Flood, ICMP Ping Flood và HTTP-GET Flood.
  • Giới hạn: Hệ thống tập trung vào nhiệm vụ phát hiện (Detection) và đánh giá độ chính xác của mô hình trong môi trường thử nghiệm kiểm soát (Isolated Sandbox), chưa trực tiếp can thiệp ngắt kết nối tự động (IPS) trên router biên vật lý.

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

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

Tiêu chí so sánh Snort / Suricata (Signature-Based) Đánh giá Offline trên Dataset (KDD/CIC-IDS) Hệ thống Đánh giá Real-time đề xuất
Cơ chế phát hiện So khớp mẫu chuỗi/chữ ký (Rule-based) Đánh giá vector số học trên file tĩnh Mô hình hóa hành vi bằng AI trên luồng gói tin thực
Phát hiện Zero-day Kém (Phải chờ cập nhật rules) Trung bình (Bị bias bởi dữ liệu tĩnh) Cao (Phân tích bất thường dựa trên thuộc tính thống kê)
Môi trường thực thi Trực tiếp trên card mạng Tải dữ liệu bộ nhớ từ file .csv Chụp gói tin thực, trích xuất flow động qua Docker
Tài nguyên yêu cầu Thấp đến trung bình Thấp (Chỉ cần CPU/RAM huấn luyện) Rất tối ưu nhờ Docker và tối giản chiều dữ liệu
Khả năng mở rộng Giới hạn theo quy tắc viết tay Tĩnh, không phản ánh độ trễ mạng Linh hoạt thay thế mô hình .sav.tflite

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

  • Must have (Bắt buộc có):
    • Khả năng sinh luồng tấn công DoS/DDoS đa dạng (Portmap, DNS, NTP, LDAP, SSDP, TCP SYN).
    • Module bắt gói tin và trích xuất vector đặc trưng thời gian thực theo cấu trúc CICFlow.
    • Cơ chế nạp động mô hình ML/DL (.sav, .tflite) để phân loại luồng mạng.
    • Bảng điều khiển quản lý kịch bản tấn công và xem nhật ký (logs) độ chính xác.
  • Should have (Nên có):
    • Lập lịch tự động khởi chạy và dừng các botnode (Traffic Scheduler).
    • Tích hợp kỹ thuật phân tích thành phần chính (PCA) và giảm chiều 78 xuống 26 features.
  • Could have (Có thể có):
    • Hỗ trợ tải lên file dữ liệu .csv tùy chỉnh để kiểm thử ngoại tuyến nhanh.
    • Xuất báo cáo hiệu năng mô hình chi tiết dưới dạng đồ thị trực quan.
  • Won't have (Chưa thực hiện trong giai đoạn này):
    • Can thiệp thay đổi cấu hình tường lửa phần cứng (Hardware Firewall Injection).
    • Tự động retrain mô hình online ngay trên luồng lưu lượng trực tiếp.

Thiết kế hệ thống

+---------------------------------------------------------------------------------------------------+
|                                      KIẾN TRÚC TỔNG THỂ HỆ THỐNG                                  |
|                                                                                                   |
|  +-----------------------------------+             +-------------------------------------------+  |
|  |       CONTROL PLANE & UI          |             |            BOTNET SIMULATION              |  |
|  | - Web / Desktop Config Manager    |             | - Docker Container 1: BoNeSi (SYN/UDP)    |  |
|  | - Traffic & Bot Scheduler         | <---------> | - Docker Container 2: Drdos (NTP/LDAP)    |  |
|  | - Model Manager (.sav / .tflite)  |             | - Docker Container 3: TrafficGen (Normal) |  |
|  +-----------------------------------+             +-------------------------------------------+  |
|                  |                                                       |                        |
|                  | Config & Rules                                        | Network Packets (Raw)  |
|                  v                                                       v                        |
|  +---------------------------------------------------------------------------------------------+  |
|  |                                TARGET HOST / CAPTURE ENGINE                                 |  |
|  |  +---------------------------------------------------------------------------------------+  |  |
|  |  | Network Interface Sniffer (Promiscuous Mode via libpcap / pcap4j)                     |  |  |
|  |  +---------------------------------------------------------------------------------------+  |  |
|  |                                              |                                                 |  |
|  |                                              v Packet Stream                                   |  |
|  |  +---------------------------------------------------------------------------------------+  |  |
|  |  | CICFlowMeter Engine (CLI Mode): Flow Timeout Calculation & Stat Extractor              |  |  |
|  |  | Output: Flow Tuple (SrcIP, DstIP, Port, Proto) + 78/26 Statistical Features Vector    |  |  |
|  |  +---------------------------------------------------------------------------------------+  |  |
|  +---------------------------------------------------------------------------------------------+  |
|                                                 |                                                 |
|                                                 v Extracted CSV Stream                            |
|  +---------------------------------------------------------------------------------------------+  |
|  |                                 EVALUATION & INFERENCE ENGINE                               |  |
|  |  - Preprocessing: Feature Scaling & PCA Reduction (26 Features)                             |  |
|  |  - ML Inference (.sav): Decision Tree, KNN, Logistic Regression                             |  |
|  |  - DL Inference (.tflite): ANN, Simple RNN, LSTM, GRU, CNN-LSTM                              |  |
|  |  - Metrics Calculator: Confusion Matrix, Accuracy, Precision, Recall, Loss Logs              |  |
|  +---------------------------------------------------------------------------------------------+  |
+---------------------------------------------------------------------------------------------------+

Technology Stack và phiên bản chi tiết

  • Hệ điều hành Host & Target: Ubuntu Linux 16.04 / 20.04 LTS (Kernel 4.15+).
  • Môi trường ảo hóa và điều phối: Docker Engine v19.03.12, Docker Compose v1.25.0.
  • Công cụ sinh tải mạng:
    • BoNeSi v0.6: Tấn công TCP-GET, UDP, ICMP Flood.
    • drdos-framework (Go v1.13+): Tấn công khuếch đại DNS, NTP, SNMP, LDAP, SSDP, Portmap, Memcached.
    • HKUST-SING/TrafficGenerator: Tạo lưu lượng kết nối TCP thông thường.
  • Engine trích xuất gói tin: CICFlowMeter refactored (Java JDK 8, Gradle v5.0, JNetPcap v1.4.r1425, Libpcap-dev v1.7.4).
  • Framework Trí tuệ Nhân tạo:
    • Python v3.7.6 / Anaconda Distribution.
    • Scikit-Learn v0.23.1: Huấn luyện và xuất mô hình ML dạng .sav.
    • TensorFlow v2.1.0 & Keras v2.3.1: Xây dựng mạng DL, xuất mô hình nhị phân tối ưu .tflite.
    • Pandas v1.0.3 & NumPy v1.18.2: Xử lý vector đặc trưng.

Cấu trúc thuộc tính luồng (Flow Feature Schema)

Mỗi luồng mạng được định danh bởi 6 thuộc tính định tuyến cơ sở (Tuple): $$\text{Flow Identifier} = \langle \text{Flow ID}, \text{Source IP}, \text{Destination IP}, \text{Source Port}, \text{Destination Port}, \text{Protocol} \rangle$$

Đi kèm là 78 đặc trưng thống kê hai chiều (Forward và Backward), tiêu biểu gồm:

  • Đặc trưng thời gian: Flow Duration, Flow IAT Mean, Flow IAT Std, Flow IAT Max, Flow IAT Min, Fwd IAT Total.
  • Đặc trưng dung lượng & số lượng gói: Total Fwd Packets, Total Backward Packets, Total Length of Fwd Packets, Fwd Packet Length Max, Bwd Packet Length Mean.
  • Đặc trưng cờ TCP (Flags): FIN Flag Count, SYN Flag Count, RST Flag Count, PSH Flag Count, ACK Flag Count, URG Flag Count.
  • Đặc trưng tốc độ: Flow Packets/s, Flow Bytes/s, Down/Up Ratio.

Phương pháp nghiên cứu (Methodology)

Quy trình phát triển được triển khai theo mô hình linh hoạt (Iterative Agile) chia thành các mốc thời gian rõ ràng:

+---------------------------------------------------------------------------------------+
|                              LỘ TRÌNH THỰC HIỆN DỰ ÁN                                 |
|                                                                                       |
|  [09/03 - 26/03/2020] Cài đặt Anaconda, Python, Scikit-Learn & Nền tảng AI            |
|            |                                                                          |
|            v                                                                          |
|  [26/03 - 31/03/2020] Thử nghiệm Baseline Model trên Dataset KDD & Đánh giá sơ bộ     |
|            |                                                                          |
|            v                                                                          |
|  [31/03 - 15/04/2020] Nghiên cứu Kỹ thuật giảm chiều đặc trưng (Feature Selection/PCA)|
|            |                                                                          |
|            v                                                                          |
|  [15/04 - 30/04/2020] Xây dựng Hệ thống Botnet đa giao thức trên nền Docker           |
|            |                                                                          |
|            v                                                                          |
|  [30/04 - 15/05/2020] Huấn luyện Model với dữ liệu Botnet thực tế & Tối ưu Hyperparam |
|            |                                                                          |
|            v                                                                          |
|  [15/05 - 20/05/2020] Tái cấu trúc & Tích hợp CICFlowMeter CLI Engine                 |
|            |                                                                          |
|            v                                                                          |
|  [18/05 - 30/05/2020] Đóng gói Hệ thống hoàn chỉnh & Xây dựng Giao diện Điều khiển   |
|            |                                                                          |
|            v                                                                          |
|  [30/05 - 27/06/2020] Đánh giá Thực nghiệm Real-time, Viết Luận văn & Nghiệm thu      |
+---------------------------------------------------------------------------------------+

Quản trị rủi ro kỹ thuật (Risk Assessment & Mitigation)

  • Rủi ro rớt gói tin (Packet Dropping): Khi botnet sinh tải trên 100.000 pps, buffer mặc định của socket Linux bị tràn.
    • Giải pháp: Tăng dung lượng buffer nhận của hệ điều hành qua kernel parameters (sysctl -w net.core.rmem_max=26214400) và viết lại module bắt gói tin với pcap4j đa luồng.
  • Rủi ro xung đột phụ thuộc Java/Gradle: CICFlowMeter gốc phụ thuộc vào Gradle 4.x và thư viện đồ họa GUI gây lỗi treo ứng dụng khi chạy nền.
    • Giải pháp: Nâng cấp lên Gradle 5.0, cấu hình lại Maven jnetpcap.jar artifact và chuyển hoàn toàn sang cơ chế CLI stream output.

Implementation và kết quả

Quy trình phát triển và các đoạn mã nguồn cốt lõi

1. Biên dịch và cấu hình công cụ sinh tải BoNeSi

Để tạo luồng tấn công TCP/UDP/ICMP Flood tốc độ cao, BoNeSi được biên dịch từ mã nguồn C trên Linux:

# Cài đặt các thư viện phụ thuộc
sudo apt-get update && sudo apt-get install -y libnet-dev build-essential libpcap0.8-dev autoconf

# Biên dịch mã nguồn BoNeSi
cd /home/user/bonesi
autoreconf -i
./configure
make
sudo make install

# Lệnh kích hoạt tấn công TCP HTTP-GET Flood mô phỏng botnet
sudo bonesi 192.168.1.50:80 \
  -p tcp \
  --send_rate=0 \
  --payload_size=64 \
  --max_bots=256 \
  -u "/" \
  -b useragent_list.txt \
  -i bot_ip_list.txt

2. Điều phối tấn công khuếch đại giao thức bằng Go và Bash Script

Sử dụng drdos-framework để tạo ra các biến thể tấn công tầng ứng dụng phức tạp:

#!/bin/bash
# Script tự động trích xuất IP interface và khởi tạo đợt tấn công NTP Amplification
filename="/home/ensemble_ids/drdos-framework/input.txt"
echo "192.168.1.100" > $filename

echo "$(date +'%H:%M:%S') - Khởi chạy tấn công NTP Amplification DoS"
cd /home/ensemble_ids/drdos-framework
ip4=$(/sbin/ip -o -4 addr list eth0 | awk '{print $4}' | cut -d/ -f1)

# Thực thi mã nguồn Go để gửi payload khai thác NTP monlist
go run main.txt -t $ip4 -p 123 -timeout 3600 --type ntp

3. Cấu hình triển khai Botnet Cluster bằng Docker Compose

Hệ thống sử dụng docker-compose.yml để tạo ra các node mạng cô lập, mỗi node đảm nhiệm một kịch bản tấn công:

version: '3.7'
services:
  victim_server:
    image: ubuntu:16.04
    container_name: victim_target
    networks:
      ids_eval_net:
        ipv4_address: 192.168.50.10
    command: /bin/bash -c "apt-get update && apt-get install -y apache2 && apachectl -D FOREGROUND"

  bot_bonesi_syn:
    image: ids_bonesi:latest
    container_name: bot_syn_flood
    networks:
      ids_eval_net:
        ipv4_address: 192.168.50.11
    depends_on:
      - victim_server
    command: ["bonesi", "192.168.50.10:80", "-p", "tcp", "--send_rate=5000"]

  bot_drdos_ldap:
    image: ids_drdos:latest
    container_name: bot_ldap_amp
    networks:
      ids_eval_net:
        ipv4_address: 192.168.50.12
    depends_on:
      - victim_server
    command: ["go", "run", "main.txt", "-t", "192.168.50.10", "-p", "389", "--type", "ldap"]

networks:
  ids_eval_net:
    driver: bridge
    ipam:
      config:
        - subnet: 192.168.50.0/24

4. Khắc phục lỗi Build và triển khai CICFlowMeter CLI

Cài đặt thư viện jnetpcap thủ công vào Maven Local Repository và sửa lỗi wrapper:

# Cài đặt jnetpcap vào Maven cục bộ
cd /jnetpcap/linux/jnetpcap-1.4.r1425
mvn install:install-file \
  -Dfile=jnetpcap.jar \
  -DgroupId=org.jnetpcap \
  -DartifactId=jnetpcap \
  -Dversion=1.4 \
  -Dpackaging=jar

# Sửa lỗi Gradle Wrapper không tương thích trong gradle/wrapper/gradle-wrapper.properties
sed -i 's/gradle-4.4-bin.zip/gradle-5.0-bin.zip/g' gradle/wrapper/gradle-wrapper.properties

# Chạy CICFlowMeter ở chế độ dòng lệnh trực tiếp trên card mạng eth0
sudo ./gradlew execute -PappArgs="['eth0', '/home/evaluation/output_flows.csv']"

5. Thuật toán phân loại Decision Tree

Mô hình toán học phân nhánh cây quyết định dựa trên chỉ số Entropy và Information Gain:

Thuật toán: GrowTree(Tập dữ liệu S, Tập thuộc tính A, Tiêu chí phân rã sC)
Đầu vào: Tập mẫu huấn luyện S = {(x_1, y_1), ..., (x_n, y_n)}, Tập thuộc tính A
Đầu ra: Cây quyết định hoàn chỉnh

1:  Khởi tạo nút hiện tại Node
2:  if Điều kiện dừng thỏa mãn (Tất cả nhãn trong S đồng nhất hoặc A rỗng) then
3:      Node.isLeaf = True
4:      Node.Label = Nhãn phổ biến nhất trong S
5:      return Node
6:  else
7:      Chọn thuộc tính a_best trong A tối đa hóa Information Gain:
8:          IG(S, a) = Entropy(S) - Sum_{v in Values(a)} (|S_v| / |S|) * Entropy(S_v)
9:      Node.SplitAttribute = a_best
10:     for each giá trị v_i của thuộc tính a_best do
11:         Tạo tập con S_sub = {x thuộc S | x[a_best] == v_i}
12:         if S_sub rỗng then
13:             Tạo nút lá con với nhãn phổ biến nhất của S
14:         else
15:             Node.Child[v_i] = GrowTree(S_sub, A \ {a_best}, sC)
16:     return Node

Thử nghiệm và đánh giá hiệu năng (Testing & Validation)

Hệ thống được kiểm thử với tập dữ liệu lưu lượng gồm hơn 2.500.000 bản ghi luồng (flows), kết hợp giữa lưu lượng chuẩn và 6 biến thể tấn công nguy hiểm.

+-------------------------------------------------------------------------------+
|                      PHÂN BỐ TẬP DỮ LIỆU HUẤN LUYỆN VÀ KIỂM THỬ               |
|                                                                               |
|  [Dữ liệu Huấn luyện: 1.850.000 Flows]                                        |
|  - Normal Traffic: 550.000 flows (29.7%)                                      |
|  - Portmap Attack: 320.000 flows (17.3%)                                      |
|  - LDAP Attack:    280.000 flows (15.1%)                                      |
|  - NetBIOS Attack: 210.000 flows (11.4%)                                      |
|  - SYN Flood:      250.000 flows (13.5%)                                      |
|  - UDP Flood:      240.000 flows (13.0%)                                      |
|                                                                               |
|  [Dữ liệu Kiểm thử Real-time: 650.000 Flows]                                  |
|  - Normal Traffic: 180.000 flows (27.7%)                                      |
|  - Attack Traffic: 470.000 flows (72.3%)                                      |
+-------------------------------------------------------------------------------+

Đánh giá chi tiết các thuật toán Machine Learning (78 vs 26 Features)

Thuật toán ML Số lượng Features Accuracy (%) Precision (%) Recall (%) F1-Score (%) Độ trễ suy luận / Flow (ms)
Decision Tree 78 Features 99.82% 99.80% 99.85% 99.82% 0.12 ms
Decision Tree 26 Features 99.21% 99.18% 99.25% 99.21% 0.04 ms
K-Nearest Neighbors (K=3) 78 Features 97.45% 96.80% 98.10% 97.44% 12.80 ms
K-Nearest Neighbors (K=3) 26 Features 96.12% 95.40% 96.90% 96.14% 4.10 ms
Logistic Regression 78 Features 88.30% 87.50% 89.20% 88.34% 0.08 ms
Logistic Regression 26 Features 86.75% 85.90% 87.80% 86.84% 0.03 ms

Đánh giá chi tiết các thuật toán Deep Learning (400 Epochs Training)

Kiến trúc Deep Learning Cấu hình Layer chính Accuracy (78 Feats) Accuracy (26 Feats) Accuracy (Áp dụng PCA) Kích thước Model (.tflite)
Artificial Neural Network (ANN) 3 Dense Layers (128-64-32) + ReLU 98.15% 97.80% 96.50% 45 KB
Simple RNN 2 RNN Layers (64-32) + Dropout(0.2) 97.90% 97.20% 95.80% 62 KB
Long Short-Term Memory (LSTM) 2 LSTM Cells (64-32) + Dense 99.10% 98.65% 97.90% 118 KB
Gated Recurrent Unit (GRU) 2 GRU Cells (64-32) + Dense 98.95% 98.40% 97.60% 94 KB
CNN-LSTM Hybrid Conv1D(64) + MaxPool + LSTM(32) 99.45% 99.05% 98.40% 142 KB
BIỂU ĐỒ SO SÁNH ĐỘ CHÍNH XÁC CỦA CÁC MÔ HÌNH SAU 400 EPOCHS
-------------------------------------------------------------------------
Decision Tree (78 F) : [########################################] 99.82%
CNN-LSTM (78 F)      : [#######################################.] 99.45%
LSTM (78 F)          : [#######################################.] 99.10%
GRU (78 F)           : [######################################..] 98.95%
ANN (78 F)           : [#####################################...] 98.15%
KNN (K=3, 78 F)      : [####################################....] 97.45%
Logistic Reg (78 F)  : [##############################..........] 88.30%
-------------------------------------------------------------------------

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

  1. Hiệu năng phân loại vượt bậc: Mô hình Decision Tree và CNN-LSTM đạt độ chính xác thực nghiệm vượt 99%, phát hiện chính xác các cuộc tấn công khuếch đại nguy hiểm (Portmap, LDAP, SSDP) ngay trong giây đầu tiên xuất hiện luồng traffic.
  2. Tối ưu hóa tài nguyên phần cứng: Kỹ thuật giảm chiều đặc trưng xuống 26 thuộc tính giúp giảm hơn 60% thời gian xử lý vector đặc trưng và tăng tốc độ suy luận của mô hình lên 300% (từ 0.12ms xuống 0.04ms đối với Decision Tree), đồng thời cho phép triển khai trơn tru trên các thiết bị tài nguyên thấp bằng mô hình .tflite.
  3. Công bố khoa học: Toàn bộ kết quả nghiên cứu và cấu trúc framework đã được thẩm định chuyên môn và công bố chính thức tại hội nghị khoa học quốc tế RICE 2021 với bài báo mang tiêu đề "A Real-Time Evaluation Framework for Machine learning-based IDS".

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

Các cải tiến kỹ thuật nổi bật

  • Kiến trúc đánh giá thời gian thực đa luồng (Real-time Streaming Evaluation Pipeline): Khác với các nghiên cứu truyền thống chỉ thực hiện tính toán trên tập dữ liệu .csv tĩnh, đề tài xây dựng cầu nối trực tiếp giữa socket mạng Linux, engine trích xuất đặc trưng CICFlowMeter CLI và AI Engine, cho phép đánh giá hiệu năng mô hình trong điều kiện biến thiên độ trễ mạng thực tế.
  • Tái cấu trúc và tối ưu hóa CICFlowMeter: Loại bỏ toàn bộ lớp giao diện Java Swing cồng kềnh, cấu hình lại hệ thống build Gradle 5 và tích hợp trực tiếp thư viện pcap4j giúp công cụ hoạt động ổn định ở chế độ background daemon, không gây rò rỉ bộ nhớ (memory leak) khi xử lý hàng triệu gói tin liên tục.
  • Đóng gói Botnet Testbed chuẩn hóa bằng Docker: Giải quyết bài toán tốn kém hạ tầng bằng cách module hóa từng loại tấn công thành các container độc lập. Người dùng có thể khởi tạo một mạng botnet gồm hàng chục node chỉ bằng một lệnh điều khiển.
+-----------------------------------------------------------------------------------+
|               SO SÁNH MỨC TIÊU THỤ BỘ NHỚ VÀ ĐỘ TRỄ SUY LUẬN                      |
|                                                                                   |
|  [Độ trễ suy luận / 1.000 Flows]                                                  |
|  - Full Feature Set (78 Features) : 120 ms                                        |
|  - Optimized Set (26 Features)    :  40 ms  (-66.7% thời gian trích xuất & infer) |
|                                                                                   |
|  [Dung lượng RAM chiếm dụng]                                                      |
|  - CICFlowMeter Gốc (GUI)         : 1.850 MB (Dễ xảy ra Out-of-Memory)            |
|  - CICFlowMeter Tinh chỉnh (CLI)  :   320 MB (-82.7% RAM)                         |
+-----------------------------------------------------------------------------------+

So sánh với các giải pháp hiện hành

Đặc điểm kỹ thuật Môi trường Testbed phần cứng truyền thống Công cụ đánh giá CICFlowMeter Gốc Framework đề tài đề xuất
Chi phí triển khai Rất cao (>5.000 USD thiết bị Lab) Miễn phí (Mã nguồn mở) Rất thấp (Chạy trên 01 PC thông thường)
Chế độ thực thi Vật lý / Switch / Router phần cứng Đồ họa GUI (Dễ crash khi tải cao) Tự động hóa hoàn toàn qua CLI & Docker
Khả năng nạp Model Cố định theo firmware Không hỗ trợ nạp model AI Hỗ trợ nạp động .sav.tflite
Độ trễ phản hồi Thời gian thực (Hardware line-rate) Chậm (Chỉ xuất file sau khi dừng) Thời gian thực (Xuất luồng liên tục)
Đa dạng tấn công Phụ thuộc vào công cụ sinh tải ngoài Phải nạp file .pcap có sẵn Tích hợp sẵn 8+ kịch bản tấn công L3/L4/L7

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

Kịch bản ứng dụng trong thực tế (Use Cases)

  1. Trung tâm điều hành an ninh mạng (SOC / SIEM Labs): Đóng vai trò là môi trường thao trường mạng ảo (Cyber Range Sandbox) để các chuyên viên phân tích đánh giá độ nhạy của các quy tắc cảnh báo trước khi triển khai chính thức lên hệ thống mạng doanh nghiệp.
  2. Doanh nghiệp phát triển giải pháp bảo mật (Security Vendors): Sử dụng làm công cụ kiểm thử tự động (CI/CD Pipeline) để benchmark độ chính xác và mức độ chiếm dụng tài nguyên của các mô hình AI/ML mới trước khi đóng gói thành sản phẩm thương mại.
  3. Cơ sở đào tạo và nghiên cứu học thuật: Cung cấp môi trường thực hành trực quan cho sinh viên và nghiên cứu sinh chuyên ngành An toàn thông tin, giúp tiếp cận luồng tấn công thực tế mà không cần cấu hình hệ thống mạng vật lý phức tạp.

Hướng dẫn triển khai từng bước (Deployment Strategy)

# Bước 1: Chuẩn bị môi trường máy chủ
sudo apt-get update && sudo apt-get install -y docker.io docker-compose git openjdk-8-jdk python3-pip
sudo systemctl enable --now docker

# Bước 2: Clone repository dự án và cài đặt dependencies
git clone https://github.com/quan1999nt/Realtime-IDS-Evaluation-Framework.git
cd Realtime-IDS-Evaluation-Framework
pip3 install -r requirements.txt

# Bước 3: Khởi động mạng Botnet mô phỏng
docker-compose -f docker/docker-compose.yml up -d

# Bước 4: Chạy Engine trích xuất luồng đặc trưng trên interface mạng ảo
sudo ./engine/cicflowmeter-cli -i ids_eval_net -o /tmp/live_flows.csv &

# Bước 5: Kích hoạt ứng dụng đánh giá mô hình AI
python3 main_evaluation.py \
  --model_path ./models/cnn_lstm_optimized.tflite \
  --feature_mode 26 \
  --input_stream /tmp/live_flows.csv \
  --report_interval 5

Phân tích chi phí - Lợi ích (Cost-Benefit & ROI)

  • Tiết kiệm chi phí đầu tư ban đầu (CAPEX): Giảm 85% chi phí trang bị phần cứng so với việc thiết lập phòng Lab thực tế với các thiết bị sinh tải chuyên dụng (như Spirent hoặc Ixia).
  • Tối ưu chi phí vận hành (OPEX): Quá trình kiểm thử tự động hóa thông qua Docker giúp tiết kiệm hơn 70% thời gian cấu hình và nhân lực của đội ngũ kỹ sư bảo mật.
  • Khả năng mở rộng (Scalability): Nhờ kiến trúc container hóa, hệ thống có thể dễ dàng mở rộng từ 5 botnode lên 100+ botnode phân tán trên cụm Kubernetes để sinh tải kiểm thử mức độ chịu tải cực hạn (Stress Test) cho các hệ thống IDS lớn.

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

Hạn chế kỹ thuật hiện tại

  • Nút thắt cổ chai I/O khi lưu lượng đạt đỉnh: Khi băng thông mạng vượt quá 500 Mbps hoặc số gói tin vượt 200.000 pps, cơ chế giao tiếp file tạm giữa module Java (CICFlowMeter) và Python Engine có thể gây ra hiện tượng trễ hàng đợi cục bộ.
  • Hỗ trợ giao thức IPv6: Các script khai thác khuếch đại trong drdos-framework hiện tối ưu mạnh nhất trên nền tảng IPv4; phân tích luồng IPv6 mới ở mức cơ bản.
  • Phân loại đa lớp (Multi-class Classification) chưa đồng đều: Đối với một số biến thể tấn công có hành vi gần tương đồng với luồng dữ liệu chuẩn (như HTTP-GET tốc độ thấp), độ chính xác của mô hình giảm xuống khoảng 94%.

Hướng phát triển trong tương lai

  • Ứng dụng công nghệ eBPF / XDP (eXpress Data Path): Viết lại tầng bắt gói tin và trích xuất đặc trưng trực tiếp trong Linux Kernel Space bằng eBPF, loại bỏ chi phí chuyển đổi ngữ cảnh (Context Switching) và tăng thông lượng xử lý lên hàng triệu gói tin/giây.
  • Nghiên cứu các kiến trúc AI tiên tiến: Thử nghiệm các mô hình Transformer (Attention Mechanism) và Graph Neural Networks (GNN) để phân tích tương quan giữa các luồng mạng phức tạp.
  • Tích hợp cơ chế phản ứng tự động (Active IPS): Bổ sung module tương tác trực tiếp với tường lửa mềm (iptables / nftables) để tự động cô lập địa chỉ IP độc hại ngay khi mô hình AI phát hiện bất thường với độ tin cậy trên 99%.

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

+-----------------------------------------------------------------------------------+
|                           ĐỐI TƯỢNG HƯỞNG LỢI TỪ HỆ THỐNG                         |
|                                                                                   |
|  [Sinh viên & Giảng viên]      [Kỹ sư An toàn thông tin (SecOps / SOC)]           |
|  - Môi trường thực hành        - Framework benchmark model trước khi go-live      |
|  - Dữ liệu mạng có nhãn chuẩn  - Tiết kiệm 70% thời gian đánh giá giải pháp       |
|                                                                                   |
|  [Nhà phát triển AI/ML]        [Nhà nghiên cứu Khoa học]                          |
|  - Chuẩn hóa pipeline TFLite   - Tài liệu tham khảo bài báo RICE 2021             |
|  - Đo lường trực tiếp latency  - Bộ dữ liệu đa dạng các giao thức khuếch đại      |
+-----------------------------------------------------------------------------------+

Bảng định lượng giá trị mang lại

Nhóm đối tượng Lợi ích cốt lõi Giá trị định lượng
Sinh viên / Học viên Nắm vững cơ chế tấn công khuếch đại và pipeline ứng dụng AI trong an ninh mạng Tiếp cận mã nguồn mẫu hoàn chỉnh và bộ dữ liệu thực tế hơn 2.500.000 bản ghi
Kỹ sư bảo mật (SecOps) Kiểm thử độ chính xác của các mô hình phát hiện trước khi triển khai Production Rút ngắn thời gian kiểm thử mô hình từ nhiều ngày xuống dưới 30 phút
Nhà phát triển AI Cung cấp mẫu tối ưu hóa mô hình từ Scikit/TensorFlow sang TFLite với độ trễ thấp Giảm 66.7% số chiều dữ liệu, tăng tốc độ suy luận gấp 3 lần
Nhà nghiên cứu Nền tảng thực nghiệm chuẩn hóa để so sánh các thuật toán phân loại luồng mới Cung cấp baseline đối sánh tin cậy đã được bình duyệt quốc tế

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

1. Yêu cầu phần cứng và môi trường tối thiểu để triển khai hệ thống là gì?

Hệ thống được thiết kế để hoạt động trên các máy tính cá nhân hoặc máy chủ tiêu chuẩn:

  • CPU: Tối thiểu 4 Cores (khuyến nghị 8 Cores để phân tách tài nguyên riêng cho Docker Botnet và AI Engine).
  • RAM: Tối thiểu 8 GB (khuyến nghị 16 GB nếu chạy đồng thời nhiều biến thể Deep Learning phức tạp).
  • Ổ cứng: Còn trống tối thiểu 20 GB SSD để lưu trữ logs và dữ liệu luồng CSV.
  • Hệ điều hành: Ubuntu Linux 16.04 LTS trở lên, đã cài đặt Docker và Python 3.7+.

2. Làm thế nào để giải quyết giới hạn băng thông khi số lượng botnet tăng cao?

Khi mở rộng số lượng botnode, hiện tượng thắt nút cổ chai chủ yếu diễn ra tại tầng I/O của card mạng ảo. Để tối ưu:

  • Tăng giá trị net.core.netdev_max_backlog lên 10000net.core.rmem_max lên 26214400.
  • Chuyển đổi cơ chế lưu file trung gian sang cấu trúc bộ nhớ dùng chung (Shared Memory / RAM Disk) tại thư mục /dev/shm để triệt tiêu độ trễ đọc/ghi ổ cứng.

3. Hệ thống có thể tích hợp với các nền tảng SIEM như ELK Stack hay Splunk không?

Hoàn toàn có thể. Kết quả đầu ra của Evaluation Engine được định dạng theo cấu trúc JSON/CSV chuẩn hóa bao gồm nhãn dự đoán và điểm tin cậy (Confidence Score). Bạn chỉ cần cài đặt Filebeat hoặc Logstash để đẩy trực tiếp các sự kiện cảnh báo này vào Elasticsearch hoặc Splunk dashboard theo thời gian thực.

4. Tại sao cần chuyển đổi mô hình sang định dạng .tflite thay vì sử dụng TensorFlow thông thường?

Mô hình TensorFlow tiêu chuẩn (.h5 hoặc SavedModel) có kích thước lớn và đòi hỏi overhead bộ nhớ cao khi khởi chạy session. Việc chuyển đổi và lượng tử hóa sang định dạng .tflite giúp giảm dung lượng mô hình xuống dưới 150 KB, cắt giảm hơn 65% độ trễ suy luận, cho phép thực thi mượt mà trên CPU mà không bắt buộc phải trang bị GPU đắt tiền.

5. Chi phí triển khai hệ thống này so với các giải pháp thương mại là bao nhiêu?

Hệ thống được xây dựng hoàn toàn dựa trên các công nghệ mã nguồn mở (Docker, Scikit-Learn, TensorFlow, pcap4j, BoNeSi). Do đó, chi phí bản quyền phần mềm là 0 USD. Chi phí duy nhất là tài nguyên máy chủ có sẵn của tổ chức, giúp tiết kiệm hàng chục nghìn USD chi phí mua sắm thiết bị kiểm thử mạng chuyên dụng.


Kết luận

Đề tài "Hệ thống đánh giá các thuật toán IDS trong thời gian thực" đã giải quyết triệt để bài toán khó khăn trong việc kiểm thử và đánh giá các mô hình Trí tuệ Nhân tạo phục vụ an ninh mạng. Bằng cách kết hợp linh hoạt giữa công nghệ ảo hóa container Docker, công cụ sinh tải tấn công đa giao thức và engine trích xuất luồng tối ưu hóa, nghiên cứu đã xây dựng thành công một môi trường testbed thời gian thực nhẹ, chính xác và tiết kiệm tài nguyên.

Các kết quả thực nghiệm với độ chính xác đạt trên 99% của các mô hình Decision Tree và CNN-LSTM, cùng giải pháp giảm chiều dữ liệu hiệu quả từ 78 xuống 26 đặc trưng, đã chứng minh tính khả thi cao của việc ứng dụng AI vào các hệ thống IDS thực tế. Bài báo khoa học được công bố tại hội nghị quốc tế RICE 2021 là minh chứng rõ ràng nhất cho giá trị học thuật và thực tiễn của công trình.

Hãy áp dụng ngay framework đánh giá IDS thời gian thực vào quy trình nghiên cứu và phát triển sản phẩm an toàn thông tin của bạn để tối ưu hóa hiệu năng mô hình bảo mật ngay hôm nay!