Một cuộc tấn công DoS được hiểu là một nỗ lực ngăn những người sử dụng dịch vụ hợp pháp hay DoS cố gắng gây từ chối sự sẵn sàng của dịch vụ đến người dùng hợp pháp. Một cuộc tấn công DoS vào một ứng dụng dịch vụ Internet có thể thực hiện được bằng cách chiếm những tài nguyên quan trọng (băng thông mạng, bộ nhớ máy chủ, không gian ổ đĩa, thời gian xử lý của CPU) phục vụ ứng dụng hoặc phục vụ truy cập đến ứng dụng đó để chặn ứng dụng hoạt động hoặc ngắt kết nối ứng dụng với Internet, làm cho ứng dụng không sẵn sàng với người dùng. Một cuộc tấn công DoS thường xảy ra tại mức cơ sở hạ tầng bởi các tấn công đến những nguồn tài nguyên trực tiếp (ví dụ, làm tràn các mạng con của ứng dụng với những gói tin IP), hoặc xảy ra ở tại mức ứng dụng bởi các cuộc tấn công qua giao diện ứng dụng (làm quá tải ứng dụng chẳng hạn).
Trong một cuộc tấn công DoS, đầu tiên kẻ tấn công gây tổn hại, chiếm quyền điều khiển một số trong hàng trăm triệu máy chủ dễ bị tổn thương trên thế giới qua Internet, sau đó điều khiển những máy chủ bị chiếm tấn công ứng dụng bằng cách gửi lưu lượng
tấn công đến các ứng dụng theo mức cơ sở hạ tầng hoặc mức ứng dụng.Trong trường
hợp của các cuộc tấn công DoS phân tán (DDoS) thì máy chủ gửi gói tin điều khiển tới các máy bị nhiễm trước đó, hướng dẫn chúng tấn công một mục tiêu cụ thể (máy nạn nhân). Những máy nhiễm tạo ra và sử dụng địa chỉ nguồn giả mạo hoặc ngẫu
nhiên gửi lượng lớn thông báo tới máy nạn nhân, để nạn nhân không thể xác định
được kẻ tấn công. Các bước cơ bản trong việc chuẩn bị và tiến hành một cuộc tấn
công DDos như trình bày sau đây.
-Lựa chọn máy tính trung gian: Kẻ tấn công chọn các máy tính trung gian để thực hiện tấn công. Đó là những máy tính có một số lỗ hổng (để kẻ tấn công có thể sử dụng để truy cập tới) và có nguồn tài nguyên phong phú (cho phép tạo những luồng tấn công mạnh). Quá trình này hiện nay được thực hiện tự động, sử dụng các công cụ quét.
- Quá trình làm tổn thương: Kẻ tấn công khai thác các lỗ hổng bảo mật, các lỗ hổng của các máy tính trung gian và cài đặt mã tấn công vào đó với những nỗ lực bảo vệ đoạn mã khỏi bị phát hiện và vô hiệu hóa. Các công cụ tự lây nhiễm như sâu
Ramen và Code Red tự động làm công đoạn này. Chủ sở hữu, người dùng các máy
tính trung gian không nhận thức được hệ thống của họ đã bị xâm nhập và sẽ tham gia vào trong một tấn công DDos. Khi tham gia vào một cuộc tấn công DDos, mỗi chương trình tại máy trung gian chỉ sử dụng lượng nhỏ tài nguyên (bộ nhớ và băng thông), để những người dùng thấy thay đổi tối thiểu trong hoạt động.
- Sự liên lạc, kết nối: Kẻ tấn công liên lạc với một vài kẻ điều khiển bất kỳ nào đóđể xác định trung gian đang chạy nhằm lập lịch tấn công, hoặc lên kế hoạch nâng cấp cho các kẻ trung gian này. Tùy vào việc cấu trúc mạng lưới tấn công DDos, các kẻ trung gian có thể được hướng dẫn liên lạc với một hoặc nhiều kẻ điều khiển. Việc liên lạc giữa kẻ tấn công điều khiển và trung gian có thể thực hiện qua TCP, UDP hoặc giao thức ICMP.
- Tấn công: Trong bước này, kẻ tấn công ra lệnh bắt đầu một cuộc tấn công. Có thể điều chỉnh các nạn nhân, thời gian tấn công, cũng như các đặc điểm riêng của mỗi một cuộc tấn công (loại, chiều dài, TTL, số thứ tự cổng mạng ... ). Sựđiều chỉnh, thay đổi lớn trong các thuộc tính của các gói tin tấn công tạo điều kiện thuận lợi đối với kẻ tấn công, xét từ góc độ tránh bị phát hiện. Giả mạo IP thường được sử dụng nhiều nhất để che dấu địa chỉ nguồn, loại gói tin, các trường header (trừ địa chỉ IP đích). Cũng có thể thay đổi kênh liên lạc trong suốt cuộc tấn công.
a.) Các cuộc tấn công DoS
Tấn công DoS lên một ứng dụng Internet có thể thực hiện trực tiếp nguồn tài nguyên ở mức cơ sở hạ tầng (gửi ồ ạt lưu lượng mạng để bão hòa mạng nạn nhân) hoặc qua giao diện của ứng dụng ở mức ứng dụng (làm quá tải ứng dụng đó để cho ứng dụng không sẵn sàng đối với những người dùng hợp pháp). Tấn công ở mức cơ sở hạ tầng lấy tài nguyên hạ tầng dịch vụ trực tiếp (ứng dụng của các mạng lưới,
máy chủ) làm mục tiêu, trong khi tấn công mức ứng dụng lại khai thác chủ yếu ở những điểm yếu của ứng dụng thông qua giao diện của ứng dụng.
Có thể sử dụng số lượng máy chủ thay đổi (từ một máy lẻ đến nhiều máy phân tán trên khắp Internet) để tạo thành một cuộc tấn công DoS. Để tổng quát hóa, tấn công DoS sử dụng nhiều máy chủ được trình bày thông qua việc mô tả các cuộc tấn công DoS phân tán (DDoS) sử dụng số lượng lớn các máy chủ.
Hình 4-1 mô tả cấu trúc tạo kẻ tấn công DoS và một cuộc tấn công DDoS điển hình gồm hai bước. Đầu tiên, một mạng lưới Zombie được xây dựng bằng cách gây tổn thương các máy chủ Internet và cài đặt chương trình Zombie lên mỗi máy chủ. Sau đó, những kẻ tấn công kích hoạt mạng lưới Zombie, chỉ đường tấn công nạn nhân nào đó. Để tạo ra số lượng lớn Zombie phục vụ tấn công DDoS, Zombie có cấu trúc thứ bậc, gồm các Daemon (tạo ra lưu lượng tấn công) và Master (kích hoạt, điều khiển các Daemon).
Hình 4-1. Mạng Zombie DDoS điển hình
Những bộ công cụ DDoS được biết đến như Trinoo, TFN2k và Mstream [42]
tự động truy nhập, gây tổn thương tại những điểm yếu của các máy chủ Internet, cho phép những kẻ tấn công điều khiển số lượng lớn máy chủ, tạo đủ lưu lượng để làm bão hòa các liên kết mạng lưới lớn (có thể tạo ra lưu lượng tấn công hàng Gigabit trong mỗi giây). Do đó, những kẻ tấn công có thể làm mất kết nối toàn bộ các mạng con của ứng dụng từ Internet, khiến tất cả chương trình phòng thủ cục bộ
Kẻ tấn công
Máy chủ trung gian Máy chủ trung gian
Daemon Daemon Daemon Daemon
không còn hiệu quả. Hơn nữa, các máy chủ phân tán trên khắp Internet nên rất khó ngăn chặn được lưu lượng tấn công bằng cách khóa tất cả các nguồn tài nguyên.
b.) Phòng thủ DoS dựa trên mạng Proxy
Bảo vệ ứng dụng dịch vụ Internet trước các cuộc tấn công DoS đang là một câu hỏi còn để mở cho các đề tài nghiên cứu. Các cơ chế phòng thủ hiện tại đang cố gắng chặn tấn công DoS bằng cách lọc lưu lượng tấn công (đưa lọc bổ sung trong bộ định tuyến; kiểm tra tất cả các gói dữ liệu đến trên cơ sở đặc tính hóa lưu lượng, loại bỏ những gói tin bị nghi ngờ) tại mức định tuyến [26], [27], [45], [87, 88, 89].
Tuy nhiên, khó xác định, phân biệt chính xác một cuộc tấn công nào đó với những gói tin bình thường khi tấn công ngày càng tinh vi. Điều đó đòi hỏi hệ thống phòng thủ dựa trên các bộ lọc phải được điển hình hóa chi tiết theo mỗi cuộc tấn công DoS.
Gần đây, sử dụng mạng Proxy làm hệ thống phòng thủ được đề xuất ở mức hệ thống để bảo vệ ứng dụng dịch vụ Internet trước các cuộc tấn công DoS (mạng Proxy trung gian giữa ứng dụng và người sử dụng) [13, 14, 15], [59], [91]. Hệ thống sử dụng mạng Proxy trung gian có khả năng phòng thủ, bảo vệ trước các cuộc tấn công DoS mà không đòi hỏi thay đổi trong cơ sở hạ tầng Internet, nên rất thuận lợi cho việc sử dụng ở quy mô lớn trong thực tế.
Phòng thủ DoS sử dụng mạng Proxy thực hiện được hai ý tưởng. Thứ nhất, Proxy cách ly giữa tấn công và ứng dụng, ngăn chặn trực tiếp những cuộc tấn công DoS mức cơ sở hạ tầng lên ứng dụng. Thứ hai, dùng số lượng lớn Proxy biên ngoài để phân tán lưu lượng, làm giảm ảnh hưởng của tấn công. Phòng thủ DoS dựa trên mạng Proxy cho thấy được khả năng, sự hứa hẹn vì những lý do sau đây:
- Đầu tiên, khi một ứng dụng đã được bảo vệ bởi một loạt các Proxy vô hướng, chỉ khi tất cả đều phải bị những kẻ tấn công làm tổn thương thì mới để lộ ra ứng dụng để bị tấn công trực tiếp (có thể điều chỉnh số lượng các Proxy vô hướng bằng cách cấu hình mạng Proxy để cung cấp một cấu trúc linh hoạt, chống lại sự thâm nhập của những kẻ tấn công và bảo vệứng dụng trước những cuộc tấn công trực tiếp).
- Thứ hai, có thể phân tán rộng rãi các Proxy ở rìa để khó bị những kẻ tấn công làm tràn gây gián đoạn dịch vụ. Điều này cho phép các mạng Proxy có thể chịu được những cuộc tấn công DoS bằng lưu lượng tấn công phân tán (dùng các truy cập ứng dụng trung gian để ngăn chặn những cuộc tấn công trực tiếp và cung cấp hệ Front-end DoS mềm dẻo cho ứng dụng để làm loãng tác động của các cuộc tấn công). Đây là một mạng Proxy có tiềm năng để bảo vệứng dụng từ những cuộc tấn công DoS.
- Bên cạnh tiềm năng bảo vệ tính sẵn sàng của ứng dụng, còn thấy được sự hứa hẹn của hệ thống phòng thủ DoS dựa trên mạng Proxy trong việc phát triển với quy mô rộng lớn. Sở dĩ như vậy là vì, kể từ khi các mạng Proxy (là các mạng phủ mức ứng dụng) được xây dựng trên đỉnh của Internet, chúng không đòi hỏi bất kỳ thay đổi nào đối với cơ sở hạ tầng Internet hiện có (điều kiện thuận lợi để phát triển mạng Proxy quy mô lớn). Một số mạng Proxy quy mô lớn thành công (Content Delivery Networks với mạng Proxy Akamai có tới hơn 15,000 Proxy phát triển trong hơn 1,200 mạng trên 65 quốc gia), chứng minh tính thực tế khả thi của việc phát triển những mạng Proxy quy mô lớn.
Tóm lại, phòng thủ DoS trên cơ sở sử dụng mạng Proxy là một chương trình hấp dẫn đối với việc bảo vệứng dụng dịch vụ Internet trước các cuộc tấn công DoS (không giới hạn các cơ chế phòng thủ DoS hiện hành). Bằng cách sử dụng truy cập ứng dụng trung gian để tránh đối diện trực tiếp với những cuộc tấn công DoS và cung cấp một hệ Front-end phân tán để bảo vệ những ứng dụng từ các cuộc tấn công DoS. Nên, một hệ thống phòng thủ DoS dựa trên mạng Proxy có những hứa hẹn trong việc bảo vệ tính sẵn sàng của ứng dụng trước các cuộc tấn công DoS và tỏ rõ tính khả thi khi triển khai ở quy mô lớn, cung cấp một hệ thống phòng thủ DoS toàn cầu cho các ứng dụng dịch vụ Internet trong thực tế.