Hệ thống Phát hiện Xâm nhập Mạng (NIDS) hiệu năng cao sử dụng thuật toán Global Empirical MAP
Dự án này tập trung giải quyết các hạn chế cốt lõi của các thuật toán xác suất truyền thống (như Maximum Likelihood Estimation - MLE) trong bài toán an ninh mạng, cụ thể là lỗi "Zero-frequency problem" (Điểm kỳ dị) và hiện tượng Overfitting khi gặp dữ liệu thưa.
Thay vì sử dụng các thư viện có sẵn (như scikit-learn với tham số làm trơn cố định), dự án đề xuất và hiện thực hóa thuật toán Global Empirical MAP (Maximum A Posteriori). Thuật toán này sử dụng tham số làm trơn thích ứng (Adaptive Smoothing), được chứng minh toán học giúp hệ thống hoạt động ổn định trên dữ liệu lớn và giảm thiểu báo động giả (False Positives).
- Thuật toán Global Empirical MAP: Tự cài đặt (Custom Implementation) thuật toán Naive Bayes với cơ chế làm trơn dựa trên phương sai toàn cục, khắc phục lỗi chia cho 0.
- Chứng minh Toán học: Sử dụng Khai triển Taylor để tối ưu hóa tham số tỉ lệ nghịch với kích thước mẫu ().
- Master Dataset: Tổng hợp và chuẩn hóa 3 bộ dữ liệu lớn nhất hiện nay (CIC-IDS-2017, CIC-IDS-2018, UNSW-NB15) với hơn 2.5 triệu mẫu.
- Semantic Label Mapping: Đồng bộ hóa không gian nhãn giữa các bộ dữ liệu khác nhau (Ví dụ: Gộp Exploits, Fuzzers thành Web Attack).
- Giảm Báo động giả (False Positives): Hiệu quả vượt trội trong việc nhận diện các mẫu dữ liệu chưa từng biết (Zero-day anomalies).
Trong các mô hình Naive Bayes truyền thống, phương sai được ước lượng bằng công thức MLE. Khi một đặc trưng có phương sai mẫu bằng 0 (do dữ liệu thưa hoặc bị tấn công), hàm mật độ xác suất sẽ tiến tới vô cùng, gây ra lỗi tính toán (Singularities).
Sử dụng ước lượng MAP với phân phối tiên nghiệm Inverse-Gamma . Dựa trên Khai triển Taylor bậc 1, tôi đã chứng minh được tham số làm trơn tối ưu () cần tuân theo quy luật:
Công thức cài đặt thực nghiệm:
Dự án sử dụng bộ Master Dataset được xây dựng từ quy trình Data Engineering nghiêm ngặt:
| Bộ dữ liệu gốc | Vai trò | Số lượng mẫu (Approx) |
|---|---|---|
| CIC-IDS-2017 | Nền tảng chính | ~1.3 triệu |
| CIC-IDS-2018 | Bổ sung lớp tấn công hiện đại | ~1 triệu |
| UNSW-NB15 | Bổ sung các lớp hiếm (Web Attack) | ~200k |
Quy trình xử lý:
- Cleaning: Loại bỏ các cột định danh (IP, Timestamp, Flow ID).
- Filtering: Loại bỏ các cột có phương sai bằng 0 (Zero Variance).
- Mapping: Ánh xạ nhãn về 8 lớp chuẩn: Benign, DoS, DDoS, PortScan, Bot, Web Attack, Infiltration, BruteForce.
- Python 3.8+
- Jupyter Notebook
- RAM: Tối thiểu 8GB (Do xử lý dataset lớn)
pip install numpy pandas scikit-learn matplotlib seaborn
- Chuẩn bị dữ liệu:
Chạy file
CleaningData.py(hoặc Notebook tương ứng) để tạo ra fileMASTER_DATASET_FINAL.csv. - Huấn luyện & Đánh giá:
Mở
MAP-MLE-Scikit.ipynbvà chạy lần lượt các cells:
- Cell 1-2: Load thư viện và Dữ liệu.
- Cell 3-4: Định nghĩa Class
GaussianNB_MLEvàGaussianNB_MAP. - Cell 5: Chạy kịch bản so sánh (Hold-out / Cross-validation).
- Cell Final: Trực quan hóa kết quả.
Dưới đây là bảng so sánh hiệu năng giữa thuật toán đề xuất (MAP) và các phương pháp khác trên tập kiểm thử (Hold-out 20%):
| Mô hình | Macro F1-Score | Accuracy | Training Time |
|---|---|---|---|
| GNB-MLE (Baseline) | 0.6822 | 76.21% | ~6.5s |
| Scikit-learn (Benchmark) | 0.6906 | 76.55% | ~6.4s |
| GNB-MAP (Proposed) | 0.6931 | 76.87% | ~6.5s |
- Cải thiện đáng kể độ chính xác cho các lớp tấn công khó: Infiltration (+3.0%) và PortScan (+3.7%).
- Robustness: Trong kịch bản kiểm thử chéo trên bộ dữ liệu lạ (Friday-DDoS), mô hình MAP đã giảm thiểu được 351 cảnh báo giả (False Positives) so với MLE.
- Zero-overhead: Không làm tăng chi phí tính toán so với thuật toán gốc.
- Họ và tên: Phạm Tùng Lâm
- Trường: Đại học Bách Khoa Hà Nội (HUST)
- Giảng viên hướng dẫn: TS. Vũ Thị Hương Giang
- Email: lamcaro12212332@gmail.com

