CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI
2.4 Phịng chống tấn cơng DDOS sử dụng học máy
2.4.1 Tổng quan về học máy
Học máy (Machine learning) là một lĩnh vực của trí tuệ nhân tạo liên quan đến việc nghiên cứu và xây dựng các kĩ thuật cho phép các hệ thống "học" tự động từ dữ liệu để giải quyết những vấn đề cụ thể.
Thuật tốn học máy được chia thành hai loại cơ bản là:
• Học cĩ giám sát (Supervised learning)
• Học khơng giám sát (Unsupervised learning)
2.4.1.1. Học cĩ giám sát (Supervised learning)
Học máy cĩ giám sát là một nhánh của học máy và trí tuệ nhân tạo, được định nghĩa bằng việc sử dụng các tập dữ liệu cĩ gán nhãn(label) để huấn luyện các thuật tốn phân loại dữ liệu hoặc dự đốn một kết quả chính xác. Khi dữ liệu đầu vào được đưa vào mơ hình luyện tập thì sẽ được điều chỉnh trọng số để phù hợp với mơ hình luyện tập. Học máy cĩ giám sát được dùng để giải quyết các vấn đề trên quy mơ lớn.
Học cĩ giám sát sử dụng một bộ dữ liệu luyện tập để luyện tập cho mơ hình nhằm đưa ra một kết quả đầu ra mong muốn. Tập dữ liệu luyện tập này bao gồm đầu vào và đầu ra chính xác, cho phép mơ hình học hỏi theo thời gian. Thuật tốn đo độ chính xác của nĩ thơng qua sự điều chỉnh cho đến khi sai số được giảm đến mức tối thiểu.
25
• Phân lớp(Classification): sử dụng một thuật tốn để chỉ định chính xác tập dữ
liệu kiểm thử cho một loại cụ thể. Nĩ nhận dạng các thực thể cụ thể trong tập dữ liệu và đưa ra một số các kết luận về các thực thể đã được gán nhãn. Một số các thuật tốn được sử dụng phổ biến là Linear classifiers, Support vector machines (SVM), Decision trees, K-nearest neighbor, và Random forest
• Hồi quy(Regression): đưa ra các mối tương quan giữa các thành phần biến phụ
thuộc và độc lập. Một số thuật tốn được sử dụng phổ biến là Linear regression, Logistical regression, và Polynomial regression
2.4.1.2. Học khơng giám sát (Unsupervised learning)
Học máy khơng giám sát là một lý thuật học máy, trong đĩ, người dùng khơng cần giám sát mơ hình. Thay vào đĩ thì nĩ cho phép mơ hình tự hoạt động, phán đốn để phát hiện ra các mẫu và thơng tin mà trước đây chưa được phát hiện. Học máy khơng giám sát chủ yếu dùng để xử lý các dữ liệu khơng cĩ nhãn.
Các bài tốn Unsupervised learning được tiếp tục chia nhỏ thành hai loại:
• Clustering (phân nhĩm): một bài tốn phân nhĩm tồn bộ dữ liệu X thành
các nhĩm nhỏ dựa trên sự liên quan giữa các dữ liệu trong mỗi nhĩm.
• Association là bài tốn khi chúng ta muốn khám phá ra một quy luật dựa
trên nhiều dữ liệu cho trước.
2.4.2 Các thuật tốn học máy
Cĩ rất nhiều các kỹ thuật khác nhau để phát hiện tấn cơng DoS/DDOS. Tuy nhiên, những phương pháp truyền thống đang dần khơng phát huy được tác dụng khi hệ thống phải đối mặt mới các cuộc tấn cơng DoS/DDOS mới ngày càng ra tăng cả về hình thức, kỹ thuật phức tạp và tinh vi hơn. Việc sử dụng các kỹ thuật học máy, xử lý dữ liệu đang là một phương pháp ngày càng thể hiện sự hiệu quả của nĩ để phát hiện DoS/DDOS, và ngày càng cĩ nhiều những nghiên cứu xoay quanh việc phát hiện tấn cơng DoS/DDOS sử dụng kỹ thuật học máy.
Với kỹ thuật này, một tập các dữ liệu để phục vụ cho quá trình luyện tập mơ hình học máy sẽ được thu tập từ mơi trường ảo hĩa, hoặc từ các cuộc tấn cơng vào hệ thống thực tế, sau đĩ xác định các mối quan hệ ràng buộc, cĩ liên quan của các trường đặc trưng từ tập dữ liệu thơ ban đầu. Và sau đĩ, sẽ đưa tập dữ liệu sau khi được xử lý vào mơ hình luyện tập học máy để luyện tập cho mơ hình phát hiện tấn cơng. Cuối cùng, ta đánh giá hiệu suất của các thuật tốn với những bộ dữ liệu khác nhau, để so sánh xem thuật tốn nào phù hợp nhất để cĩ thể được chọn dùng để phát hiện cuộc tấn cơng DoS/DDOS.
Sau khi tham khảo các nghiên cứu thí nghiệm đã thực hiện để xác định ra thuật tốn cần sử dụng trong việc phát hiện tấn cơng DoS/DDOS bởi các nhà nghiên cứu. KNN,
Random Forest, AdaBoost là những thuật tốn được chọn lựa nhiều nhất trong các
cuộc nghiên cứu thử nghiệm, và những thuật tốn này đều cho độ chính xác và hiệu suất tốt trong việc phát hiện tấn cơng DoS/DDOS. Trong luận văn này, tác giả sử dụng những thuật tốn trên cho mơ hình dự đốn tấn cơng và đánh giá để tìm ra được thuật tốn tốt nhất với các bộ dữ liệu.
26
Hình 2.12 Mơ hình học máy cho việc phát hiện tấn cơng DDoS
Dưới đây là một danh sách các thuật tốn phổ biến, hay được sử dụng cho việc phát hiện tấn cơng DoS/DDOS
2.4.2.1. KNN
K-Nearest Neighbor (kNN) là một loại thuật tốn học cĩ giám sát sử dụng cho bài tốn classification và regression. Ý tưởng chính đằng sau kNN là giá trị hoặc lớp của điểm dữ liệu được xác định bởi các điểm dữ liệu xung quanh nĩ.
Việc tìm kiếm các điểm dữ liệu gần điểm dữ liệu cần phân loại nhất dựa trên Euclidean Norm (khoảng cách tiêu chuẩn của 2 điểm dữ liệu trong khơng gian vectơ). Sau khi tìm kiếm K điểm dữ liệu lân cận, KNN sử dụng kỹ thuật majority voting (bỏ phiếu đa số) để gắn nhãn điểm dữ liệu cần được phân loại. Ưu điểm của các thuật tốn KNN là độ phức tạp của việc huấn luyện bằng khơng. Hơn nữa, việc dự đốn kết quả của dữ liệu mới rất đơn giản và thuật tốn khơng cần giả sử về phân phối các lớp.
Ví dụ, nếu k đặt là 5, lớp của 5 điểm gần nhất được kiểm tra. Dự đốn được thực hiện theo lớp đa số (majority class). Tương tự, kNN regression lấy giá trị trung bình của 5 điểm gần nhất. Xem xét các điểm dữ liệu thuộc 4 lớp khác nhau trong ví dụ sau:
27
Hình 2.13 Thuật tốn kNN - Dữ liệu gốc [27]
Hình 2.14 Thuật tốn kNN - Giá trị dự đốn với k=1 [27]
Hình 2.15 Thuật tốn kNN - Giá trị dự đốn với k=5 [27]
Điều rất quan trọng là xác định một giá trị k tối ưu. Nếu k quá thấp, mơ hình quá cụ thể và khơng được khái quát hĩa tốt. kNN cũng cĩ xu hướng nhạy cảm với nhiễu (noise). Mơ hình đạt được độ chính xác cao trên tập dữ liệu được học nhưng sẽ là một dự đốn kém đối với các điểm dữ liệu mới chưa từng thấy trước đây.
28
Tình huống này gọi là overfit model. Mặt khác, nếu k quá lớn, mơ hình quá tổng quát, như thế sẽ khơng phải là một dự báo tốt trên cả tập huấn luyện và tập thử nghiệm. Tình huống này được gọi là underfit model.
kNN đơn giản và dễ cài đặt. Nĩ khơng đưa ra bất kỳ giả định nào để thực hiện trong các cơng việc phi tuyến tính. kNN trở nên rất chậm khi số lượng điểm dữ liệu tăng lên vì mơ hình cần lưu trữ tất cả các điểm dữ liệu. Do đĩ, thuật tốn này cũng khơng hiệu quả về bộ nhớ. Một nhược điểm khác của kNN là nĩ nhạy cảm với các yếu tố ngoại lai (outlier).
2.4.2.2. AdaBoost
AdaBoost là viết tắt của từ Adaptive Boosting. AdaBoost là một thuật tốn boosting dùng để xây dựng bộ phân lớp (classifier). Một classifier nhận vào một tập dữ liệu để học và cố gắng dự đốn hay phân lớp mẫu dữ liệu mới thuộc về phân lớp nào. Boosting là một thuật tốn học quần thể bằng cách xây dựng nhiều thuật tốn học cùng lúc, ví dụ như cây quyết định và kết hợp các thuật tốn này lại. Mục đích để cĩ một cụm hoặc một nhĩm các weak learner, sau đĩ kết hợp chúng lại để tạo ra 1 strong learner duy nhất.
AdaBoost là thuật tốn boosting được phát triển cho phân lớp nhị phân và là thuật tốn đầu tiên thực sự thành cơng. Kỹ thuật này được thực hiện thơng qua việc xây dựng một mơ hình từ dữ liệu huấn luyện, sau đĩ các mơ hình tiếp theo được tạo, cố gắng sửa các lỗi từ mơ hình đầu tiên. Các mơ hình được thêm vào cho đến khi tập huấn luyện được dự đốn hồn hảo hoặc số lượng mơ hình đạt ngưỡng cực đại. Weak learner phân loại với độ chính xác hầu như khơng cao, ví dụ phổ biến của weak learner là cây quyết định một cấp (decision stump). Ngược lại, strong leaner cho độ chính xác cao hơn.
Hình 2.16 Thuật tốn AdaBoots1
29
AdaBoost là thuật tốn đơn giản và dễ dàng cài đặt. Thêm vào đĩ, tốc độ học rất nhanh. Các weak learner đơn giản hơn rất nhiều các strong learner, nhờ vậy thuật tốn chạy nhanh hơn. Hơn nữa, AdaBoost là phương pháp cĩ khả năng điều chỉnh các classifier tinh tế. Vì mỗi hiệp AdaBoost lại tinh chỉnh lại các trọng số cho các learner tốt nhất. Điều cần làm đĩ là xác định số hiệp để lặp. AdaBoost là thuật tốn linh hoạt và đa năng, cĩ thể kết hợp với bất kỳ thuật tốn học máy nào và nĩ cĩ thể làm việc với một lượng lớn dữ liệu khác nhau.
2.4.2.3. Random Forest
Random Forest hoạt động dựa vào việc xây dựng rất nhiều các decision tree, trong đĩ mỗi decision tree được tạo nên ngẫu nhiên từ việc tái chọn mẫu (chọn ngẫu nhiên một phần của dataset để xây dựng) và ngẫu nhiên các biến từ tồn bộ các biến trong trong tập dữ liệu.
Nếu được sử dụng cho một bài tốn phân loại (classification), kết quả nhận được sẽ dựa trên đa số phiếu của các kết quả từ mỗi cây quyết định. Đối với hồi quy (regression), dự đốn của một nút lá là giá trị trung bình của các giá trị đích trong lá đĩ. Random Forest lấy giá trị trung bình của các kết quả từ cây quyết định. Random Forest làm giảm nguy cơ overfitting và cĩ độ chính xác cao hơn nhiều so với một cây quyết định duy nhất. Hơn nữa, các cây quyết định trong Random Forest chạy song song để thời gian khơng trở thành điểm nghẽn.
Độ chính xác của Random Forest phụ thuộc nhiều vào việc sử dụng các cây quyết định khơng tương quan với nhau. Nếu chúng ta sử dụng các cây giống nhau hoặc rất giống nhau, kết quả tổng thể sẽ khơng khác nhiều so với kết quả của một cây quyết định duy nhất. Để đảm bảo việc các deision tree cĩ các dự đốn khác nhau hay cấu trúc cây của các decision tree là khác nhau, phục vụ cho majority voting, Random Forest sử dụng 2 kỹ thuật là bootstrapping và attribute sampling để lựa chọn ngẫu nhiên mẫu và feature. Việc này giúp cho thuật tốn tăng độ chính xác và tính khách quan.
Bootsrapping là kỹ thuật lựa chọn ngẫu nghiên mẫu từ bộ dữ liệu đào tạo cĩ thay thế. Chúng được gọi là bootstrap samples.
Hình 2.17 Random Forest - Boostrap samples [27]
Feature randomness là kỹ thuật lựa chọn các feature ngẫu nhiên cho từng cây quyết định trong random forest. Số lượng feature được sử dụng cho từng cây trong một random forest cĩ thể được điểu chỉnh qua tham số max_features.
30
Hình 2.18 Random Forest – Feature randomness [27]
Random forest là một model cĩ độ chính xác cao về nhiều bài tốn khác nhau và khơng cần chuẩn hĩa hay scaling. Tuy nhiên đây khơng phải lựa chọn tốt cho các bộ dữ liệu high-demensial (ví dụ như phân loại văn bản) so với các mơ hình tuyến tính nhanh như Naive Bayes.
Hình 2.19 Random Forest - Tổng quan [27]
2.4.3 Các kỹ thuật và vấn đề trong phịng chống tấn cơng DDoS sử dụng học máy dụng học máy
Trong phần này, luận văn sẽ rà sốt một số nghiên cứu liên quan đến việc sử dụng kỹ thuật học máy để phát hiện tấn cơng DoS/DDOS để làm cơ sở cho các đề xuất cụ thể được trình bày trong chương này. Nội dung khảo sát này được tổng hợp dựa trên nghiên cứu [24].
Nhĩm nghiên cứu của Chuyu She đề xuất một mơ hình để phân biệt những người dùng bị lợi dụng trong mạng botnets để thực hiện các cuộc tấn cơng DoS/DDOS ở tầng ứng dụng dựa trên 7 đặc điểm cĩ liên quan từ phiên của người dùng. Nhĩm đã sử dụng thuật tốn SVM trên tập dữ liệu họ thu thập được và mơ hình của họ thì hoạt động cho kết quả tốt với những cuộc tấn cơng ở tầng ứng dụng.
Nhĩm nghiên cứu của Shrikhand Wankhede đưa ra phương pháp phát hiện tấn cơng DoS/DDOS dựa vào kỹ thuật học máy và học sâu. Họ sử dụng thuật tốn Random Forest với 500 cây khác nhau, với bộ dữ liệu CIC IDS 2017, mơ hình này cho độ chính xác đến 99.95%.
31
Nhĩm nghiên cứu Kian Son Hoon đã kiểm tra và phân tích các thuật tốn học máy cĩ giám sát và khơng giám sát trong việc phát hiện tấn cơng DoS/DDOS. Họ cũng đã tìm ra được phương pháp tối ưu các tham số để độ chính xác của thuật tốn được cải thiện. Tham số họ tìm ra gọi là P(A), được coi như ngưỡng để ra quyết định tốt hơn về thời gian đào tạo. Họ cũng đã thử nghiệm thuật tốn NSL-KDD và phát hiện ra rằng các thuật tốn cĩ giám sát cĩ ưu điểm hơn như Random Forest, XGBoost, Nạve Bayes cho kết quả tốt về độ chính xác cũng như thời gian đào tạo. Nhĩm nghiên cứu của Ça˘gatay Ates đưa ra phương pháp phát hiện tấn cơng dựa vào sự tương quan giữa các thơng số trong phần header của gĩi tin. Họ đã tiến hành thí nghiệm trên bộ dữ liệu thật do họ thu thập và bộ dữ liệu Caida và sử dụng thuật tốn SVM.
Shi Dong and Mudar Sarem cũng đề xuất hai thuật tốn mới là DDAML và DDADA, hai thuật tốn này dựa trên thuật tốn KNN và mức độ tấn cơng. Họ thu thập các bộ dữ liệu từ mơi trường ảo, và tạo ra lưu lượng tấn cơng bằng hping3. Họ đã kiểm tra thuật tốn của họ đề xuất và những thuật tốn truyền thống như SVM, KNN, và Nạve Bayes. Sau khi so sánh kết quả thì họ nhận ra rằng thuật tốn do họ phát triển thì cĩ hiệu năng tốt hơn các thuật tốn khác.
S.Sumathi and N.Karthikeyan đã so sánh các thuật tốn học máy truyền thống và các thuật tốn hỗn hợp. Họ đã kiểm tra các thuật tốn này trong bộ dữ liệu KDDcup99 và DARPF và họ nhận thấy rằng thuật tốn Decision Tree và Fuzzy C-Means cĩ hiệu quả tốt hơn. Fuzzy C-Means cĩ thể phát hiện tấn cơng DDoS với độ chính xác là 98.7% với thời gian là 0.15 giây.
Khadijeh Wehbi đã phát triển một hệ thống phát hiện tấn cơng DoS/DDOS trong mơi trường cĩ các thiết bị IoT và họ đã sử dụng các thuật tốn SVM, KNN, RF và đã thử nghiệm trên bộ dữ liệu CAIDA, 1999 DARPA và dữ liệu do chính họ tạo ra trong mơi trường ảo. Họ đã tìm ra được rằng cả 3 thuật tốn đều cho kết quả tốt, nhưng tốt nhất chính là Random Forest với độ chính xác là 99.99%.
Wan Nur Hidayah Ibrahim và nhĩm nghiên cứu đã đề xuất ra một mơ hình đa lớp sử dụng kỹ thuật học máy để phát hiện ra mạng Botnet cĩ hành vi tấn cơng DoS/DDOS. Họ đã sử dụng thuật tốn KNN, SVM, MLP trên bộ dữ liệu CTU-13. Họ nhận thấy rằng thuật tốn KNN cĩ độ chính xác cao nhất là 91.51% trên bộ dữ liệu của họ.
Tarun Dhamor và nhĩm nghiên cứu đã nghiên cứu về việc tấn cơng DoS/DDOS trên các thiết bị IoT. Họ đã sử dụng bộ dữ liệu CIC-DOS-2019 và sử dụng rất nhiều thuật tốn học máy để luyện tập và họ cho kết quả thuật tốn Random Forest cho kết quả tốt nhất về độ chính xác 99.24%.
Cĩ thể thấy việc áp dụng học máy trong phát triển tấn cơng vẫn liên tục được áp dụng và cĩ nhiều cơng trình nghiên cứu tiêu biểu. Ngồi ra các nghiên cứu liên tục, là một chủ đề luơn được quan tâm dựa trên kết quả tìm kiếm trên cơng cụ tìm kiếm Google Scholar.
32
2.4.4 Phương pháp đề xuất
Như đã phân tích, cĩ thể thấy trong những năm gần đây, một giải pháp được các nhà nghiên cứu rất quan tâm là hệ thống IDS. Hệ thống IDS cĩ thể phát hiện sớm