CHƯƠNG 3. PHÁT HIỆN VÀ PHÒNG CHỐNG TẤN CÔNG WEB APP-DDOS
3.2. Tổng quan về tấn công Web App-DDoS
3.2.1.1. Máy chủ Web
Máy chủ Web là máy chủ được sử dụng để triển khai ứng dụng Web và cơ sở dữ liệu cùng với những thông tin liên quan khác (các mã Script, các chương trình, và các file Multimedia).
Cấu trúc cơ bản của ứng dụng Web được chia thành 3 lớp như sau:
Lớp trình diễn (Web Server): Có chức năng tiếp nhận các yêu cầu trực tiếp từ phía Client. Kết hợp với các thành phần khác để xử lý yêu cầu của Client và phản hồi yêu cầu cho Client. Máy chủ có thể triển khai dưới nhiều nền tảng công nghệ khác nhau như: IIS Server, Aphache HTTP Server, Apache Tomcat Server…
Lớp ứng dụng (Web Application): Có chức năng thực thi các mã lệnh được thiết lập dưới một ứng dụng cụ thể để xử lý các yêu cầu từ phía Client. Web Application có thể triển khai dưới nhiều nền tảng công nghệ khác nhau như: AIS, JSSP, PHP, JAVA, Perl, Python…
Lớp cơ sở dữ liệu (Database Server): Có chức năng lưu trữ, quản lý và xử lý dữ liệu thông qua các câu truy vấn có cấu trúc từ Web Application. Database máy chủ có thể triển khai dưới nhiều nền tảng công nghệ khác nhau như: Oracle, SQL Server, MySQL…
3.2.1.2. Nguyên lý hoạt động
Để truy cập ứng dụng Web, từ phía Client sử dụng thông qua các trình duyệt (Internet Explorer, Mozilla Firefox, Google Chrome…) người sử dụng gửi các yêu cầu tới máy chủ thông qua các bước hoạt động như sau:
Bước 1: Client truy vấn thông tin về địa chỉ IP của máy chủ ứng với tên miền tương ứng của máy chủ từ máy chủ tên miền (DNS Server). Sau đó, trình duyệt sẽ gửi tiếp một kết nối tới máy chủ có địa chỉ IP và cổng dịch vụ mà ứng dụng web cung cấp (thông thường là cổng 80). Dựa trên giao thức HTTP, trình duyệt gửi yêu cầu đến máy chủ để xử lý các yêu cầu ở phía Client.
Bước 2: Sau khi máy chủ nhận được yêu cầu từ phía Client, máy chủ sẽ xử lý yêu cầu thông qua Web Application.
Bước 3: Sau khi xử lý xong yêu cầu, máy chủ đóng gói dữ liệu chứa thông tin được yêu cầu từ phía Client theo cấu trúc của giao thức HTML và gửi về máy Client.
Bước 4: Sau khi nhận được phản hồi từ máy chủ, Client bóc tách thông tin và hiển thị thông tin phản hồi qua trình duyệt.
3.2.1.3. Giao thức HTTP
Giao thức HTTP – HyberText Transfer Protocol là giao thức quy định cách trao đổi thông tin giữa giữa Client và máy chủ để truyền nhận siêu văn bản - Hybertext. Siêu văn bản được định nghĩa là văn bản có cấu trúc và liên kết được quy định bởi giao thức này, bao gồm: (1) Cấu trúc của request và response; (2) Ngữ nghĩa của các request method, response code và quy định về cơ chế xử lý các điều kiện xảy ra trong quá trình giao tiếp (3); Cơ chế authentication; (4) Quy định về caching.
a) Request Method
Request Method là phương thức trao đổi và xử lý thông tin giữa Client và Server. Về cơ bản, giao thức HTTP có 09 phương thức yêu cầu (Request Method), trong đó, GET và POST là hai loại thông dụng được sử dụng phổ biến. Bao gồm các phương thức cụ thể như sau:
GET: được sử dụng để lấy thông tin từ Sever theo URI được gửi từ phía Client.
HEAD: giống với GET nhưng phần nội dung trả về phía Client không có phần nội dung - body, mà chỉ có phần Header.
POST: Gửi thông tin tới Sever thông qua các biểu mẫu HTTP.
PUT: ghi đè tất cả thông tin của đối tượng với những gì được gửi lên.
PATCH: Ghi đè các thông tin được thay đổi của đối tượng.
DELETE: Xóa tài nguyên trên server.
CONNECT: Thiết lập một kết nối tới máy chủ theo URI.
OPTIONS: Mô tả các tùy chọn giao tiếp cho resource.
TRACE: Thực hiện một bài test loop - back theo đường dẫn đến resource.
b) HTTP Headers
HTTP header là phần mào đầu của mỗi yêu cầu được gửi đi từ phía Client tới Server, cũng như phần mào đầu của nội dung phản hồi từ phía máy chủ Server gửi về cho Client. HTTP header bao gồm các thông tin cơ bản HTTP request header và HTTP response header.
c) Status-Code
Status-Code mà thông tin mã hóa trạng thái của Client và máy chủ trong quá trình trao đổi thông tin sử dụng trong giao thức HTTP, bao gồm các nhóm trạng thái sau:
Nhóm trạng thái Thông tin có dạng 1xx (Information)
Nhóm trạng thái Thành công 2xx (Success)
Nhóm trạng thái chỉ thông tin chuyển hướng: 3xx (Redirection)
Nhóm thông tin trạng thái các lỗi phía Client 4xx (Client Error)
Nhóm thông tin trạng thái các lỗi phía máy chủ 5xx (Server Error)
3.2.2. Đặc trưng và thách thức trong phòng chống tấn công Web App-DDoS Tấn công Web App-DDoS là một dạng tấn công DDoS vào lớp ứng dụng của mô hình OSI.
Trong chương 1, luận án đã trình bày tổng quan về các hình thức tấn công DDoS lớp ứng dụng và những khó khăn, thách thức trong việc phòng chống dạng tấn công này.
Trong phần này, luận án tóm tắt lại một số đặc trưng của hình thức tấn công Web App-DDoS và những khó khăn, thách thức trong việc phòng chống dạng tấn công này. Nội dung nghiên cứu này là cơ sở để đề xuất phương pháp phát hiện và phòng chống tấn công Web App- DDoS được đề xuất.
3.1.2.1. Một số đặc trưng của tấn công Web App-DDoS
Tấn công Web App-DDoS là một dạng tấn công vào lớp ứng dụng. Một trong những hình thức tấn công Web App-DDoS phổ biến, được thực hiện thông qua việc tin tặc sử dụng mạng botnet để gửi tràn ngập các yêu cầu HTTP tới máy chủ. Khác với dạng tấn công TCP Syn Flood được đề cập trong chương 2, là dạng tấn công này không thể giả mạo địa chỉ IP nguồn.
Bởi vì, để máy tin tặc có thể gửi yêu cầu tới máy chủ thì kết nối mạng phải được thiết lập (phải hoàn thiện quá trình bắt tay 3 bước của giao thức TCP) sử dụng IP thực. Do đó, để thực hiện tấn công Web App-DDoS, tin tặc phải sử dụng mạng botnet lớn có nhiều thành viên.
Dạng tấn công Web App-DDoS là dạng tấn công làm cạn kiệt tài nguyên trên máy chủ mà không phải dạng tấn công DDoS làm cạn kiệt năng lực xử lý của hạ tầng mạng. Để thực hiện tấn công, tin tặc gửi tràn ngập các yêu cầu tới Server. Các yêu cầu này là yêu cầu có thực giống hoàn toàn với các yêu cầu bình thường được gửi đi từ máy người sử dụng bình thường.
Lý do tin tặc sử dụng yêu cầu bình thường là để vượt qua sự kiểm soát của các thiết bị bảo vệ.
Tài nguyên băng thông sử dụng trong tấn công Web App-DDoS không yêu cầu lớn như đối với các hình thức tấn công DDoS vào hạ tầng mạng. Đối với các hình thức tấn công DDoS vào hạ tầng mạng, tin tặc thường gửi số lượng lớn các gói tin UDP có kích thước lớn để làm cạn kiệt băng thông kết nối mạng (hình thức tấn công DDoS Volumetric). Đối với dạng tấn công Web App-DDoS, tin tặc có thể sử dụng cách thức gửi các yêu cầu có kích thước nhỏ nhưng liên tục, đều đặn với tốc độ chậm, làm máy chủ phải giữ và phục vụ mỗi yêu cầu gửi đến mà không được kết thúc phiên làm việc đó khiến cho máy chủ cạn kiệt tài nguyên. Hình thức tấn công này không yêu cầu băng thông lớn như hình thức tấn công DDoS Volumetric.
3.2.2.2. Vấn đề khó khăn trong phòng, chống tấn công Web App-DDoS
Tấn công Web App-DDoS có thể thực hiện bằng nhiều hình thức tinh vi khác nhau để vượt qua các hệ thống phòng thủ như:
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;
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;
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ý;
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ý.
Khi tin tặc sử dụng các yêu cầu có thực để thực hiện tấn công Web App-DDoS, từ phía máy chủ rất khó để phân biệt yêu cầu nào là yêu cầu được gửi đi từ máy bình thường. Đặc biệt, khi tấn công DDoS xảy ra, số lượng yêu cầu gửi đến máy chủ là rất lớn, làm máy chủ càng khó khăn hơn trong việc phát hiện các yêu cầu gửi đi từ mạng botnet.
Ứng dụng Web là ứng dụng có đặc trưng là dữ liệu cho mỗi ứng dụng Web thay đổi thường xuyên. Tần suất truy nhập ứng dụng Web phụ thuộc vào nội dung mà ứng dụng đó cung cấp.
Khi có nội dung mới, được sự quan tâm của nhiều người sử dụng, tần suất truy cập ứng dụng Web tăng đột biến, giống như bị tấn công. Đây cũng là vấn đề cần giải quyết để có thể phân biệt trường hợp này với một cuộc tấn công thực sự.
Những điểm yếu an toàn thông tin các hệ điều hành, ứng dụng và các thiết bị IoT xuất hiện ngày càng nhiều, điều này dẫn tới việc lợi dụng các điểm yếu này để khai thác chiếm quyền điều khiển và phát tán mã độc trở nên dễ dàng hơn cho tin tặc. Từ đó, tin tặc có thể xây dựng mạng botnet lớn và có thể thực hiện nhiều hình thức tấn công DDoS tinh vi khác nhau.