تصویر شاخص مقابله با SYN Flood در روتر Cisco با TCP Intercept
حملات DoS و DDoS همیشه از یک شکل ثابت نمیآیند، ولی یک نمونه کلاسیک و قابل فهم آن SYN Flood است. در این حمله، مهاجم تعداد زیادی اتصال TCP نیمهکاره ایجاد میکند تا منابع سرور یا تجهیز میانی درگیر شود و سرویس برای کاربر واقعی کند یا قطع شود.
روی فایروالها معمولا ابزارهای بهتری برای مقابله با این حملات داریم، اما در بعضی شبکهها روتر Cisco هم میتواند با قابلیت TCP Intercept تا حدی کمک کند. نکته مهم این است که بدانیم این قابلیت کجا مفید است و کجا خودش میتواند فشار را از سرور به روتر منتقل کند.
برای ایجاد یک ارتباط TCP، کلاینت SYN میفرستد، سرور SYN/ACK برمیگرداند، و کلاینت با ACK نهایی ارتباط را established میکند. در SYN Flood، مهاجم مرحله آخر را کامل نمیکند. نتیجه تعداد زیادی connection نیمهباز یا embryonic است.
اگر تعداد این connectionها زیاد شود، منابع سرور برای نگهداری آنها مصرف میشود و کاربر واقعی برای اتصال مشکل پیدا میکند. وقتی IP spoofing هم وسط باشد، پیدا کردن مبدا واقعی سختتر میشود.
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 بهتر است این قابلیت مرحلهای و با مانیتورینگ اعمال شود.
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 روتر، حجم ترافیک، و مسیرهای سرویسهای حساس را بررسی کنید.
مسیر عملی راهاندازی FortiWeb از monitor تا block؛ بررسی لاگ، کاهش false positive، ساخت exception…
راهنمای عملی طراحی Health Monitor در F5 BIG-IP؛ تفاوت TCP و HTTP Monitor، خطاهای رایج،…
راهنمای عملی عیبیابی Deploy نشدن Policy در Cisco FMC و FTD با بررسی health، connectivity،…
راهنمای عملی کاهش False Positive در FortiWeb WAF با بررسی لاگ، rule، parameter، exception محدود…
راهنمای عملی Persistence در F5 BIG-IP؛ تفاوت Source Address و Cookie Persistence، زمان استفاده، خطاهای…
چکلیست عملی امنسازی دسترسی مدیریتی FortiGate؛ محدودسازی WAN، trusted hosts، MFA، حسابهای جداگانه، لاگ ورود…