Giới thiệu dự án

Trong kỷ nguyên chuyển đổi số và Cách mạng Công nghiệp 4.0, không gian mạng chứng kiến sự bùng nổ của lưu lượng dữ liệu với hàng tỷ kết nối đồng thời. Theo các báo cáo an ninh mạng toàn cầu, các cuộc tấn công mạng đang gia tăng đột biến cả về tần suất lẫn mức độ tinh vi. Các hình thức tấn công từ chối dịch vụ phân tán (DDoS), xâm nhập chiếm quyền điều khiển đặc quyền (User to Root - U2R), truy cập trái phép từ xa (Remote to Local - R2L), hay các hoạt động dò quét lỗ hổng (Probe) gây thiệt hại hàng tỷ USD cho các tổ chức tài chính, doanh nghiệp và cơ quan chính phủ.

Các giải pháp bảo mật truyền thống như tường lửa (Firewall), mạng riêng ảo (VPN) hay hệ thống phát hiện xâm nhập dựa trên tập luật/dấu hiệu (Signature-based IDS như Snort, Suricata) bộc lộ nhiều hạn chế nghiêm trọng. Chúng hoàn toàn bất lực trước các cuộc tấn công chưa từng biết (Zero-day exploits), đồng thời gặp điểm nghẽn cổ chai (bottleneck) về năng lực tính toán khi khối lượng dữ liệu log mạng chạm ngưỡng Big Data (hàng terabyte đến petabyte mỗi ngày).

Đồ án tốt nghiệp Kỹ sư Công nghệ Thông tin với đề tài "Tìm hiểu Spark cho phân tích dữ liệu lớn và áp dụng cho bài toán phát hiện xâm nhập mạng" do sinh viên Hồ Văn Phong (MSSV: 15110277) và Trần Quang Minh (MSSV: 15110250) thực hiện dưới sự hướng dẫn của ThS. Quách Đình Hoàng tại Trường Đại học Sư phạm Kỹ thuật TP.HCM (Khoa CNTT - Bộ môn Hệ thống Thông tin, khóa 2015 – 2019) đã giải quyết bài toán cấp thiết này bằng cách tích hợp tính toán phân tán In-Memory của Apache Spark với các thuật toán học máy hiện đại.

Mục tiêu cụ thể của đồ án bao gồm:

  1. Nghiên cứu toàn diện kiến trúc tính toán dữ liệu lớn của Apache Spark và thư viện học máy phân tán Spark MLlib.
  2. Phân tích các mối đe dọa an ninh mạng, phân loại các lớp tấn công DoS, Probe, U2R, R2L trên tập dữ liệu chuẩn NSL-KDD.
  3. Thiết kế quy trình tiền xử lý dữ liệu quy mô lớn: Chuyển đổi mã hóa One-Hot Encoding cho các thuộc tính định danh (nominal) thành không gian vector 84 chiều, chuẩn hóa nhãn nhị phân và đa lớp.
  4. Nghiên cứu và áp dụng giải thuật chọn lọc đặc trưng Attribute Ratio (AR) dựa trên Class Ratio (CR) nhằm loại bỏ thuộc tính dư thừa, giảm nhiễu và tối ưu hóa không gian dữ liệu.
  5. Triển khai, tinh chỉnh siêu tham số (Hyperparameter Tuning) và đánh giá đối chuẩn (Benchmark) 4 mô hình học máy: Random Forest, Neural Network (Multilayer Perceptron), Logistic Regression và Support Vector Machine (LinearSVC) trên môi trường Spark phân tán.

Phạm vi nghiên cứu tập trung vào bài toán phát hiện xâm nhập dựa trên bất thường (Anomaly-based Network IDS), kiểm thử trên tập dữ liệu chuẩn NSL-KDD gồm 125.973 mẫu huấn luyện và 22.544 mẫu kiểm tra độc lập.


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

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

Trước khi xây dựng hệ thống, nhóm nghiên cứu đã tiến hành so sánh đối chuẩn giữa các phương pháp tiếp cận phát hiện xâm nhập hiện hành:

Tiêu chí Signature-based IDS (Snort/Suricata) Hadoop MapReduce ML Apache Spark In-Memory MLlib
Cơ chế phát hiện So khớp chuỗi mẫu/luật tĩnh Học máy trên dữ liệu lịch sử Học máy phân tán đa thuật toán
Phát hiện Zero-day Kém (chỉ bắt được mẫu đã biết) Tốt (dựa trên phát hiện bất thường) Rất tốt (học bất thường trên dữ liệu lớn)
Tốc độ xử lý Đơn luồng/đa luồng hạn chế Chậm (nghẽn I/O ghi đĩa liên tục) Rất nhanh (tính toán hoàn toàn trên RAM)
Khả năng mở rộng Kém (giới hạn phần cứng máy trạm) Tốt (mở rộng cụm phân tán) Xuất sắc (Scale-out linh hoạt theo Executor)
Độ trễ phân tích Thời gian thực cho tập luật nhỏ Độ trễ cao (Batch processing nặng) Độ trễ cực thấp (Micro-batch/In-Memory)

Yêu cầu người dùng được cấu trúc theo mô hình MoSCoW:

  • Must have: Tự động hóa Pipeline tiền xử lý dữ liệu lớn; lọc đặc trưng bằng chỉ số AR; phân loại chính xác lưu lượng Normal và 4 lớp tấn công; đo lường ma trận nhầm lẫn (Confusion Matrix).
  • Should have: Tối ưu hóa siêu tham số tự động thông qua K-Fold Cross-Validation và Grid Search trên Spark; phân vùng dữ liệu đồng đều qua RDD/DataFrame Partitions.
  • Could have: Mở rộng giao diện cảnh báo thời gian thực qua Spark Streaming; tích hợp cấu trúc đồ thị GraphX.
  • Won't have: Can thiệp ngắt gói tin trực tiếp ở tầng kernel driver (IPS mode).

Thách thức kỹ thuật lớn nhất là hiện tượng mất cân bằng dữ liệu cực đoan trong bộ dữ liệu NSL-KDD: Trong khi tấn công DoS chiếm 36,46% (45.927 mẫu) và Normal chiếm 53,46% (67.343 mẫu), thì tấn công U2R chỉ chiếm 0,04% (52 mẫu) và R2L chiếm 0,79% (995 mẫu).

   ┌─────────────────────────────────────────────────────────────┐
   │                     NSL-KDD Dataset                         │
   │           (125,973 Train / 22,544 Test Records)             │
   └──────────────────────────────┬──────────────────────────────┘
                                  │
                                  ▼
   ┌─────────────────────────────────────────────────────────────┐
   │              Spark Preprocessing & Indexing                 │
   │  • One-Hot Encoding (protocol_type, service, flag -> 84 dim)│
   │  • Attribute Ratio (AR) Feature Selection                   │
   └──────────────────────────────┬──────────────────────────────┘
                                  │
                                  ▼
   ┌─────────────────────────────────────────────────────────────┐
   │             Spark MLlib Pipeline Distributed Engine         │
   │  ┌───────────────┐ ┌───────────────┐ ┌───────────────────┐  │
   │  │ Random Forest │ │ Neural Network│ │ Linear SVC / LogR │  │
   │  └───────┬───────┘ └───────┬───────┘ └─────────┬─────────┘  │
   └──────────┼─────────────────┼───────────────────┼────────────┘
              └─────────────────┼───────────────────┘
                                ▼
   ┌─────────────────────────────────────────────────────────────┐
   │         Evaluation: 5-Fold CV & Confusion Matrix            │
   │            (Accuracy, Precision, Recall, TPR, FPR)          │
   └─────────────────────────────────────────────────────────────┘

Thiết kế hệ thống

Hệ thống được thiết kế theo kiến trúc Master - Worker chuẩn của Apache Spark:

  • Spark Driver (SparkSession): Khởi tạo chương trình, biên dịch mã nguồn của người dùng thành đồ thị có hướng không tuần hoàn (Logically Directed Acyclic Graph - DAG), tối ưu hóa kế hoạch thực thi logic và vật lý (Physical Execution Plan) thông qua Catalyst Optimizer, quản lý lập lịch tác vụ (Task Scheduler).
  • Cluster Manager (Standalone/YARN): Điều phối và cấp phát tài nguyên RAM, CPU Core cho các Worker Node.
  • Executors: Chạy trên các Worker Node, chịu trách nhiệm lưu trữ các phân vùng dữ liệu (Partitions) trong bộ nhớ và thực thi các biến đổi (Transformations) cũng như hành động (Actions).

Stack công nghệ bao gồm:

  • Nền tảng xử lý: Apache Spark 2.4.x (Spark Core, Spark SQL/DataFrames, Spark MLlib).
  • Môi trường lập trình: Java 8, Scala 2.11, Python 3.7 (PySpark).
  • Hệ điều hành & Hạ tầng: Linux Ubuntu Server, HDFS lưu trữ phân tán.

Cơ chế an toàn và hiệu năng: Dữ liệu DataFrame trong Spark có tính chất bất biến (immutable). Các phép biến đổi dữ liệu được chia thành Narrow Dependencies (map, filter - không cần xáo trộn dữ liệu qua mạng) và Wide Dependencies (groupBy, join - yêu cầu shuffle partition giữa các node), áp dụng chiến lược đánh giá lười biếng (Lazy Evaluation) giúp giảm thiểu tối đa chi phí I/O mạng.

Methodology

Phương pháp luận nghiên cứu tuân thủ quy trình phát triển khoa học từ tháng 03/2019 đến tháng 07/2019 với 12 mốc thực hiện:

  • Giai đoạn 1 (Tuần 1 - 4): Khảo sát lý thuyết IDS, kiến trúc Spark, các tập dữ liệu mạng DARPA/KDD99/NSL-KDD.
  • Giai đoạn 2 (Tuần 5 - 8): Xây dựng giải thuật tiền xử lý One-Hot Encoding, thuật toán chọn lọc thuộc tính AR, thiết lập môi trường Spark Cluster.
  • Giai đoạn 3 (Tuần 9 - 10): Lập trình huấn luyện mô hình, tích hợp 5-Fold Cross-Validation và Grid Search tự động.
  • Giai đoạn 4 (Tuần 11 - 12): Đánh giá hiệu năng thực nghiệm, phân tích ma trận nhầm lẫn, hoàn thiện báo cáo và bảo vệ khóa luận.

Implementation và kết quả

Development process

Quy trình triển khai mô hình học máy trên Apache Spark MLlib được thực hiện qua các bước chuẩn hóa toán học và mã nguồn:

  1. Tiền xử lý dữ liệu và Mã hóa One-Hot Encoding: Bộ dữ liệu gốc có 41 thuộc tính, trong đó có 3 thuộc tính định danh phi số: protocol_type (cột 2), service (cột 3), flag (cột 4). Sử dụng StringIndexerOneHotEncoderEstimator để chuyển đổi 3 cột này thành 84 cột nhị phân phân tán.

  2. Thuật toán Chọn lọc thuộc tính Attribute Ratio (AR): Nhằm giảm số chiều dữ liệu mà vẫn giữ lại các đặc trưng có khả năng phân biệt lớp cao nhất, nhóm nghiên cứu xây dựng công thức tính chỉ số AR cho từng thuộc tính $i$: $$AR(i) = \max_j \big(CR(j)\big)$$ Trong đó, $CR(j)$ (Class Ratio) là tỷ lệ đóng góp của thuộc tính đối với từng lớp nhãn $j$:

  • Đối với thuộc tính số (Numeric): $$CR(j) = \frac{\text{Mean}(j)}{\sum_{k} \text{Mean}(k)}$$
  • Đối với thuộc tính nhị phân (Binary): $$CR(j) = \frac{\text{Frequency}(j)}{\sum_{k} \text{Frequency}(k)}$$
# Trích đoạn code Pipeline xử lý và huấn luyện trên Apache Spark MLlib
from pyspark.sql import SparkSession
from pyspark.ml import Pipeline
from pyspark.ml.feature import StringIndexer, OneHotEncoderEstimator, VectorAssembler
from pyspark.ml.classification import RandomForestClassifier, LinearSVC, MultilayerPerceptronClassifier
from pyspark.ml.tuning import CrossValidator, ParamGridBuilder
from pyspark.ml.evaluation import MulticlassClassificationEvaluator

# 1. Khởi tạo SparkSession
spark = SparkSession.builder \
    .appName("NetworkIntrusionDetection_SparkML") \
    .config("spark.executor.memory", "4g") \
    .config("spark.driver.memory", "2g") \
    .getOrCreate()

# 2. Xây dựng Pipeline tiền xử lý One-Hot Encoding
categorical_cols = ["protocol_type", "service", "flag"]
indexers = [StringIndexer(inputCol=c, outputCol=c+"_index") for c in categorical_cols]
encoder = OneHotEncoderEstimator(
    inputCols=[c+"_index" for c in categorical_cols],
    outputCols=[c+"_vec" for c in categorical_cols]
)

# 3. Vector hóa các thuộc tính đã chọn lọc bằng AR
numeric_cols = ["duration", "src_bytes", "dst_bytes", "count", "srv_count", 
                "same_srv_rate", "diff_srv_rate", "dst_host_count", "dst_host_srv_count"]
assembler_inputs = [c+"_vec" for c in categorical_cols] + numeric_cols
assembler = VectorAssembler(inputCols=assembler_inputs, outputCol="features")

# 4. Thiết lập mô hình Random Forest Classifier
rf = RandomForestClassifier(labelCol="label_index", featuresCol="features", seed=42)

pipeline = Pipeline(stages=indexers + [encoder, assembler, rf])

# 5. Tinh chỉnh Hyperparameter với 5-Fold Cross-Validation
paramGrid = ParamGridBuilder() \
    .addGrid(rf.numTrees, [20, 50, 100]) \
    .addGrid(rf.maxDepth, [5, 10, 15]) \
    .build()

evaluator = MulticlassClassificationEvaluator(
    labelCol="label_index", predictionCol="prediction", metricName="accuracy"
)

cv = CrossValidator(estimator=pipeline, estimatorParamMaps=paramGrid, 
                    evaluator=evaluator, numFolds=5, seed=42)

# cv_model = cv.fit(train_df)

Testing và validation

Hiệu năng của các mô hình được thẩm định qua kỹ thuật 5-Fold Cross-Validation trên tập huấn luyện và kiểm thử độc lập trên tập KDDTest+ (22.544 mẫu). Các đại lượng đo lường dựa trên ma trận nhầm lẫn (Confusion Matrix):

  • True Positive (TP): Số mẫu tấn công được phát hiện chính xác là tấn công.
  • False Positive (FP): Số mẫu bình thường nhưng bị cảnh báo nhầm là tấn công (báo động giả).
  • False Negative (FN): Số mẫu tấn công nhưng bị bỏ sót thành bình thường (nguy hiểm nhất cho hệ thống).
  • True Negative (TN): Số mẫu bình thường được phân loại chính xác là bình thường.
  • Accuracy (Độ chính xác): $\text{Accuracy} = \frac{TP + TN}{TP + TN + FP + FN}$

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

Kết quả thực nghiệm đối chuẩn giữa 4 thuật toán học máy phân tán trên Apache Spark:

Mô hình Machine Learning Accuracy (Độ chính xác) False Positive Rate (FPR) False Negative Rate (FNR) Training Time (s)
Random Forest 99,12% 0,85% 0,91% 42,5 s
Neural Network (MLP) 98,45% 1,42% 1,68% 118,3 s
Support Vector Machine (LinearSVC) 97,30% 2,15% 3,25% 65,7 s
Logistic Regression 96,85% 2,80% 3,50% 18,2 s
  • Random Forest: Đạt hiệu năng toàn diện cao nhất với độ chính xác 99,12%, xử lý rất tốt các thuộc tính phi tuyến và hạn chế tối đa nguy cơ quá khớp (overfitting) nhờ cơ chế phân nhánh ngẫu nhiên nhiều cây quyết định trên các partition Spark.
  • Neural Network (Multilayer Perceptron): Đạt độ chính xác 98,45%, có khả năng mô hình hóa trừu tượng tốt nhưng đòi hỏi thời gian huấn luyện lâu hơn do quá trình lan truyền ngược (Backpropagation) trên mạng nơ-ron phân tán.
  • Support Vector Machine (LinearSVC) & Logistic Regression: Có tốc độ hội tụ nhanh, phù hợp cho bài toán phân loại tuyến tính cơ bản, tuy nhiên độ nhạy trước các lớp tấn công phức tạp U2R và R2L thấp hơn so với Random Forest.

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

  1. Tích hợp Pipeline lọc đặc trưng AR phân tán: Thay vì sử dụng toàn bộ 41 đặc trưng gây lãng phí tài nguyên tính toán, việc tính toán chỉ số Attribute Ratio trực tiếp qua Spark DataFrame giúp giảm 40% chi phí truyền dữ liệu qua mạng (Network Shuffle) và tăng tốc độ huấn luyện mô hình lên 2,3 lần.
  2. Loại bỏ hiện tượng thắt nút cổ chai I/O: So với các công trình nghiên cứu chạy thuật toán học máy trên Hadoop MapReduce thế hệ cũ, kiến trúc In-Memory RDD của Apache Spark giúp tăng tốc độ xử lý dữ liệu mạng gấp 15 đến 20 lần.
  3. Quy chuẩn hóa Pipeline xử lý Anomaly NIDS: Cung cấp một bộ khung (framework) hoàn chỉnh từ khâu tiếp nhận gói tin thô, mã hóa One-Hot, trích xuất đặc trưng đến tự động tối ưu hóa siêu tham số bằng 5-Fold Cross-Validation trên môi trường phân tán.

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

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

  • Trung tâm giám sát điều hành an ninh mạng (SOC): Tích hợp mô hình Spark MLlib vào luồng phân tích sự kiện an toàn thông tin (SIEM), phân loại tự động hàng triệu log kết nối mạng mỗi phút nhằm phát hiện sớm các đợt tấn công DDoS và quét cổng thăm dò.
  • Hạ tầng đám mây và Trung tâm dữ liệu: Triển khai giải pháp trên các Gateway kết nối để bảo vệ cụm máy chủ dịch vụ, phát hiện các nỗ lực leo thang đặc quyền U2R nội bộ.

Kiến trúc triển khai đề xuất

  • Phân bổ tài nguyên: Cụm tối thiểu gồm 1 Master Node (4 vCPU, 8GB RAM) và 3 Worker Nodes (mỗi Node 8 vCPU, 16GB RAM).
  • Tích hợp luồng dữ liệu: Sử dụng Apache Kafka làm bộ đệm trung gian tiếp nhận luồng gói tin mạng (NetFlow/pcap), Spark Structured Streaming nạp dữ liệu theo micro-batch (chu kỳ 1 - 2 giây) và gọi mô hình Random Forest đã được huấn luyện sẵn để suy luận (inference) thời gian thực.
  • Hiệu quả kinh tế (ROI): Giảm thiểu 70% chi phí đầu tư phần cứng chuyên dụng độc quyền đắt đỏ bằng cách tận dụng phần cứng thương mại (Commodity Hardware) chạy cụm Spark nguồn mở; ngăn ngừa rủi ro gián đoạn dịch vụ với tỷ lệ phát hiện tấn công đạt trên 99%.

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

Hạn chế kỹ thuật

  • Dữ liệu NSL-KDD mặc dù giải quyết được vấn đề trùng lặp của KDD99 nhưng vẫn là dữ liệu mô phỏng trong môi trường đóng, chưa bao quát hoàn toàn các giao thức mã hóa hiện đại ngày nay như HTTPS (TLS 1.3), QUIC, HTTP/2.
  • Số lượng mẫu của các lớp tấn công hiếm như U2R (52 mẫu) còn quá ít, khiến độ nhạy phát hiện của các mô hình tuyến tính đối với lớp này chưa đạt mức tuyệt đối nếu không áp dụng các kỹ thuật tăng cường dữ liệu nhân tạo (SMOTE).

Hướng phát triển

  • Tích hợp kỹ thuật cân bằng lớp phân tán (Distributed SMOTE / Synthetic Oversampling) trực tiếp trong Spark MLlib Pipeline.
  • Mở rộng phân tích đồ thị luồng mạng sử dụng thư viện Spark GraphX để phát hiện các mạng máy tính ma (Botnet) dựa trên cấu trúc liên kết nút IP/Port.
  • Ứng dụng mô hình học sâu phân tán (Distributed Deep Learning) như CNN-LSTM trên nền tảng Spark để phân tích sâu chuỗi thời gian của các gói tin payload.

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

  • Sinh viên & Giảng viên Công nghệ Thông tin: Tài liệu tham khảo học thuật hoàn chỉnh, chuẩn mực về phương pháp kết hợp công nghệ Big Data (Apache Spark) và Trí tuệ nhân tạo vào lĩnh vực an ninh mạng.
  • Kỹ sư An toàn thông tin & Quản trị mạng: Nắm vững phương pháp luận xây dựng hệ thống NIDS dựa trên học máy phân tán, cách xử lý bài toán mất cân bằng dữ liệu và tối ưu hóa ma trận nhầm lẫn.
  • Kỹ sư Dữ liệu (Data Engineers) & AI Developers: Cung cấp kiến trúc mẫu (Design Pattern) về việc xây dựng Spark ML Pipeline, từ tiền xử lý One-Hot Encoding, tính toán phân tán đặc trưng AR đến Grid Search siêu tham số trên cụm máy tính.
  • Doanh nghiệp & Tổ chức: Giải pháp kiến trúc tham chiếu khả thi cao để tự chủ xây dựng hệ thống giám sát an ninh mạng quy mô lớn với chi phí bản quyền 0 đồng.

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

1. Cấu hình phần cứng và môi trường cần thiết để triển khai hệ thống Spark NIDS là gì?

Hệ thống yêu cầu môi trường Java JDK 8 trở lên, Apache Spark phiên bản 2.4.x (hoặc mới hơn), Scala 2.11 / Python 3.7. Để thử nghiệm trên máy đơn (Local Mode), máy trạm cần tối thiểu 8GB RAM và 4 CPU Cores. Để triển khai sản xuất (Cluster Mode), khuyến nghị cụm phân tán từ 3 Worker Nodes trở lên, mỗi node tối thiểu 16GB RAM để tối ưu hóa không gian lưu trữ In-Memory RDD.

2. Hệ thống xử lý thế nào khi khối lượng dữ liệu mạng tăng đột biến từ hàng Gigabyte lên hàng Terabyte?

Nhờ kiến trúc Scale-out của Apache Spark, hệ thống chỉ cần bổ sung thêm các Worker Node vào cụm mà không cần cấu trúc lại mã nguồn. Spark sẽ tự động chia nhỏ DataFrame thành nhiều Partitions tương ứng với số lượng Executor Cores, tính toán song song hoàn toàn trong bộ nhớ RAM và tự động cân bằng tải.

3. Làm thế nào để tích hợp mô hình Spark MLlib vào hệ thống bảo mật hiện có của doanh nghiệp?

Mô hình sau khi huấn luyện tối ưu với CrossValidator sẽ được lưu dưới dạng PipelineModel lên HDFS hoặc S3. Hệ thống có thể tích hợp với Apache Kafka để đọc luồng log mạng thời gian thực, đưa qua Spark Structured Streaming để phân loại và đẩy cảnh báo về hệ sinh thái SIEM (như ELK Stack, Splunk) qua REST API hoặc Kafka Topic.

4. Chi phí vận hành và bảo trì mô hình định kỳ như thế nào?

Do sử dụng hoàn toàn nền tảng mã nguồn mở (Apache Spark, Linux), doanh nghiệp không tốn chi phí bản quyền phần mềm. Về mặt bảo trì, hệ thống cho phép thiết lập các tác vụ định kỳ (Cron Jobs / Apache Airflow) để tự động nạp dữ liệu log mới, huấn luyện lại (Retrain) mô hình và cập nhật trọng số phân loại nhằm thích ứng với các biến thể tấn công mới.

5. Tại sao đồ án lựa chọn chỉ số Attribute Ratio (AR) thay vì sử dụng toàn bộ 41 đặc trưng gốc?

Việc áp dụng toàn bộ 41 đặc trưng sau khi One-Hot Encoding sẽ làm bùng nổ không gian lên hàng trăm chiều, chứa nhiều thuộc tính nhiễu làm chậm quá trình huấn luyện và giảm độ chính xác. Chỉ số AR dựa trên tỷ lệ Class Ratio (CR) giúp định lượng mức độ phân tách giữa các lớp nhãn, chỉ giữ lại các đặc trưng có giá trị đóng góp cao nhất, từ đó giảm 40% phụ tải mạng và tối ưu hóa thời gian tính toán.


Kết luận

Đồ án tốt nghiệp "Tìm hiểu Spark cho phân tích dữ liệu lớn và áp dụng cho bài toán phát hiện xâm nhập mạng" của nhóm tác giả Hồ Văn Phong và Trần Quang Minh dưới sự hướng dẫn của ThS. Quách Đình Hoàng đã giải quyết trọn vẹn bài toán ứng dụng công nghệ tính toán phân tán hiệu năng cao vào an ninh mạng. Bằng việc kết hợp sức mạnh In-Memory Computing của Apache Spark MLlib, kỹ thuật chọn lọc đặc trưng Attribute Ratio và thuật toán phân loại Random Forest, đồ án đã chứng minh khả năng phát hiện xâm nhập bất thường với độ chính xác vượt trội 99,12% và tỷ lệ cảnh báo sai dưới 1%. Đây là công trình nghiên cứu ứng dụng có giá trị học thuật cao, đồng thời mở ra giải pháp thực tiễn vững chắc cho việc bảo vệ hạ tầng thông tin trong kỷ nguyên Big Data.