Input
D - Tập dữ liệu
k - Kiểm chứng chéo k-fold
n - Số bộ phân lớp cơ sở trong phối hợp M - Tập các kỹ thuật học máy
E - Tập các kỹ thuật phối hợp khơng đồng nhất
Output
Best - Bộ phân lớp phối hợp khơng đồng nhất tốt nhất
Begin
1: bf = 0
2: Chia tập D thành k tập con cĩ kích thước bằng nhau Dk 3: For each e E do
4: f = 0
5: For i = 1 to k do
6: T = D \ Di
7: Dùng T huấn luyện bộ phân lớp phối hợp e với n/|𝑀| phân lớp cơ sở mỗi loại 8: Dùng Di kiểm tra bộ phân lớp phối hợp e
9: fi = chất lượng phân lớp của bộ phân lớp phối hợp e
10: f = f + fi 11: End for 12: if f > bf then 13: bf = f 14: Best = e 15: end if 16: End for 17: Return Best End
Mệnh đề 10: Thuật tốn 5.2 cĩ độ phức tạp theo thời gian là 𝑂(𝑁𝑒× 𝑛 × 𝑘), trong
đĩ Ne là số các kỹ thuật phối hợp khơng đồng nhất, n là số bộ phân lớp cơ sở trong phối hợp và k là số fold trong kiểm chứng chéo k-fold.
Chứng minh:
Gọi 𝑇(𝑁) là thời gian thực hiện của thuật tốn. Theo các lệnh từ (3) đến (16) ta cĩ:
Vậy
𝑇(𝑁) = 𝑂(𝑁𝑒× 𝑛 × 𝑘)
5.2 Kết quả thực hiện
Các chương trình, thuật tốn trong thử nghiệm được thực hiện như sau: - Ngơn ngữ lập trình: Java.
- Thư viện học máy: sử dụng khung làm việc học máy Weka do Đại học Waikato, New Zealand phát triển (https://www.cs.waikato.ac.nz/ml/weka/).
- Cấu hình máy tính chạy thử nghiệm: CPU Intel Core i5 8th Gen, RAM: 8 GB. - Việc huấn luyện và kiểm tra các bộ phân lớp sử dụng đánh giá chéo k-fold (k=10) trên tập dữ liệu huấn luyện đầy đủ của tập dữ liệu UNSW-NB15 gồm: 43 thuộc tính, 175.341 bản ghi, trong đĩ cĩ 56.000 bản ghi được dán nhãn bình thường và 119.341 bản ghi được dán nhãn tấn cơng (gồm 9 kiểu tấn cơng), tỷ lệ mất cân bằng lớp (xem Bảng 2.2).
- Cơng cụ Auto-WEKA [137] cũng được sử dụng để thiết lập giá trị tối ưu cho các tham số / siêu tham số của các thuật tốn học máy đơn và phối hợp.
Hai kỹ thuật phối hợp được thực hiện trong các thử nghiệm của luận án gồm: kỹ thuật phối hợp đồng nhất và kỹ thuật phối hợp khơng đồng nhất.
• Với kỹ thuật phới hợp đồng nhất:
Sáu kỹ thuật học máy được sử dụng như bộ phân lớp cơ sở, gồm: DT, NB, LR, SVM, KNN và Random Tree (RT). Sau đĩ áp dụng các thuật tốn này vào sáu bộ phân lớp sử dụng các kỹ thuật phối hợp đồng nhất khác nhau, gồm: Bagging, AdaBoost, Stacking, Decorate, Voting và Rừng ngẫu nhiên. Mơ hình IDS cho mỗi kiểu tấn cơng sử dụng kỹ thuật phối hợp đồng nhất được xây dựng như mơ tả trong Hình 5.5:
Hình 5.5. Mơ hình IDS sử dụng kỹ thuật phới hợp đồng nhất dùng trong thử nghiệm Theo đĩ, tập dữ liệu huấn luyện UNSW-NB15 được sử dụng để huấn luyện các bộ phân lớp phối hợp khi xây dựng mơ hình, sau đĩ áp dụng mơ hình đạt được lên tập dữ liệu kiểm tra để phân tích và đánh giá các kết quả đạt được.
Ở đây, Cây ngẫu nhiên (Random Tree: RT) cĩ cấu trúc giống hệt như Cây quyết định, với một điểm khác biệt khi xây dựng, đĩ là: đối với mỗi phép tách nhánh ở Cây ngẫu nhiên,
Decision Tree Naive Bayes
SVM KNN
Tập dữ liệu
UNSW-NB15 Kết quả phân lớp
Random Tree Bagging AdaBoost Stacking Decorate Logistic Regression
chỉ cĩ một tập hợp con ngẫu nhiên của các thuộc tính được sử dụng.
• Với kỹ thuật phới hợp khơng đồng nhất:
Sáu thuật tốn học máy đơn từ cơng cụ khai thác dữ liệu Weka được sử dụng gồm: DT, NB, LR, SVM, KNN và RT. Sau đĩ áp dụng các thuật tốn này vào hai bộ phân lớp phối hợp khơng đồng nhất gồm: Voting và Mix Stacking. Ở đây, Voting là kỹ thuật phối hợp đầu ra của các bộ phân lớp cơ sở dùng các kỹ thuật phân lớp đơn như đã nêu ở trên dựa vào đa số phiếu bầu như mơ tả trong Hình 5.6.
Khác với Voting, với kỹ thuật Mix Stacking (Hình 5.7), đầu ra của các bộ phân lớp cơ sở ở mức 0 sẽ là đầu vào của bộ phân lớp meta ở mức 1. Kết quả phân lớp của bộ phân lớp meta chính là kết quả chung cuộc. Trước khi sử dụng, bộ phân lớp meta cũng trải qua huấn luyện, ở đĩ các thuộc tính đầu vào để huấn luyện bộ phân lớp meta chính là các thuộc tính đầu ra của các bộ phân lớp cơ sở ở mức 0.
Hình 5.6. Mơ hình IDS sử dụng kỹ thuật Voting dùng trong thử nghiệm
Hình 5.7. Mơ hình IDS sử dụng kỹ thuật Mix Stacking dùng trong thử nghiệm
Phần tiếp theo trình bày kết quả đạt được khi sử dụng kỹ thuật phối hợp để phát hiện xâm nhập ứng với từng kiểu tấn cơng, cụ thể là: Worms, Shellcode, Backdoor, Analysis, Recce, DoS, Fuzzers, Exploits và Generic.
Decision Tree Naive Bayes Logistic Regression SVM KNN Tập dữ liệu
UNSW-NB15 Voting Kết quả phân lớp
Random Tree Decision Tree Naive Bayes Logistic Regression SVM KNN Tập dữ liệu UNSW-NB15 Bộ phân lớp Meta
Kết quả phân lớp
5.2.1 Sử dụng kỹ thuật phối hợp với kiểu tấn cơng Worms
Cĩ 4 kỹ thuật phối hợp đồng nhất được sử dụng với kiểu tấn cơng Worms, gồm: Bagging, AdaBoost, Stacking và Decorate. Bảng 5.1 trình bày chi tiết chỉ số đánh giá của việc phân lớp ứng với mỗi kỹ thuật:
Với kỹ thuật phân lớp đơn, theo kết quả phân lớp được trình bày trong Bảng 5.1, việc sử dụng KNN cho chỉ số F-Measure cao nhất (0.9771).
Với kỹ thuật Bagging, theo kết quả phân lớp được trình bày trong Bảng 5.1, kỹ thuật Bagging sử dụng các phân lớp thành phần là RT cho chỉ số F-Measure cao nhất (0.9833).
Với kỹ thuật AdaBoost, cũng theo kết quả phân lớp được trình bày trong Bảng 5.1, kỹ thuật AdaBoost sử dụng phân lớp thành phần là DT cho chỉ số F-Measure cao nhất
(0.9889).
Với kỹ thuật Stacking, cũng theo kết quả phân lớp được trình bày trong Bảng 5.1, kỹ thuật Stacking sử dụng phân lớp thành phần là KNN cho chỉ số F-Measure cao nhất (0.9771). Với kỹ thuật Decorate, cũng theo kết quả phân lớp được trình bày trong Bảng 5.1, kỹ thuật Decorate sử dụng phân lớp thành phần là RT cho chỉ số F-Measure cao nhất (0.9851).
Cả 4 kỹ thuật phối hợp đồng nhất nêu trên đều cho chỉ số F-Measure tốt hơn khi dùng kỹ thuật phân lớp đơn (với F-Measure tốt nhất là 0.9771). Trong đĩ, kỹ thuật AdaBoost cho kết quả F-Measure tốt nhất là 0.9889.
Bảng 5.1. So sánh chỉ sớ đánh giá các phới hợp đồng nhất với kiểu tấn cơng Worms Chỉ số đánh giá DT NB LR SVM KNN RT Bagging Sensitivity 0.9522 0.9706 0.8768 0.1563 0.9761 0.9761 Specificity 0.9997 0.9019 0.9990 1.0000 0.9996 0.9999 Precision 0.9792 0.1271 0.9298 0.9884 0.9707 0.9907 F-Measure 0.9655 0.2248 0.9026 0.2698 0.9734 0.9833 G-Means 0.9757 0.9356 0.9359 0.3953 0.9878 0.9879 AUC 0.9983 0.9857 0.9997 0.5781 1.0000 1.0000
Thời gian huấn luyện 29.7s 10.58s 6703.6s 344.9s 1883.5s 3290ms Thời gian kiểm tra 263.8s 108.5s 55256s 2963s 19526s 28.35s
AdaBoos t Sensitivity 0.9835 0.9669 0.8768 0.8107 0.9816 0.9596 Specificity 0.9999 0.9012 0.9990 0.9986 0.9996 0.9995 Precision 0.9944 0.1259 0.9262 0.8927 0.9745 0.9631 F-Measure 0.9889 0.2228 0.9008 0.8497 0.9780 0.9613 G-Means 0.9917 0.9335 0.9359 0.8997 0.9906 0.9793 AUC 1.0000 0.9552 0.9989 0.9971 0.9950 0.9795 Thời gian huấn luyện 38.32s 8.2s 530.4s 18200s 411s 171ms Thời gian kiểm tra 369.1s 61.45s 6553s 146399s 6841s 1434ms
Stacking Sensitivity 0.9522 0.7482 0.8879 0.1563 0.9798 0.9632 Specificity 0.9996 0.9994 0.9985 0.9999 0.9996 0.9995 Precision 0.9719 0.9465 0.8961 0.9770 0.9744 0.9668 F-Measure 0.9619 0.8357 0.8920 0.2694 0.9771 0.9650 G-Means 0.9756 0.8647 0.9416 0.3953 0.9897 0.9812 AUC 0.9748 0.9347 0.9941 0.5685 0.9985 0.9771
Thời gian huấn luyện 34.94 s 5.7 s 4103 s 235.6 s 560.6 s 2.89 s Thời gian kiểm tra 460.5 s 205.6 s 39710 s 2075 s 5071 s 251 s
Decorate Sensitivity 0.9632 0.9669 0.8438 0.1563 0.9890 0.9743 Specificity 0.9996 0.9012 0.9996 0.9999 0.9997 0.9999 Precision 0.9758 0.1259 0.9684 0.9770 0.9782 0.9962 F-Measure 0.9695 0.2228 0.9018 0.2694 0.9835 0.9851 G-Means 0.9813 0.9335 0.9184 0.3953 0.9943 0.9870 AUC 0.9962 0.9693 0.9785 0.5781 0.9986 1.0000
Thời gian huấn luyện 237s 785.9s 410.6s 68834s 110343s 29.35s Thời gian kiểm tra 1880s 769s 3706s 461727s 1139312s 263.49s
B ợ phân l ớ p đơn Sensitivity 0.9559 0.9669 0.8695 0.1563 0.9798 0.9632 Specificity 0.9996 0.9012 0.9991 0.9999 0.9996 0.9994 Precision 0.9701 0.1259 0.9348 0.9770 0.9744 0.9580 F-Measure 0.9630 0.2228 0.9010 0.2694 0.9771 0.9606 G-Means 0.9775 0.9335 0.9320 0.3953 0.9897 0.9811 AUC 0.9893 0.9859 0.9995 0.5781 0.9987 0.9813
Thời gian huấn luyện 3.6 s 400 ms 351 s 34.54 s 11 ms 374ms Thời gian kiểm tra 28.9 s 4924 ms 3631 s 280 s 477 s 3.21 s
Bảng 5.2 so sánh chỉ số đánh giá giữa các kỹ thuật rừng ngẫu nhiên với các kỹ thuật phối hợp đồng nhất và khơng đồng nhất với kiểu tấn cơng Worms. Qua đĩ kỹ thuật AdaBoost với các bộ phân lớp cơ sở là DT cho kết quả phân lớp tốt nhất với F-Measure đạt 0.9889 và
G-Means đạt 0.9917, cao hơn bộ phân lớp đơn ở tất cả các tiêu chí đánh giá trừ thời gian huấn
luyện và kiểm tra.
Bảng 5.2. So sánh chỉ sớ đánh giá giữa các kỹ thuật phân lớp với kiểu tấn cơng Worms
Chỉ số đánh giá Bợ phân lớp đơn
Rừng ngẫu nhiên
Phối hợp khơng đồng nhất Phối hợp đồng nhất Voting Stacking Sensitivity 0.9798 0.9743 0.9154 0.9816 0.9835 Specificity 0.9996 1.0000 0.9999 0.9998 0.9999 Precision 0.9744 0.9981 0.9940 0.9889 0.9944 F-Measure 0.9771 0.9860 0.9531 0.9852 0.9889 G-Means 0.9897 0.9870 0.9567 0.9907 0.9917 AUC 0.9987 1.0000 1.0000 0.9976 1.0000
Thời gian huấn luyện 11 ms 27.47 s 628.53 s 8049 s 38.32s Thời gian kiểm tra 476.98 s 220.77 s 7043 s 73384 s 369.1s
5.2.2 Sử dụng kỹ thuật phối hợp với kiểu tấn cơng Shellcode
Cĩ 4 kỹ thuật phối hợp đồng nhất được sử dụng với kiểu tấn cơng Shellcode, gồm: Bagging, AdaBoost, Stacking và Decorate. Bảng 5.3 trình bày chi tiết chỉ số đánh giá của việc phân lớp ứng với mỗi kỹ thuật:
Với kỹ thuật phân lớp đơn, theo kết quả phân lớp được trình bày trong Bảng 5.3, việc sử dụng KNN cho chỉ số F-Measure cao nhất (0.9704).
Với kỹ thuật Bagging, theo kết quả phân lớp được trình bày trong Bảng 5.3, kỹ thuật Bagging sử dụng các phân lớp thành phần là RT cho chỉ số F-Measure cao nhất (0.9684).
Với kỹ thuật AdaBoost, cũng theo kết quả phân lớp được trình bày trong Bảng 5.3, kỹ thuật AdaBoost sử dụng phân lớp thành phần là DT cho chỉ số F-Measure cao nhất
(0.9740).
Với kỹ thuật Stacking, cũng theo kết quả phân lớp được trình bày trong Bảng 5.3, kỹ thuật Stacking sử dụng phân lớp thành phần là KNN cho chỉ số F-Measure cao nhất (0.9700). Với kỹ thuật Decorate, cũng theo kết quả phân lớp được trình bày trong Bảng 5.3, kỹ thuật Decorate sử dụng phân lớp thành phần là RT cho chỉ số F-Measure cao nhất (0.9676).
Trong số 4 kỹ thuật phối hợp đồng nhất nêu trên, kỹ thuật AdaBoost cho chỉ số F- Measure tốt nhất (0.9740), tốt hơn khi dùng kỹ thuật phân lớp đơn (với F-Measure tốt nhất
Bảng 5.3. So sánh chỉ sớ đánh giá các phới hợp đồng nhất với kiểu tấn cơng Shellcode Chỉ số đánh giá DT NB LR SVM KNN RT Bagging Sensitivity 0.9389 0.9794 0.6479 0.0000 0.9933 0.9552 Specificity 0.9987 0.8263 0.9913 1.0000 0.9973 0.9992 Precision 0.9694 0.2034 0.7705 NaN 0.9426 0.9820 F-Measure 0.9539 0.3368 0.7039 NaN 0.9673 0.9684 G-Means 0.9683 0.8996 0.8014 0.0000 0.9953 0.9770 AUC 0.9989 0.9267 0.9839 0.5000 0.9998 0.9992
Thời gian huấn luyện 34.5s 11.4s 888.6s 1115s 2000s 3649ms Thời gian kiểm tra 299.7s 116s 7339.8s 9742.4s 20934s 32.45s
AdaBoos t Sensitivity 0.9637 0.9800 0.6479 0.1700 0.9970 0.9304 Specificity 0.9993 0.8258 0.9912 0.9937 0.9977 0.9970 Precision 0.9845 0.2030 0.7699 0.5499 0.9521 0.9327 F-Measure 0.9740 0.3363 0.7037 0.2597 0.9740 0.9316 G-Means 0.9813 0.8996 0.8014 0.4110 0.9974 0.9631 AUC 0.9993 0.9230 0.9690 0.9461 0.9981 0.9637 Thời gian huấn luyện 49.34s 2215ms 125.88s 20333s 7365s 156ms Thời gian kiểm tra 408.5s 19.86s 1301s 162069s 70232s 1542ms
Stacking Sensitivity 0.9328 0.3237 0.6491 - 0.9776 0.9189 Specificity 0.9973 0.9844 0.9892 - 0.9983 0.9965 Precision 0.9402 0.4842 0.7319 - 0.9625 0.9228 F-Measure 0.9365 0.3880 0.6880 - 0.9700 0.9209 G-Means 0.9645 0.5644 0.8013 - 0.9879 0.9569 AUC 0.9710 0.7976 0.9537 - 0.9997 0.9586
Thời gian huấn luyện 37.73 s 5.08 s 596.2 s - 578 s 3.83 s Thời gian kiểm tra 492.8 s 185.88 s 5315 s - 5228 s 272.3s
Decorate Sensitivity 0.9365 0.9800 0.6461 - 0.9909 0.9577 Specificity 0.9976 0.8257 0.9914 - 0.9953 0.9990 Precision 0.9474 0.2029 0.7728 - 0.9045 0.9778 F-Measure 0.9419 0.3362 0.7038 - 0.9457 0.9676 G-Means 0.9666 0.8996 0.8003 - 0.9931 0.9781 AUC 0.9875 0.9199 0.9838 - 0.9993 0.9989
Thời gian huấn luyện 254.7s 76.37s 234.1s - 114969s 29.89s Thời gian kiểm tra 1860.2s 807.97s 2034s - 2506652s 206.93s
B ợ phân l ớ p đơn Sensitivity 0.9401 0.9800 0.6461 - 0.9927 0.9292 Specificity 0.9971 0.8258 0.9914 - 0.9976 0.9968 Precision 0.9356 0.2030 0.7728 - 0.9491 0.9287 F-Measure 0.9378 0.3363 0.7038 - 0.9704 0.9289 G-Means 0.9682 0.8996 0.8003 - 0.9952 0.9624 AUC 0.9826 0.9230 0.9838 - 0.9998 0.9630
Thời gian huấn luyện 4385 ms 454 ms 65.43 s - 12 ms 303ms Thời gian kiểm tra 35.38 s 5403 ms 570.9 s - 505.4 s 3.22 s
Bảng 5.4 so sánh chỉ số đánh giá giữa các kỹ thuật Rừng ngẫu nhiên với các kỹ thuật phối hợp đồng nhất và khơng đồng nhất với kiểu tấn cơng Shellcode. Qua đĩ kỹ thuật phối hợp khơng đồng nhất Mix Stacking cho kết quả phân lớp tốt nhất với F-Measure đạt 0.9861. So với việc sử dụng bộ phân lớp đơn, Mix Stacking tốt hơn ở tất cả các tiêu chí đánh giá trừ
G-Means, Sensitivity và thời gian tính tốn. Tuy nhiên, Mix Stacking vẫn được chọn do tỷ lệ
cảnh báo sai thấp; Với bộ phân lớp đơn, tuy cĩ độ nhạy (Sensitivity) cao hơn, nhưng đi kèm theo đĩ là tỷ lệ cảnh báo sai cũng cao hơn, nên chung cuộc Precision và F-Measure đều thấp. Bảng 5.4. So sánh chỉ sớ đánh giá giữa các kỹ thuật phân lớp với kiểu tấn cơng Shellcode
Chỉ số đánh giá Bợ phân lớp đơn
Rừng ngẫu nhiên
Phối hợp khơng đồng nhất Phối hợp đồng nhất Voting Stacking Sensitivity 0.9927 0.9540 0.9425 0.9861 0.9637 Specificity 0.9976 0.9993 0.9990 0.9994 0.9993 Precision 0.9491 0.9832 0.9768 0.9861 0.9845 F-Measure 0.9704 0.9684 0.9594 0.9861 0.9740 G-Means 0.9952 0.9764 0.9703 0.9927 0.9813 AUC 0.9998 0.9998 0.9994 0.9969 0.9993
Thời gian huấn luyện 12 ms 29.38 s 488.3 s 5674 s 49.34s Thời gian kiểm tra 505.4 s 264.6 s 4818 s 49858 s 408.5s
5.2.3 Sử dụng kỹ thuật phối hợp với kiểu tấn cơng Backdoor
Cĩ 4 kỹ thuật phối hợp đồng nhất được sử dụng với kiểu tấn cơng Backdoor, gồm: Bagging, AdaBoost, Stacking và Decorate. Bảng 5.5 trình bày chi tiết chỉ số đánh giá của việc phân lớp ứng với mỗi kỹ thuật:
Với kỹ thuật phân lớp đơn, theo kết quả phân lớp được trình bày trong Bảng 5.5, việc sử dụng DT cho chỉ số F-Measure cao nhất (0.9878).
Với kỹ thuật Bagging, theo kết quả phân lớp được trình bày trong Bảng 5.5, kỹ thuật Bagging sử dụng các phân lớp thành phần là RT cho chỉ số F-Measure cao nhất (0.9948).
Với kỹ thuật AdaBoost, cũng theo kết quả phân lớp được trình bày trong Bảng 5.5, kỹ thuật AdaBoost sử dụng phân lớp thành phần là DT cho chỉ số F-Measure cao nhất
(0.9978).
Với kỹ thuật Stacking, cũng theo kết quả phân lớp được trình bày trong Bảng 5.5, kỹ thuật Stacking sử dụng phân lớp thành phần là DT cho chỉ số F-Measure cao nhất (0.9880).
Với kỹ thuật Decorate, cũng theo kết quả phân lớp được trình bày trong Bảng 5.5, kỹ thuật Decorate sử dụng phân lớp thành phần là RT cho chỉ số F-Measure cao nhất (0.9940).
Trong số 4 kỹ thuật phối hợp đồng nhất nêu trên, kỹ thuật AdaBoost cho chỉ số F- Measure tốt nhất (0.9978), tốt hơn khi dùng kỹ thuật phân lớp đơn (với F-Measure tốt nhất
Bảng 5.5. So sánh chỉ sớ đánh giá các phới hợp đồng nhất với kiểu tấn cơng Backdoor Chỉ số đánh giá DT NB LR SVM KNN RT Bagging Sensitivity 0.9865 0.9764 0.5600 0.1399 0.9974 0.9925 Specificity 0.9995 0.6277 0.9912 0.9988 0.9941 0.9998 Precision 0.9932 0.1593 0.8212 0.8947 0.9238 0.9970 F-Measure 0.9899 0.2739 0.6659 0.2420 0.9592 0.9948