CHƯƠNG 4 XÂY DỰNG BỘ DỮ LIỆU ĐỀ XUẤT
4.2 Mơ hình kiểm thử với các thuật tốn học máy
4.2.1 Tiền xử lý dữ liệu
Trong phần này, tác giả rà sốt lại các nghiên cứu của các nhà nghiên cứu để quyết định thuật tốn học máy được sử dụng phổ biến trong việc phát hiện tấn cơng DoS/DDOS. Sau đĩ tác giả sẽ đề xuất ra một mơ hình học máy để so sánh với các thuật tốn học máy khác. Tiếp theo, tác giả sử dụng các bộ dữ liệu như CIC-IDS-
DDoS 40%
Benign 60%
62
2017 và CICDDoS2019 làm tập dữ liệu luyện tập và tập dữ liệu kiểm thử. Sau khi hồn thành xong quá trình xử lý dữ liệu và chọn thuật tốn phù hợp, tác giả tiến hành kiểm tra đánh giá, sau đĩ chọn ra các trường dữ liệu cĩ mức độ ảnh hưởng cao trong việc phát hiện tấn cơng DoS/DDOS của mơ hình luyện tập.
Quá trình xử lý dữ liệu
Bộ dữ liệu CIC-IDS-2017 và CICDDoS2019 cĩ dung lượng tương đối lớn và cần sự xử lý cẩn thận và chính xác để mơ hình đạt được hiệu quả tốt nhất; Việc đầu tiên cần xử lý là loại bỏ đi một số trường khơng cần thiết, cĩ mức độ ảnh hưởng thấp trong việc phán đốn và giữ lại các trường cĩ mức độ ảnh hưởng quan trọng. Để thực hiện được việc này, luận văn cĩ nghiên cứu, phân tích từ các nghiên cứu trước đĩ về đánh giá dataset [18] cũng như các nghiên cứu ứng dụng học máy cho các dataset này.
Trong nghiên cứu, luận văn sử dụng thư viện Pandas, Scikit-Learn, Numpy để phục vụ cho quá trình xử lý dữ liệu cả 3 bộ dữ liệu. Quá trình xử lý dữ liệu cĩ thể được viết vắn tắt như sau:
• Các feature như flow-id, src-ip, src-port, dst-ip và timestamp bị loại bỏ vì
chúng khơng liên quan đến nhãn luồng trong thiết lập này. Các mẫu dữ liệu chứa NaN, Inf val-ues cũng bị loại bỏ.
• Do vấn đề tính tốn sai các feature [18] một số feature luơn bị null cũng
được loại bỏ (‘Bwd PSH Flags’, ‘BwdURG Flags’, ‘Fwd Avg Bytes/Bulk’, ‘Fwd Avg Pack-ets/Bulk’, ‘Fwd Avg Bulk Rate’, ‘Bwd Avg Bytes-/Bulk’, ‘Bwd Avg Packets/Bulk’, ‘Bwd Avg BulkRate’).
• Loại bỏ 4 feature bị trùng lặp trong file: Aver-age Packet Size" and "Packet Length Mean; FwdPacket Length Mean and Fwd Segment Size Avg
• Các mẫu dữ liệu được gắn nhãn là lành tính hoặc kiểu tấn cơng tương ứng
• Tồn bộ tập dữ liệu được chia thành tập huấn luyện và thử nghiệm theo tỷ
lệ 8 đến 2.
Từ những dữ liệu đặc trưng trích xuất, tác giả tiến hành kết hợp để tạo ra bộ dữ liệu mới.
1. Dữ liệu được làm sạch, loại bỏ các cột chứa những thơng tin khơng quan trọng như “ flow id”, “src ip”, “ src port”, “dst ip” , “ timestamp”. Sau đĩ loại bỏ tiếp các hàng chứa các kí tự NaN, Inf. Đĩ là các lưu lượng bị lỗi trong khi thu thập thơng tin
2. Sau đĩ dữ liệu được gán lại nhãn. Với bài tốn anomaly, các lưu lượng benign giữ nguyên nhãn, các lưu lượng tấn cơng khác nhau được gán chung một nhãn là DoS/DDOS. với bài tốn multiple DoS/DDOS detection, các nhãn của dữ liệu được giữ nguyên cho việc training model.
4. Chia dữ liệu thành 2 tập training data và testing data. Tập trainning data chiếm 80% dữ liệu và testing data chiếm 20% dữ liệu
63
4.2.2 Huấn luyện model AI
Hình 4.7 Mơ hình huấn luyện model AI
1. Training data được sử dụng để huấn luyện các thuật tốn machine learning và deep learning để tạo ra được model AI hồn chỉnh
2.Testing data được sử dụng để kiếm thử model AI đã xây dựng thơng qua các chỉ số như accuracy, recall, f1 score
4.2.3 Đánh giá độ chính xác
Accuracy
Đây là cách đơn giản nhất để đánh giá mơ hình tốt hay xấu. Trong bài tốn phân lớp "accuracy" hay "độ chính xác" được tính như sau:
𝑎𝑐𝑐𝑢𝑟𝑎𝑐𝑦 = 𝑛𝑢𝑚𝑏𝑒𝑟 𝑜𝑓 𝑟𝑖𝑔ℎ𝑡 𝑝𝑟𝑒𝑑𝑖𝑐𝑡𝑖𝑜𝑛
𝑛𝑢𝑚𝑏𝑒𝑟 𝑜𝑓 𝑑𝑎𝑡𝑎
Cách đánh giá này đơn giản tính tỉ lệ giữa số điểm được dự đốn đúng và tổng số điểm trong tập dữ liệu kiểm thử. Tuy cịn nhiều hạn chế nhưng accuracy lại phản ánh một cách tổng quát được dự đốn trên tồn bộ tập dữ liệu kiểm thử, rất thích hợp cho việc đánh giá tổng thế mơ hình.
Với mỗi nhãn, chúng ta cĩ thể cần tới 4 đại lượng để đong đếm mơ hình dự đốn tốt như thế nào trên nhãn đĩ. Cụ thể với nhãn X:
• TP - True Positive: Đại lượng này cho ta biết số lượng dữ liệu dự đốn
đúng trên nhãn X.
• FP - False Positive: Đại lượng này cho ta biết số lượng dữ liệu được dự
đốn là nhãn X nhưng thực tế lại khơng phải là nhãn X. Trong trường hợp này mơ hình dự đốn sai.
• TN - True Negative: Đại lượng này cho chúng ta biết số lượng dữ liệu
được dự đốn khơng phải nhãn X và thực tế chúng khơng phải là nhãn X. Trong trường hợp này mơ hình dự đốn đúng vì đã khơng dự đốn là nhãn X.
64
• FN - False Negative: Đại lượng này cho ta biết số lượng dữ liệu được dự
đốn khơng phải nhãn X nhưng thực tế chúng lại đúng là nhãn X. Trong trường hợp này mơ hình của dự đốn sai vì đã khơng dự đốn là nhãn X.
Hình 4.8 TP/FP/TN/FN
Như vậy với việc đánh giá mỗi nhãn thơng qua 4 đại lượng trên, chúng ta cĩ thể biết khi nào nhãn đĩ được mơ hình dự đốn tốt, cĩ hay bị dự đốn nhầm sang nhãn khác khơng, cĩ hay đốn thiên về nhãn đĩ quá khơng. Tuy nhiên mỗi nhãn cĩ tới 4 đại lượng, điều này khiến cho việc quyết định mơ hình nào tốt hơn vẫn khơng hề dễ dàng
Cơng thức về tính chính xác tổng hợp lại là:
𝐴𝑐𝑐𝑢𝑟𝑎𝑦 = 𝑇𝑃 + 𝑇𝑁
𝑇𝑃 + 𝐹𝑃 + 𝑇𝑁 + 𝐹𝑁 (1)
Precision & Recall
𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 = 𝑇𝑃
𝑇𝑃 + 𝐹𝑃 (2)
𝑅𝑒𝑐𝑎𝑙𝑙 = 𝑇𝑃
𝑇𝑃 + 𝐹𝑁 (3)
Precision thể hiện khả năng model dự đốn đúng nhãn X, chúng ta thấy rằng trong cơng thức (2) , thành phần khiến cho Precision tăng hay giảm khơng phải là TP mà là FP. Chính vì vậy khi Precision cao đồng nghĩa với việc FP nhỏ hay số nhãn dự đốn nhầm sang nhãn X là thấp. Recall thể hiện khả năng model dự đốn khơng bị sĩt nhãn X, cũng như Precision, Recall phụ thuộc vào FN hay nĩi cách khác là nĩ phụ thuộc vào khả năng model dự đốn sai nhãn đúng ra là X. Thực tế ngồi Precision và Recall cịn cĩ những metric tương tự (Chẳng hạn Sensitive..) Nhưng chỉ với Precision và Recall chúng ta đã cĩ thể tập trung vào giảm thiểu FN và FP. 2 thành phần khiến cho mơ hình của ta dự đốn kém chính xác.
F1 score
Cơng thức
𝐹1 𝑆𝑐𝑜𝑟𝑒 = 2 𝑥 𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 𝑥 𝑟𝑒𝑐𝑎𝑙𝑙 𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 + 𝑟𝑒𝑐𝑎𝑙𝑙 (4)
65
Điều chúng ta mong muốn là cả hai tham số Precision và Recall đều cao. Tuy nhiên khơng may là luơn phải đánh đổi giữa chúng, khi Precision cao thường kéo theo Recall thấp hơn và ngược lại. Lý do là bởi nếu tham số Precision cao đồng nghĩa với việc mơ hình phải rất chắc chắn mới dám dự đốn là nhãn X, nhưng điều này lại khiến cho model bị dự đốn thiếu những dữ liệu thực sự là nhãn X, ngược lại cũng tương tự. Vậy nên chúng ta cần phải tổng hợp 2 metric này làm 1, để tuning model theo 1 hướng duy nhất mà khơng phải lo ngại quá coi trọng Precision hay Recall, và như vậy chúng ta sử dụng F1 score làm độ đo tổng quát của model