Xây dựng hệ thống phát hiện xâm nhập bất thường dựa trên lưu lượng mạng ứng dụng công nghệ học máy
ỨNG DỤNG CÔNG NGHỆ HỌC MÁY TRONG PHÁT HIỆN XÂM NHẬP BẤT THƯỜNG
Trong những năm gần đây, với sự phát triển nhanh chóng của mạng Internet đã xuất hiện nhiều loại tấn công mới sử dụng kỹ thuật tinh vi khác biệt so với các phương thức trước đây. Điều này làm cho việc xác định các hành vi xâm nhập bất thường trở nên khó khăn trong thời gian thực, đặc biệt là khi các hệ thống tường lửa thế hệ cũ chỉ có các bộ luật và chính sách cụ thể, không có khả năng phát hiện và ngăn chặn các cuộc tấn công với hình thức mới.
Hơn nữa, với khối lượng dữ liệu ngày càng tăng lên và sự tiến bộ của các kỹ thuật tấn công, việc theo dõi và giám sát các biểu hiện của hành vi bất thường trong mạng trở thành một thách thức lớn. Điều này đặt ra nhu cầu cấp bách và cần thiết trong việc tiết kiệm thời gian và công sức cho việc phát hiện kịp thời và ứng phó với các sự cố.
Để giải quyết vấn đề trên, việc ứng dụng của công nghệ trí tuệ nhân tạo trong việc phát hiện các hành vi xâm nhập bất thường được coi là một giải pháp hợp lý và mang lại hiệu quả cao. Đặc biệt, việc xây dựng hệ thống phát hiện hành vi bất thường sử dụng công nghệ trí tuệ nhân tạo và hoạt động theo thời gian thực đang trở thành một xu hướng quan trọng.
Trong nhiều năm qua, đã có nhiều nghiên cứu về việc phát hiện các hành vi bất thường dựa trên lưu lượng mạng. Các kết quả nghiên cứu dựa trên việc sử dụng nhiều bộ dữ liệu khác nhau (DARPA98, KDD99, NSL-KDD, ISCX 2012, UNSW-NB15 và CICIDS2017) và các thuật toán học máy khác nhau. Cụ thể, vào năm 2012 nghiên cứu bởi Chebrolu [1] chỉ ra rằng, việc sử dụng thuật toán phân loại Bayesian networks trên bộ dữ liệu phát hiện xâm nhập KDD Cup 99 đã đạt được độ chính xác như sau: Bình thường (Benign): 100%; Probe: 100%; DOS: 100%; U2R: 84% và R2L: 84%. Trong một nghiên cứu [2] khác được thực hiện vào năm 2012, thuật toán Naive Bayes Classifier được sử dụng trong việc xác định bốn loại tấn công dựa trên bộ dữ liệu NSL-KDD cho kết quả: DOS: 98,7%; Probe: 98,8%; R2L: 96,1%, U2R: 64%.
Tuy nhiên, trong các nghiên cứu trên, các phương pháp học máy được sử dụng với các bộ dữ liệu khác nhau nhưng chưa có nghiên cứu nào xây dựng một hệ thống chạy theo thời gian thực trong việc phát hiện hành vi bất thường.
XÂY DỰNG HỆ THỐNG PHÁT HIỆN XÂM NHẬP BẤT THƯỜNG DỰA TRÊN LƯU LƯỢNG MẠNG ỨNG DỤNG CÔNG NGHỆ HỌC MÁY
Sơ đồ hệ thống
Sơ đồ thiết kế của hệ thống được mô tả trong Hình 1, với trọng tâm là một hệ thống cảnh báo xâm nhập sử dụng kỹ thuật học máy. Những dữ liệu thô được thu thập từ thiết bị định tuyến biên sẽ được lưu trữ trong cở sở dữ liệu và sau khi qua các công đoạn tiền xử lý, lựa chọn thuộc tính thì sẽ được phân lớp bởi mô hình phân lớp đã được huấn luyện. Việc huấn luyện mô hình phân lớp được thực hiện qua dữ liệu huấn luyện và kiểm tra với tập dữ liệu huấn luyện đã có. Cuối cùng, các cảnh báo bất thường sẽ được hiển thị trên giao diện Web.
Hình 1. Sơ đồ hệ thống được đề xuất
Bộ dữ liệu
Trong việc phát hiện các hành vi bất thường dựa trên lưu lượng mạng bằng phương pháp học máy, cần có một lượng lớn lưu lượng mạng bất thường và bình thường cho bước huấn luyện và kiểm tra mô hình. Trong nghiên cứu này, bộ dữ liệu CICIDS2017 [3] đã được sử dụng nghiên cứu nhờ vào những ưu điểm vượt trội như sau:
- Bộ dữ liệu gồm 80 đặc trưng, với 2.830.743 bản ghi được thực hiện thu trong 5 ngày với các các kịch bản tấn công mạng khác nhau như Brute Force Attack, Heart Bleed Attack, Botnet, DoS Attack, DDoS Attack, Web Attack (Brute Force, XSS, SQL Injection) và Infiltration Attack.
- Dữ liệu được thu thập từ hệ thống mạng thực tế, bao gồm các luồng dữ liệu từ các máy tính chạy trên các hệ điều hành khác nhau bao gồm Mac, Windows và Linux và các giao thức như HTTPS, FTP, HTTP, SSH xuất hiện cả ở phía kẻ tấn công và máy tính nạn nhân, tạo nên một môi trường đa chiều. Bộ dữ liệu này đã được dán nhãn để chuẩn bị cho việc áp dụng các phương pháp học máy.
Xây dựng mô hình
Bộ dữ liệu CICIDS2017 đã được sử dụng để xây dựng mô hình. Tuy nhiên, vấn đề mất cân bằng dữ liệu là một thách thức đáng kể. Để giải quyết vấn đề này, hai kỹ thuật đã được lựa chọn để giảm việc mất cân bằng dữ liệu là gán lại nhãn [4] và kỹ thuật SMOTE [5].
Trong bộ dữ liệu này, 15 loại hình tấn công đã được gán lại nhãn thành 7 loại khác nhau. Đồng thời, kỹ thuật SMOTE đã được áp dụng để tăng cường dữ liệu cho các loại tấn công Botnet ARES, Web Attack và Brute Force được thể hiện như trong Bảng 1.
Bảng 1. Số lượng bản ghi sau khi đã gắn lại nhãn và sinh dữ liệu
Tiếp theo, bộ dữ liệu huấn luyện đã được tiền xử lý để loại bỏ các đặc trưng tương quan và không cần thiết. Sau khi kết thúc quá trình tiền xử lý, bộ dữ liệu còn lại 48 đặc trưng, sau đó được chia thành hai tập huấn luyện và kiểm thử với tỷ lệ 8:2 tương ứng. Tiếp theo, các thuật toán học máy đã được nghiên cứu cho độ chính xác cao đối với bài toán phân loại bất thường này, bao gồm Gaussian Naive Bayes, Decision Tree, Random Forest và Xgboots, được áp dụng để huấn luyện mô hình. Cuối cùng để đánh giá mô hình dựa vào kết quả sử dụng các tiêu chí đánh giá sau: Ma trận lỗi (Confusion Matrix), Độ chính xác, Precision, Recall, F1-score được đưa ra trong Bảng 2.
Bảng 2. Kết quả thử nghiệm với các thuật toán phân loại
Trong số bốn thuật toán này, Random Forest đã cho kết quả với F1-score cao nhất, vượt trội hơn so với các thuật toán khác. Vì vậy, Random Forest đã được chọn làm thuật toán để tạo ra mô hình dự đoán.
Triển khai hệ thống
Để triển khai việc bắt lưu lượng mạng và tách các đặc trưng cần thiết từ lưu lượng mạng để đưa vào mô hình, một công cụ dựa trên mã nguồn mở miễn phí được gọi là Python Cicflowmeter [6] đã được sử dụng. Công cụ này cho phép bắt lưu lượng mạng đi qua các thiết bị ngoại biên như router, switch layer 3 để tách các trường dữ liệu cần thiết để đưa vào mô hình.
Mô hình mạng thử nghiệm bao gồm 01 switch layer 3 và 05 switch layer 2 cùng với các thiết bị và máy tính kết nối tới các switch layer 2. Công cụ tấn công được sử dụng trong kiểm thử là Hping3 từ một máy tính chạy hệ điều hành Kali-Linux. Sau khi sử dụng công cụ Hping3 để tiến hành cuộc tấn công Dos vào một địa chỉ máy tính trong mạng thử nghiệm, lưu lượng mạng đã được bắt lại thông qua công cụ Python Cicflowmeter. Sau đó, các đặc trưng cần thiết đã được tách ra và lưu dưới dạng file.csv để đưa vào mô hình đã được huấn luyện. Kết quả từ mô hình được hiển thị trên giao diện web như được mô tả trong Hình 2.
Hình 2. Kết quả với dữ liệu từ mạng thử nghiệm
Ngoài ra, dữ liệu để thử nghiệm còn được bắt từ cổng span-port từ switch biên của hệ thống mạng an toàn cơ bản thực tế của cơ quan để đưa qua mô hình cho kết quả như Hình 3.
Hình 3. Kết quả với dữ liệu từ mạng thực tế
Dựa vào kết quả có thể thấy, hệ thống đã bắt được các truy cập mạng bất thường và đưa ra cảnh báo về các truy cập đó.
KẾT LUẬN
Trong bài báo này, nhóm tác giả đã thành công xây dựng hệ thống thử nghiệm phát hiện các truy cập bất thường dựa trên lưu lượng mạng bằng phương pháp học máy chạy theo thời gian thực.
Ngoài ra, nhằm nâng cao năng lực phát hiện các hành vi bất thường, kết quả trên cũng là tiền đề để xây dựng một hệ thống phát hiện xâm nhập chạy theo thời gian thực kết hợp với các hệ thống phát hiện xâm nhập truyền thống có mã nguồn mở như Suricata, Snort để cho kết quả tốt hơn.
TÀI LIỆU THAM KHẢO [1]. S. Chebrolu, A. Abraham, and J. P. Thomas, "Feature deduction and ensemble design of intrusion detection systems," Computers & security, vol. 24, no. 4, pp. 295-307, 2005. [2]. S. Mukherjee and N. Sharma, "Intrusion detection using naive Bayes classifier with feature reduction," Procedia Technology, vol. 4, pp. 119-128, 2012. [3]. Iman Sharafaldin, Arash Habibi Lashkari, and Ali A. Ghorba-ni, “Toward Generating a New Intrusion Detection Dataset and Intrusion Traf-fic Characterization”, 4th International Conference on Information Systems Security and Privacy (ICISSP), Purtogal, January 2018. [4]. Panigrahi, Ranjit, and Samarjeet Borah. "A detailed analysis of CICIDS2017 dataset for designing Intrusion Detection Systems." Interna-tional Journal of Engineering & Technology 7.3.24 (2018): 479-482. [5]. Smote Chawla, Nitesh V., et al. "SMOTE: synthetic minority over-sampling technique." Journal of artificial intelligence research 16 (2002): 321-357. [6]. Python Cicflowmeter: An Open Source Traffic Flow Generator. Available online: https://gitlab.com/hieulw/cicflowmeter (accessed on 25 March 2024). |
TS. Nguyễn Ngọc Thân, ThS. Thân Minh Viện, Bùi Văn Kiên - Viện Nghiên Cứu 486, Bộ Tư Lệnh 86