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.3. Lựa chọn tham số và chỉ số thống kê lưu lượng
Các tham số thống kê lưu lượng
Dựa trên đặc điểm lưu lượng tấn công DDoS và khả năng thống kê các tham số lưu lượng theo cơ chế SDN/Openflow, giải pháp lựa chọn 3 tham số dùng cho phát hiện tấn cơng DDoS như trình bày trong Bảng 2.1.
Bảng 2.1. Các tham số thống kê sử dụng để phát hiện và phân loại lưu lượng tấn công DDoS
Tham số
thống kê Ý nghĩa Phương pháp lấy thống kê
Số địa chỉ IP
nguồn SAN - Chỉ ra số thực thể IP yêu cầu kết nối tới máy chủ/dịch vụ trong cửa sổ thời gian. - Tùy theo đặc tính của mỗi máy chủ/dịch vụ như phạm vi cung cấp dịch vụ, tính chất của dịch vụ, giá trị SAN của mỗi máy chủ/dịch vụ là khác nhau. Ngoài ra, giá trị này cịn có thể biến đổi theo khung giờ trong một ngày.
- Khi ở trạng thái hoạt động bình thường, SAN nằm trong giới hạn phục vụ của máy chủ. Khi máy chủ/dịch vụ bị tấn công DDoS, giá trị SAN thường tăng cao do kẻ tấn công huy động nhiều nguồn lưu lượng.
- Đếm tại SS - Tăng bộ đếm mỗi khi xuất hiện địa chỉ IP nguồn mới trong bản tin packet-in
Số cổng
nguồn SPN - Chỉ ra tổng số luồng lớp 4 đang kết nối tới máy chủ/dịch vụ. - Cũng giống như SAN, tham số này phụ thuộc vào tính chất, đặc điểm của máy chủ/dịch vụ và phạm vi cung cấp của nó và có thể biến đổi theo khung giờ.
- Khi ở trạng thái bị tấn công DDoS, SPN tăng cao do kẻ tấn công cố gắng mở nhiều kết nối tới máy chủ/dịch vụ.
- Đếm tại SS - Tăng bộ đếm mỗi khi xuất hiện một cổng nguồn mới trong bản tin packet-in Số lượng gói
tin PN - Là số lượng gói tin trung bình của một luồng đang kết nối tới máy chủ, dịch vụ: + Khi phát hiện tấn cơng: tính theo giá trị trung bình của máy chủ/dịch vụ.
+ Khi phân loại lưu lượng tấn cơng: tính theo giá trị trung bình của từng địa chỉ IP nguồn.
- Theo đặc tính thống kê, số gói tin trung bình của một luồng của một dịch vụ cụ thể thường ổn định và kẻ tấn công không thể biết giá trị tham số trung bình này. Khi tấn cơng xảy ra, kẻ tấn cơng thường phát động những luồng có cùng cơ chế tấn cơng (botnet) nên đặc tính lưu lượng đến thường giống nhau và khác so với đặc tính thống kê. Sự khác biệt này được chọn làm dấu hiệu phát hiện tấn công.
- Thực hiện tại Bộ điều khiển và OFS - Gọi bản tin truy vấn thống kê OFPMP_FLOW _STATS
Các chỉ số thống kê lưu lượng
Từ các tham số thống kê lưu lượng, sau mỗi cửa sổ thời gian T, giải pháp tính tốn 2 chỉ số thống kê cho mỗi máy chủ/dịch vụ, đó là:
• Tỷ lệ số cổng trung bình được mở trên mỗi địa chỉ IP nguồn SPA:
𝑆𝑆𝑇𝑇𝑆𝑆=𝑆𝑆𝑇𝑇𝐹𝐹𝑆𝑆𝑆𝑆𝐹𝐹 (2.1)
Giá trị này là tỷ lệ số gói tin trung bình trên mỗi luồng được tính như sau: PpF = ∑SPNi=1SPNPN
trong đó, ∑SPNPN
i=1 là tổng số gói tin trong tổng số SPN luồng hiện có.
(2.2) Khi phát hiện tấn cơng đối với một máy chủ/dịch vụ, PpF được tính trung bình cho tất cả các luồng yêu cầu kết nối tới máy chủ/dịch vụ đó. Khi phân loại lưu lượng tấn cơng, PpF được tính trung bình cho từng địa chỉ IP nguồn.
2.2.4. Lựa chọn và xây dựng mơ hình dự đốn chỉ số thống kê lưu lượng
Các mơ hình dự đốn phổ biến
Như đã trình bày ở mục 2.1, tấn cơng DDoS được phát hiện dựa trên sự chênh lệch giữa chỉ số thống kê lưu lượng thực tế và chỉ số dự đoán. Chỉ số dự đoán dựa trên giả thiết lưu lượng lành tính. Khi có tấn cơng, chỉ số thống kê lưu lượng thực tế tăng cao so với chỉ số dự đoán và là cơ sở để phát hiện tấn cơng. Do đó, mức độ chính xác của q trình tính tốn phát hiện phụ thuộc vào mức độ chính xác của mơ hình dự đốn. Trong thực tế, có nhiều mơ hình dự đốn theo cửa sổ thời gian khác nhau [101]–[105]. Dưới đây là một số mơ hình dự đốn phổ biến.
a). Mơ hình trung bình động
Mơ hình trung bình động (MA) [101] dự đốn tham số ở một thời điểm dựa trên trung bình cộng của các giá trị của các thời điểm liền kề trước đó. Giá trị tham số dự đốn ở một thời điểm xác định trong tương lại được tính theo cơng thức:
𝑥𝑥�𝑡𝑡+1 =1𝑘𝑘 ∗(𝑥𝑥𝑡𝑡+𝑥𝑥𝑡𝑡−1+⋯+𝑥𝑥𝑡𝑡−𝑘𝑘+1) (2.3)
trong đó:
• k là bề rộng cửa sổ,
• 𝑥𝑥�𝑡𝑡+1 là giá trị dự đốn ở thời điểm t+1,
• xi là giá trị thực ở thời điểm thứ i.
Mơ hình dự đốn trung bình động được tính bằng giá trị trung bình của k giá trị liền trước. k càng lớn càng cho kết quả chính xác. Ưu điểm của mơ hình này là tính tốn đơn giản. Tuy nhiên nó địi hỏi lưu trữ cơ sở dữ liệu lớn vì để tính tốn giá trị dự đốn ở một thời điểm cho một mẫu tham số, đòi hỏi phải lưu trữ k tham số trước đó.
b). Mơ hình trung bình động có trọng số
Mơ hình trung bình động có trọng số (WMA) [102], [104] được tính tốn dự đốn dựa trên mơ hình WA trong đó với mỗi mẫu giá trị ở các thời điểm trước được tham gia vào giá trị dự đoán với các trọng số wi khác nhau. Giá trị dự đoán của giá trị mẫu ở thời điểm t+1 được tính theo cơng thức:
𝑥𝑥�𝑡𝑡+1= 1ℎ ∗(𝑤𝑤1.𝑥𝑥𝑡𝑡+𝑤𝑤2.𝑥𝑥𝑡𝑡−1+⋯+𝑤𝑤𝑘𝑘.𝑥𝑥𝑡𝑡−𝑘𝑘+1) (2.4) trong đó:
• k là bề rộng cửa sổ,
• wi là trọng số của thành phần mẫu thứ i,
• và ℎ= 𝑤𝑤1+𝑤𝑤2+ … +𝑤𝑤𝑘𝑘.
Tùy theo đặc tính của dữ liệu, trên cơ sở thống kê, các trọng số wi được lựa chọn để nâng cao độ chính xác của giá trị dự đoán. Bề rộng cửa sổ k càng lớn thì đặc tính thống kê càng cao và cho kết quả dự đoán càng gần với thực tế. Tuy nhiên, cũng giống như MA, mơ hình WMA địi hỏi tài nguyên lưu trữ giá trị mẫu lớn, không phù hợp với dự đốn tấn cơng DDoS khi số lượng địa chỉ tấn cơng tăng cao.
c). Mơ hình làm trơn hàm mũ
Theo mơ hình dự đốn làm trơn hàm mũ (Exponential smoothing) [105], giá trị mẫu ở thời điểm t+1 được dự đoán dựa trên giá trị thực và giá trị dự đoán ở thời điểm t trước đó, trong đó mỗi giá trị được gắn với một trọng số dự đoán:
𝑥𝑥�𝑡𝑡+1= 𝛼𝛼.𝑥𝑥𝑡𝑡+ (1− 𝛼𝛼).𝑥𝑥�𝑡𝑡 (2.5)
trong đó:
• 𝛼𝛼 là hệ số làm trơn và có giá trị nằm trong khoảng [0,1],
• 𝑥𝑥𝑡𝑡 là giá trị thực của mẫu ở thời điểm t,
• 𝑥𝑥� là giá trị dự đoán của mẫu ở thời điểm t.
Thực chất, đây là phương pháp dự đốn bình qn đơn giản có trọng số tn theo hàm mũ giảm dần về quá khứ (1- 𝛼𝛼)k. Việc lựa chọn hệ số 𝛼𝛼 là rất quan trọng, nó phụ thuộc vào đặc tính cụ thể của dữ liệu. Mơ hình dự đốn làm trơn số mũ khơng địi hỏi lưu trữ nhiều giá trị mẫu, tính tốn đơn giản và dựa trên trạng thái hiện tại của hệ thống để đưa ra dự đoán ở thời điểm tiếp theo. Tại mỗi thời điểm, hệ thống chỉ cần lưu trữ một giá trị dự đoán của mẫu gần nhất. Khi có dữ liệu của mẫu mới, giá trị dự đốn ở thời điểm tiếp theo được tính và thay thế cho giá trị lưu trữ cũ và tiếp tục sử dụng cho tính tốn dự đốn ở thời điểm kế tiếp.
Xây dựng mơ hình dự đốn chỉ số thống kê lưu lượng
Để giảm bớt số mẫu chỉ số lưu lượng cần lưu trữ trong mơ hình dự đoán, trong giải pháp phát hiện và phân loại lưu lượng tấn cơng DDoS, mơ hình dự đốn làm trơn hàm mũ được lựa chọn. Như đã trình bày ở trên, hệ số 𝛼𝛼 phụ thuộc rất nhiều vào đặc tính lưu lượng cụ thể nên để đơn giản, trong phạm vi nghiên cứu, hệ số này được chọn với giá trị 𝛼𝛼 = 0.5. Khi đó các giá trị dự đoán các chỉ số thống kê lưu lượng được tính như sau:
𝑆𝑆𝑇𝑇𝑆𝑆𝐶𝐶𝐶𝐶𝐶𝐶 𝑡𝑡+1 =𝑆𝑆𝑇𝑇𝑆𝑆+𝑆𝑆𝑇𝑇𝑆𝑆2 𝐶𝐶𝐶𝐶𝐶𝐶 𝑡𝑡
𝑇𝑇𝑃𝑃𝐹𝐹𝐶𝐶𝐶𝐶𝐶𝐶 𝑡𝑡+1= 𝑇𝑇𝑃𝑃𝐹𝐹+𝑇𝑇𝑃𝑃𝐹𝐹2 𝐶𝐶𝐶𝐶𝐶𝐶 𝑡𝑡
(2.6) (2.7) trong đó SPACUM và PpFCUMlà các giá trị dự đốn hay cịn gọi là các giá trị trung bình tích
Nếu kết quả của thuật tốn không phát hiện tấn công xảy ra, các giá trị trung bình tích lũy mới được tính bằng trung bình cộng giữa giá trị trung bình tích lũy cũ và giá trị tức thời. Ngược lại, khi có tấn cơng xảy ra thì giá trị trung bình tích lũy cũ được giữ nguyên. Do đặc tính lưu lượng thường phụ thuộc vào khung giờ trong ngày [106], để nâng cao tính chính xác, các giá trị trung bình tích lũy có thể được lưu trữ và tính tốn theo tham số này.
2.2.5. Phát hiện và giảm thiểu tấn cơng
Thuật tố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ỏ toà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
2.2.6. Phân tích và đánh giá hiệu năng của giải pháp
Phương pháp phân tích và kịch bản tấn công
Hiệu năng của giải pháp được đánh giá thơng qua phân tích mơ phỏng trên bộ dữ liệu lành tính CAIDA 2013 [107] và bộ dữ liệu CAIDA DDoS 2007 [108]. Các gói tin từ bộ lưu lượng được đọc bởi cơng cụ phân tích Scapy [109] và lưu thơng tin thuộc tính vào hệ cơ sở dữ liệu phục vụ cho phân tích, thống kê. Thời gian tồn tại của các luồng dựa trên 2 tham số mặc định
idle timeout và hard timeout của sản phẩm OFS thương mại tương ứng là 10s và 60s [110]. Chu kỳ giám sát T được chọn là 5 phút, các giá trị thống kê được tính từ các luồng đang tồn tại và đưa vào hệ thống phát hiện tấn công tại máy chủ bảo mật để phân tích và đưa ra kết quả đầu ra.
Bộ dữ liệu CAIDA 2013 [107] là dữ liệu được capture từ lưu lượng thực trong năm 2013 tại gateway của một trung tâm dữ liệu của một trường đại học đặt tại San Jose, California, Mỹ với nhiều dịch vụ khác nhau. Lưu lượng được kiểm định và đảm bảo là lưu lượng lành tính trước khi xóa bỏ hết phần nội dung các gói tin và đổi địa chỉ IP thực. Bộ lưu lượng được phục vụ cho mục đích nghiên cứu phù hợp với các quy mô lưu lượng từ nhỏ đến lớn dựa vào kết hợp lưu lượng của các máy chủ trong bộ dữ liệu. Trên thực tế CAIDA 2013 được sử dụng cho nhiều