1. SYN Flood Attack là gì?
SYN flood (half-open attack) là một dạng của tấn công từ chối dịch vụ phân tán (DDoS). Là mối đe dọa thường trực đối với hệ thống mạng và máy chủ dịch vụ của các cơ quan và tổ chức. Bằng việc gửi liên tục các packet tin yêu cầu kết nối ban đầu (SYN). Loại tấn công ngày thường gây cạn kiệt tài nguyên hệ thống hoặc ngập lụt đường truyền, làm ngắt quãng quá trình cung cấp dịch vụ cho người dùng hợp pháp, hoặc thậm chí khiến cả hệ thống ngừng hoạt động.
2. Tấn công SYN flood hoạt động như thế nào?
Một cuộc tấn công DDoS SYN-flood tận dụng quy trình bắt tay ba chiều TCP. Trong điều kiện bình thường, kết nối TCP được thể hiện quy trình 3 bước riêng biệt để tạo được sự kết nối như sau:
- Bước 1: Đầu tiên, máy tấn công gửi 1 packet tin SYN đến Server để yêu cầu kết nối.
- Bước 2: Sau khi tiếp nhận packet SYN, Server phản hồi lại máy khách bằng một packet SYN/ACK, để xác nhận thông tin từ Client.
- Bước 3: Cuối cùng, Client nhận được packet tin SYN/ACK thì sẽ trả lời server bằng packet tin ACK báo với server biết rằng nó đã nhận được packet tin SYN/ACK, kết nối đã được thiết lập và sẵn sàng trao đổi dữ liệu.
Để tạo từ chối dịch vụ (DOS), thực tế kẻ tấn công sẽ khai thác sau khi nhận được packet SYN ban đầu từ Client, Server sẽ phản hồi lại 1 hoặc nhiều packet SYN/ACK và chờ đến bước cuối cùng trong quá trình Handshake. Ở đây, cách thức thực hiện của nó như sau:
- Bước 1: Kẻ tấn công sẽ gửi một khối lượng lớn các packet tin SYN đến Server được nhắm là mục tiêu và thường là các địa chỉ IP giả mạo.
- Bước 2: Sau đó, Server sẽ phản hồi lại từng yêu cầu kết nối, để lại 1 cổng mở sẵn sàng tiếp nhận và phản hồi.
- Bước 3: Trong khi Server chờ packet ACK ở bước cuối cùng từ Client, packet mà không bao giờ đến, kẻ tấn công tiếp tục gửi thêm các packet SYN. Sự xuất hiện các packet SYN mới khiến máy chủ tạm thời duy trì kết nối cổng mở mới trong một thời gian nhất định, một khi tất cả các cổng có sẵn được sử dụng thì Server không thể hoạt động như bình thường.
Trong kết nối mạng, khi Server bên này để kết nối mở nhưng máy bên kia kết nối thì không, kết nối này được coi là half-open. Trong kiểu tấn công DDos, sau khi server gửi gói tin SYN/ACK nó sẽ phải đợi cho đến khi client trả lời hoặc hết thời gian timeout, đến khi các port trở lại bình thường. Kết quả của kiểu tấn công này được coi là cuộc tấn công half-open.
3. Cách phòng chống tấn công SYN Flood Attack
- Sử dụng các kỹ thuật lọc gói tin dựa trên địa chỉ IP.
- Tăng kích thước Backlogs giúp tăng khả năng chấp nhận kết nối mới của hệ thống đích.
- Giảm thời gian chờ xác nhận yêu cầu kết nối TCP-SYN giúp máy chủ hủy bỏ các yêu cầu kết nối không được xác nhận trong khoảng thời gian ngắn hơn, giải phóng tài nguyên các kết nối chờ chiếm giữ.
- Sử dụng SYN cache giúp duy trì Backlogs chung cho toàn máy chủ thay vì Backlogs riêng cho mỗi ứng dụng. Nhờ vậy có thể tăng số lượng kết nối đang chờ xác nhận.
- Sử dụng SYN Cookies cho phép chỉ cấp phát tài nguyên cho kết nối khi nó đã được xác nhận. Các yêu cầu SYN sẽ bị hủy nếu không được xác nhận trước khi được chuyển cho máy chủ đích. Phương pháp này có thể giúp phòng chống tấn công SYN Flood hiệu quả.
- Sử dụng tường lửa hoặc proxy để lọc các gói tin hoặc thực thi các chính sách an ninh đã xác lập trước.