Tấn công DDoS có thể được phân loại theo nhiều cách khác nhau [5].
Dưới đây là một số cách phân loại cơ bản.
27
- Tràn băng thông (flooding) [3]: Kẻ tấn công cố gắng ngăn chặn các kết
nối từ người dùng hợp pháp bằng cách tạo ra một lưu lượng khổng lồ tới mục tiêu tấn công làm cạn kiệt tài nguyên băng thông. Kỹ thuật này thường dựa trên các giao thức mạng lớp 4 như UDP flood, ICMP flood. Kẻ tấn công cũng có thể khai thác các điểm yếu của các phần mềm, dịch vụ ứng dụng hoặc tạo nhiều kết nối giả mạo, không có mục đích nhằm ngăn chặn các kết nối lành tính. Dạng phổ
biến của tấn công loại này là HTTP Flood với hàng triệu kết nối không mục đích được gửi đến máy chủ. Kẻ tấn công sử dụng kỹ thuật thăm dò năng lực phục vụ
của máy chủ và điều chỉnh tốc độ tấn công tạo nên hình thức tấn công dai dẳng làm suy giảm năng lực máy chủnhư tấn công Slowloris.
Hình 2.3 Phân loại các kỹ thuật tấn công DDoS
- Khuếch đại: Kỹ thuật tấn công này lợi dụng giao thức trao đổi gói tin
yêu cầu/trả lời (request/response) và khảnăng giả mạo địa chỉ nguồn trong mạng IP. Hàng loạt yêu cầu giả mạo địa chỉ nguồn bằng địa chỉ của nạn nhân được gửi tới các máy chủ đồng thời. Giao thức trao đổi yêu cầu/trả lời có đặc tính lưu lượng yêu cầu nhỏnhưng bản tin trả lời lớn sẽ gửi ồạt các bản tin trả lời tới máy nạn nhân cùng lúc làm cho lưu lượng tới máy nạn nhân tăng đột biến, gây quá tải. Các dịch vụthường được lợi dụng cho tấn công dạng này bao gồm máy chủ
DNS, NTP, IRC… Ngoài ra, cơ chế trao đổi gói tin quảng bá, phản xạ trong hệ
thống mạng cũng được lợi dụng như Smurf, Fraggle.
b) Tấn công dựa vào năng lực tính toán:
Tấn công vào năng lực tính toán là kiểu tấn công nhằm vào năng lực hữu hạn của máy chủ nạn nhân, bằng cách làm cho máy chủ mục tiêu phải dành tài
28
nguyên hữu hạn của nó để phục vụ cho những gói tin tấn công từ mạng botnet của tin tặc.
- Khai thác lỗ hổng trên các protocol: Các lỗ hổng an ninh cố hữu của các
giao thức mạng được lợi dụng để phát động tấn công theo dạng này như cơ chế
bắt tay ba bước (gọi tắt là 3HS) trong giao thức TCP, giao thức ICMP… Ví dụ đối với tấn công TCP SYN Flood theo giao thức TCP, khi nhận được một gói tin SYN, máy chủ sẽ gửi gói tin trả lời SYN-ACK và dành ra một vùng nhớ TCB 128 KB để lưu trữ thông tin kết nối và chờ gói tin xác nhận CliACK từ máy khách (client) trong một khoảng thời gian (lên đến 75s) trước khi gửi gói tin trả
lời SYN-ACK (Hình 2.4 a). Lợi dụng nguyên tắc này, kẻ tấn công huy động gửi
ồạt các gói tin SYN tới máy chủ mà không gửi gói tin xác nhận CliACK dẫn đến máy chủ nhanh chóng bị cạn kiệt tài nguyên do dành hết bộ nhớ cho các TCB
tương ứng với các kết nối dang dở và không thể phục vụ các kết nối lành tính khác (Hình 2.4 b)
Bắt tay 3 bước trong kết nối TCP (a) Tấn công TCP SYN Flood (b)
Hình 2.4 Bắt tay ba bước trong TCP (a) và Tấn công TCP SYN Flood (b)
c) Tấn công sử dụng các bản tin khó hiểu
• Ping of Death: Bình thường gói tin Ping (ICMP) chỉ có kích thước tối đa
65535 byte và khi gửi một gói request đến một máy nào thì máy đó đáp lại bằng một gói reply. Ý tưởng của tin tặc là gửi các gói tin ping vượt kích
thước (ví dụ: 65536) vượt qua sự cho phép của TCP/IP để tấn công.
• Sử dụng vùng OPTION trong gói tin IP: ngẫu nhiên hóa vùng OPTION
trong IP packet và thiết lập tất cả các bit QoS lên 1, điều này làm cho hệ
thống của nạn nhân phải tốn thời gian phân tích, nếu toàn bộ mạng botnet cùng gửi các gói tin đó sẽ có thể làm hệ thống nạn nhân bị hết khả năng
29