Tấn công SYN flood


Giới thiệu

SYN Flood (còn gọi là half-open attack) tấn công server mục tiêu bằng cách tiêu thụ tất cả tài nguyên hệ thống có sẵn. Bằng cách liên tục gửi các gói yêu cầu kết nối ban đầu (SYN), kẻ tấn công có thể áp đảo tất cả các cổng có sẵn trên máy chủ được nhắm mục tiêu, khiến thiết bị được nhắm mục tiêu phản hồi lưu lượng truy cập hợp pháp chậm chạp hoặc hoàn toàn không phản hồi.

Tấn công SYN flood không chỉ làm suy giảm hiệu suất của dịch vụ mà còn có thể gây ra đổ vỡ hoàn toàn, khiến dịch vụ không khả dụng đối với người dùng hợp pháp.

Cách hoạt động của tấn công SYN FLood

Thông thường, quá trình TCP “handshake” 3 bước sẽ diễn ra như sau:

  • Client gửi SYN packet (gói tin SYN) cho bên phía server để bắt đầu kết nối
  • Server phản hồi bằng gói SYN ACK để xác nhận kết nối
  • Client nhận gói tin SYN ACK và gửi gói ACK để thông báo nhận thành công packet. Lúc này kết nối TCP mở và client có thể gửi và nhận dữ liệu.
Quy trình bắt tay 3 bước TCP

Đối với hình thức tấn công DDoS SYN Flood, quá trình này sẽ bị thay đổi như sau:

  1. Gửi SYN packet cho phía server thông báo mở kết nối.
  2. Server phản hồi yêu cầu bằng SYN ACK packet để xác nhận.
  3. Phía tấn công không gửi ACK packet hiện lại mà tiếp tục gửi SYN packet mới cho phía server.
  4. Server nhận được SYN packet mới và không nhận được ACK packet của yêu cầu trước đó, buộc duy trì kết nối cũ và đồng thời mở kết nối mới.
  5. Quá trình liên tục lặp lại và tài nguyên hệ thống mục tiêu bị tiêu bao ngày càng nhiều hơn, hiệu suất giảm rõ rệt.

Cuối cùng hệ thống quá tải cho tràn cache kết nối, Hiện tượng từ chối dịch vụ xảy ra và các truy cập hợp lệ sau đó sẽ không thể xử lý.

Trong kết nối mạng, khi 1 bên để kết nối mở trong khi phía còn lại thì không, đây được gọi là kết nối “half-open”. Hình thức này khi áp dụng vào tấn công DDoS sẽ gọi là tấn công “half-open”.

Tấn công SYN DDoS:

Có 3 cách mà tấn công SYN Flood có thể xảy ra như sau:

Tấn công SYN flood 6
  • Tấn công trực tiếp: IP không làm giả hoặc che dấu. Vì thế mà hình thức này khá dễ phát hiện và ứng phó. giảm thiểu. Các quy định firewall ngăn chặn các packet gửi đi mà không phải là SYN hoặc bằng cách lọc các gói SYN ACK nào đến trước khi sang bên tấn công (phương pháp này hiện không còn phổ biến do cách ứng phó khá dễ dàng).
  • Tấn công có giả mạo: Giả mạo IP trên các SYN packet, làm danh tính và nguồn gốc được ẩn kĩ càng hơn. Mặc dù từ các manh mối này vẫn có thể truy ngược nguồn gốc nhưng đây là việc không hề dễ dàng và cần nhiều nguồn lực liên quan hợp tác hỗ trợ (bao gồm cả ISP).
  • Tấn công DDoS: Việc dùng botnet để tấn công thì việc truy ngược nguồn gốc sẽ rất khó. Kẻ tấn công hoàn toàn có thể giả mạo IP trên mỗi thiết bị gửi packet đi. Có điều đặc biệt là cũng như tấn công trực tiếp, nếu phe tấn công sử dụng mạng botnet như Mirai thì việc che giấu IP các thiết bị bot có vẻ không cần quan tâm nhiều.

Thay vì các cuộc tấn công số lượng lớn nhằm mục đích bão hòa cơ sở hạ tầng mạng xung quanh mục tiêu, các cuộc tấn công SYN chỉ cần lớn hơn lượng backlog có sẵn trong hệ điều hành của mục tiêu. Nếu kẻ tấn công có thể xác định kích thước của backlog và thời gian mỗi kết nối sẽ được mở trước khi hết thời gian chờ, kẻ tấn công có thể nhắm mục tiêu các tham số chính xác cần thiết để vô hiệu hóa hệ thống, từ đó giảm tổng lưu lượng truy cập xuống mức tối thiểu cần thiết để tạo từ chối dịch vụ.

Cách giảm thiểu tấn công SYN Flood

Tăng hàng đợi backlog

Các hệ thống bị nhắm đến thường có số lượng kết nối half-open nhất định, khi vượt quá con số cho phép sẽ gây ra các gián đoạn trong hoạt động.

Biện pháp này đề cập đến việc hệ thống tăng giới hạn số lượng kết nối galf-open tối đa để có thể xử lý các yêu cầu mới. Trong trường hợp hệ thống không đủ bộ nhớ để có thể xử lý khi kích thước backlog tăng, hiệu suất sẽ bị ảnh hưởng nhưng vẫn tốt hơn bị tấn công DDoS.

Tái sử dụng các kết nối TCP half-open cũ

Một giải pháp khác được đề cập là ghi đè các kết nối cũ sau khi các backlog đã được xử lý. Việc này yêu cầu các kết nối hợp lệ phải thiết lập trong thời gian ngắn hơn để có thể xử lý các SYN packet không hợp lệ. Nhược điểm của biện pháp này là khi số lượng tấn công tăng lên hoặc nếu kích thước backlog quá nhỏ để thực hiện

SYN cookies

Biện pháp này liên quan tới tạo cookie bởi phía server. Để tránh nguy cơ mất kết nối khi backlog đã xử lý, phía server sẽ phản hồi từng yêu cầu kết nối bằng gói SYN ACK nhưng sẽ oại bỏ SYN request khỏi backlog, xoá chúng khỏi bộ nhớ, để port mở cho kết nối mới. Nếu kết nối là một yêu cầu hợp pháp và gói ACK cuối cùng được gửi từ máy khách trở lại máy chủ thì máy chủ sẽ xây dựng lại (với một số hạn chế) mục nhập hàng đợi tồn đọng SYN. Tuy nhiên biện pháp này sẽ làm thiếu sót đi một số thông tin về các kết nối TCP. 

nguồn: https://vietnix.vn/