Các cuộc tấn công mạng DoS và DDoS không còn xa lạ với những người thường dùng công nghệ. Nhưng đối với những người chưa từng gặp phải hoặc mới gặp phải vấn đề này, việc tìm ra giải pháp có thể mất rất nhiều thời gian. Bài viết này sẽ giúp bạn hiểu chi tiết hơn về Dos và DDoS là gì cũng như cách ngăn chặn và giải quyết chúng.
I. Tổng quan về DoS và DDoS
1. DoS là gì?
DoS viết tắt của cụm từ Denial of Service, là một kiểu tấn công từ chối dịch vụ khi đó máy tính của bạn sẽ bị tấn công bởi lưu lượng truy cập từ hệ thống của hacker. DoS là một cuộc tấn công trực tuyến thường nhắm vào một trang web hoặc máy chủ điển hình. Bằng cách làm quá tải tài nguyên hệ thống, tốc độ hệ thống của máy tính sẽ bị chậm lại đáng kể.
Cuộc tấn công này có thể khiến máy tính của bạn ngừng hoạt động hoặc tắt đột ngột. Khi hiện tượng này xảy ra sẽ ảnh hưởng nghiêm trọng đến hệ thống của máy tính và buộc máy tính phải tắt nguồn.
2. DDoS là gì?
DDoS viết tắt của cụm từ Distributed Denial of Service, có nghĩa là từ chối dịch vụ phân tán, máy tính của bạn bị tấn công với lưu lượng truy cập từ nhiều hệ thống khác nhau thông qua nhiều nơi khác nhau.
Trọng tâm của việc này là máy tính hoặc server chắc chắn sẽ bị đánh sập hoặc ngừng hoạt động, gián đoạn dịch vụ. Những kẻ tấn công sau khi có được quyền kiểm soát máy tính sẽ lợi dụng điều đó để gửi các dữ liệu xấu, các yêu cầu đến các thiết bị khác thông qua trang web hoặc địa chỉ email.
3. Phân biệt DoS và DDoS
Sự khác biệt giữa các cuộc tấn công DoS và DDoS là rất đáng kể. Trong một cuộc tấn công DoS, thủ phạm sử dụng một kết nối Internet duy nhất để khai thác lỗ hổng phần mềm hoặc gây ra hiện tượng Flooding (ngập lụt) đối với mục tiêu bằng các yêu cầu giả – thường là nhằm làm cạn kiệt tài nguyên của máy chủ (ví dụ: RAM và CPU).
Mặt khác, các cuộc tấn công DDoS sẽ gây hại đến nhiều thiết bị được kết nối chung với nhau trên cùng một kết nối Internet. Đa người dùng, đa thiết bị thường khó bị chệch hướng hơn, chủ yếu bởi do khối lượng thiết bị liên quan rất lớn. Không giống như DoS chỉ tấn công vào một nguồn, các cuộc tấn công DDoS có xu hướng nhắm mục tiêu vào cơ sở hạ tầng mạng nhằm cố gắng bão hòa nó với lưu lượng truy cập khổng lồ.
Các cuộc tấn công DDoS cũng khác nhau về cách thức thực hiện của chúng. Nói một cách tổng thể, DoS được thực hiện bằng cách sử dụng các tập lệnh homebrewed hoặc công cụ DoS (ví dụ: Low Orbit Ion Canon), trong khi các cuộc tấn công DDoS được khởi động từ botnet – một cụm lớn các thiết bị kết nối (ví dụ: điện thoại di động, PC hoặc bộ định tuyến) bị nhiễm phần mềm độc hại cho phép kẻ tấn công có thể điều khiển được từ xa.
II. Các hình thức tấn công từ chối dịch vụ DDoS phổ biến hiện nay
1. SYN Flood
SYN Flood là một hình thức tấn công DDoS phổ biến, chúng sẽ khai thác một điểm yếu được tìm thấy trong trình kết nối TCP ( Quá trình bắt tay ba bước). Không giống như các kiểu tấn công DDoS khác, SYN Flood không có ý định sử dụng hết bộ nhớ của máy chủ mà chỉ muốn làm cạn kiệt nguồn dự trữ của các kết nối mở được kết nối với một cổng với các địa chỉ IP đơn lẻ, giả mạo.
Một cuộc tấn công SYN Flood, đôi khi được gọi là một cuộc tấn công “nửa mở”, vì kiểu tấn công này có ý định gửi một loạt các thông điệp SYN ngắn vào các cổng, để lại các kết nối không an toàn, giữ chúng luôn mở và khả dụng, điều này thường sẽ dẫn đến sự cố máy chủ hoàn toàn.
SYN Flood xảy ra khi lớp TCP bị bão hòa, những kẻ tấn công sẽ gửi nhiều yêu cầu SYN nhưng không trả lời phản hồi SYN-ACK của máy chủ hoặc sẽ gửi yêu cầu SYN từ địa chỉ IP giả mạo ngăn cản việc hoàn thành quá trình bắt tay ba chiều TCP giữa máy khách và máy chủ trên mọi cổng.
Số lượng lớn các kết nối TCP đang mở dẫn đến tiêu tốn tài nguyên của máy chủ để ngăn chặn về cơ bản lưu lượng truy cập hợp pháp, khiến máy chủ không thể mở các kết nối hợp pháp mới và máy chủ khó hoặc không thể hoạt động chính xác đối với những người dùng được ủy quyền đã được kết nối.
2. UDP Flood
UDP Flood, theo định nghĩa, là cuộc tấn công DDoS gây ra hiện tượng Flooding với mục tiêu là các gói Giao thức dữ liệu người dùng (UDP). Mục tiêu của cuộc tấn công là làm ngập ngẫu nhiên các cổng trên một máy chủ từ xa.
Điều này khiến máy chủ liên tục kiểm tra ứng dụng đang lắng nghe tại cổng đó, và khi không thấy ứng dụng, máy chủ sẽ trả lời bằng gói ICMP Destination Unreachable. Quá trình này làm tiêu hao tài nguyên của máy chủ, cuối cùng có thể dẫn đến không thể truy cập được.
3. HTTP Flood
Trong một cuộc tấn công của HTTP Flood, kẻ tấn công sẽ khai thác các yêu cầu HTTP GET hoặc POST hợp pháp để có thể dễ dàng tấn công máy chủ web hoặc ứng dụng. HTTP Flood không sử dụng các gói tin, kỹ thuật giả mạo hay dùng các phản hồi không đúng định dạng. HTTP Flood yêu cầu ít băng thông hơn các cuộc tấn công khác, cuộc tấn công diễn ra hiệu quả nhất khi nó buộc máy chủ hoặc ứng dụng phân bổ tài nguyên tối đa để có thể đáp ứng mọi yêu cầu đơn lẻ được gửi đến.
4. Ping of Death
Khi Ping of Death (“POD”) xảy ra, kẻ tấn công sẽ gửi nhiều lệnh ping không đúng định dạng hoặc quá lớn đến máy tính gây ra sự mất ổn định, máy tính hoặc dịch vụ được nhắm mục tiêu bị đóng băng, ngưng hoạt động.
Độ dài gói tối đa của gói IP (bao gồm cả tiêu đề) là 65.535 byte. Khi Ping of Death được thực hiện, một gói IP lớn sẽ được chia thành nhiều gói IP và máy chủ người nhận sẽ tập hợp lại các mảnh IP đó thành gói hoàn chỉnh.
Sau khi máy thu thập được tất cả các mảnh IP, người nhận kết thúc với một gói IP lớn hơn 65.535 byte. Điều này có thể làm tràn bộ đệm bộ nhớ được cấp phát cho gói, gây ra từ chối dịch vụ cho các gói hợp pháp.
5. Smurf Attack
Smurf Attack là một loại tấn công DDoS, nó được gọi như vậy bởi có vài nét tương tự như Ping Flood khi mục tiêu tràn ngập các yêu cầu ICMP echo nhưng khác ở chỗ, Smurf Attack do phần mềm độc hại đầu tiên cho phép các cuộc tấn công này xảy ra. Trong khi Ping Flood, không cần phần mềm độc hại để thực hiện cuộc tấn công.
Smurf Attack tận dụng các lỗ hổng tìm cách đánh sập toàn bộ mạng ngoại tuyến với mục tiêu làm cho máy tính ngưng hoạt động. Các lỗ hổng cụ thể được đề cập tồn tại trong IP và ICMP. Phần mềm độc hại của Smurf sẽ tạo thành một gói ICMP độc hại. Gói tin được đính kèm với một địa chỉ IP giả, hay còn được cộng đồng An toàn Thông tin (InfoSec) gọi là “spoofing”.
Các gói giả mạo thực sự nhắm mục tiêu địa chỉ IP tĩnh của máy/ mạng của nạn nhân. Kẻ tấn công sẽ bắt đầu gửi các gói ICMP giả mạo chứa đầy phần mềm độc hại đến mạng phát sóng IP. ICMP giả mạo chứa một yêu cầu ping, một yêu cầu yêu cầu phản hồi từ các nút mạng, sau đó gửi yêu cầu đến tất cả các máy chủ mạng.
Điều giúp cuộc tấn công của Smurf phát triển là số lượng máy chủ trên mạng, càng nhiều máy chủ, thì càng có nhiều phản hồi làm ngập địa chỉ IP mục tiêu. Địa chỉ IP mục tiêu liên tục nhận được các yêu cầu vì các gói ICMP giả được tạo ra. Cuối cùng, các yêu cầu làm quá tải thiết bị mục tiêu và làm cho nó không thể hoạt động vì không có lưu lượng truy cập nào có thể vượt qua ngoài lưu lượng tấn công Smurf.
6. Fraggle Attack
Fraggle Attack là một cuộc tấn công từ chối dịch vụ (DoS) liên quan đến việc gửi một lượng lớn lưu lượng UDP giả mạo đến mạng phát sóng của bộ định tuyến. Fraggle Attack gần giống với Smurf Attack, tuy cùng một mục tiêu nhưng Smurf Attack lại thường sử dụng lưu lượng ICMP giả mạo hơn là dùng lưu lượng UDP. Do đó các bộ định tuyến (kể từ năm 1999) không còn chuyển tiếp các gói được hướng đến địa chỉ phát sóng của chúng, hầu hết các hệ thống mạng hiện tại đã miễn nhiễm với các cuộc tấn công Fraggle (và Smurf).
7. Slowloris
Slowloris là một cuộc tấn công có mục tiêu cao, cho phép một máy chủ web tấn công một cách dễ dàng một máy chủ khác mà không ảnh hưởng đến các dịch vụ hoặc cổng khác trên mạng mục tiêu. Slowloris được thực hiện bằng cách tạo kết nối đến máy chủ mục tiêu, liên tục gửi nhiều HTTP header hơn, nhưng không bao giờ hoàn thành yêu cầu và giữ càng nhiều kết nối đến máy chủ web mục tiêu mở càng lâu càng tốt.
Máy chủ được nhắm mục tiêu sẽ giữ cho mỗi kết nối sai này luôn mở. Điều này cuối cùng làm tràn nhóm kết nối đồng thời dẫn đến việc từ chối các kết nối bổ sung từ các máy khách hợp pháp.
8. NTP Amplification
Trong các cuộc tấn công NTP, thủ phạm sẽ khai thác các máy chủ NTP có thể truy cập công khai để tấn công một cách triệt để máy chủ mục tiêu với lưu lượng UDP. Cuộc tấn công được gọi là một cuộc tấn công khuếch đại vì tỷ lệ truy vấn trên phản hồi trong các tình huống như vậy có thể xảy ra bất cứ lúc nào trong khoảng từ 1:20 đến 1:200 trở lên.
Điều này có nghĩa là bất kỳ kẻ tấn công nào có được danh sách các máy chủ NTP mở (ví dụ: dùng công cụ như Metasploit hoặc dữ liệu từ Open NTP Project) đều có thể dễ dàng tạo ra một cuộc tấn công DDoS cực kì lớn.
9. HTTP GET
HTTP GET là một trong những phương pháp HTTP phổ biến nhất, được sử dụng để yêu cầu dữ liệu từ một máy chủ mục tiêu. Vì các yêu cầu HTTP-GET có các định dạng hợp pháp và được gửi qua các kết nối TCP bình thường, hệ thống phát hiện xâm nhập (IDS) không thể phát hiện ra chúng.
Trong một cuộc tấn công HTTP GET, kẻ tấn công thông qua mạng botnet truy cập vào một số lượng lớn các trang trên website có chứa nội dung tĩnh đặc biệt lớn như hình ảnh, tập tin hoặc một số phương tiện khác. Các tệp này sau đó sẽ được gửi mỗi lần bởi máy chủ của website, điều này sẽ làm xảy ra quá tải theo thời gian. Kết quả là máy tính không thể phản hồi được các yêu cầu hợp pháp và trang web hoặc ứng dụng cũng không thể truy cập được.
10. Advanced persistent Dos (APDos)
APDoS là một số lượng lớn các vectơ tấn công được kết hợp thành một chiến dịch duy nhất và do đó đại diện cho một số xu hướng và thuộc tính an ninh mạng được thấy trên thị trường hiện nay.
Khi một cuộc tấn công APDoS diễn ra, mục tiêu sẽ nhận được hàng chục triệu yêu cầu mỗi giây. Chúng không chỉ nhắm vào “điểm mù” của tổ chức mà còn bao gồm các nhà cung cấp dịch vụ bằng cách tăng số lượng vectơ tấn công được khởi chạy song song nhắm mục tiêu vào các lớp khác nhau của mạng và trung tâm dữ liệu.
Các kiểu tấn công APDoS này ngày càng xuất hiện nhiều.