CHƯƠNG 2 PHÁT HIỆN VÀ PHÒNG CHỐNG TẤN CÔNG TCP SYNFLOOD
2.5. Phát hiện và loại bỏ các gói tin giả mạo trong tấn cơng DDoS TCP SynFlood
2.5.3.2. Giải pháp PIDAD1
Giải pháp PIDAD1 được đề xuất dựa trên cơ sở sự tăng liên tục của giá trị PID trong IP Header và sử dụng thuật toán DBSCAN để nhóm các gói tin có giá trị PID tăng liên tiếp vào các Cluster. Giải pháp PIDAD1 cần thực hiện thơng qua hai q trình Training phase và Detection phase. Trong đó, Training phase được thực hiện để thiết lập các tham số đầu vào cho thuật toán DBSCAN và Detection phase để phát hiện và loại bỏ các gói tin giả mạo tiếp theo gửi đến hệ thống.
Giải pháp PIDAD1 sử dụng các ký hiệu, thuật ngữ viết tắt dưới đây với ý nghĩa như sau: - Npc: Số lượng các gói tin có địa chỉ IP nguồn khác nhau mà hệ thống nhận được sau khi tấn cơng DDoS xảy ra. Các gói tin này được sử dụng trong Training phase để thiết lập các tham số đầu vào cho thuật tốn DBSCAN.
- EPID (Expected PID): Mỡi Cluster sẽ có một giá trị EPID tương ứng. Giá trị này là giá trị một Cluster mong đợi nhận được gói tin tiếp theo gửi tới hệ thống có giá trị PID trùng với giá trị EPID. Điều này có nghĩa đã có các gói tin trước đó gửi tới hệ thống có giá trị PID tăng liên tiếp nằm trong Cluster đang kiểm tra và giá trị PID của gói tin tiếp theo gửi đến hệ thống là thành viên mới của Cluster đó. Gói tin này được coi là gói tin giả mạo tiếp theo gửi đến hệ thống.
- MC: Mảng dữ liệu có cấu trúc để có thể lưu thơng tin về các Cluster được tạo ra trong quá trình Training phase và Detection phase. Thơng tin bao gồm: giá trị Cluster ID, EPID và thời điểm Cluster kết nạp thành viên cuối cùng vào Cluster đó.
- TLC: Thời điểm đến cuối cùng của một thành viên khi được nhóm vào một Cluster tại thời điểm Cluster đó đang được kiểm tra.
- MpC: Mảng dữ liệu có cấu trúc để lưu thơng tin của mỡi gói tin gửi đến hệ thống bao gồm PID, Cluster ID và SP.
- TTC là thời điểm kiểm tra một gói tin có thuộc về bất kỳ Cluster nào hay không.
- TCC: Khoảng thời gian tối đa để một Cluster có thể nhận được các thành viên mới và đủ điều kiện trở thành một Cluster. Một Cluster tối thiểu phải có 03 thành viên. Giải pháp xác định giá trị này sẽ được trình bày ở phần đánh giá thực nghiệm (Mục 2.6.2)
- CT: Cluster tạm đang được kiểm tra xem có đủ điều kiện để trở thành một Cluster hay khơng. Khi hệ thống nhận được một gói tin mà khơng thuộc về bất kỳ Cluster nào thì một CT được tạo ra và giá trị PID của gói tin đó được thiết lập là core point của CT. Nếu trong khoảng thời gian TCC mà CT không kết nạp được thành viên tiếp theo thì sẽ được xóa bỏ. - MPC: Mảng dữ liệu có cấu trúc như MC được sử dụng để lưu thông tin của các CT. - NPT: Số lượng gói tin có trong mỡi CT.
Giải pháp PIDAD1 được thực hiện như sau:
a) Q trình thiết lập thơng tin đầu vào cho PIDAD1
Q trình thiết lập thơng tin đầu vào được thực hiện tại thời điểm hệ thống DDoS-Defence bắt đầu phát hiện tấn cơng DDoS. Khi đó, trong khoảng thời gian rất ngắn, giải pháp PIDAD1 thực hiện lấy mẫu các gói tin tấn cơng đầu tiên tới hệ thống để thiết lập các tham số của thuật toán DBSCAN. Giải pháp PIDAD1 chỉ tập trung vào việc phát hiện và loại bỏ các gói tin giả mạo gửi đến hệ thống. Việc phát hiện khi nào xảy ra tấn công DDoS dạng TCP Syn Flood, luận án trình bày ở trên. Quá trình thiết lập thơng tin đầu vào được thực hiện như sau:
Khi hệ thống phát hiện có tấn cơng DDoS xảy ra, giải pháp PIDAD1 sẽ thu thập Npc gói tin đầu tiên có địa chỉ IP nguồn khác nhau gửi đến hệ thống. Sau khi có được Npc gói tin, PIDAD1 sẽ áp dụng thuật tốn DBSCAN để tìm ra những Cluster là nhóm các gói tin có PID tăng liên tiếp. Thuật toán DBSCAN áp dụng tham số Eps = 1, để thỏa mãn điều kiện các PID tăng liên tiếp một đơn vị, MinPts = 3 để thỏa mãn điều kiện có ít nhất 3 gói tin có PID tăng liên tiếp thì sẽ tạo lên một Cluster. Do tính chất PID tăng liên tiếp của các gói tin trong một Cluster, nên khi mỡi khi Cluster có thành viên mới (một gói tin mới thỏa mãn điều kiện và thuộc về Cluster đó) thì vị trí của core point sẽ được cập nhật thành vị trí của thành viên mới đó (border point) để cập nhật trạng thái của Cluster và giá trị EPID.
Q trình thiết lập thơng tin đầu vào chỉ được thực hiện thực hiện với Npc gói tin đầu tiên gửi đến hệ thống. Gọi Pi là gói tin thứ i (0 < i < Npc) được kiểm tra điều kiện để đưa vào một Cluster. Giải thuật và lưu đồ thuật toán trong traning phase như sau:
Algorithm: PIDAD1 for each 𝑃𝑖 in 𝑀𝐶 do
if (𝑆𝑝(𝑃𝑖) == 𝑛𝑜𝑡𝑐ℎ𝑒𝑐𝑘𝑒𝑑)
set 𝐶𝑜𝑟𝑒𝑃𝑜𝑖𝑛𝑡 = 𝑃𝑖
// Scan to get new member
for each 𝑃𝑘 (𝑗 < 𝑘 < 𝑁𝑃𝐶) do // check BorderPoint P(k) if (𝑇𝑇𝐶(𝑃𝑗) − 𝑇𝑇𝐶(𝑃𝑖) < 𝑇𝑃𝐶) and (𝑃𝐼𝐷(𝑃𝑗) == 𝑃𝐼𝐷(𝑃𝑖) + 1) set 𝐶𝑜𝑟𝑒𝑃𝑜𝑖𝑛𝑡 = 𝑃𝑗 for each 𝑃𝑘 (𝑗 < 𝑘 < 𝑁𝑃𝐶) do // check BorderPoint P(k) if (𝑇𝑇𝐶(𝑃𝑘) − 𝑇𝑇𝐶(𝑃𝑗) < 𝑇𝑃𝐶) and (𝑃𝐼𝐷(𝑃𝑘) == 𝑃𝐼𝐷(𝑃𝑘) + 1)
create new Cluster 𝐶𝑇 add 𝐶𝑇 infor to 𝑀𝐶 set 𝐶𝑜𝑟𝑒𝑃𝑜𝑖𝑛𝑡 = 𝑃𝑗 set 𝐸𝑃𝐼𝐷 = 𝑃𝐼𝐷(𝑃𝑘) + 1 add 𝑃𝑖 infor to 𝑀𝑃𝐶 add 𝑃𝑗 infor to 𝑀𝑃𝐶 add 𝑃𝑘 infor to 𝑀𝑃𝐶 set 𝑆𝑝(𝑃𝑖) = 𝑐ℎ𝑒𝑐𝑘𝑒𝑑 set 𝑆𝑝(𝑃𝑗) = 𝑐ℎ𝑒𝑐𝑘𝑒𝑑 set 𝑆𝑝(𝑃𝑘) = 𝑐ℎ𝑒𝑐𝑘𝑒𝑑 end if end for end if end for end if end for End
Hình 2.8 Thuật tốn PIDAD1 trong Training phase
b) Quá trình phát hiện và loại bỏ các gói tin giả mạo
Như đã phân tích ở trên, sau khi xảy ra tấn cơng DDoS, q trình thiết lập thơng tin đầu vào được thực hiện trong khoảng thời gian rất ngắn. Sau khi hệ thống nhận được NPC gói tin có địa chỉ IP nguồn khác nhau, giải pháp PIDAD1 sẽ thiết lập được các Cluster và EPID tương ứng và chuyển sang quá trình phát hiện và loại bỏ các gói tin giả mạo này được thực hiện như sau:
Mỡi gói tin gửi đến hệ thống có thể là gói tin giả mạo hoặc gói tin thực. Theo giải pháp PIDAD1, gói tin giả mạo là gói tin có PID trùng với bất kỳ giá trị EPID nào trong MC. Gói tin thực là gói tin khơng có giá trị PID trùng với bất kỳ giá trị EPID nào và không tạo ra một Cluster mới với những gói tin tiếp theo sau đó trong khoảng thời gian TCC. Giá trị TCC phải nhỏ hơn TCP timeout để cho phép PIDAD1 xác định được gói tin thực trước khi xảy ra quá trình TCP retransmission ở phía Client.
Hình 2.9 Thuật tốn của prương pháp PIDAD1
Trong q trình phát hiện và loại bỏ các gói tin giả mạo, PIDAD1 cịn phải cập nhật trạng thái như: xóa và thêm mới các Cluster trong các trường hợp sau:
- Một Cluster được cập nhật thơng tin EPID khi Cluster đó kết nạp thêm một thành viên mới. - Một Cluster sẽ bị xóa đi nếu sau thời gian TCC, Cluster đó khơng có thành viên mới kết nạp.
- Một Cluster sẽ tạo mới khi sau khoảng thời gian TCC các gói tin mới đến hệ thống đủ điều kiện thiết lập một Cluster mới.
Mỡi gói tin gửi đến hệ thống đang ở trạng thái kiểm tra có đủ điều kiện thiết lập Cluster mới hay khơng sẽ được gán là thành viên của CT, nếu Cluster mới được thiết lập từ các gói tin này thì CT sẽ được cập nhật thành Cluster mới, hoặc CT sẽ bị xóa bỏ nếu các gói tin khơng đủ điều kiện thiết lập Cluster mới.
Mảng MTC được sử dụng để lưu thông tin của các CT. Gọi Pi là gói tin thứ i đang được kiểm tra, C(p) là Cluster có p là core point.