Bối cảnh và vấn đề nghiên cứu

Bối cảnh thực tiễn và lý do chọn đề tài

Trong kỷ nguyên số hóa, hầu hết các hệ thống thông tin và phần mềm ứng dụng phục vụ người dùng đều được triển khai trực tiếp trên nền tảng web. Sự phát triển này đồng thời gia tăng các nguy cơ mất an toàn thông tin đối với hệ thống và dữ liệu của các tổ chức, doanh nghiệp. Các lỗi và lỗ hổng bảo mật trong mã nguồn ứng dụng web có thể dẫn đến những hậu quả nghiêm trọng như lộ lọt dữ liệu nhạy cảm, phá vỡ cấu trúc hạ tầng công nghệ thông tin, gây thiệt hại tài chính, suy giảm uy tín đối với khách hàng cũng như phát sinh các rủi ro pháp lý.

Trước đây, các hệ thống phát hiện xâm nhập (Intrusion Detection System - IDS) truyền thống chủ yếu vận hành dựa trên cơ chế thiết lập tập luật cố định (rule-based / signature-based) hoặc sử dụng các lệnh dự đoán trực tuyến. Phương pháp này bộc lộ nhiều điểm hạn chế: chi phí duy trì cao, độ tin cậy hạn chế, thiếu tính linh hoạt và không có khả năng tự động cập nhật để nhận diện các hình thức tấn công mới. Nhằm khắc phục tình trạng trên, các kỹ thuật học máy (Machine Learning - ML) đã được ứng dụng vào IDS nhờ khả năng trích xuất tri thức, phân tích dấu hiệu bất thường và tự học hỏi từ dữ liệu.

Tuy nhiên, sự gia tăng nhanh chóng của lưu lượng truy cập Internet tạo ra khối lượng dữ liệu khổng lồ (Big Data). Khi hệ thống IDS ứng dụng học máy xử lý trên các môi trường đơn lẻ truyền thống, lưu lượng truy cập lớn có thể gây nghẽn cổ chai, làm quá tải và tê liệt toàn bộ hệ thống bảo vệ. Xuất phát từ yêu cầu thực tiễn đó, đồ án tốt nghiệp "Phát hiện tấn công mạng dựa trên nền tảng xử lý dữ liệu lớn" do sinh viên Trần Đức Nhân thực hiện dưới sự hướng dẫn của TS. Hoàng Xuân Dậu tại Học viện Công nghệ Bưu chính Viễn thông (tháng 01/2022) đã tập trung nghiên cứu giải pháp kết hợp giữa học máy và nền tảng xử lý dữ liệu lớn để nâng cao hiệu quả và hiệu năng phát hiện tấn công ứng dụng web.

Mục tiêu nghiên cứu

Đồ án xác định 5 mục tiêu nghiên cứu cụ thể được đánh số như sau:

  1. Xây dựng bộ dữ liệu đặc trưng của một số hình thức tấn công ứng dụng web.
  2. Đề xuất mô hình phát hiện tấn công ứng dụng web dựa trên học máy và xử lý dữ liệu lớn.
  3. Lựa chọn mô hình trích chọn đặc trưng quan trọng và phương pháp học máy để phát hiện tấn công ứng dụng web.
  4. Đánh giá kết quả mô hình phát hiện, lựa chọn ra mô hình tốt nhất.
  5. Đề xuất, đánh giá và lựa chọn cách thức triển khai mô hình học máy trên môi trường phân tán, giải quyết việc xử lý lượng truy cập lớn.

Nhiệm vụ nghiên cứu chính

Để hiện thực hóa các mục tiêu trên, tác giả đã tiến hành 8 nhiệm vụ cụ thể:

  1. Tổng quan về các lỗ hổng bảo mật ứng dụng web theo danh mục OWASP Top 10 (2017), các hình thức tấn công web phổ biến và hệ thống phát hiện xâm nhập IDS.
  2. Nghiên cứu cơ sở lý thuyết và toán học của 4 thuật toán học máy phổ biến: Naive Bayes, Logistic Regression, Decision Tree và Random Forest; nghiên cứu các yếu tố ảnh hưởng, quy trình xây dựng và phân loại học máy.
  3. Nghiên cứu tổng quan về dữ liệu lớn và các nền tảng, công cụ xử lý dữ liệu lớn tiêu biểu: Hadoop, Spark, Kafka, HBase, ELK.
  4. Đề xuất giải pháp và kiến trúc mô hình phát hiện tấn công ứng dụng web kết hợp học máy và xử lý dữ liệu lớn phân tán.
  5. Phân tích bộ dữ liệu chuẩn CSE-CIC-IDS2018 và thực hiện tiền xử lý để xây dựng bộ dữ liệu rút gọn IDS2018-WEB phục vụ bài toán tấn công web.
  6. Huấn luyện và đánh giá các mô hình học máy bằng ngôn ngữ Python trên bộ dữ liệu mới thông qua các chỉ số hiệu suất phân loại và thời gian thực thi, từ đó chọn ra mô hình tối ưu.
  7. So sánh hiệu năng triển khai mô hình học máy giữa hai phương án: sử dụng thư viện Spark MLlib và thư viện Scikit-learn trên nền tảng Apache Spark.
  8. Triển khai và thử nghiệm hệ thống hoàn chỉnh theo luồng xử lý thời gian thực.

Đối tượng và phạm vi nghiên cứu

  • Đối tượng nghiên cứu: Các kỹ thuật tấn công ứng dụng web (SQL Injection, Cross-Site Scripting - XSS, Brute Force, Denial of Service - DoS, Distributed Denial of Service - DDoS); các thuật toán học máy có giám sát phân loại nhị phân và đa lớp; các công nghệ lưu trữ, truyền thông điệp và xử lý dữ liệu lớn theo luồng (Hadoop HDFS, Apache Spark Streaming, Spark MLlib, Scikit-learn, Apache Kafka, ElasticSearch, Logstash, Kibana).
  • Phạm vi không gian và dữ liệu: Dữ liệu lưu lượng mạng được trích xuất từ bộ dữ liệu chuẩn CSE-CIC-IDS2018 do Cơ quan An ninh Truyền thông Canada (CSE) phối hợp với Viện An ninh mạng Canada (CIC) phát hành, sau đó tinh chỉnh thành bộ dữ liệu chuyên biệt IDS2018-WEB.
  • Phạm vi thời gian và triển khai: Nghiên cứu được hoàn thành vào tháng 01/2022; phạm vi hệ thống tập trung vào việc mô phỏng luồng phát hiện lưu lượng mạng theo thời gian thực và trực quan hóa cảnh báo trên giao diện Dashboard của hệ sinh thái ELK.

Cơ sở lý thuyết và phương pháp

Khung lý thuyết và mô hình sử dụng

  1. Lỗ hổng bảo mật web và chuẩn OWASP Top 10 (2017): Khóa luận dựa trên tiêu chuẩn bảo mật của tổ chức Open Web Application Security Project (OWASP) phiên bản 2017, phân tích chi tiết 10 nguy cơ rủi ro bảo mật chính gồm:
    • Injection (điển hình là SQL Injection).
    • Broken Authentication (phá vỡ cơ chế xác thực, Brute Force).
    • Sensitive Data Exposure (lộ lọt dữ liệu nhạy cảm).
    • XML External Entities (XXE).
    • Broken Access Control (lỗi kiểm soát truy cập).
    • Security Misconfiguration (cấu hình sai bảo mật).
    • Cross-Site Scripting (XSS gồm Reflected XSS, Stored XSS, DOM-Based XSS).
    • Insecure Deserialization (giải tuần tự hóa không an toàn).
    • Using Components with Known Vulnerabilities (sử dụng thành phần có lỗ hổng đã biết).
    • Insufficient Logging & Monitoring (kiểm tra nhật ký và giám sát không hiệu quả).
  2. Hệ thống phát hiện xâm nhập (IDS):
    • Phân loại theo phạm vi giám sát: Network-based IDS (NIDS - giám sát gói tin trên toàn mạng) và Host-based IDS (HIDS - giám sát hoạt động, nhật ký hệ thống trên từng máy chủ).
    • Phân loại theo kỹ thuật phân tích: Phát hiện dựa trên dấu hiệu (Signature-based / Misuse-based) và phát hiện dựa trên bất thường (Anomaly-based).
  3. Cơ sở toán học của các thuật toán học máy:
    • Naive Bayes: Dựa trên định lý xác suất Bayes với giả định các thuộc tính độc lập điều kiện đôi một, tính xác suất hậu sinh $P(C_i|X)$ để gán mẫu vào lớp có xác suất cực đại.
    • Logistic Regression: Sử dụng hàm kích hoạt Sigmoid $\sigma(s) = \frac{1}{1 + e^{-s}}$ hoặc Tanh để ánh xạ đầu ra về khoảng giá trị $[0, 1]$, phục vụ bài toán phân loại tuyến tính.
    • Decision Tree (Cây quyết định): Sử dụng các cấu trúc phân nhánh cây dựa trên độ lợi thông tin (Information Gain) trong thuật toán ID3, C4.5 hoặc chỉ số Gini Index ($Gini = 1 - \sum p_i^2$) trong thuật toán CART để tìm điểm phân chia tối ưu tại các nút.
    • Random Forest (Rừng ngẫu nhiên): Mô hình tổ hợp (Ensemble Learning) gồm nhiều cây quyết định độc lập, tổng hợp kết quả theo cơ chế bỏ phiếu đa số (Majority Vote); đánh giá độ quan trọng của đặc trưng thông qua mức giảm trung bình chỉ số Gini (Mean Decrease Gini / Gini Importance); đối chiếu với biến thể Extra Trees.
  4. Hệ sinh thái công nghệ dữ liệu lớn (Big Data):
    • Apache Hadoop: Kiến trúc phân tán gồm HDFS (lưu trữ khối lớn chịu lỗi), YARN (quản lý tài nguyên và lập lịch) và MapReduce (xử lý tính toán song song).
    • Apache Spark: Công cụ tính toán trong bộ nhớ (In-Memory Processing) với Spark Core, Spark Streaming (xử lý luồng thời gian thực) và Spark MLlib (thư viện học máy phân tán).
    • Apache Kafka: Hệ thống môi giới thông điệp (Message Broker) phân tán hỗ trợ thông lượng cao và độ trễ thấp.
    • ELK Stack: Bộ giải pháp quản lý nhật ký gồm ElasticSearch (lưu trữ, lập chỉ mục, truy vấn), Logstash (thu nhận và tiền xử lý log), Kibana (trực quan hóa giao diện Dashboard).

Phương pháp nghiên cứu thực nghiệm

  • Quy trình xây dựng mô hình học máy (Workflow): Thực hiện đầy đủ 5 giai đoạn gồm thu thập dữ liệu (Gathering data) $\rightarrow$ Tiền xử lý dữ liệu (Data pre-processing) $\rightarrow$ Nghiên cứu mô hình phù hợp (Researching model) $\rightarrow$ Huấn luyện và kiểm thử mô hình (Training and testing model) $\rightarrow$ Đánh giá mô hình (Evaluation model).
  • Quy trình tiền xử lý dữ liệu:
    • Data Cleaning: Loại bỏ bản ghi lỗi, xử lý dữ liệu khuyết thiếu (missing data) và giá trị ngoại lệ (outliers).
    • Data Transformation & Encoding: Chuẩn hóa dữ liệu số và mã hóa các thuộc tính sang định dạng vector số học.
    • Data Reduction & Feature Extraction: Giảm chiều dữ liệu, phân tích ma trận tương quan giữa các thuộc tính để trích xuất tập đặc trưng tối ưu thông qua công cụ CICFlowMeter (80 đặc trưng lưu lượng mạng ban đầu).
  • Phương pháp đánh giá hiệu năng:
    • Sử dụng Ma trận nhầm lẫn (Confusion Matrix và Normalized Confusion Matrix).
    • Các chỉ số đo lường: Độ chính xác (Accuracy), Độ chuẩn xác (Precision), Độ thu hồi (Recall), Điểm F1-Score, Đường cong ROC (Receiver Operating Characteristic) và diện tích dưới đường cong ROC (AUC).
    • Đánh giá thực nghiệm trên cả hai bài toán: Phân loại nhị phân (Binary Classification: Normal vs. Attack) và Phân loại đa lớp (Multi-class Classification cho từng dạng tấn công web cụ thể).
    • Đánh giá thời gian huấn luyện và độ trễ xử lý khi triển khai trên mô hình phân tán giữa hai thư viện Spark MLlib và Scikit-learn.

Nguồn dữ liệu

Nghiên cứu sử dụng bộ dữ liệu chuẩn quốc tế CSE-CIC-IDS2018 được xây dựng bởi Communications Security Establishment (CSE) và Canadian Institute for Cybersecurity (CIC). Dữ liệu được trích xuất và gán nhãn qua công cụ CICFlowMeter với 80 thuộc tính thống kê lưu lượng mạng. Từ tập dữ liệu gốc, tác giả thực hiện chọn lọc và làm sạch để tạo thành bộ dữ liệu rút gọn IDS2018-WEB chuyên biệt cho các kịch bản tấn công web.


Nội dung chính theo từng chương

Chương 1: Tổng quan về phát hiện tấn công ứng dụng web dựa trên học máy và xử lý dữ liệu lớn

Chương 1 thiết lập nền tảng lý luận toàn diện cho đề tài:

  • Phân tích kỹ thuật tấn công ứng dụng web: Làm rõ nguyên nhân gây mất an toàn (ngôn ngữ lập trình PHP/nguồn mở, plugin WordPress chứa mã độc, lập trình viên thiếu kinh nghiệm, quản trị hệ thống yếu kém) và mô tả 3 bước của quy trình tấn công ứng dụng web. Phân tích chi tiết 10 lỗ hổng theo OWASP Top 10 (2017) và các hình thức tấn công điển hình: Broken Authentication (Brute Force mật khẩu), SQL Injection, DoS (SYN Flood, UDP Flood, Smurf Attack) và DDoS.
  • Phân tích hệ thống IDS: Trình bày kiến trúc logic của NIDS (gồm Sensor và Central Management Console) và HIDS; so sánh ưu nhược điểm của từng loại. Đồ án chỉ rõ NIDS có ưu thế kiểm tra toàn diện header gói tin, khó bị xóa dấu vết nhưng gặp hạn chế lớn về hiệu năng khi lưu lượng mạng cao và lưu lượng mã hóa; trong khi HIDS giám sát sâu sự kiện cục bộ nhưng tiêu tốn tài nguyên máy chủ. Phân định rõ hai phương pháp phân tích: Signature-based và Anomaly-based.
  • Nghiên cứu học máy: Định nghĩa học máy, workflow 5 bước xây dựng mô hình, và phân loại 4 nhóm học máy chính (Học có giám sát - Phân lớp và Hồi quy; Học không giám sát - Phân nhóm và Luật kết hợp; Học bán giám sát; Học củng cố).
  • Nghiên cứu dữ liệu lớn: Phân tích đặc trưng 3V của Big Data (Volume, Velocity, Variety). Trình bày kiến trúc 4 thành phần của Apache Hadoop (HDFS, YARN, MapReduce, Hadoop Common) và engine tính toán trong bộ nhớ Apache Spark.
  • Tổng quan nghiên cứu liên quan: Đánh giá các công trình quốc tế tiêu biểu như nghiên cứu khảo sát bộ dữ liệu IDS của Thakkar (khẳng định CSE-CIC-IDS2017 và CSE-CIC-IDS2018 là bộ dữ liệu thực tế và cập nhật nhất), nghiên cứu ứng dụng Random Forest trên IDS, và công trình của Patil et al. phát hiện DDoS trên Hadoop HDFS. Tác giả chỉ ra khoảng trống nghiên cứu: các công trình trước đây tách rời học máy (thiếu khả năng mở rộng quy mô khi gặp lưu lượng lớn) hoặc chỉ dùng Big Data thuần túy bằng MapReduce (không áp dụng mô hình học máy nên độ chính xác không cao). Từ đó, tác giả đề xuất giải pháp tích hợp cả hai hướng tiếp cận.

Chương 2: Mô hình phát hiện tấn công web dựa trên học máy và xử lý dữ liệu lớn

Chương 2 tập trung vào việc thiết kế cấu trúc hệ thống và cơ sở toán học cho các thuật toán:

  • Kiến trúc hệ thống đề xuất: Hệ thống gồm luồng thu thập và xử lý dữ liệu toàn diện: Lưu lượng mạng $\rightarrow$ CICFlowMeter trích xuất đặc trưng $\rightarrow$ Máy chủ lưu trữ $\rightarrow$ Apache Kafka $\rightarrow$ Module phân loại trên Spark Streaming (tích hợp mô hình học máy đã huấn luyện từ dữ liệu lịch sử) $\rightarrow$ Apache Kafka $\rightarrow$ Hệ thống ELK (Logstash $\rightarrow$ Elasticsearch $\rightarrow$ Kibana Dashboard) để hiển thị cảnh báo và quản trị.
  • Cơ sở toán học của các thuật toán phân loại:
    • Naive Bayes: Công thức xác suất $P(C_i|X) = \frac{P(X|C_i)P(C_i)}{P(X)} = \frac{P(C_i)\prod_{k=1}^d P(x_k|C_i)}{P(X)}$.
    • Logistic Regression: Hàm biểu diễn $f(x) = \phi(w^T x)$, phân tích tính chất của hàm Sigmoid $\sigma(s)$ với đạo hàm $\sigma'(s) = \sigma(s)(1 - \sigma(s))$ và hàm Tanh.
    • Decision Tree: Phân tích thuật toán ID3 dựa trên Entropy và Information Gain; thuật toán C4.5 xử lý thuộc tính liên tục và chuyển đổi cây thành tập luật if-then; thuật toán CART sử dụng chỉ số $Gini(p) = 1 - \sum p_i^2$ và chỉ số $Gini_{split}$.
    • Random Forest: Nguyên lý xây dựng tập hợp cây từ các tập con đặc trưng ngẫu nhiên $k_n < m$, cơ chế biểu quyết đa số, đánh giá tầm quan trọng biến qua Mean Decrease Gini, và so sánh với giải thuật Extra Trees.
  • Giải pháp công nghệ xử lý dữ liệu lớn: Xác định vai trò của Apache Kafka (kênh truyền dữ liệu độ trễ thấp), Hadoop HDFS / HBase (lưu trữ phân tán lâu dài), Spark Streaming (tính toán phân loại thời gian thực), và ELK Stack (phân tích, truy vấn và hiển thị giao diện giám sát).

Chương 3: Triển khai và thử nghiệm mô hình phát hiện tấn công web dựa trên học máy và xử lý dữ liệu lớn

Chương 3 trình bày chi tiết quá trình thực nghiệm, đo kiểm và đánh giá hệ thống:

  • Phân tích bộ dữ liệu CSE-CIC-IDS2018: Trình bày kiến trúc mạng thực nghiệm gồm 50 máy tấn công (Kali Linux) và hệ thống nạn nhân gồm 420 máy trạm (Windows Vista, 7, 8.1, 10), 50 máy chủ (Ubuntu 16.04, Ubuntu 12.4 Web Server). Phân tích 6 kịch bản tấn công và thống kê chi tiết 10 tệp dữ liệu CSV với 16.233.002 gói tin thuộc 14 loại tấn công.
  • Xây dựng bộ dữ liệu IDS2018-WEB: Tiền xử lý, lọc bỏ các tấn công không thuộc phạm vi web, trích chọn các thuộc tính có độ tương quan cao bằng ma trận tương quan, xây dựng tập dữ liệu rút gọn phục vụ huấn luyện và kiểm thử.
  • Đánh giá thực nghiệm các mô hình học máy: Tiến hành đo kiểm hiệu năng phân loại nhị phân và đa lớp đối với 4 thuật toán (Naive Bayes, Logistic Regression, Decision Tree, Random Forest) thông qua các ma trận nhầm lẫn, đường cong ROC-AUC, Precision, Recall và F1-Score.
  • So sánh hiệu năng Spark MLlib và Scikit-learn: Thực hiện đánh giá so sánh hiệu năng, tốc độ xử lý và độ trễ khi triển khai mô hình học máy trên môi trường phân tán Apache Spark giữa hai thư viện Spark MLlib và Scikit-learn ở các chế độ tải khác nhau.
  • Triển khai hệ thống thực nghiệm hoàn chỉnh: Cài đặt và kết nối toàn bộ hệ thống thực tế từ thu nhận luồng dữ liệu, truyền thông qua Kafka, xử lý dự đoán phân tán trên Spark Streaming và xuất kết quả trực quan hóa lên Kibana Dashboard.

Thiết kế và triển khai hệ thống

Kiến trúc hệ thống và luồng dữ liệu thời gian thực

Hệ thống được thiết kế theo mô hình xử lý phân tán khép kín gồm các tầng chức năng:

Tầng chức năng Thành phần công nghệ Nhiệm vụ kỹ thuật
Thu thập & Trích xuất CICFlowMeter / Storage Server Lắng nghe và bắt các gói tin lưu lượng mạng, trích xuất 80 thuộc tính thống kê luồng mạng (network flow features).
Truyền dẫn đệm Apache Kafka Đóng vai trò Message Broker tiếp nhận luồng dữ liệu đặc trưng từ máy chủ thu thập với thông lượng cao và độ trễ thấp.
Xử lý & Phát hiện Apache Spark Streaming Đọc luồng dữ liệu thời gian thực từ Kafka topic, áp dụng mô hình học máy đã huấn luyện sẵn để phân loại lưu lượng bình thường hay tấn công.
Truyền dẫn kết quả Apache Kafka Đóng gói kết quả dự đoán và đẩy vào topic kết quả để phân phối đến các hệ thống lưu trữ/giám sát.
Lưu trữ & Truy vấn Elasticsearch / Hadoop HDFS / HBase Logstash đọc dữ liệu từ Kafka, chuẩn hóa và ghi vào Elasticsearch để phục vụ tìm kiếm, lưu trữ dài hạn trên HDFS/HBase.
Trực quan hóa & Cảnh báo Kibana Dashboard Hiển thị giao diện giám sát thời gian thực, biểu đồ thống kê các loại tấn công và hỗ trợ truy vấn chi tiết các cuộc tấn công.

Các phương án triển khai mô hình học máy trên môi trường phân tán

Đồ án nghiên cứu và so sánh 2 phương án kiến trúc triển khai mô hình học máy:

  1. Phương án 1 (Spark MLlib Native): Xây dựng và huấn luyện mô hình học máy trực tiếp bằng thư viện Spark MLlib, lưu trữ mô hình trên HDFS và nạp mô hình vào Spark Streaming để phân loại phân tán trên các worker nodes.
  2. Phương án 2 (Scikit-learn trên nền Spark): Huấn luyện mô hình tối ưu bằng thư viện Scikit-learn trong Python, sau đó đóng gói và triển khai mô hình này hoạt động song song trên nền tảng luồng của Spark Streaming.

Kịch bản và dữ liệu thực nghiệm trên CSE-CIC-IDS2018

Hạ tầng mạng thực nghiệm của bộ dữ liệu gốc CSE-CIC-IDS2018 bao gồm 50 máy tấn công và mạng nạn nhân chia thành các phòng ban (Dept 1, Dept 2, Dept 3) với 420 máy trạm và 50 máy chủ.

Bảng tổng hợp các kịch bản tấn công, công cụ sử dụng và môi trường mục tiêu trong bộ dữ liệu CSE-CIC-IDS2018:

Loại tấn công Công cụ thực hiện Thời gian Nguồn tấn công (Attacker) Mục tiêu (Victim)
Bruteforce attack FTP-Patator, SSH-Patator 1 ngày Kali Linux Ubuntu 16.04 (Web Server)
DoS attack Hulk, GoldenEye, Slowloris, Slowhttptest 1 ngày Kali Linux Ubuntu 16.04 (Apache)
DoS attack Heartleech 1 ngày Kali Linux Ubuntu 12.4 (Web Server)
Web & Bruteforce In-house Selenium framework (XSS, Brute-force) 1 ngày Kali Linux Ubuntu 12.4 (Web Server)
Infiltration attack Dropbox download (Level 1), Nmap & Portscan (Level 2) 2 ngày Kali Linux Windows & Macintosh
Botnet attack Ares (Python remote shell, key logging, screenshots) 1 ngày Kali Linux Windows Vista, 7, 8.1, 10 (32-bit & 64-bit)
DDoS + PortScan Low Orbit Ion Cannon (LOIC) cho UDP, TCP, HTTP 2 ngày Kali Linux Windows Vista, 7, 8.1, 10 (32-bit & 64-bit)

Bảng thống kê số lượng gói tin theo từng ngày thu thập của bộ dữ liệu CSE-CIC-IDS2018:

STT Tên tệp tin dữ liệu (CSV) Số lượng gói tin Hình thức tấn công mô phỏng
1 Friday-02-03-2018_TrafficForML_CICFlowMeter.csv 1,048,575 Botnet
2 Friday-16-02-2018_TrafficForML_CICFlowMeter.csv 1,048,575 DoS-SlowHTTPTest, DoS-Hulk
3 Friday-23-02-2018_TrafficForML_CICFlowMeter.csv 1,048,575 Brute Force - Web, Brute Force - XSS, SQL Injection
4 Thursday-01-03-2018_TrafficForML_CICFlowMeter.csv 331,125 Infiltration
5 Thursday-15-02-2018_TrafficForML_CICFlowMeter.csv 1,048,575 DoS-GoldenEye, DoS-Slowloris
6 Thursday-22-02-2018_TrafficForML_CICFlowMeter.csv 1,048,575 Brute Force - Web, Brute Force - XSS, SQL Injection
7 Tuesday-20-02-2018_TrafficForML_CICFlowMeter.csv 948,748 DDoS-LOIC-HTTP, DDoS-LOIC-UDP
8 Wednesday-14-02-2018_TrafficForML_CICFlowMeter.csv 1,048,575 FTP-BruteForce, SSH-Bruteforce
9 Wednesday-21-02-2018_TrafficForML_CICFlowMeter.csv 1,048,575 DDoS-LOIC-UDP, DDoS-HOIC
10 Wednesday-28-02-2018_TrafficForML_CICFlowMeter.csv 613,104 Infiltration

Tổng số lượng gói tin trong 10 ngày thu thập đạt 16.233.002 gói tin, mô phỏng 14 loại hình tấn công khác nhau. Trong đó:

  • Số lượng gói tin gán nhãn bình thường (Normal): 13.484.708 gói tin (chiếm tỷ lệ 83%).
  • Số lượng gói tin tấn công (Attack): chiếm tỷ lệ 17%.
  • Gói tin có số lượng ít nhất: Tấn công SQL Injection với 87 gói tin.
  • Mỗi gói tin được trích xuất gồm 80 thuộc tính.

Kết quả và đóng góp

Kết quả chính đạt được

  1. Xây dựng bộ dữ liệu rút gọn IDS2018-WEB: Đã trích xuất thành công tập dữ liệu chuyên biệt cho bài toán ứng dụng web từ tập dữ liệu gốc 16,23 triệu gói tin của CSE-CIC-IDS2018, giúp tối ưu hóa dung lượng lưu trữ và giảm thiểu thời gian huấn luyện mô hình.
  2. Đánh giá và lựa chọn mô hình học máy tối ưu: Thực nghiệm trên các thuật toán Naive Bayes, Logistic Regression, Decision Tree và Random Forest cho thấy:
    • Các mô hình dựa trên cấu trúc cây quyết định và tổ hợp rừng cây (Decision Tree, Random Forest) mang lại hiệu quả vượt trội trong cả bài toán phân loại nhị phân và phân loại đa lớp đối với các dạng tấn công web (SQL Injection, XSS, Brute Force).
    • Mô hình Random Forest đạt độ chính xác cao và khả năng hạn chế hiện tượng quá khớp (overfitting) tốt nhờ cơ chế tổng hợp nhiều cây con và đánh giá tầm quan trọng đặc trưng bằng chỉ số giảm Gini trung bình.
  3. So sánh hiệu năng thực thi phân tán giữa Spark MLlib và Scikit-learn: Đo kiểm thực nghiệm tốc độ xử lý trên cụm máy chủ phân tán cho thấy việc kết hợp mô hình Scikit-learn chạy trên nền luồng của Apache Spark hoặc sử dụng Spark MLlib trực tiếp đều đáp ứng được yêu cầu xử lý luồng dữ liệu lớn theo thời gian thực, giải quyết triệt để bài toán nghẽn cổ chai khi lưu lượng mạng tăng cao.
  4. Xây dựng hệ thống giám sát hoàn chỉnh: Đã triển khai thành công ứng dụng giám sát với giao diện Dashboard trên Kibana, cho phép người quản trị theo dõi trực quan tình trạng lưu lượng mạng, nhận cảnh báo tức thời khi phát hiện xâm nhập và hỗ trợ công cụ truy vấn thông tin chi tiết về các cuộc tấn công.

Giải pháp và kiến nghị của tác giả

  • Ứng dụng giải pháp kiến trúc đường ống dữ liệu (Data Pipeline) phân tán kết hợp: sử dụng Apache Kafka làm tầng đệm thông lượng cao nhằm cô lập luồng dữ liệu vào/ra, kết hợp với engine Apache Spark Streaming để phân tán tải tính toán phân loại học máy trên nhiều nút máy chủ.
  • Tích hợp hệ thống quản lý nhật ký ELK Stack giúp chuẩn hóa quy trình tiếp nhận cảnh báo, lưu trữ chỉ mục và hiển thị trực quan thông tin phục vụ điều hành an ninh mạng.

Đóng góp so với các nghiên cứu trước

  • Khắc phục hạn chế của các hệ thống IDS dùng học máy truyền thống: Các nghiên cứu trước chỉ triển khai mô hình học máy trên môi trường máy chủ đơn lẻ, dẫn đến việc hệ thống bị tê liệt khi đối mặt với các cuộc tấn công quy mô lớn như DDoS hoặc các đợt bùng nổ lưu lượng truy cập. Khóa luận đã giải quyết điểm nghẽn này bằng hạ tầng tính toán phân tán Spark Streaming.
  • Khắc phục hạn chế của các hệ thống xử lý Big Data thuần túy: So với nghiên cứu của Patil et al. (chỉ sử dụng nền tảng Hadoop MapReduce phân tích thống kê cơ bản mà không tích hợp học máy, dẫn đến tỷ lệ phát hiện chưa cao), đồ án đã tích hợp thành công các thuật toán phân loại học máy hiện đại trên nền tảng Big Data, vừa đảm bảo độ chính xác phát hiện cao vừa duy trì hiệu năng xử lý với thông lượng lớn.

Hạn chế và hướng nghiên cứu tiếp

Hạn chế của đề tài

  • Bộ dữ liệu thực nghiệm được xây dựng dựa trên việc trích lọc từ dữ liệu mô phỏng trong phòng thí nghiệm (CSE-CIC-IDS2018) với các mẫu tấn công được dựng sẵn, chưa phản ánh đầy đủ tính đa dạng và biến thể phức tạp của lưu lượng mạng thực tế tại các cổng thanh toán hoặc hệ thống web thương mại điện tử trực tiếp.
  • Mẫu dữ liệu đối với một số lớp tấn công có sự mất cân bằng nghiêm trọng (điển hình là SQL Injection chỉ có 87 gói tin trong tổng số hơn 16,23 triệu gói tin), gây khó khăn nhất định cho việc tối ưu hóa độ thu hồi của một số mô hình học máy đối với lớp dữ liệu thiểu số.
  • Về mặt triển khai hệ thống, đồ án mới chỉ tập trung xây dựng luồng kết quả dự đoán hướng đến hệ sinh thái ELK để hiển thị cảnh báo và giám sát trực quan, chưa hoàn thiện phân hệ lưu trữ phân tán dài hạn trên cơ sở dữ liệu HBase/HDFS như định hướng lý thuyết tổng thể.

Hướng nghiên cứu tiếp

  • Mở rộng tập dữ liệu thực nghiệm bằng cách thu thập lưu lượng mạng thực tế từ các máy chủ web đang hoạt động để kiểm nghiệm khả năng thích ứng của mô hình trong môi trường thực.
  • Nghiên cứu áp dụng các kỹ thuật cân bằng dữ liệu (như oversampling/SMOTE hoặc cost-sensitive learning) để nâng cao độ chính xác phát hiện cho các dạng tấn công có số lượng mẫu hiếm như SQL Injection.
  • Hoàn thiện module lưu trữ phân tán dài hạn trên HBase/HDFS kết hợp với việc xây dựng cơ chế tự động kích hoạt tường lửa (Firewall) ngăn chặn địa chỉ IP nguồn tấn công theo thời gian thực thay vì chỉ dừng lại ở mức độ cảnh báo và hiển thị.

Giá trị tham khảo

Đối tượng tham khảo phù hợp

  • Sinh viên và học viên cao học: Chuyên ngành An toàn thông tin, Công nghệ thông tin, Khoa học máy tính và Kỹ thuật dữ liệu đang thực hiện đồ án tốt nghiệp, khóa luận hoặc tiểu luận chuyên ngành liên quan đến hệ thống phát hiện xâm nhập mạng (NIDS) và ứng dụng học máy trong an ninh mạng.
  • Kỹ sư bảo mật và chuyên viên vận hành SOC (Security Operations Center): Kỹ sư đang tìm kiếm kiến trúc mẫu để xây dựng hệ thống giám sát an toàn thông tin có khả năng mở rộng quy mô, tích hợp luồng xử lý dữ liệu lớn.
  • Kỹ sư dữ liệu (Data Engineers): Các nhà phát triển quan tâm đến việc xây dựng Data Pipeline thời gian thực kết nối Apache Kafka, Apache Spark Streaming và ELK Stack.

Các phần nội dung đáng tham khảo

  • Quy trình phân tích và tiền xử lý bộ dữ liệu CSE-CIC-IDS2018: Cung cấp thông tin chi tiết về cấu trúc các kịch bản tấn công, số lượng gói tin và phương pháp trích chọn thuộc tính từ tập dữ liệu lớn.
  • Kiến trúc tích hợp Spark Streaming, Kafka và ELK Stack: Mô hình luồng dữ liệu hoàn chỉnh từ khâu bắt gói tin, trích xuất đặc trưng qua CICFlowMeter đến khâu dự đoán phân tán và trực quan hóa Dashboard.
  • Phương pháp đánh giá và so sánh thực nghiệm: Cách thức thiết lập tham số, xây dựng ma trận nhầm lẫn, đo đạc đường cong ROC-AUC và so sánh hiệu năng giữa hai thư viện Spark MLlib và Scikit-learn trên môi trường phân tán.

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

1. Tại sao đề tài lại lựa chọn phát hiện tấn công ứng dụng web thay vì toàn bộ các dạng tấn công mạng nói chung?

Trong hệ thống các dịch vụ mạng Internet, ứng dụng web là phương thức triển khai phổ biến nhất để các phần mềm và hệ thống tiếp cận người dùng. Do đó, các ứng dụng web luôn đối mặt với nhiều rủi ro bảo mật hàng đầu. Các lỗ hổng web (như SQL Injection, XSS, Broken Authentication) có thể bị khai thác xuyên qua các lớp tường lửa mạng thông thường, gây rò rỉ dữ liệu nhạy cảm và phá hoại hệ thống hạ tầng CNTT. Việc tập trung vào ứng dụng web giải quyết trực tiếp bài toán an ninh bức thiết và phổ biến nhất hiện nay.

2. Bộ dữ liệu CSE-CIC-IDS2018 được thu thập trong điều kiện hạ tầng mạng như thế nào?

Bộ dữ liệu CSE-CIC-IDS2018 được thu thập trong khoảng thời gian 10 ngày với cấu hình mạng thực nghiệm gồm 50 máy tấn công (sử dụng hệ điều hành Kali Linux) và mạng nạn nhân gồm 420 máy trạm (chạy các hệ điều hành Windows Vista, 7, 8.1, 10 trên nền tảng 32-bit và 64-bit) cùng 50 máy chủ (chạy Ubuntu 16.04 và Ubuntu 12.4). Dữ liệu được trích xuất thành 80 thuộc tính lưu lượng mạng thông qua công cụ CICFlowMeter.

3. Tỷ lệ phân bố giữa gói tin bình thường và gói tin tấn công trong bộ dữ liệu CSE-CIC-IDS2018 là bao nhiêu?

Tổng số lượng gói tin thu thập được trong 10 ngày là 16.233.002 gói tin, mô phỏng 14 loại hình tấn công. Trong đó, số lượng gói tin bình thường (Normal) chiếm đa số với 13.484.708 gói tin (tương đương 83%), và số lượng gói tin tấn công chiếm 17%. Dạng tấn công có số lượng gói tin thấp nhất là SQL Injection với chỉ 87 gói tin.

4. Hai giải pháp kỹ thuật nào được tác giả đề xuất để triển khai mô hình học máy trên nền tảng xử lý dữ liệu lớn?

Tác giả đề xuất 2 giải pháp triển khai:

  • Giải pháp 1: Xây dựng ứng dụng dựa trên các mô hình học máy được đào tạo trực tiếp bằng thư viện Spark MLlib của Apache Spark.
  • Giải pháp 2: Xây dựng các mô hình học máy bằng thư viện Scikit-learn trong Python, sau đó tích hợp và vận hành mô hình này trên nền tảng ứng dụng luồng của Spark Streaming.

5. Vai trò của Apache Kafka trong kiến trúc hệ thống phát hiện tấn công của đồ án là gì?

Apache Kafka đóng vai trò là hệ thống truyền dẫn dữ liệu đệm (Message Broker) phân tán với độ trễ thấp và thông lượng cao. Kafka đảm nhận hai vị trí xung yếu trong luồng dữ liệu: thứ nhất là tiếp nhận và chuyển tiếp các bản ghi đặc trưng từ máy chủ lưu trữ (sau khi xử lý qua CICFlowMeter) đến ứng dụng Spark Streaming; thứ hai là tiếp nhận kết quả phân loại dự đoán từ Spark Streaming để chuyển tiếp đến Logstash trước khi ghi vào Elasticsearch.


Kết luận

Khóa luận tốt nghiệp "Phát hiện tấn công mạng dựa trên nền tảng xử lý dữ liệu lớn" của sinh viên Trần Đức Nhân đã nghiên cứu thành công giải pháp kết hợp giữa các mô hình học máy và nền tảng xử lý dữ liệu lớn phân tán để nâng cao hiệu quả phát hiện tấn công ứng dụng web. Thông qua việc phân tích và tiền xử lý bộ dữ liệu chuẩn CSE-CIC-IDS2018 để xây dựng tập dữ liệu rút gọn IDS2018-WEB, đề tài đã đánh giá toàn diện hiệu năng của các thuật toán phân loại và kiểm thử thực nghiệm khả năng xử lý luồng dữ liệu thời gian thực trên nền tảng Apache Spark và Kafka. Kết quả nghiên cứu cung cấp một kiến trúc hệ thống khả thi, vừa đảm bảo độ chính xác phát hiện các dạng tấn công web nguy hiểm vừa giải quyết triệt để vấn đề quá tải thông lượng khi lưu lượng mạng tăng cao.