Brute Force Attack چیه و چطور جلوش رو بگیریم؟
حمله Brute Force (حمله جستجوی فراگیر) یعنی مهاجم با امتحان کردن پشت سر هم رمزهای عبور مختلف سعی میکنه وارد حساب کاربری بشه
حمله Brute Force چطور انجام میشه؟
مهاجم یه سری ابزار خودکار داره که بیان میشینن پشت درگاه لاگین سایت SSH سرور یا حتی پنل ادمین وردپرس و شروع میکنن به تست کردن پسوردهای مختلف
این ابزارها معمولا از لیست های آماده استفاده میکنن که شامل ایناست:
پسوردهای ساده و رایج مثل 123456 یا admin
ترکیب اسم ها و تاریخ ها
پسوردهای لو رفته از سایت های دیگه که هک شدن
خیلی از کاربرا هنوزم از پسوردهای ضعیف استفاده میکنن و مهاجم دقیقا روی همین حساب میکنه
چطور جلوی Brute Force رو بگیریم؟
قوی کردن پسوردها
اولین و ساده ترین راه استفاده از پسوردهای قویه یه پسورد خوب باید:
حداقل ۱۲ کاراکتر داشته باشه
ترکیبی از حروف بزرگ و کوچیک عدد و علامت باشه
کلمه قابل حدس مثل اسم یا تاریخ تولد نباشه
محدود کردن تعداد تلاش ها
بهترین راه برای مقابله با Brute Force اینه که اجازه ندین مهاجم بینهایت بار پسورد رو امتحان کنه
با افزونه وردپرس:
افزونه هایی مثل Limit Login Attempts Reloaded یا Wordfence میتونن بعد از مثلا ۵ بار تلاش اشتباه IP رو موقتا بلاک کنن
با Fail2ban روی سرور:
ابزار Fail2ban روی لینوکس لاگ ها رو زیر نظر داره اگه یه IP چند بار پشت سر هم پسورد اشتباه بزنه خودکار بلاکش میکنه
با Rate Limiting توی Nginx:
یه محدودیت ساده توی Nginx میتونه تعداد درخواست های لاگین رو کنترل کنه و جلوی اتوماتیک بودن حمله رو بگیره
فعال کردن احراز هویت دو مرحله ای
حتی اگه پسورد لو بره با فعال بودن تایید دومرحلهای مهاجم نمیتونه وارد بشه یه کد که به گوشی کاربر ارسال میشه مثل یه قفل دوم عمل میکنه
تغییر پورت های پیش فرض
SSH معمولا روی پورت ۲۲ کار میکن تغییر این پورت به یه عدد دیگه خیلی از حمله کننده های اسکریپتی رو گیج میکنه همین کار رو برای phpMyAdmin و بقیه سرویس ها هم میشه انجام داد
غیرفعال کردن لاگین root
اجازه ندین کسی با کاربر root مستقیم SSH بزنه اینکار رو توی تنظیمات SSH غیرفعال کنین و به جاش یه کاربر معمولی با دسترسی sudo بسازین
استفاده از CAPTCHA
بعد از چند بار تلاش اشتباه یه CAPTCHA نشون بدین این کار جلوی ربات ها رو میگیره ولی کاربر واقعی رو اذیت نمیکنه
استفاده از CrowdSec
CrowdSec یه ابزار رایگان و متن بازه که رفتار مهاجم ها رو تشخیص میده حتی با بقیه سرورهایی که از این ابزار استفاده میکنن اطلاعاتش رو به اشتراک میذاره تا IP های خطرناک سریع تر شناسایی بشن
بررسی منظم لاگ ها
لاگ های سرور رو هر از گاهی چک کنین اگه تعداد زیادی تلاش ناموفق میبینین یعنی یه نفر داره Brute Force انجام میده دونستن این موضوع اولین قدم برای مقابلست
چطور بفهمیم تحت حمله هستیم؟
یهو سایت کند میشه بدون دلیل مشخص
حجم لاگ ها زیاد میشه
مصرف CPU میره بالا
توی لاگ ورود کلی تلاش ناموفق میبینین