Phân loại các cuộc tấn công DDoS trên bộ dữ liệu IoT23

nktung

Super Moderator
Thành viên BQT
08/10/2013
400
985 bài viết
Phân loại các cuộc tấn công DDoS trên bộ dữ liệu IoT23
Bài viết này đề cập đến việc phân loại các cuộc tấn công DDoS vào hệ thống IoT bằng cách sử dụng thuật toán học máy cây quyết định (Decision Tree) trên tập dữ liệu IoT23. Kết quả phân loại có độ chính xác khá cao so với một số thuật toán học máy khác như rừng ngẫu nhiên (Random forest) hay MLP (Multi-Layer Perceptron).

iot.png

Cây quyết định là một thuật toán học máy có giám sát được sử dụng cho cả nhiệm vụ phân loại và hồi quy. Nó sử dụng một mô hình dạng cây để thể hiện một loạt các quyết định và kết quả có thể xảy ra. Mỗi nút trong cây đại diện cho một tính năng hoặc thuộc tính và mỗi nhánh đại diện cho một kết quả có thể có của tính năng. Thuật toán cây quyết định bắt đầu từ nút gốc và liên tục chọn tính năng tốt nhất để phân tách dữ liệu, cho đến khi nó đến nút cuối hoặc nút lá. Mỗi nút lá đại diện cho một dự đoán hoặc nhãn lớp. Thuật toán cây quyết định xây dựng cây bằng cách tối ưu hóa một hàm chi phí để xác định mức phân chia tốt nhất tại mỗi nút. Cây cuối cùng có thể được sử dụng để đưa ra dự đoán về dữ liệu mới bằng cách duyệt qua cây dựa trên giá trị của các tính năng.

Đầu tiên ta xây dựng một mạng mô phỏng dựa trên Mininet, bao gồm 6 thiết bị chuyển mạch (s1-s6) và 18 máy chủ (h1-h18). Mỗi switch được kết nối với ba máy chủ, ngoại trừ switch cuối cùng (s6), switch này cũng được kết nối với ba máy chủ nhưng không có switch bổ sung nào được kết nối với nó. Các máy chủ được chỉ định địa chỉ IP trong phạm vi 10.0.0.1/24 đến 10.0.0.18/24 và địa chỉ MAC ở định dạng 00:00:00:00:00:01 đến 00:00:00:00:00:18.

Tất cả các switch đều thuộc loại OVSKernelSwitch và được định cấu hình để sử dụng OpenFlow phiên bản 1.3. Các liên kết giữa các thiết bị chuyển mạch và máy chủ thuộc loại TCLink, đây là một lớp con của Liên kết bổ sung thêm độ trễ và giới hạn băng thông có thể định cấu hình cho liên kết.

Tập lệnh này dự định sẽ chạy với trình mô phỏng mạng Mininet, tạo ra một mạng ảo dựa trên cấu trúc liên kết được chỉ định trong tập lệnh. Sau đó, người dùng có thể tương tác với mạng ảo bằng giao diện dòng lệnh (CLI) của Mininet hoặc bằng cách viết các tập lệnh Python tùy chỉnh.

1.png

Mã này là một ứng dụng Ryu triển khai một bộ chuyển mạch Ethernet đơn giản với sự hỗ trợ cho các giao thức IP, ICMP, TCP và UDP. Khi bộ chuyển mạch nhận được gói Ethernet, nó sẽ kiểm tra gói và xác định cổng đích dựa trên địa chỉ MAC đích. Nó cũng cài đặt một luồng trong bộ chuyển mạch để chuyển tiếp các gói trong tương lai có cùng địa chỉ MAC nguồn và đích đến cùng một cổng, nhằm tránh các sự kiện gói vào không cần thiết.

Mã bao gồm một lớp ứng dụng Ryu duy nhất, SimpleSwitch13, kế thừa từ app_manager.RyuApp. Ứng dụng quản lý một từ điển, mac_to_port, ánh xạ địa chỉ MAC tới các cổng. Nó sử dụng API OpenFlow 1.3 của Ryu để giao tiếp với các luồng chuyển đổi và cài đặt.

Ứng dụng này có ba trình xử lý sự kiện:
  • switch_features_handler(): Trình xử lý này được gọi khi switch kết nối với bộ điều khiển. Nó thêm một luồng vào switch để chuyển tiếp tất cả các gói đến bộ điều khiển.
  • _packet_in_handler(): Trình xử lý này được gọi khi switch nhận được gói tin. Nó kiểm tra gói tin và xác định cổng đích dựa trên địa chỉ MAC đích. Nó cũng cài đặt một luồng trong bộ chuyển mạch để chuyển tiếp các gói trong tương lai có cùng địa chỉ MAC nguồn và đích đến cùng một cổng.
  • add_flow(): Đây là một phương thức tiện ích giúp thêm một luồng vào switch.
Dữ liệu thống kê luồng sau đó được sử dụng để phát hiện sự bất thường dựa trên máy học. Ứng dụng sử dụng thư viện Pandas để đọc tệp CSV thống kê luồng, xử lý trước dữ liệu (ví dụ: thay thế các dấu chấm trong địa chỉ IP và cổng) đồng thời chia dữ liệu đó thành các tập huấn luyện và kiểm tra. Sau đó, nó sử dụng bộ phân loại cây quyết định để huấn luyện trên tập huấn luyện và đánh giá trên tập kiểm tra.

Với kết quả trên, ta thấy mô hình với thuật toán Decision tree cho ra kết quả accuracy lớn nhất (>99%), như hình bên dưới:

2.png

Tham khảo
- Machine Learning cơ bản.com
- Mai Trọng Thuần - Xây dựng hệ thống phát hiện tấn công DDoS trên IoT23
 
Chỉnh sửa lần cuối bởi người điều hành:
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Bên trên