جلوگیری از حملات Brute-force روی تجهیزات Cisco

حمله brute-force یکی از سادهترین و در عین حال خستهکنندهترین روشهای حمله به تجهیزات شبکه است. مهاجم پشت سر هم username و passwordهای مختلف را تست میکند تا بالاخره یکی جواب بدهد. اگر تجهیز هیچ محدودیتی نداشته باشد، فقط زمان و قدرت پردازش مهاجم تعیین میکند که چقدر شانس موفقیت دارد.
در تجهیزات Cisco موضوع فقط لو رفتن یک رمز نیست. اگر دسترسی مدیریتی روی SSH یا حتی Telnet بیحساب باز باشد، brute-force میتواند به تغییر کانفیگ، قطع سرویس، یا ایجاد backdoor ختم شود. پس باید هم سطح دسترسی را محدود کنیم، هم تعداد تلاشهای ناموفق را کنترل کنیم، هم لاگ کافی داشته باشیم.
اصل ماجرا چیست؟
در brute-force مهاجم معمولا دو کار میکند: یا یک username ثابت را با رمزهای زیاد امتحان میکند، یا ترکیبهای مختلف username/password را تست میکند. اگر روی اینترنت یا شبکههای بزرگ management plane را باز گذاشته باشیم، این تلاشها خیلی زود در لاگ دیده میشوند.
اولین دفاع، بستن مسیرهای غیرضروری است. یعنی دسترسی مدیریتی فقط از subnet مدیریتی یا jump server مجاز باشد. بعد از آن، محدودیت روی تلاشهای ناموفق کمک میکند هزینه حمله بالا برود.
نمونه تنظیم AAA محلی
اگر از AAA local استفاده میکنید، میشود تعداد تلاشهای ناموفق را محدود کرد. این روش جایگزین طراحی درست دسترسی مدیریتی نیست، ولی یک لایه کنترلی مفید است.
aaa new-model
aaa local authentication attempts max-fail 5
aaa authentication login default local
username netadmin privilege 15 secret STRONG_SECRET_HERE
با این تنظیم، وقتی کاربر محلی بیش از تعداد مشخصی تلاش ناموفق داشته باشد، username قفل میشود و باید توسط ادمین بررسی و آزاد شود. این رفتار باعث میشود مهاجم نتواند بینهایت تلاش پشت سر هم انجام دهد.
دسترسی VTY را محدود کنید
اگر SSH از همه جا باز باشد، محدودیت login فقط بخشی از کار را حل میکند. بهتر است روی line vty فقط مبداهای مدیریتی مجاز باشند.
ip access-list standard MGMT-SOURCES
permit 192.168.50.0 0.0.0.255
deny any log
line vty 0 4
access-class MGMT-SOURCES in
transport input ssh
login authentication default
این کار ساده، سطح حمله را خیلی کم میکند. اگر تجهیز از اینترنت یا شبکه کاربران قابل دسترس نباشد، brute-force هم عملا از همان مسیرها حذف میشود.
Login block و لاگ تلاشها
در IOS میتوان بعد از چند تلاش ناموفق، برای مدت مشخصی login را block کرد. این قابلیت در کنار AAA و محدود کردن VTY کمک میکند حمله کندتر و قابل مشاهدهتر شود.
login block-for 120 attempts 5 within 60
login on-failure log
login on-success log
یعنی اگر در ۶۰ ثانیه ۵ تلاش ناموفق ثبت شود، login برای ۱۲۰ ثانیه محدود میشود. عددها را باید بر اساس محیط واقعی تنظیم کرد. در شبکهای که چند ادمین همزمان کار میکنند، مقدار خیلی سختگیرانه ممکن است خودش دردسر عملیاتی درست کند.
چند نکته که نباید جا بیفتد
از Telnet استفاده نکنید. رمزهای local را با secret تعریف کنید، نه password ساده. اگر امکانش هست، احراز هویت را به TACACS+ یا RADIUS وصل کنید و دسترسیهای privilege را جدا کنید.
همچنین بهتر است لاگها به syslog مرکزی بروند. اگر فقط داخل خود روتر بمانند، بعد از reboot یا پر شدن buffer بخشی از شواهد را از دست میدهید.
brute-force حمله پیچیدهای نیست، ولی اگر دسترسی مدیریتی رها شده باشد، همین حمله ساده کافی است. کنترل درست management plane معمولا از خیلی ابزارهای گرانتر موثرتر است.

جلوگیری از تغییرات همزمان در تجهیزات Cisco با Configuration Lock
کنترل امنیت شماره ۱۵: کنترل دسترسی بیسیم؛ وایفای را جدی بگیریم
مقابله با SYN Flood در روتر Cisco با TCP Intercept
کنترل امنیت شماره ۲۰: تست نفوذ و Red Team؛ آزمون واقعی کنترلها
راهنمای خواندن دیتاشیت فایروال؛ چرا اعداد کارایی همیشه واقعی نیستند؟