Nội dung chính
Tấn công từ chối dịch vụ (Distributed denial of service – DDoS) đã và đang trở nên phổ biến và lan rộng trên mạng Internet. Khi DDoS nhắm tới các web server thông qua mạng botnet, kẻ tấn công thường huy động một số lượng lớn các máy tính bị nhiễm mã độc, PC-Bot gửi các yêu cầu tới máy chủ ứng dụng web làm cho tài nguyên (CPU, băng thông, bộ nhớ…) bị cạn kiệt dẫn tới dịch vụ web bị ngừng hoạt động. Để giảm thiểu thiệt hại và ngăn chặn hình thức tấn công này, cần xây dựng một ứng dụng có thể hỗ trợ giám sát một số đặc điểm bất thường trên lưu lượng mạng và phân biệt được người sử dụng hay bot đang truy cập vào web server, làm tiền đề để ngăn chặn kịp thời các cuộc tấn công DDoS, không gây tắc nghẽn băng thông hoặc cạn kiệt tài nguyên, tạo điều kiện để người sử dụng bình thường có thể truy cập website.
CƠ SỞ LÝ THUYẾT VÀ HƯỚNG TIẾP CẬN
Với một web server thông thường, người dùng có thể sử dụng máy PC, thiết bị di động, laptop… để truy cập. Sự đa dạng trong cấu trúc của thiết bị và các trình duyệt cho phép các bot dễ dàng giả dạng client để tấn công các web server.
.jpg)
Hình 1. Mô hình Sentinel
Trong Hình 1, Sentinel hoạt động dưới dạng web application proxy. Mọi request từ phía client gửi tới đều phải đi qua Sentinel. Do đó, trong Sentinel có được cài đặt các cơ chế để có thể xác thực được người dùng như HTTP challenge, JavaScript challenge, Captcha challenge nhằm xác nhận người dùng và đồng thời loại bỏ các kết nối từ PC-Bot gửi tới web server.
Kế thừa ưu điểm của mô hình sử dụng Sentinel trong việc hạn chế tấn công DDoS có sử dụng mạng botnet đến web server, hệ thống sẽ được xây dụng theo mô hình Web Application Proxy.
Hệ thống sẽ tập trung vào 04 nội dung thực hiện chính, cụ thể là:
– Giám sát lưu lượng mạng;
– Giám sát tài nguyên hệ thống;
– Nhận diện, phân biệt người dùng và bot;
– Ứng phó của hệ thống đến máy chủ dịch vụ web khi phát hiện tấn công DDoS.
Cơ chế xoay IP của hệ thống kết hợp với DNS Server là một phương pháp được sử dụng để ứng phó với tấn công DDoS. Cơ chế này nhằm mục đích thay đổi địa chỉ IP của máy chủ web khi phát hiện tấn công để giảm tác động của tấn công lên hệ thống. Cơ chế xoay IP kết hợp với DNS Server cho phép máy chủ thay đổi địa chỉ IP và tiếp tục hoạt động sau khi phát hiện tấn công DDoS. Điều này giúp giảm tác động của tấn công lên máy chủ và duy trì sự liên tục của dịch vụ web. Quá trình này đòi hỏi cấu hình và quản lý DNS Server để đảm bảo rằng các thay đổi được cập nhật và lan truyền đúng cách trên hệ thống DNS.
Ngoài ra, phần mềm cũng cung cấp cho đội ngũ quản trị hệ thống về các chức năng quản trị, giám sát, tổng hợp, báo cáo… thông qua giao diện web; tạo điều kiện thuận lợi cho người dùng trong quá trình vận hành, khai thác.
NGUYÊN LÝ NHẬN DIỆN, PHÂN BIỆT NGƯỜI DÙNG VÀ BOT
Anti-DDoS Server được đặt trên lớp mạng với web server mục tiêu và được cấu hình DNS, địa chỉ IP sao cho tất cả HTTP request từ phía PC-Bots và người dùng sẽ được gửi tới server này thay vì được gửi tới web server mục tiêu. Trên Anti-DDoS Server sẽ được cài đặt các module để yêu cầu xác thực (challenge) các HTTP request như: HTTP challenge, JavaScript challenge và Captcha challenge.
Nếu các client (bao gồm PC-Bot và người dùng) vượt qua (PASS) được các challenge trên thì HTTP request sẽ được chuyển tới web server mục tiêu, và trong trường hợp ngược lại thì các HTTP request này sẽ được loại bỏ nhằm giảm bớt việc cung ứng tài nguyên.
HTTP Challenge
Đối với giao thức HTTP được quy định tại RFC 2616 thì code 3xx được sử dụng trong việc chuyển hướng truy cập. Khi HTTP request được client gửi tới máy chủ. Anti DDoS sẽ gửi trả về cho client HTTP return code 302.
Nếu client là trình duyệt, khi nhận được HTTP return code 302 sẽ chuyển hướng truy cập đến một URL do Anti-DDoS chỉ định và khi truy cập vào URL này, Anti-DDoS sẽ gửi tiếp cho client một đoạn JavaScript để tạo cookies và mã xác thực hợp lệ.
Ngược lại, nếu client không phải là trình duyệt, http return code 302 sẽ không được xử lý đúng quy trình. Đối với các PC-Bot, các HTTP request được gửi trực tiếp đến web server mà không cần thông qua trình duyệt, các hành vi này được lập trình sẵn và sẽ không đủ thông minh để xử lý các HTTP return code 302 hoặc không tạo ra được các cookies hợp lệ để truy cập vào tài nguyên.
JavaScript Challenge
Trong tình huống bị tấn công DDoS có dấu hiệu tham gia của các mạng botnet thì tính năng HTTP challenge được sử dụng đầu tiên nhằm hạn chế và phân loại các yêu cầu xuất phát từ các bot. Trong một số trường hợp, các C&C servers giải mã được cookies được tạo ra cho HTTP challenge thì Anti-DDoS sẽ bật chế độ Java challenge.
Trong chế độ Java challenge khi request được gửi tới Anti-DDoS và được trả về 1 đoạn mã JavaScript (khác với JavaScript trong HTTP challenge) đã được xáo trộn để tăng độ phức tạp. Trong đó đoạn mã này có chứa 1 khóa mã hóa. Nếu client là trình duyệt có bật chức năng thực thi JavaScript thì nó sẽ thực thi đoạn mã JavaScript này để tạo cookies và mã xác thực hợp lệ. Sau đó, trình duyệt sẽ dùng thông tin này để gửi lại Anti-DDoS. Trong trường hợp ngược lại, bot sẽ không xử lý challenge này và không thể tạo cookies hợp lệ.
Captcha challenge
Khi HTTP request được gửi tới Anti-DDoS thì hệ thống Anti-DDoS trả về 1 trang web có chứa form Captcha và câu trả lời. Hai thông tin này kết hợp với secret key (một đoạn mã được cấu hình sẵn trong Anti-DDoS) để tạo thành mã kiểm tra.
Khi client nhập câu trả lời và đưa ra kết quả, hệ thống Anti-DDoS dùng kết quả này kết hợp với khóa mật để tạo ra mã trả lời. Nếu mã trả lời và mã kiểm tra giống nhau, Anti-DDoS sẽ trả về cho client 1 trang web có chứa JavaScript và yêu cầu client tạo cookies và mã xác thực hợp lệ cho người dùng.
Trong các phương thức chống DDoS thì đây được xem là biện pháp tương đối hữu hiệu để ngăn chặn tấn công từ các botnet. Tuy nhiên, việc bật chế độ Captcha sẽ làm ảnh hưởng đến người sử dụng hợp pháp thì hình thành thao tác xác thực mỗi khi kết nối đến web server.
Phương án sử dụng Captcha được sử dụng là biện pháp cuối cùng, khi tất cả các challenges khác đều không có hiệu quả hoặc năng lực của Proxy Server là Anti-DDoS không đủ để xử lý các request từ mạng botnet quá lớn.
.jpg)
Hình 2. Luồng xử lý của cơ chế xác thực người dùng và bot
TRIỂN KHAI, THỬ NGHIỆM HỆ THỐNG PHÁT HIỆN, PHÒNG CHỐNG TẤN CÔNG DDOS ỨNG DỤNG KỸ THUẬT XOAY IP VÀ CAPTCHA
Các thông số kỹ thuật
– Hệ điều hành: Ubuntu 22.04;
– Nền tảng proxy: Nginx;
– Ngôn ngữ lập trình: Perl, PHP, Python, Bash scripting.
Mô hình triển khai

Hình 3. Mô hình triển khai hệ thống
Chức năng giám sát
Dựa trên cấu hình giao diện mạng giám sát của hệ thống, tiến hành giám sát lưu lượng truy cập thông qua giao diện giám sát của hệ thống nhằm kịp thời phát hiện các lưu lượng tăng đột biến bất thường trên hệ thống (Hình 4).

Hình 4. Giao diện chức năng giám sát
Chức năng kiểm tra, phân biệt người dùng và PC Bot
Giao diện quản trị của hệ thống cho phép người quản trị cấu hình chế độ phân biệt người dùng và bot, các tham số cho HTTP challenge, Javascript challenge và Captcha challenge.
Chức năng phát hiện và phòng chống tấn công DDoS
Để đảm bảo cho chức năng hoạt động, người quản trị hệ thống đầu tiên cần thực hiện thiết lập danh sách các địa chỉ IP được sử dụng để xoay IP của máy chủ web.
– IP đang hoạt động: là địa chỉ IP hiện tại.
– Trạng thái sử dụng: trạng thái sử dụng của IP được lưu.
– Trạng thái sẵn sàng: hiển thị trạng thái sẵn sàng của IP nhằm tránh trường hợp IP bị chiếm bởi dịch vụ khác.
Khi phát hiện bản ghi cảnh báo tấn công DDoS được ghi mới vào tệp tin fast.log, máy chủ web sẽ tự động chọn ngẫu nhiên 1 IP trong danh sách các IP chưa được sử dụng và đang ở trạng sẵn sàng để chuyển sang địa chỉ IP mới.
Để không làm gián đoạn kết nối của người dùng đến trang web, máy chủ web sẽ tự động ra bản ghi cập nhật địa chỉ IP mới cho tên miền của máy chủ web đến máy chủ DNS của đơn vị bằng thư viện nsupdate. Sau khi đổi địa chỉ IP, các luồng tấn công DDoS đều sẽ bị ngắt kết nối do vẫn còn đang truy vấn đến địa chỉ IP cũ.

Hình 5. Trước khi bị tấn công

Hình 6. Sau khi bị tấn công
KẾT LUẬN
Xây dựng hệ thống phát hiện, phòng chống tấn công DDoS cho máy chủ ứng dụng web bằng kỹ thuật xoay IP và Captcha với các tính năng cơ bản đáp ứng nhu cầu phát hiện, ngăn chặn các cuộc tấn công có sử dụng botnet nhắm vào hệ thống. Giải pháp đã hỗ trợ để không gây tắc nghẽn băng thông hoặc cạn kiệt tài nguyên, tạo điều kiện để người sử dụng bình thường có thể truy cập website. Đây là một hướng tiếp cận tương đối thiết thực, phù hợp với thực trạng, năng lực trang thiết bị tại các đơn vị cơ sở cho nhiệm vụ phòng thủ mạng.
Nguồn: Tạp chí ATTT