Tấn công Denial of Service (DoS) là khiến cho một tài nguyên nào đó, chẳng hạn như các web servers, trở nên unavailable và từ chối dịch vụ của các users thông thường. Bên tấn công thực hiện điều này bằng cách gửi nhiều requests đến server nhiều đến mức làm cho nó quá tải.
Nếu chỉ gửi các requests từ một nguồn, bên phòng thủ có thể sử dụng tường lửa hoặc các biện pháp tương tự để ngăn chặn. Vì thế, bên tấn công thường phân tán nguồn gửi request ra cho nhiều thiết bị.
- Các thiết bị được sử dụng để gửi request thường là các máy bị nhiễm malware và được tập hợp lại thành một hoặc nhiều botnets (viết tắt của robot network).
- Các botnets có thể bao gồm hàng triệu các thiết bị (còn được gọi là các bots) và có thể có cả các thiết bị IoT.
- Thậm chí còn tồn tại các dịch vụ cho thuê botnets để thực hiện DDoS.
- Bên tấn công còn có thể tận dụng được sức mạnh của nhiều thiết bị để thực hiện tấn công hiệu quả hơn.
- Khi đó, DoS trở thành Distributed Denial of Service (DDoS).
Types of DDoS Attacks
Có nhiều loại tấn công DDoS, mỗi loại tương ứng với một tầng mạng cụ thể nào đó, mà thường là tầng 3, 4 và tầng 7 (Network Layer, Transport Layer và Application Layer). Các tầng khác nhau sẽ có cách tấn công DDoS khác nhau.
Ví dụ, đối với tầng application thì có kiểu tấn công “HTTP flooding”: gửi thật nhiều HTTP requests đến khi nào server quá tải. Ở tầng transport thì có hình thức tấn công “SYN flooding”: gửi yêu cầu thiết lập kết nối TCP đến server (bằng cách gửi gói tin SYN) nhằm bắt server chờ gói tin chấp nhận kết nối (ACK) nhưng không bao giờ gửi lại gói tin này.
Fighting DDoS
Có thể chống DDoS bằng cách sử dụng cơ chế rate-limiting: giới hạn số requests mà server phục vụ trong một đơn vị thời gian. CAPCHA cũng cho chức năng tương tự.
Cũng có thể sử dụng dịch vụ của các bên thứ ba chẳng hạn như Cloudflare nhằm chặn những requests không hợp lệ và chỉ gửi những requests hợp lệ đến cho server.