“Trạng thái tối thiểu” là ý tƣởng lần đầu đƣợc đƣa ra bởi [4] để phòng chống dạng tấn công lƣu lƣợng thấp có sự lặp lại về tần suất tấn công mặc dù lƣu lƣợng gửi lên trong mỗi phiên Web Session luôn rơi vào giới hạn đƣợc phép. Ý tƣởng này khá hiệu quả nên chúng tôi sử dụng trong phần đánh giá các truy vấn có lƣu lƣợng thấp hƣớng đến máy chủ website.
Điều kiện để client có thể đi vào trạng thái này là:
52 Thời gian nghỉ trung bình không nhỏ hơn giá trị thời gian trung bình
đƣợc phép nghỉ
Điểm số đánh giá của kết nối vẫn còn lớn hơn 0
Một khi client đi vào “Trạng thái tối thiểu”, các giá trị của nó sẽ đƣợc thay thế nhƣ sau:
Lƣu lƣợng phiên hiện tại đƣợc gán bằng lƣu lƣợng cực tiểu cho phép Thời gian nghỉ trung bình bằng giá trị thời gian trung bình đƣợc phép
nghỉ
Giảm điểm đánh giá của kết nối đi 1.
Sau mỗi 50 phiên làm việc, client sẽ nhận đƣợc thêm một lƣợng điểm thƣởng gọi là Minimum_State_Credits, tăng lên tới Minimum_State_Max_Credits nhằm tránh kẻ tấn công tích lũy một lƣợng lớn điểm để tấn công.
Giá trị thời gian trung bình đƣợc phép nghỉ không nhỏ hơn giá trị nghỉ tối thiểu (thƣờng là 5s) nhằm đảm bảo ngƣời dùng hợp lệ không quá thƣờng xuyên rơi vào trạng thái này, tuy nhiên không đƣợc để quá thấp nhằm tránh kẻ tấn công có thể lợi dụng.
Mô hình trạng thái tối thiểu đƣợc chúng tôi kế thừa để giải quyết trƣờng hợp:
Tấn công “Low-burst fast”
Thực tế đã xảy ra, trong một vài phiên làm việc liên tiếp, ngƣời dùng hợp lệ có thể vô tình hành xử giống nhƣ một kẻ tấn công – nhƣ tốc độ tải Website chậm làm ngƣời dùng không kiên nhẫn thƣờng liên tiếp bấm yêu cầu tải lại, refresh trang liên tục. Hệ quả là giá trị hàm ƣu tiên f, tức giới hạn độ lớn của dữ liệu gửi lên của ngƣời dùng đó sẽ liên tục bị giảm xuống. Nếu nhƣ giá trị ƣu tiên f này giảm xuống đến mức thấp hơn mức độ ƣu tiên cho phép xác định kết nối đó vẫn là hợp lệ, nhiều khả năng các thông số của lƣu lƣợng truy cập từ ngƣời dùng hợp lệ sẽ xấu đi và các gói tin trong tƣơng lai sẽ bị đẩy xuống hàng đợi có độ ƣu tiên thấp. Để giải quyết trƣờng hợp này, WDAQ [4] có đề ra một ngƣỡng chặn dƣới, đó là giá trị lƣu lƣợng tối thiểu. Nhờ đó, ngƣời dùng hợp lệ sẽ có cơ hội để khôi phục các thông số trở lại bình thƣờng.
53 Lợi dụng đặc điểm này, kẻ tấn công sẽ tiến hành gửi lƣợng dữ liệu tối đa bằng ngƣỡng tối thiểu ở trên, sau đó nghỉ ngơi một vài giây. Do ngƣỡng lƣu lƣợng gửi lên luôn bằng hoặc thấp hơn ngƣỡng tối thiểu đó, do vậy nếu bộ lọc chỉ đƣợc trang bị các giải pháp bên trên thì không thể chống đƣợc trƣờng hợp này.
Để khắc phục tình trạng trên, WDAQ [4] có thiết lập một trạng thái gọi là “Trạng thái tối thiểu”. Điều kiện để client có thể đi vào trạng thái này là:
Lƣu lƣợng gửi phiên hiện tại phải nhỏ hơn ngƣỡng lƣu lƣợng tối thiểu (LBF -01)
Thời gian phiên kết nối không đƣợc nhỏ hơn thời gian OFF tối thiểu theo mô hình Choi & Lim (LBF -02)
Số lƣợng điểm của ngƣời dùng này không đƣợc nhỏ hơn 0 (LBF -03) Một khi client đi vào “Trạng thái tối thiểu”, các giá trị của nó sẽ đƣợc thay thế nhƣ sau:
Tăng ngƣỡng cho phép của phiên hiện tại = ngƣỡng tối thiểu (LBF -04) Đặt giá trị thời gian phiên kết nối = thời gian OFF trung bình tối thiểu
(LBF -05)
Giảm điểm của ngƣời dùng này đi 1 (LBF -06)
Sau mỗi 50 phiên làm việc, ngƣời dùng sẽ nhận đƣợc thêm một lƣợng tín dụng là Minimum_State_Credits, tăng lên tới Minimum_State_Max_Credits nhằm tránh kẻ tấn công tích lũy một lƣợng lớn tín dụng để tấn công.
Giá trị thời gian OFF trung bình tối thiểu không quá nhỏ nhằm đảm bảo ngƣời dùng hợp lệ không quá thƣờng xuyên rơi vào trạng thái này, tuy nhiên không đƣợc để quá thấp nhằm tránh kẻ tấn công có thể lợi dụng.
Ý tƣởng trên là một giải pháp khả thi với dạng tấn công kiểu này, vì vậy chúng tôi sử dụng ý tƣởng này nhƣng cải tiến cách thức ngƣời dùng rơi vào trạng thái tối thiểu. Thay vì tính ngƣỡng lƣu lƣợng cho thời kỳ ON và thời gian OFF trung bình tối thiểu trong phƣơng pháp cũ chúng tôi chuyển sang tính ngƣỡng lƣu lƣợng cả phiên Web-request – do không còn tồn tại thời kỳ ON – OFF riêng biệt. Cũng nhƣ ngƣỡng lƣu lƣợng tối thiểu chấp nhận sẽ tƣơng đƣơng giá trị trung bình lƣu lƣợng
54 mỗi truy vấn trong thời gian một Web-request đó – ví dụ ở hình 24 thì ta chọn ngƣỡng trung bình mỗi ô đậm bằng tổng lưu lượng một phiên / số lượng truy vấn.
Rõ ràng giá trị lưu lượng trung bình mỗi phiên đã được thống kê bởi [1] nên đây sẽ
là cơ sở so sánh.
Khi máy khách đi vào trạng thái tối thiểu thì các giá trị cũng đƣợc thay đổi tƣơng ứng nhƣ các điều kiện LBF04, LBF05, LBF06 với các thông số đƣợc thay tƣơng ứng ở trên.
Hình 26 Mô hình hoạt động của bộ lọc khi tấn công Low-burst-fast Thông số kẻ tấn công:
- Lƣợng dữ liệu tải lên trong một phiên: BW = Min_TH bytes
- Thời gian nghỉ: Khá ngắn. Thông thƣờng nhỏ hơn giới hạn Min_Reading_time
Quá trình hoạt động:
- Hàng đợi ƣu tiên sẽ cộng dồn lƣợng dữ liệu gửi lên server với mỗi gói tin đến
- Mỗi phiên gửi một lƣợng Min_TH bytes, thỏa mãn điều kiện của Policer. - Có khả năng rơi vào bẫy phiên ngẫu nhiên.
- Nếu không bị bẫy, gói tin của phiên đó vào High queue (Gói P1) - Nếu bị bẫy, phiên làm việc rơi vào trạng thái tối thiểu:
55 Nếu số tín dụng (credit) > 0, gói tin của phiên đó vào High queue
(Gói P1)
Nếu số tín dụng (credit) = 0, gói tin của phiên đó vào Low queue (Gói P2 và P3)
- Khi Low queue chƣa bị đầy, gói tin vào đây vẫn đƣợc phục vụ, mặc dù kém hơn so với gói tin vào hàng đợi High queue (Gói P2)
- Khi Low queue đầy, gói tin sẽ bị hủy bỏ (Gói P3)
Ngoài ra trạng thái tối thiểu cũng khá hiệu quả với các dạng tấn công phức tạp hơn:
Tấn công Low rate DDoS hay Shrew Attack
Với dạng tấn công này thay vì tấn công liên tục, kẻ tấn công sẽ gửi dữ liệu rồi nghỉ với thời gian nghỉ dài hơn thời gian kết nối trung bình của một phiên Web- request. Do lƣợng dữ liệu gửi lên server luôn ở mức cực tiểu, lƣu lƣợng truy cập này sẽ không bao giờ trở nên đáng ngờ đối với bộ lọc. Những kiểu tấn công nhƣ vậy có thể đƣợc tiến hành một cách liên tục, dai dẳng mà hệ thống không thể ngăn chặn đƣợc, vì về bản chất nó khá giống với lƣu lƣợng truy cập thông thƣờng.
Điểm yếu của kiểu tấn công này là lƣợng dữ liệu tải lên trung bình trong một khoảng thời gian tƣơng đối thấp. Do đó, để có thể làm ngập một hệ thống, kẻ tấn công cần phải huy động một lƣợng lớn zombie nhằm bù lại cho sự sụt giảm về lƣợng dữ liệu kể trên. Với chỉ khoảng 29$/ một giờ, kẻ tấn công có thể thuê đƣợc mạng lƣới có hàng triệu zombie.
56 Do đó, hiện tại và trong tƣơng lai, hình thức tấn công này có thể trở nên phổ biến và trở thành một mối nguy hại không nhỏ đối với các hệ thống website. Với dạng tấn công kiểu này, chúng ta sẽ cần một phƣơng pháp đã đƣợc chứng minh là hiệu quả của Changwang Zhang [12]. Dựa theo những đặc điểm nhận dạng và cách phòng chống của Zhang, chúng tôi thấy đây là ý tƣởng hợp lý nhất trong trƣờng hợp mô hình mới của chúng tôi.