Xuất phương pháp 2: RWDA

Một phần của tài liệu Chống tấn công từ chối dịch vụ tốc độ thấp trên Web (Trang 49)

Qua các mô phỏng và đánh giá phương pháp 1, tôi nhận thấy hiệu quả của phương pháp 1 vẫn chưa được tốt, với trường hợp xấu nhất thông lượng mạng bị suy giảm tới 20%. Với mục đích xây dựng một cải tiến giúp WDA có thể bảo vệ thông lượng mạng đạt mức suy giảm không tới 5% khi gặp tấn công từ chối dịch vụ tốc độ thấp vào giai đoạn ON, qua nghiên cứu và tìm hiểu tôi đưa ra đề xuất cải tiến WDA dựa trên một phương pháp chống tấn công từ chối dịch vụ tốc độ thấp rất hiệu quả: RRED. Phương pháp này đã được nhắc đến ở phần 1.2.7. RRED cung cấp một cách thức rất hiệu quả để chống lại LDOS. Do đặc tính của LDOS, RRED có khả năng chặn đứng các đợt tấn công LDOS, giúp băng thông của mạng bị suy giảm không quá 5% trong các mô phỏng tấn công.

Tuy vậy RRED có một số điểm yếu. T* cố định dẫn tới việc phân biệt lưu lượng tấn công không được linh động, vì vậy một hướng nâng cấp RRED là thay đổi T* trong thời gian chạy của kiến trúc. Ngoài ra khi RRED phân biệt lưu lượng tấn công thông qua thời gian gói tin đến nằm trong khoảng thời gian ngắn [𝑇max, 𝑇max + 𝑇*], do vậy xảy ra các trường hợp khi một gói tin hợp lệ gửi đến trong thời gian này sẽ bị RRED phân loại thành gói tin tấn công và hủy bỏ gói tin hợp lệ này. Để nâng cấp RRED cần một cơ chế để xử lý các trường hợp phân loại sai như vậy.

Qua việc nghiên cứu, đánh giá các ưu nhược điểm của RRED, tôi đưa ra đề xuất cải tiến WDA dựa trên ý tưởng của RRED nhằm kế thừa các ưu điểm chống tấn công từ chối dịch vụ tốc độ thấp của RRED, cũng như cải thiện, khắc phục 1 số nhược điểm của RRED nhằm áp dụng vào chống tấn công từ chối dịch vụ tốc độ thấp cho Web farm có triển khai WDA. Kiến trúc đề xuất được đặt tên là RWDA, được mô tả như hình 3.2.

Đầu tiên tôi thêm một hàng đợi có độ ưu tiên thấp nhất vào WDA: MIN_Q. Sau đó kế thừa RRED, tôi thêm vào trước WDA một khối phát hiện và lọc nhằm phát hiện các gói tin tấn công tốc độ thấp, với thuật toán từ RRED. Các gói tin nếu bị khối này phát hiện là gói tin nghi ngờ tấn công, tức gói tin đến trong khoảng thời gian ngắn [𝑇max, 𝑇max + 𝑇*] sẽ không bị drop mà đưa vào hàng đợi MIN_Q của WDA. Điều này giúp cho trường hợp khi khối phát hiện và lọc nếu lọc sai một gói tin hợp lệ thành gói tin tấn công, trong trường hợp mạng bình thường thì WDA vẫn có thể phục vụ gói tin này qua MIN_Q thay vì hủy bỏ gói tin, như vậy có thể làm giảm xác suất false- positive của khối phát hiện và lọc. Ngược lại các gói tin nếu được khối phát hiện và lọc phân loại là gói tin hợp lệ sẽ được đưa vào WDA để xử lý bình thường. Như vậy các đặc tính và chức năng của WDA vẫn được giữ nguyên với các hàng đợi LOW_Q, HIGH_Q. Ở đây vì sao lại đưa vào một hàng đợi mới MIN_Q mà không đưa vào hàng đợi LOW_Q có sẵn của WDA. Lý do là nhằm tránh trường hợp xung đột giữa WDA với khối phát hiện và lọc. Trong trường hợp có tấn công từ chối dịch vụ tốc độ thấp,

các gói tấn công sẽ bị đưa thẳng vào một hàng đợi, và hàng đợi đó sẽ nhanh chóng bị tràn dẫn tới các gói tin bị hủy bỏ. Nếu như chúng ta đẩy lưu lượng nghi ngờ tấn công tốc độ thấp vào hàng đợi LOW_Q, khi đó có trong trường hợp tấn công tốc độ thấp, có thể nói hàng đợi LOW_Q sẽ bị vô hiệu hóa. Lúc này nếu WDA đánh giá một client hợp lệ là một kẻ tấn công, lưu lượng của client này cũng sẽ bị gửi đến LOW_Q, dẫn đến lưu lượng đó sẽ bị hủy bỏ hoàn toàn. Đây chính là trường hợp xung đột giữa khối phát hiện và lọc với khối WDA, dẫn đến khối WDA không có khả năng phục vụ các client bị xác định nhầm là kẻ tấn công. Khi đó người dùng hợp lệ bị xác định nhầm là kẻ tấn công bởi WDA sẽ không thể truy cập vào Web farm, làm giảm khả năng của WDA gốc là các gói tin đưa vào LOW_Q vẫn có thể được phục vụ bình thường. Ngoài ra tôi cũng sửa đổi cơ chế drop feed back của RRED để áp dụng vào RWDA. Cụ thể nếu WDA hủy bỏ một gói tin, chỉ thực hiện thông báo lại cho khối phát hiện và lọc trong trường hợp WDA hủy bỏ gói tin tại các hàng đợi khác hàng đợi MIN_Q và LOW_Q. Điều này tránh việc các gói tin nghi ngờ tấn công từ khối phát hiện và lọc đáng nhẽ ra chỉ cập nhật biến thời gian cục bộ 𝑓. 𝑇1 thì lại cập nhật cả biến thời gian toàn cục T2, dẫn đến trường hợp khi bị tấn công từ chối dịch vụ tốc độ thấp hoặc tấn công gửi tràn, thì T2 sẽ bị cập nhật liên tục từ việc hủy bỏ gói tin ở hàng đợi MIN_Q, hoặc LOW_Q tương ứng, dẫn tới các gói tin tiếp theo gửi tới sẽ có xác suất cao liên tục nằm trong khoảng thời gian ngắn [𝑇max, 𝑇max + 𝑇*], và liên tục bị nghi ngờ là gói tấn công tốc độ thấp.

Ngoài ra tôi cũng áp dụng cải tiến của phương pháp 1 vào RWDA, với cơ chế ưu tiên cho các gói tin đến mà có gói tin trước đó lớn hơn 1 giây đã bị hủy bỏ để ưu tiên cho các gói tin đầu tiên sau khi có tắc nghẽn, nhằm phục vụ tốt cho các client chịu tấn công gây ra tắc nghẽn.

Giả mã của phương pháp RWDA được trình bày như dưới đây:

When drop packet p //Khi hủy bỏ một gói tin

isFirstRetransmitPacket = true; //Đặt biến nghi truyền lại sau tắc nghẽn mLastPacketDrop = true;

If drop_by SUPER_Q or drop_by HIGH_Q then

reportDrop() //Báo cáo hủy gói tin với khối phát hiện và lọc end if;

When packet p //Khi có một gói tin đến

If checkArriveTime( p ) == true then //Kiểm tra tại khối phát hiện và lọc

queue = MIN_Q //Gửi gói tin vào hàng đợi MIN _Q

else If mLastPacketDrop == true and isFirstRetransmitPacket == true

and timeBtwPackets >= 1 then //Kiểm tra để gửi gói tin vào SUPER_Q queue = SUPER_Q; //Gửi gói tin vào hàng đợi SUPER_Q isFirstRetransmitPacket = false;

mLastPacketDrop = false; else

Xử lý bình thường bởi WDA end if;

Thông qua mô phỏng thực nghiệm, các cải tiến trên cho thấy một kết quả rất tốt: băng thông mạng bị suy giảm không quá 2% trong trường hợp bị tấn công LDOS tại giai đoạn ON. Từ đó có thể kết luận các cải tiến giúp tăng khả năng bảo vệ Web farm của WDA lên một mức mới, có thể bảo vệ được Web farm chống lại kiểu tấn công mới rất tinh vi và nguy hiểm: Tấn công từ chối dịch vụ tốc độ thấp.

CHƯƠNG 4: KẾT QUẢ MÔ PHỎNG

Một phần của tài liệu Chống tấn công từ chối dịch vụ tốc độ thấp trên Web (Trang 49)