مقابله با SYN Flood در روتر Cisco با TCP Intercept

حملات DoS و DDoS همیشه از یک شکل ثابت نمیآیند، ولی یک نمونه کلاسیک و قابل فهم آن SYN Flood است. در این حمله، مهاجم تعداد زیادی اتصال TCP نیمهکاره ایجاد میکند تا منابع سرور یا تجهیز میانی درگیر شود و سرویس برای کاربر واقعی کند یا قطع شود.
روی فایروالها معمولا ابزارهای بهتری برای مقابله با این حملات داریم، اما در بعضی شبکهها روتر Cisco هم میتواند با قابلیت TCP Intercept تا حدی کمک کند. نکته مهم این است که بدانیم این قابلیت کجا مفید است و کجا خودش میتواند فشار را از سرور به روتر منتقل کند.
SYN Flood چطور کار میکند؟
برای ایجاد یک ارتباط TCP، کلاینت SYN میفرستد، سرور SYN/ACK برمیگرداند، و کلاینت با ACK نهایی ارتباط را established میکند. در SYN Flood، مهاجم مرحله آخر را کامل نمیکند. نتیجه تعداد زیادی connection نیمهباز یا embryonic است.
اگر تعداد این connectionها زیاد شود، منابع سرور برای نگهداری آنها مصرف میشود و کاربر واقعی برای اتصال مشکل پیدا میکند. وقتی IP spoofing هم وسط باشد، پیدا کردن مبدا واقعی سختتر میشود.
TCP Intercept در Cisco چیست؟
TCP Intercept قابلیتی در IOS است که میتواند connectionهای TCP را زیر نظر بگیرد و در برابر connectionهای نیمهباز واکنش نشان دهد. دو حالت اصلی دارد: intercept و watch.
در حالت intercept، روتر مثل proxy وارد handshake میشود. یعنی تا وقتی از کامل شدن ارتباط مطمئن نشود، connection را به سمت سرور کامل نمیکند. این حالت قویتر است، ولی منابع روتر را هم بیشتر درگیر میکند.
در حالت watch، روتر handshake را فقط زیر نظر میگیرد. اگر connection در زمان مشخص کامل نشود، با reset آن را جمع میکند. در بسیاری از سناریوها watch محافظهکارانهتر و عملیاتیتر است.
نمونه کانفیگ پایه
اول باید مشخص کنیم کدام ترافیک TCP زیر نظر گرفته شود. بهتر است به جای any any، فقط سرورهای مهم یا subnetهای حساس را انتخاب کنیم.
ip access-list extended TCP-INTERCEPT-SERVERS
permit tcp any host 172.16.10.10
permit tcp any host 172.16.10.20
ip tcp intercept list TCP-INTERCEPT-SERVERS
ip tcp intercept mode watch
اگر محیط کوچک و کنترلشده باشد، میشود برای تست محدودتر شروع کرد. در production بهتر است این قابلیت مرحلهای و با مانیتورینگ اعمال شود.
تنظیم timeout و threshold
TCP Intercept چند پارامتر برای کنترل رفتار دارد. مثلا زمان مجاز برای کامل شدن handshake یا تعداد connectionهای نیمهباز قبل از ورود به حالت aggressive.
ip tcp intercept watch-timeout 30
ip tcp intercept max-incomplete high 1100
ip tcp intercept max-incomplete low 900
ip tcp intercept one-minute high 1100
ip tcp intercept one-minute low 900
ip tcp intercept drop-mode oldest
این عددها نسخه آماده برای همه شبکهها نیستند. باید با baseline واقعی شبکه تنظیم شوند. اگر عددها خیلی پایین باشند، در زمان ترافیک سالم هم اختلال ایجاد میکنند. اگر خیلی بالا باشند، اثر حفاظتی کم میشود.
چه زمانی از این قابلیت استفاده کنیم؟
اگر فایروال مناسب جلوی سرورها دارید، معمولا بهتر است کنترل SYN Flood همانجا انجام شود. اما اگر در بخشی از شبکه فقط روتر در مسیر است، TCP Intercept میتواند یک گزینه موقت یا مکمل باشد.
برای من TCP Intercept بیشتر یک ابزار اضطراری یا حفاظتی محدود است، نه جایگزین طراحی درست perimeter security. قبل از فعالسازی، مصرف CPU روتر، حجم ترافیک، و مسیرهای سرویسهای حساس را بررسی کنید.

امنسازی دسترسی مدیریتی FortiGate؛ اشتباهاتی که نباید انجام داد
کنترل امنیت شبکه های کامپیوتری شماره ۱۲ : دفاع از مرزها (Boundary Defense)
عیبیابی Deploy نشدن Policy در Cisco FMC/FTD
چرا مهندس شبکه و امنیت باید پایتون یاد بگیرد؟
راهنمای خواندن دیتاشیت فایروال؛ چرا اعداد کارایی همیشه واقعی نیستند؟