2.2. Giải pháp phát hiện và giảm thiểu tấn công DDoS dựa trên mơ hình dự đoán làm trơn hàm
2.2.5. Phát hiện và giảm thiểu tấn công
Thuật toán phát hiện và phân loại lưu lượng tấn cơng
Như đã trình bày ở trên, mỗi máy chủ, dịch vụ có đặc điểm thống kê riêng, để áp dụng chung cho các máy chủ, dịch vụ trong cùng hệ thống, chỉ số thống kê lưu lượng được tính theo giá trị chuẩn hóa:
𝐷𝐷𝑆𝑆𝑇𝑇𝑆𝑆= � 𝑆𝑆𝑇𝑇𝑆𝑆 − 𝑆𝑆𝑇𝑇𝑆𝑆𝐶𝐶𝐶𝐶𝐶𝐶 𝑆𝑆𝑇𝑇𝑆𝑆𝐶𝐶𝐶𝐶𝐶𝐶 , 𝑆𝑆𝑇𝑇𝑆𝑆 ≥ 𝑆𝑆𝑇𝑇𝑆𝑆𝐶𝐶𝐶𝐶𝐶𝐶 0, 𝑆𝑆𝑇𝑇𝑆𝑆 <𝑆𝑆𝑇𝑇𝑆𝑆𝐶𝐶𝐶𝐶𝐶𝐶 (2.8) 𝐷𝐷𝑇𝑇𝑃𝑃𝐹𝐹=� 𝑇𝑇𝑃𝑃𝐹𝐹 − 𝑇𝑇𝑃𝑃𝐹𝐹𝐶𝐶𝐶𝐶𝐶𝐶 𝑇𝑇𝑃𝑃𝐹𝐹𝐶𝐶𝐶𝐶𝐶𝐶 , 𝑇𝑇𝑃𝑃𝐹𝐹 ≥ 𝑇𝑇𝑃𝑃𝐹𝐹𝐶𝐶𝐶𝐶𝐶𝐶 0, 𝑇𝑇𝑃𝑃𝐹𝐹 <𝑇𝑇𝑃𝑃𝐹𝐹𝐶𝐶𝐶𝐶𝐶𝐶 (2.9)
Hình 2.3. Mơ hình phát hiện và phân loại lưu lượng tấn công
Để xác định có tấn cơng xảy ra hay khơng đối với một máy chủ/dịch vụ, bộ phát hiện tấn công so sánh các giá trị tức thời chuẩn hóa (DSPA và DPpF) của máy chủ/dịch vụ đó với một giá trị ngưỡng phát hiện 𝐾𝐾𝐷𝐷. Nếu một trong hai giá trị tham số chuẩn hóa đạt hoặc vượt ngưỡng
𝐾𝐾𝐷𝐷, hệ thống cho rằng tấn công đã xảy ra và chuyển sang trạng thái “Nghi ngờ bị tấn công”. Nếu cả hai giá trị tham số chuẩn hóa nhỏ hơn 𝐾𝐾𝐷𝐷, hệ thống xác định khơng có tấn cơng xảy ra và tính tốn các giá trị dự đốn SPACUM, PpFCUM (được tính theo cơng thức 2.6, 2.7) rồi lưu vào cơ sở dữ liệu để so sánh trong chu kỳ giám sát tiếp theo. Hình 2.3. Tiến trình phát hiện tấn công cho máy chủ/dịch vụ ở trạng thái “Giám sát” được mô tả trong Bảng 2.2.
Bảng 2.2. Thuật tốn phát hiện tấn cơng
Giám sát (Máy_chủ/Dịch_vụ S)
//Input: S: Địa chỉ IP của máy chủ nội bộ
// Hoặc: Địa chỉ IP của máy chủ nội bộ, số hiệu cổng dịch vụ cần bảo vệ trên máy chủ //Output: Chuyển S sang trạng thái Nghi ngờ bị tấn công
// Hoặc tính tốn và lưu giá trị SPACUM và PpFCUM vào database
1 Lấy tham số thống kê theo S 2 Tính SPA, PpF cho S
3 Lấy SPACUM, PpFCUM của S từ Database
4 Tính DSPA, DPpF theo SPA, PpF và SPACUM, PpFCUM
5 IF (DSPA >= KD OR DPpF >= KD) THEN
6 CALL Nghi ngờ bị tấn công (S)
7 ELSE
8 SPACUM = (SPA + SPACUM)/2 9 PpFCUM = (PpF + PpFCUM)/2
10 Lưu SPACUM, PpFCUM của S vào Database 11 CALL Giám sát (S) sau thời gian chu kỳ T
12 ENDIF
Khi một máy chủ/dịch vụ được xác định chuyển sang trạng thái “Nghi ngờ bị tấn công”, hệ thống thực hiện thống kê chi tiết đối với từng địa chỉ IP nguồn có các luồng gửi tới máy chủ/dịch vụ đó bao gồm (1) số cổng nguồn được mở SP, và (2) số gói tin trung bình trên mỗi luồng PN được gửi từ địa chỉ IP nguồn tương ứng. Các giá trị này được so sánh với giá trị trung bình tích lũy tương ứng theo hệ số lọc bỏ 𝐾𝐾𝐹𝐹 để xác định địa chỉ IP đó có là nguồn lưu lượng tấn công
hay không.
Nếu một địa chỉ IP nguồn có: 𝑆𝑆𝑇𝑇
𝑆𝑆𝑇𝑇𝑆𝑆𝐶𝐶𝐶𝐶𝐶𝐶 ≥ 𝐾𝐾𝐹𝐹 (2.10)
hoặc: 𝑇𝑇𝐹𝐹
𝑇𝑇𝑃𝑃𝐹𝐹𝐶𝐶𝐶𝐶𝐶𝐶 ≥ 𝐾𝐾𝐹𝐹 (2.11)
thì lưu lượng xuất phát từ địa chỉ IP đang xét được xác định là lưu lượng tấn công. Hệ số lọc bỏ 𝐾𝐾𝐹𝐹 được chọn tùy theo đặc điểm riêng của từng máy chủ/dịch vụ đảm bảo độ nhạy DR cao nhưng vẫn giới hạn được tỷ lệ báo động nhầm FPR ở mức thấp. Tiến trình phân loại lưu lượng khi một máy chủ/dịch vụ ở trạng thái “Nghi ngờ bị tấn công” được mô tả trong Bảng 2.3.
Bảng 2.3. Thuật tốn phân loại lưu lượng tấn cơng
Nghi ngờ bị tấn công (Máy_chủ/Dịch_vụ S)
//Input: S: Địa chỉ IP của máy chủ nội bộ
// Hoặc: Địa chỉ IP của máy chủ nội bộ, số hiệu cổng dịch vụ cần bảo vệ trên máy chủ //Output: Tập các địa chỉ IP nguồn tấn công AttackSrc[]
1 Lấy tập hợp các địa chỉ nguồn của các luồng kết nối Tới S: SrcAdds[n] 2 DECLARE AttackSrc[]
3 SET AttackSrc = Rỗng
4 FOR EACH SrcAdd IN SrcAdds
5 Lấy tham số thống kê theo SrcAdd 6 Tính SP, PN theo SrcAdd
7 IF (SP>=SPACUM*KF OR PN>=PpFCUM*KF) THEN
8 Thêm phần tử SrcAdd vào AttackSrc
10 ENDFOR
11 IF AttackSrc <> Rỗng THEN
12 CALL Lọc bỏ lưu lượng tấn công (S, AttackSrc)
13 ELSE
14 CALL Giám sát (S) sau thời gian chu kỳ T
15 ENDIF
Lọc bỏ lưu lượng tấn công
Sau khi xử lý phân loại lưu lượng theo địa chỉ IP nguồn, nếu phát hiện được nguồn tấn công, hệ thống chuyển trạng thái máy chủ/dịch vụ tương ứng sang “Lọc bỏ lưu lượng tấn cơng”. Bản chất của q trình này là yêu cầu bộ Ủy nhiệm an ninh tại bộ điều khiển gửi bản tin OFPT_FLOW_MOD tới bộ chuyển mạch biên OFS để thay đổi chính sách xử lý gói tin từ dạng cho phép chuyển tiếp tới máy chủ (Forward) sang dạng hủy bỏ tồn bộ các gói tin (Drop) đến từ địa chỉ IP nguồn nghi ngờ. Nếu không phát hiện ra nguồn tấn công nào, hệ thống quay trở về trạng thái Giám sát. Tiến trình lọc bỏ lưu lượng tấn công được mô tả trong Bảng 2.4.
Bảng 2.4. Thuật tốn Lọc bỏ lưu lượng tấn cơng
Lọc bỏ lưu lượng tấn công (Máy_chủ/Dịch_vụ S, Tập_địa_chỉ_nguồn AttackSrc)
//Input: S: Địa chỉ IP của máy chủ nội bộ
// Hoặc: Địa chỉ IP của máy chủ nội bộ, số hiệu cổng dịch vụ cần bảo vệ trên máy chủ // AttackSrc: Tập các địa chỉ IP nguồn tấn cơng
//Output: Xóa bỏ các gói tin đến từ nguồn tấn cơng
1 FOR EACH SrcAdd IN AttackSrc
2 Tạo bản tin M loại OFPT_FLOW_MOD 3 Đặt Match fields của bản tin M:
4 M. Địa chỉ máy chủ/ dịch vụ: S
5 M. Địa chỉ nguồn: SrcAdd 6 Đặt Output Action của bản tin M:
7 M. Action = Drop packet
8 Thực thi bản tin M tới OpenFlow switch
9 ENDFOR
10 CALL Giám sát (S) sau thời gian chu kỳ T