36
Trong mô hình phát hiện/ngăn chặn tấn công tự động nêu trên, ta cần lập trình, tích hợp thêm các module phần mềm điều khiển Controller trong việc thu thập các dữ liệu tấn công, sau đó phân tích nhằm phát hiện/ngăn chặn tấn công nếu có.
Ý tưởng của các phần mềm phát hiện/ngăn chặn tấn công dựa vào việc khi
gói tin được chuyển mạch qua các thiết bị chuyển mạch trong SDN sẽ gia tăng
các bộ thống kê (số gói tin, số byte …) mà các thống số này rất quan trọng cho việc phát hiện tấn công DDoS. Bên cạnh đó việc chuyển mạch làm xuất hiện các flow entry vẫn chứa các đặc điểm vềheader gói tin. Hơn thế nữa tất cả các thông
tin đó lại có thể dễ dàng được Controller lấy lên thông qua các bản tin đã được
quy định sẵn trong giao thức OpenFlow.
Hình 3.5 Bộ điều khiển lấy thông tin phát hiện tấn công
Hình 3.5 mô tả cách SDN Controller lấy thông tin phát hiện tấn công DDoS tại khối Collector. Cụ thểcác bước sẽđược thự thi trên module phần mềm viết bằng ngôn ngữ Python như sau:
Bước 1: Controller sẽ định kì gửi yêu cầu thông qua bản tin StatsRequest
tới OpenFlow Switch.
Bước 2: Khi OpenFlow Swich nhận được bản tin này nó sẽ đóng gói toàn
bộ bảng flow table hiện tại vào bản tin StatsResponse và gửi lên cho Controller.
Bước 3: Trên Controller sẽ thực hiện việc lắng nghe bản tin StatsResponse
này qua các sự kiện (event) nhận được để lấy ra thông tin bảng flow table chứa các flow entry hoặc đơn thuần là các thông số thống kê như đã đưa ở bảng trên từ
37
Các thông tin thống kê thu được trên khối Collector sẽđược đưa đến khối phát hiện/ngăn chặn Detect/Prevent để thực hiện cộng tích lũy. Khi giá trị tích
lũy vượt ngưỡng đặt trước, khối này sẽ kết luận xuất hiện tấn công và thực hiện lệnh ngăn chặn tương ứng.