Tải bản đầy đủ (.pdf) (7 trang)

Phát hiện xâm nhập dựa trên mạng LSTM và AutoEncoder

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (660 KB, 7 trang )

PHÁT HIỆN XÂM NHẬP DỰA TRÊN MẠNG LSTM VÀ
AUTOENCODER
Phan Thanh Sơn, Mai Thị Hoàng Yến, Trần Ngọc Nam, Lê Trần Văn Chương
Khoa Công nghệ Thông tin, Trường Đại học Công Nghệ TP. Hồ Chí Minh (HUTECH)
GVHD: TS. Văn Thiên Hồng

TĨM TẮT
Ngày nay, cùng với sự phát triển nhanh chóng của các ứng dụng hoạt động trong mơi trường mạng, thì hệ thống
phát hiện xâm nhập (Network Intrusion Detection System- IDS) đóng vai trị quan trọng trong việc giảm thiểu
những mối đe dọa cho các hệ thống thông tin này. Mặt khác, công nghệ máy học (Machine Learning-ML) và
học sâu (Deep LearningDL) ngày càng được áp dụng rộng rãi và chứng minh hiệu quả trong lĩnh vực an ninh
mạng, đặc biệt là các hệ thống phát hiện xâm nhập thế hệ mới (IDS). Trong bài báo này, chúng tôi đề xuất một
phương pháp DL cho phát hiện tấn công mạng sử dụng mạng bộ nhớ dài hạn (Long-Short Term MemoryLSTM) và bộ mã hóa tự động (AutoEncoder-AE). Trong đó, LSTM được sử dụng để thu thập các mẫu tuần tự
trong dữ liệu mạng và kết hợp với bộ mã hóa tự động AE để nâng cao hiểu quả hoạt động không đối xứng của
mạng LSTM trong việc tái tạo với các mẫu huấn luyện để làm nổi bật các đặc trưng của loại tấn công mạng.
Phương pháp đề xuất được thực nghiệm đánh giá trên bộ dữ liệuNSL-KDD. Các kết quả thực nghiệm với độ
chính xác cao đã chứng minh tính khả khi và hiệu năng của phương pháp đề xuất.
Từ khóa: AutoEncoder, IDS, LSTM, Phát hiện, Tấn cơng, Xâm nhập mạng.
1. GIỚI THIỆU
IDS là công cụ cần thiết để đảm bảo khả năng sẵn có, tính bảo mật và tính tồn vẹn của dữ liệu. IDS có hai
loại: Hệ thống phát hiện dựa trên chữ ký và dựa trên sự bất thường. Trong hệ thống dựa vào chữ ký, lưu lượng
độc hại có thể được phát hiện dựa trên các quy tắc được xác định trước. Tuy nhiên, các cuộc tấn công mạng
ngày càng tinh vi, hệ thống phát hiện dựa vào chữ ký không quá phù hợp, cần phát triển các kỹ thuật phát hiện
tấn công dựa vào sự bất thường của luồng dữ liệu mạng. Do vậy, các IDS dựa trên dị thường đã thu hút được
sự chú ý của cộng đồng nghiên cứu. Có nhiều phương pháp để nhận diện tấn công loại tấn công mạng dựa vào
sự bất thường. Trong đó, các kỹ thuật máy học ML được phát triển nhiều trong thời gian gần đây [1]. Mơ hình
tìm ra mẫu trong dữ liệu sai lệch so với các luồng dữ liệu bình thường khác [2]. Hầu hết các cơng trình hiện
nay đều dựa trên các phương pháp phát hiện dị thường được áp dụng Artificial Neural Networks (ANN) cho
các nhiệm vụ phân loại. Dữ liệu được gắn nhãn được sử dụng trong giai đoạn đào tạo. Sau đó, mơ hình được
áp dụng trên dữ liệu thử nghiệm để phân loại nó thành một trong các lớp dị thường. Tang và cộng sự [3] đã đề
xuất sử dụng mạng neural Self Organizing Map (SOM) để phát hiện tấn công mạng dựa trên luồng dữ liệu



73


mạng và đạt độ chính xác là 83%. Latah và cộng sự [4] đề xuất một hệ thống phân loại hỗn hợp năm giai đoạn
để nâng cao tỷ lệ phát hiện các lưu lượng tấn cơng mạng. Mơ hình này kết hợp ba bộ phân loại học máy khác
nhau, bao gồm phương pháp K-Nearest Neighbor (KNN), Ex-treme Learning Machine (ELM) và Hierarchical
Extreme Learning Machine (H-ELM). Độ chính xác của phương pháp được trình bày là 94.18%. Prasath và
cộng sự [5] đề xuất phương pháp phân loại mạng Meta-heuristic Bayesian network classification (MHBNC)
để phát hiện các gói tin đến mạng là lưu lượng truy cập bình thường hoặc tấn cơng mạng. Mơ hình MHBNC
được đề xuất đã đạt được độ chính xác là 82,99%. Một trong những ưu điểm chính của các kỹ thuật nói trên là
khả năng xử lý các tập dữ liệu nhiều chiều với hiệu suất cao. Tuy nhiên, những phương pháp này chủ yếu dựa
vào dữ liệu được gắn nhãn và dữ liệu cân bằng nhưng phần lớn dữ liệu không cân bằng, dữ liệu bất thường khó
thu thập được hơn so với dữ liệu bình thường. Hướng tiếp cận khác là dựa vào mạng neural AE để phát hiện
sự bất thường. Nhóm tác giải Hawsking [6] đã sử dụng AE để phát hiện trường hợp ngoại lệ. Trong những năm
gần đây, AE thường được sử dụng như là thuật toán hỗ trợ để giảm số chiều đặc trưng. AE có khả năng tạo các
đặc trưng với số chiều nhiều hơn để tăng độ chính xác trong việc phát hiện sự bất thường và đạt hiệu quả cao
hơn so với Kernel Principal Component Analysis (kernel PCA) [7]. Hơn nữa, AE dễ đào tạo và khơng u cầu
tính toán phức tạp như Kernel Principal Component Analysis (kernel PCA) [8].
Bài báo này, đề xuất kỹ thuật học sâu sử dụng kết hợp LSTM và AE để mơ hình hóa lưu lượng dữ liệu. Mơ
hình mạng học sâu này, cho phép học tự động các tính năng phân biệt từ các đặc trưng của luồng dữ liệu mạng.
Các phần tiếp theo chúng tơi sẽ trình bày nội dung thuật tốn đề xuất: Phần 2 sẽ trình bày chi tiết thuật tốn đề
xuất, kết quả thực nghiệm được trình bày trong phần 3 và kết luận trong phần 4.
2. PHƯƠNG PHÁP ĐỀ XUẤT
Phương pháp đề xuất kết hợp mơ hình mạng neural LSTM với bộ tiền xử lý dữ liệu AE để nhận diện các loại
tấn cơng mạng. Mơ hình AE để trích xuất đặc trưng và dùng mạng neural LSTM để huấn luyện mạng phân biệt
(Xem hình 1).

Hình 1. Sơ đồ phương pháp đề suất


2.1 Thuật toán AE cho tiền xử lý dữ liệu
Vì các luồng dữ liệu trong hai tập dữ liệu NSL_KDDTrain+.txt vàNSL_KDDTest+.txt vẫn chưa qua xử lý, số
chiều còn khá nhiều và phức tạp nên sẽ gây khó khăn trong việc phân loại, xử lý các đặc trưng và mất nhiều
74


thời gian, tài ngun trong q trình huấn luyện mơ hình. Vì vậy, đầu tiên chúng tơi sẽ sử dụng AutoEncoder
để xử lý đầu vào bằng cách trích xuất đặc trưng các dữ liệu có trong tập NSL_KDD. Dữ liệu sẽ được xử lý
thơng qua encoder với hàm kích hoạt là “Swish” [9] có những ưu điểm vượt trội hơn so với hàm “LeakyReLU”
hoặc “ReLU” ở những bài toán trước đó đã sử dụng để giảm chiều khơng gian, bỏ đi những dữ liệu không cần
thiết và chỉ lấy những dữ liệu đặc trưng nhất. Sau đó dữ liệu sẽ được nén lại thơng qua vectơ đặc trưng ít chiều
hơn so với ban đầu. Tiếp theo, trong không gian tiềm ẩn (Botteneck) chính là “encoding_dim” vectơ đặc trưng
nơi chứa những thông tin quan trọng trong giai đoạn encoder. Trong giai đoạn này, chính vì Botteneck chứa
những thơng tin cơ đọng nhất nên chiều của nó sẽ nhỏ hơn so với ban đầu, nếu Botteneck càng nhỏ thì sẽ càng
tránh được overfitting và Botteneck sẽ chọn lọc những thông tin quan trọng hơn trong suốt quá trình xử lý. Tuy
nhiên, Botteneck q nhỏ, lưu trữ được q ít thơng tin thì sẽ rất khó khăn trong phần decoder. Sau đó, trong
giai đoạn decoder sẽ giải mã ngược những dữ liệu ở giai đoạn Botteneck để tạo ra dữ liệu mới tương tự như dữ
liệu ban đầu. Thuật toán AE như sau:
Bảng 2.1 Mơ hình xử lý dữ liệu đầu vào Autoencoder
Thuật toán Autoencoder(X_train_scaler)
Input
Output

X train scaler – input NSL-KDD reshape
A set of attack network
feature-extraction
Init encoder = Sequential
{ Dense (activation=’swish’, input)
Dense(encoding_dim}


Initialize
Init decoder = Sequential
{ Dense (activation=’sigmoid’, input)}
Init Autoencoder = Sequential (encoder, decoder)
return encoder

2.2 Mạng LSTM cho việc phát hiện loại tấn công mạng
Sau khi được xử lý đầu vào bằng AutoEncoder thì trong giai đoạn tiếp theo chúng tôi sẽ sử dụng mạng LSTM
với 50 node và Activation Function softmax để huấn luyện dữ liệu đặc trưng. Sử dụng mạng LSTM để tránh
việc Vanishing Gradient trong quá trình huấn luyện. LSTM sử dụng cơ chế hoạt động của các cổng để điều

75


chỉnh lượng thông tin. LSTM sẽ sử dụng ba cổng trong một tế bào: Forget gate, Input gate và Output gate. Đầu
tiên, ở cổng Forget gate sẽ quyết định xem là những thông tin nào cần lượt bỏ và thông tin nào sẽ được giữ lại.
Trong giai đoạn Input gate sẽ quyết định thông tin nào sẽ được cập nhật và thêm vào tế bào. Cuối cùng, giai
đoạn Output gate sẽ sàng lọc và quyết định thông tin muốn xuất ra cho tế bào tiếp theo.
Bảng 2.2 Mơ hình mạng LSTM
Thuật toán LSTM (X_train_lstm, X_test_lstm)
Input
Output

look_back = X_train_extract.shape[1]
A set of Data Discriminator
MultiClassModel
model = Sequential()
model.add(Input(shape=(1, look_back)))
model.add(LSTM(units=50))


Initialize model.add(Dense(label_num, activation="softmax"))
Model <= multiClassModel
X_train_lstm<=X_train_extract.reshape(X_train_extract.shape[0], 1, X_train_extract.shape[1])
X_test_lstm<=X_test_extract.reshape(X_test_extract.shape[0], 1, X_test_extract.shape[1])
History <= model.fit

2.3 Huấn luyện mơ hình
Chúng tơi sử dụng Google Colab của Google và ngôn ngữ Python để huấn luyện mơ hình. Dựa trên các thuật
tốn và tập dữ liệu đầu vào đã được xử lý ở trên, chúng tơi tiến hành huấn luyện mơ hình LSTM nhằm phân
biệt các cuộc tấn công mạng. Với tiền xử lý dữ liệu sử dụng mơ hình mạng AE sẽ được chạy bằng optimizer
với phương thức “Adam” và loss là “mse”. Lịch sử sẽ được lưu lại bằng vòng lặp gồm 50 epochs và tốc độ học
tối ưu là 0,009. Khi chạy hết epochs hoặc loss và Val_loss hội tụ mô hình sẽ dừng lại. Sau khi có những thuộc
tính quan trọng nhất được giữ lại ở mơ hình AE thì trong bước tiếp theo sẽ sử dụng mơ hình mạng LSTM để
huấn luyện mơ hình phân biệt giữa luồng lưu lượng bình thường hoặc bất thường. Sau đó dựa vào luồng lưu
lượng bất thường có thể phân biệt các loại tấn cơng có trong tập dữ liệu NSL_KDD.
3. KẾT QUẢ THỰC NGHIỆM

76


3.1 Các độ đo đánh giá thực nghiệm
Ngoài ra, chúng tơi cũng sử dụng một số cơng thức để có thể đánh giá độ hiệu quả như sau:

Precision =

F − score =

TP
TP + FP


Recall =

2 x Precision x Recall
Precision + Recall

Accuracy =

TP
TP + FN

TP + TN
TP + TN + FP + FN

Trong đó, True Positive (TP) đại diện cho số lượng như bình thường. Tính tốn sai số bản ghi như dữ liệu lưu
lượng truy cập bình thường và bất thường. Phân tích độ chính xác, được phân loại chính xác là một cuộc tấn
công. True Negative (TN) đại diện cho giá trị phủ định đúng, F-score là độ chính xác cho tất cả các phương
pháp được xem xét. Số lượng các trường hợp được phân loại chính xác là bình thường. False Positive (FP) thể
hiện số lượng dự đốn được phân loại khơng chính xác của một cuộc tấn cơng. False Negative (FN) đại diện
cho số lượng dự đốn bình thường nhưng khơng chính xác.
3.2 Cơ sở dữ liệu NSL-KDD
Tập dữ liệu NSL-KDD chứa các file đại diện cho bốn loại tấn công: DoS, U2R, R2L và Probe. Các luồng dữ
liệu cịn lại đại diện cho lưu lượng bình thường. Các file trong tập dữ liệu NSL-KDD bao gồm 43 tính năng mơ
tả các thuộc tính của luồng lưu lượng trong mạng. Trong bài báo này, chúng tôi sử dụng KDDTrain + .TXT
làm tập huấn luyện và KDDTest + .TXT làm tập thử nghiệm [1].
3.3 Các biểu đồ đánh giá kết quả thực nghiệm
Đây là ma trận độ lỗi thơng qua mơ hình AE-LSTM. Ở đây, chúng ta sẽ xét đến đường chéo chính (6076, 1748,
533, 9043). Một mơ hình tốt sẽ cho Confusion matrix có các phần tử trên đường chéo chính có giá trị lớn, các
phần tử cịn lại có giá trị nhỏ. Nói cách khác đường chéo chính càng có màu sáng so với phần cịn lại sẽ càng
tốt.


77


(a)

(b)
Hình 4. Confusion Matrix (a) và Biểu đồ ROC curve (b).

Mơ hình Receiver Operating Characteristics (ROC) cho ta biết tính hiệu quả của mơ hình hay khơng. Một mơ
hình hiệu quả khi có False Positive Rate (FPR) thấp và True Positive Rate (TPR) cao, tức là tồn tại một điểm
trên ROC curve gần với tọa độ (0,1) trên đồ thị. Curve càng gần thì mơ hình càng hiệu quả.
Đường chính giữa là đường Area Under the Curve(AUC). Đại lượng này chính là diện tích nằm dưới ROC
curve màu. Giá trị này là một số dương nhỏ hơn hoặc bằng 1. Giá trị này càng lớn thì mơ hình càng tốt. Để
chứng minh điều này, chúng ta cùng xem đường ROC curve của DoS thì vùng diện tích của nó xấp xỉ bằng 1
(area = 0.9607) chứng tỏ độ bao phủ của chúng khá cao. Như chúng ta thấy trong bảng chủ thích, thì Probe sẽ
có độ chính xác theo sau loại tấn công Dos với (area = 0.9336) và R2L là nhỏ nhất (area = 0.9185).
4. KẾT LUẬN
Trong bài báo này, chúng tơi trình bày một phương pháp tiếp cận để phân loại các cuộc tấn công dựa trên cơ
sở mơ hình máy học bộ dữ liệu NSL-KDD. Dựa trên các số liệu thực nghiệm đã được thống kê và ghi nhận lại
có thể kết luận mơ hình có hiệu quả và độ chính xác cao hơn đáng kể so với các mơ hình RNN khác. Cùng với
đó, sự cải tiến trong Activation Function giúp cho bộ nhớ tiêu tốn và thời gian huấn luyện mơ hình giúp giả
thiểu tài nguyên tiêu tốn. Tập dữ liệu đã được đào tạo và thử nghiệm cho bốn lớp tấn công. Kết quả được đánh
giá dựa trên một tiêu chuẩn tham số như Precision, Recall, F-score, Accuracy. Trong tương lai, chúng tôi sẽ
cải thiện thêm mơ hình LSTM với các Activation Funtion khác để giúp cho mơ hình tối ưu hơn và chúng tơi
dự định áp dụng mơ hình vào trong hệ thống IDS thực tế để có thể đánh giá được hiệu suất của mơ hình.
5. TÀI LIỆU THAM KHẢO
[1] C. Yin, Y. Zhu, J. Fei, and X. He. 2017. A deep learning approach for intrusiondetection usingrecurrent
neural networks. IEEE Access 5, 21954–21961.
78



[2] T. A. Tang, L. Mhamdi, D. McLernon, S. A. R. Zaidi, and M. Ghogho. 2018. Deeprecurrent neural network
for intrusion detection in SDN-based networks. In Proc.4th IEEE Conference on Network Softwarization
and Workshops (NetSoft). IEEE,202–206.
[3] T. A. Tang, L. Mhamdi, D. McLernon, S. A. R. Zaidi, and M. Ghogho. 2016. Deep learning approach for
network intrusion detection in software defined networking. In Proc. International Conference on Wireless
Networks and Mobile Communications (WINCOM). IEEE, 258–263.
[4] M. Latah and L. Toker. 2018. An Efficient Flow-based Multi-level Hybrid Intrusion Detection System for
Software-Defined Networks. arXiv preprint arXiv:1806.03875.
[5] M. K. Prasath and B. Perumal. 2019. A meta-heuristic Bayesian network classification for intrusion
detection. International Journal of Network Management 29, 3, e2047.
[6] Simon Hawkins, Hongxing He, Graham Williams, and Rohan Baxter. 2002. Outlier detection using
replicator neural networks. In International Conference on Data Warehousing and Knowledge Discovery.
Springer, 170–180.
[7] Mayu Sakurada and Takehisa Yairi. 2014. Anomaly detection using autoencoders with nonlinear
dimensionality reduction. In Proceedings of the MLSDA 2014 2nd Workshop on Machine Learning for
Sensory Data Analysis. 4–11.
[8] Raghavendra Chalapathy and Sanjay Chawla. 2019. Deep learning for anomaly detection: A survey. arXiv
preprint arXiv:1901.03407.
[9] Prajit Ramachandran, Barret Zoph, Quoc V. Le. 2017. Searching for Activation Functions.

Neural and

Evolutionary Computing (cs.NE); Computer Vision and Pattern Recognition (cs.CV); Machine Learning
(cs.LG). 1–13.

79




×