Chương 1 bao gồm các nội dung chính sau: Tổng quan về tấn công từ chối dịch vụ phân tán DDoS; Các dạng tấn công DDoS phổ biến; Các công cụ tấn công DDoS phổ biến; Những thách thức trong việc phát hiện và phòng chống tấn công DDoS; Tổng quan về các phương pháp phòng chống tấn công DDoS; Nghiên cứu về tiêu chí đánh giá hiệu quả các phương pháp đề xuất; Nghiên cứu khảo sát đánh giá thực nghiệm phương pháp phòng chống tấn công DDoS. Tổng quan về tấn công từ chối dịch vụ phân tán DDoS Tấn công từ chối dịch vụ là dạng tấn công mạng với mục đích làm mất tính khả dụng của một hệ thống thông tin. Tấn công từ chối dịch vụ khi được thực hiện từ nhiều IP nguồn khác nhau thì được gọi là hình thức tấn công từ chối dịch vụ phân tán – DDoS. Về cơ bản, tấn công DDoS có thể được chia ra thành hai lớp phổ biến: Lớp thứ nhất, tin tặc thực hiện tấn công bằng cách gửi các gói tin độc hại (gói tin với các trường thông tin không bình thường) đến đích tấn công thông qua việc khai thác các điểm yếu an toàn thông tin [39] để làm máy chủ phát sinh các lỗi làm treo, tê liệt hoạt động và rơi vào trạng thái từ chối dịch vụ.
Lớp thứ hai là lớp các dạng tấn công DDoS phổ biến, trong đó tin tặc làm gián đoạn các kết nối hợp lệ tới máy chủ bằng cách (1) làm cạn kiệt hạ tầng mạng (network/transport-level flooding attacks) như: băng thông kết nối, tài nguyên xử lý của thiết bị mạng… (2) hoặc cạn kiệt tài nguyên xử lý của máy chủ thông qua các ứng dụng/dịch vụ mà máy chủ cung cấp (application-level flooding attacks) như: bộ nhớ chính, khả năng xử lý của CPU, băng thông kết nối hay các cổng vào ra…). Thông thường, các cuộc tấn công DDoS được tin tặc thực hiện qua môi trường mạng sử dụng các mạng máy tính ma (botnet) [35]. Thông qua mạng botnet, tin tặc gửi tràn ngập liên tục các gói tin hoặc các yêu cầu tới đích tấn công, làm cho hệ thống đó bị lỗi hoặc cạn kiệt tài nguyên và rơi vào trạng thái từ chối dịch vụ. 9 Mạng botnet là mạng của các máy tính bị nhiễm mã độc và được điều khiển bởi những máy chủ điều khiển (C&C Server).
Để có mạng botnet, tin tặc tạo ra các phần mềm độc hại và phát tán chúng qua môi trường mạng bằng các hình thức khác nhau như gửi thư điện tử giả mạo, phát tán qua các phần mềm không chính thống hoặc lừa người dùng truy cập vào các trang thông tin độc hại. Hình dưới đây mô tả các thành phần cơ bản của mạng botnet: Tin tặc Các máy điều khiển Các máy trong mạng botnet Máy nạn nhân Hình 1.1 Thành phần cơ bản của mạng Botnet [89] Do số lượng các lỗ hổng, điểm yếu an toàn thông tin phát hiện ngày càng nhiều cũng như nhận thức của người sử dụng còn rất hạn chế nên việc xây dựng các mạng botnet của tin tặc vẫn gây hâu quả rất lớn, nhiều mạng botnet lớn có quy mô hàng triệu máy tính tạo thành và được tin tặc lợi dụng để thực hiện các cuộc tấn công DDoS quy mô lớn. Theo báo cáo của các hãng bảo mật Abor [106], cuộc tấn công DDoS đã ghi nhận được có băng thông lên tới hơn 662Gbps. 10 Thêm nữa, để vượt qua các phương pháp phòng, chống tấn công DDoS, tin tặc thường sử dụng nhiều biện pháp khác nhau như giả mạo địa chỉ IP nguồn tấn công hoặc giả mạo các yêu cầu gửi đến máy chủ như các yêu cầu thông thường, làm phía hệ thống bị tấn công không thể phân biệt yêu cầu nào yêu cầu được gửi đi từ mạng botnet.
Các dạng tấn công DDoS phổ biến Trong phần này, luận án trình bày cụ thể hơn về các dạng tấn công DDoS liên quan trực tiếp đến hướng nghiên cứu của luận án là lớp các dạng tấn công DDoS làm cạn kiệt tài nguyên của hệ thống bị tấn công ở lớp mạng và lớp ứng dụng. Nội dung trình bày trong phần này, luận án sử dụng các thuật ngữ tiếng anh, những thuật ngữ này đã được sử dụng phổ biến, sử dụng từ ngữ ngắn gọn nhưng thể hiện được bản chất của nội dung cần mô tả. Hai lớp của các dạng tấn công DDoS phổ biến liên quan trực tiếp đến nghiên cứu của Luận án, bao gồm các nội dung sau: 1. Tấn công DDoS ở lớp mạng Các dạng tấn công DDoS xảy ra ở lớp mạng thường sử dụng các gói tin của các giao thức ICMP, TCP, UDP hoặc DNS để làm cạn kiệt tài nguyên xử lý hoặc băng thông của hạ tầng mạng.
Các dạng tấn công này được chia làm 04 loại phổ biến: a) Flooding attacks: Dạng tấn công làm cạn kiệt băng thông của đối tượng cần bảo vệ thông qua cơ chế gửi tràn ngập các gói tin có kích thước lớn như: UDP flood, ICMP flood, TCP flood… [57]. b) Protocol exploitation flooding attacks: Dạng tấn công làm cạn kiệt tài nguyên xử lý của hệ thống thông qua việc khai thác các điểm yếu an toàn thông tin của các giao thức mạng mà hệ thống đó sử dụng như: TCP SYN flood, TCP SYN-ACK flood, ACK & PUSH ACK flood, RST/FIN flood… [86]. c) Reflection-based flooding attacks: Dạng tấn công tin tặc thực hiện bằng cách gửi yêu cầu giả mạo đến một hệ thống trung gian, trong khi giả mạo địa chỉ IP nguồn gửi là địa chỉ của đích bị tấn công. Hệ thống trung gian sẽ gửi yêu cầu phản hồi về hệ thống bị tấn công, thay vì gửi về máy tính của tin tặc.
Hình thức tấn công này cũng lợi dụng điểm yếu an toàn thông tin của các giao thức sử dụng hoặc do lỗi thiết lập cấu hình bảo mật của các hệ thống trung gian, để từ đó cho phép tin tặc gửi một yêu cầu giả mạo có kích thước nhỏ đến hệ thống trung gian. Sau đó, hệ thống trung gian sẽ gửi phản hồi yêu cầu có kích thước và số lượng lớn về hệ thống bị tấn công như Smurf and Fraggle… [86]. d) Amplification-based flooding attacks: Dạng tấn công này được thực hiện tương tự các thực hiện dạng tấn công Reflection-based. Tuy nhiên, với dạng tấn công này, tin tặc sử dụng mạng botnet thay vì khai thác hệ thống trung gian như ở trên.
Khi đó, mạng botnet được sử dụng với hai mục đích: Gửi gói tin phản hồi đến đích bị tấn công và khuếch tán số lượng lớn các gói tin phản hồi thông qua các đặc trưng của gói tin quảng bá (IP broadcast). Tấn công DDoS vào lớp ứng dụng Các dạng tấn công DDoS ở lớp ứng dụng tập trung vào việc làm cạn kiệt tài nguyên xử lý của Server. Các dạng tấn công này thường sử dụng ít băng thông hơn so với các dạng tấn công DDoS xảy ra ở lớp mạng. Tấn công DDoS vào lớp ứng dụng thường xảy ra với ứng dụng Web.
Hình thức tấn công DDoS vào ứng dụng Web được tin tặc thực hiện dưới nhiều hình thức và phương pháp khác nhau, bao gồm 04 dạng cơ bản sau: a) Session flooding attacks: Dạng tấn công này, tin tặc gửi số lượng lớn phiên kết nối tới Server. Tần suất và số lượng gửi cao gấp nhiều lần so với các truy cập của người dùng bình thường, dẫn tới cạn kiệt tài nguyên trên Server, làm máy chủ rơi vào trạng thái từ chối dịch vụ. Hình thức phổ biến của dạng tấn công này là tin tặc gửi tràn ngập các phiên kết nối, mỗi phiên kết nối có tối thiểu một yêu cầu HTTP hợp lệ dưới dạng GET/POST tới máy chủ bị tấn công thông qua mạng botnet [86]. Do đó, nếu mỗi máy tính trong mạng botnet gửi số lượng lớn các yêu cầu HTTP hợp lệ (ví dụ gửi 10 yêu cầu trong 1 giây) đến máy chủ thì số lượng yêu câu gửi đến máy chủ sẽ rất lớn.
b) Request flooding attacks: Dạng tấn công này, tin tặc gửi số lượng lớn các yêu cầu trong một phiên kết nối tới Server. Dạng tấn công này dựa trên đặc trưng của giao thức HTTP cho phép gửi nhiều yêu cầu trong một phiên kết nối. Từ đó, tin tặc có thể gửi số lượng nhỏ các phiên kết nối tới máy chủ nhưng chứa số lượng lớn các yêu cầu. Hình thức tấn công này cho phép vượt qua khả năng kiểm soát của các thiết bị bảo mật về số lượng kết nối tới Server.
c) Asymmetric attacks: Dạng tấn công này, tin tặc gửi phiên kết nối trong đó có các yêu cầu làm máy chủ tiêu tốn nhiều tài nguyên để xử lý (high-workload requests). Dạng tấn công này có hai hình thức phổ biến như sau: - Multiple HTTP GET/POST flood: Hình thức tấn công này, tin tặc gửi số lượng lớn các lệnh thực thi (HTTP VERB) trong một yêu cầu được đóng gói trong một gói tin tới máy chủ trong một phiên kết nối. Với hình thức này, tin tặc có thể duy trì khối lượng yêu cầu cần xử lý lớn trên máy chủ với tốc độ gửi gói tin thấp. Do đó, hình thức tấn công này có thể vượt qua các công nghệ phát hiện tấn công dựa vào phát hiện dị thường (Anomaly Detection) và các công nghệ phát hiện xâm nhập dựa trên phân tích gói tin.
- Faulty Application: Hình thức tấn công này, tin tặc lợi dụng việc thiết kế hoặc thiết lập lỗi cấu hình bảo mật giữa ứng dụng Web và cơ sở dữ liệu. Từ đó, tin tặc có thể gửi số lượng lớn các yêu cầu như SQL-like injections để yêu cầu máy chủ liên tục thực hiện câu truy vấn dữ liệu để tiêu tốn tài nguyên của Server. d) Slow request/response attacks: Tương tự dạng tấn công Asymmetric attacks, tin tặc gửi phiên kết nối trong đó có các yêu cầu làm máy chủ tiêu tốn nhiều tài nguyên để xử lý. Tuy nhiên về hình thức thực hiện lại khác nhau và có 04 hình thức như sau: - Slowloris attack [88]: Hình thức tấn công này, tin tặc gửi yêu cầu dạng GET nhưng không hoàn thiện tới Server.
Việc này làm máy chủ phải đợi phần còn lại của yêu cầu để xử lý mà không thể hủy bỏ yêu cầu. Số lượng các yêu cầu không hợp lệ này liên tục gửi đến máy chủ 12 và máy chủ phải dành tài nguyên để xử lý mỗi yêu cầu không hoàn thiện dẫn tới cạn kiệt tài nguyên. - HTTP fragmentation attack: Tương tự hình thức tấn công Slowloris, mục đích của hình thức tấn công này là giữ số lượng lớn các kết nối với máy chủ để làm cạn kiệt tài nguyên Server. Nhưng hình thức thực hiện thì khác nhau.
Hình thức này, một yêu cầu gửi tới máy chủ được tin tặc phân chia ra thành các gói tin nhỏ, phân mảnh.