Nguyên tắc cơ bản của TCP Syn Flood



Kiểu tấn công TCP SYN flood là một kiểu tấn công trực tiếp vào máy chủ bằng cách tạo ra một số lượng lớn các kết nối TCP nhưng không hoàn thành các kết nối này.

Phía kẻ tấn công sẽ khởi tạo nhiều TCP, trong mỗi kết nối chỉ để cờ TCP SYN. Máy chủ sẽ gửi lại trả lời vớI TCP SYN và ACK. Nhưng sau đó máy tấn công đơn giản là không trả lời thông điệp thứ ba như mong đợi của server theo tiến trình bắt tay ba chiều. Server lúc này sẽ tốn bộ nhớ và tài nguyên trong khi chờ các phiên TCP timeouts hoặc trước khi các kết nối đang thiết lập dang dở được dọn dẹp. Máy server lúc này có thể từ chối các kết nối TCP khác và các thiết bị cân bằng tải trong các server farm lúc này có thể chia tải không cân bằng. Các firewall có hỗ trợ cơ chế stateful có thể ngăn ngừa kiểu tấn công TCP SYN attack này.

Một cách để ngăn ngừa kiểu tấn công SYN attack là đơn giản loại bỏ các gói TCP header trong đó chỉ có cờ SYN được thiết lập. Nói cách khác, loại bỏ tất cả các gói tin đầu tiên trong một kết nối TCP mới. Trong nhiều trường hợp, một router không nên cho phép các kết nối TCP được thiết lập bởi client. Trong trường hợp này, việc lọc các TCP segment ban đầu giúp ngăn ngừa SYN attack.

Công cụ Cisco IOS ACLs không thể match trực tiếp cờ TCP SYN trong một gói tin. Tuy nhiên một ACL có thể dùng từ khóa establised để tìm ra những tcp segment có cờ ACK được thiết lập. Từ khóa established có thể match tất cả các TCP segment ngoại trừ TCP segment đầu tiên trong một kết nối mới. Cấu hình dưới đây sẽ dùng trên R1 để từ chối những yêu cầu kết nối mới từ Internet đi vào mạng bên trong ASN1.

Dòng ACE đầu tiên sẽ lựa ra các phân đoạn TCP không phảI là segment đầu tiên và cho phép các segment này. Dòng ACE thứ hai sẽ lựa ra tất cả các TCP segment, nhưng vì tất các các segment không phảilà đầu tiên đã dính vớI dòng đầu tiên, dòng thứ hai này sẽ chỉ so trùng vớI các segment đầu tiên.

ip access-list extended prevent-syn
permit tcp any 1.0.0.0 0.255.255.255 established
deny tcp any 1.0.0.0 0.255.255.255
permit (whatever)
!
interface s0/0
ip access-group prevent-syn in

ACL hoạt động tốt khi client nằm bên ngoài mạng không được phép tạo kết nối TCP vào mạng bên trong. Tuy nhiên trong những trường hợp các kết nối TCP vào bên trong là được phép, ACL này không thể được dùng.

Một đặc điểm khác của CiscoIOS được gọi là TCP intercept cho phép các kết nối TCP đi vào mạng nhưng giám sát các kết nối này để chống kiểu tấn công TCP SYN. TCP Intercept hoạt động trong hai chế độ. Trong chế độ watch, nó theo dõi thông tin trạng thái của kết nốI TCP match với một ACL. Nếu kết nối TCP không hoàn bắt tay hai chiều trong một khoảng thời gian, TCP intercepts sẽ gửi một thông điệp TCP reset đến máy server, dọn dẹp kết nối. Nó cũng sẽ đến số kết nối mới trong một khoảng thời gian và nếu có một số lớn kết nối trong một giây (“lớn” có giá trị mặc định là 1100), router sẽ tạm thời lọc các yêu cầu thiết lập TCP mới.

Trong chế độ intercept, router sẽ trả lời đến các yêu cầu thiết lập TCP thay vì chuyển các yêu cầu này về server. Sau đó, nếu quá trình bắt tay 3 lần hoàn thành, router sẽ tạo ra một kết nối giữa nó và server. Ở thời điểm này, router đã nối chặt hai kết nối với nhau. Chế độ này làm tốn nhiều tải nhưng bảo vệ tốt hơn cho server.

Các lệnh dưới đây sẽ bật cơ chế TCP intercept cho những gói tin so trùng với ACL match-tcp-from-internet. Ngoài ra, chế độ được thiết lập là chế độ watch, còn chế độ mặc định là intercept. Cuối cùng, lệnh watch timeout đã được đưa về chế độ mặc định là 30 giây. Nếu kết nối TCP vẫn trong tình trạng không hoàn tất, cơ chế TCP intercept sẽ khởi động kết nối.

ip tcp intercept-list match-tcp-from-internet
ip tcp intercept mode watch
ip tcp intercept watch-timeout 20

ACL sẽ lựa ra tất cả các gói tin gửi đến địa chỉ 1.0.0.0/8 và dùng TCP. ACL này sẽ tham chiếu đến các lệnh ip tcp intercept-list ở trên.

ip access-list extended match-tcp-from-internet
permit tcp any 1.0.0.0 0.255.255.255

Chú ý rằng ACL không được áp dụng vào bất kỳ cổng nào.

interface s0/0

! Note: there is no ACL enabled on the interface!

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s