SECURITY VALIDATION

Kiểm thử TCP SYN flood: backlog, SYN cookie và SYN proxy

19/9/2026 · 16 phút

Minh họa: Bảo vệ dịch vụ TCP dưới tải kết nối bất thường. Ảnh AI, không phải kết quả đo.
Mục lục bài viết 10 phần

Một thiết bị còn trả SYN-ACK dưới tải chưa chứng minh dịch vụ an toàn. Kiểm thử SYN flood cần đo tỷ lệ kết nối hợp lệ hoàn tất, state/backlog ở firewall và server, false drop, tác động lên application và thời gian phục hồi sau khi tải tấn công dừng.

ĐỌC NHANH

Bài viết giúp bạn

  • Xác định tài nguyên cần bảo vệ
  • Topology và an toàn thử nghiệm
  • Traffic profile và biến kiểm soát
Tùy chỉnh đọc
01

Xác định tài nguyên cần bảo vệ

#

SYN flood khai thác chi phí trạng thái của kết nối TCP chưa hoàn tất, nhưng điểm nghẽn thực tế có thể là link, ACL/policer, firewall session setup, load balancer, server listen queue, CPU softirq hoặc application worker. Xác định bottleneck hypothesis trước khi tạo tải.

SLO phải dành cho lưu lượng hợp lệ: TCP handshake success, connection setup latency và transaction success theo percentile. Số SYN-ACK phát ra chỉ là chỉ báo trung gian; dịch vụ có thể phát SYN-ACK nhưng không còn tài nguyên xử lý request hoàn chỉnh.

02

Topology và an toàn thử nghiệm

#

Dùng lab cô lập: attack generator → router/firewall/SYN proxy → load balancer nếu có → server; client hợp lệ đi qua cùng đường nhưng nguồn và metric tách riêng. Thu counter ở ingress, thiết bị bảo vệ, server NIC/TCP stack và application.

Không chạy traffic giả mạo nguồn trên mạng production hoặc ra Internet. Thiết lập rate ceiling, thời lượng, kill switch, out-of-band management và giám sát nhiệt/CPU. Đồng bộ clock để gắn ramp rate với drop, state và SLO.

Minh họa: Hai nguồn lưu lượng hợp lệ và thử nghiệm qua lớp bảo vệ. Ảnh AI, không phải kết quả đo.
Minh họa: Hai nguồn lưu lượng hợp lệ và thử nghiệm qua lớp bảo vệ. Ảnh AI, không phải kết quả đo.
03

Traffic profile và biến kiểm soát

#

Tạo profile theo SYN/giây, source cardinality, destination port, IP family, MSS/options, retransmission, tỷ lệ hoàn tất handshake và connection lifetime. Phân biệt spoofed SYN không hoàn tất, bot-like client có thể hoàn tất TCP nhưng không gửi request, và legitimate flash crowd.

Giữ legitimate workload theo rate và transaction mix ổn định trong khi tăng attack load. Nếu thay đồng thời request size hoặc backend latency, không thể quy kết suy giảm cho cơ chế chống SYN.

  • Biến: SYN rate · Baseline: Tải hợp lệ · Ca biên: Ramp tới giới hạn an toàn
  • Biến: Handshake completion · Baseline: Gần 100% · Ca biên: 0%, thấp, burst
  • Biến: Source · Baseline: Tập nhỏ ổn định · Ca biên: Nhiều IP/port, IPv4/IPv6
  • Biến: TCP options · Baseline: Profile thật · Ca biên: Biến thể MSS, SACK, timestamp
  • Biến: Destination · Baseline: Một service · Ca biên: Nhiều VIP/port
  • Biến: Attack shape · Baseline: Steady · Ca biên: Spike, sawtooth, on/off
04

Backlog, SYN cookie và SYN proxy

#

Tăng backlog chỉ kéo dài thời gian trước khi cạn state, không tự phân biệt client tốt/xấu. SYN cookie giảm nhu cầu giữ state cho kết nối chưa hoàn tất bằng cách mã hóa thông tin vào sequence number; RFC 4987 mô tả đây là một trong nhiều biện pháp, kèm đánh đổi và giới hạn implementation.

SYN proxy hoàn tất handshake với client trước khi tạo kết nối tới server, dịch chuyển state/cost sang lớp bảo vệ. Cần đo capacity và timeout của chính proxy, compatibility với TCP options, routing bất đối xứng và failover. Không coi proxy là “stateless” nếu chưa đối chiếu kiến trúc sản phẩm.

So sánh từng phương án dưới cùng legitimate workload, đường đi và rate ramp. Một cấu hình có handshake success cao nhưng tăng setup latency hoặc loại client chậm vẫn có thể không đạt SLO.

05

KPI và bằng chứng

#

Ghi first-failure point và knee point thay vì chỉ maximum pps. Pass/fail nên gồm cả mức tải cam kết, tỷ lệ client hợp lệ thành công, latency, tài nguyên headroom, log/alert và recovery time.

  • Lớp: Network · KPI: Offered/forwarded/dropped SYN pps · Bằng chứng: Generator + interface counter
  • Lớp: TCP · KPI: Handshake success, retransmit, setup p99 · Bằng chứng: Client result + PCAP
  • Lớp: State · KPI: Half-open, session table, backlog occupancy · Bằng chứng: Firewall/server telemetry
  • Lớp: System · KPI: CPU, softirq, memory, interrupt/drop · Bằng chứng: OS/device metric
  • Lớp: Application · KPI: Transaction success và p99 latency · Bằng chứng: Synthetic transaction
  • Lớp: Recovery · KPI: Thời gian về baseline sau attack · Bằng chứng: Timeline nhiều lớp
Minh họa: Quan sát tải, trạng thái kết nối và chất lượng dịch vụ. Ảnh AI, không phải kết quả đo.
Minh họa: Quan sát tải, trạng thái kết nối và chất lượng dịch vụ. Ảnh AI, không phải kết quả đo.
06

Ma trận phương án

#

Không chọn biện pháp theo pps cao nhất đơn lẻ. Phương án phải phù hợp failure mode, topology, TLS/application layer và khả năng vận hành, quan sát, rollback.

  • Phương án: Backlog tuning · Điểm cần kiểm: Ngưỡng queue và memory · Rủi ro cần quan sát: Chỉ trì hoãn exhaustion
  • Phương án: SYN cookie · Điểm cần kiểm: Activation, option/feature behavior · Rủi ro cần quan sát: Compatibility và visibility
  • Phương án: SYN proxy · Điểm cần kiểm: Proxy capacity, timeout, failover · Rủi ro cần quan sát: State dồn tại proxy, asymmetry
  • Phương án: Rate limiting · Điểm cần kiểm: Scope theo source/VIP/zone · Rủi ro cần quan sát: False positive với NAT/flash crowd
  • Phương án: Upstream scrubbing · Điểm cần kiểm: Detection và diversion time · Rủi ro cần quan sát: Link cục bộ nghẽn trước diversion
  • Phương án: Anycast/distribution · Điểm cần kiểm: Phân tán tải và route shift · Rủi ro cần quan sát: State/traffic lệch, site overload
07

Fault và recovery

#

Trong lúc tải SYN ở mức dưới ngưỡng, restart một node bảo vệ hoặc rút một member path; đo state sync, traffic shift và client hợp lệ. Sau đó dừng attack đột ngột, quan sát queue/state có giảm đúng timeout và application có trở về baseline hay không.

Thử policy update khi attack đang chạy nếu đây là thao tác vận hành dự kiến. Pass khi control plane còn đáp ứng, rule có hiệu lực xác định, không tạo fail-open ngoài thiết kế và log đủ để giải thích drop. Luôn có rollback đã diễn tập.

08

Test plan và runbook

#

Không lưu full packet vô hạn ở tốc độ cao; dùng capture filter/sampling phù hợp nhưng giữ counter loss của hệ thống capture. Chạy ít nhất ba lần để loại nhiễu và báo median cùng worst run.

  • Chụp topology, version, TCP/sysctl, firewall/proxy policy và timeout.
  • Đặt ceiling, kill switch, OOB monitoring và tiêu chí dừng.
  • Chạy legitimate baseline không attack; lưu handshake và transaction percentile.
  • Ramp SYN theo bậc, giữ mỗi bậc đủ lâu để state đạt cân bằng.
  • Lặp với completion ratio, source cardinality và attack shape khác nhau.
  • Bật từng cơ chế bảo vệ riêng; so với control run cùng điều kiện.
  • Thử node/link failure, policy change và dừng attack để đo recovery.
  • Chạy soak ở mức cam kết dưới knee point.
  • Lưu PCAP mẫu, raw result, counter, config hash và verdict.
09

Giới hạn kết luận

#

Kết quả chỉ áp dụng cho model/firmware, TCP stack, policy, timeout, source distribution, packet options, topology và legitimate workload đã thử. SYN flood là một lớp của DDoS; pass không chứng minh khả năng chống connection flood hoàn chỉnh, TLS handshake flood hoặc application-layer attack.

RFC 4987 là tài liệu thông tin, không phải chứng nhận hiệu năng. Không công bố capacity nếu thiếu packet profile, handshake completion ratio, traffic hợp lệ, thời lượng và tiêu chí fail. Thử nghiệm phải được cho phép và cô lập.

10

Khái niệm cần nhớ

#
  • SYN backlog: Hàng đợi kết nối TCP chưa hoàn tất.
  • Half-open connection: Đã nhận SYN nhưng three-way handshake chưa hoàn thành.
  • SYN cookie: Kỹ thuật tránh lưu một phần state bằng sequence number mã hóa.
  • SYN proxy: Thành phần đứng giữa xác minh client trước khi nối tới server.
  • Flash crowd: Tăng đột biến của client hợp lệ.
  • False positive: Lưu lượng hợp lệ bị cơ chế bảo vệ chặn nhầm.
  • Knee point: Điểm tăng tải làm latency/error bắt đầu tăng nhanh.
  • Recovery time: Thời gian hệ thống trở về baseline sau tải lỗi.
THUẬT NGỮ NHANH

Khái niệm cần nhớ

Security efficacy
Mức độ phát hiện hoặc ngăn chặn đúng nội dung kiểm thử trong phạm vi đã xác định.
Goodput
Lưu lượng ứng dụng hữu ích tới đích, không tính phần truyền lại hoặc overhead không tạo giá trị.
False positive
Lưu lượng hợp lệ bị nhận diện hoặc xử lý nhầm như một mối đe dọa.
TÀI LIỆU ĐỐI CHIẾUTài liệu tham khảo4 nguồn

Nội dung được biên soạn độc lập, theo hướng vendor-neutral và đối chiếu các tài liệu gốc dưới đây. Tính năng sản phẩm cần được kiểm tra lại theo phiên bản đang sử dụng.

Nguyên tắc biên tập

NetVali ưu tiên nguồn tiêu chuẩn và tài liệu chính thức; phân biệt khuyến nghị triển khai với yêu cầu của tiêu chuẩn; không công bố thông số sản phẩm chưa gắn với phiên bản và điều kiện đo.

Thông số và khả năng sản phẩm có thể thay đổi theo phiên bản. Hãy đối chiếu tài liệu chính thức trước khi xây dựng cấu hình hoặc tiêu chí nghiệm thu.
BẮT ĐẦU TỪ BÀI TOÁN

Cần chuyển kiến thức thành test plan?

Chia sẻ mục tiêu, topology và ràng buộc kỹ thuật. NetVali sẽ cùng bạn xác định bài đo phù hợp.

Trao đổi yêu cầu kỹ thuật