Phòng chống tấn công DOS với TCP Intercept
Giới thiệu: TCP intercept là một trong những đặc tính của bộ Cisco IOS Firewall, thường được dùng để phòng chống tấn công TCP SYN flood. Trong tấn công TCP SYN flood attack, attacker sẽ gửi tràn ngập TCP SYN segments mà không hoàn tất quá trình bắt tay 3 bước cho mỗi kết nối TCP. Thông thường, trong cách tấn công này, attacker sẽ kết hợp với tấn công IP spoofing, trong đó địa chỉ source của gói tin là 1 địa chỉ không hợp lệ hoặc là địa chỉ một người nào đó. Vì những địa chỉ source này không thể tới được nên TCP server bị tấn công sẽ bị treo với half-open connection, server phải đợi hết khoảng thời gian timeout để xoá connection này khỏi bảng local connection. Như thế thì tài nguyên của TCP server sẽ bị sử dụng hết, và buộc phải từ chối các TCP connections hợp lệ khác.
TCP Intercep sẽ giúp hạn chế kiểu tấn công trên với 2 mode: intercept và watch.
Intercept mode
Trong mode này, router sẽ chặn tất cả các TCP connections requests, như trong hình bên dưới. User ở bên ngoài dùng TCP connection muốn truy cập vào server ở mạng bên trong, router sẽ chặn các requests này và giả vờ nó chính là server bên trong, và hoàn tất quá trình bắt tay 3 bước với external user. Xong khi hoàn thành quá trình kết nối với user (bước 13), sau đó router mới thiết lập một kết nối TCP thứ hai đến server (bước 46). Router sau đó sẽ kết hợp 2 kết nối này lại tạo thành 1 kết nối duy nhất (bước 7).
Trong tất cả các bước, router trong suốt với user và server. Với cách tiếp cận này nếu có tấn công TCP SYN xảy ra, router sẽ cung cấp 1 vùng đệm cho server, server sẽ không bị ảnh hưởng gì bởi flood: router bắt tay với các half-open connections, và sau khoảng thời gian timeout router sẽ xoá tất cả các kết nối này ra khỏi bảng TCP connection table của nó. Trên thực tế thì những request hợp lệ sẽ được cho phép kết nối tới router bên trong ngay sau khi hoàn thành tiến trình bắt tay 3 bước với router.
Watch mode
Trong mode này, router chỉ xem các phiên kết nối giữa user và server. Router kiểm tra các kết nối này, theo dõi các kết nối chưa được hoàn tất. Sau đó nó sẽ so sánh với giá trị timeout đã cấu hình trước (mặc định là 30s). Nếu một kết nối TCP chưa hoàn tất quá trình bắt tay 3 bước và quá khoảng thời gian timeout thì router sẽ gửi cờ TCP reset đến server để hủy bỏ kết nối. Nếu có trường hợp tấn công trực tiếp đến server bên trong thì router sẽ loại bỏ các half-open connections, vì vậy hạn chế được sự quá tải trên server và vẫn cho phép các kết nối hợp lệ kết nối đến.
Comment