حمله Brute Force (بروت فورس) یک روش هک مبتنی بر آزمونوخطای خودکار برای کشف رمز عبور و نفوذ به سیستم است. در این تکنیک، مهاجم با ارسال هزاران ترکیب نام کاربری و رمز عبور، تلاش میکند تا به صفحات ورود، پروتکل SSH یا سایر سرویسهای شما دسترسی پیدا کند. برای جلوگیری از حملات Brute Force، راهکارهایی مانند محدود کردن تلاشهای ورود (Rate Limiting)، فعالسازی احراز هویت دوعاملی (MFA) و پیادهسازی سیاستهای رمز عبور قوی وجود دارد.
در این مقاله، بهصورت عملی و گامبهگام روشهای مقابله با حملات بروت فورس، ازجمله تکنیکهای عمومی جلوگیری تا تنظیمات امنیتی اختصاصی برای سرورهای لینوکس، SSH و سایتهای وردپرسی را پوشش خواهیم داد.
فهرست مطالب
حمله Brute Force چیست؟
به زبان ساده، حمله Brute Force یک روش آزمون و خطای دیجیتال است که در آن، مهاجم با استفاده از نرمافزارهای خودکار، هزاران یا میلیونها ترکیب مختلف از نام کاربری و رمز عبور را امتحان میکند تا به یک سیستم دسترسی پیدا کند. این روش مانند کارِ سارقی است که با یک دسته کلید بسیار بزرگ، تکتک کلیدها را روی قفل در امتحان میکند تا بالاخره کلید درست را پیدا کند.
این حملات معمولاً از لیستهای رمز عبور رایج (مانند 123456، password) یا دیکشنریهای کلمات برای حدس زدن استفاده میکنند. هدف اصلی، پیدا کردن اطلاعات ورود و به دست آوردن دسترسی غیرمجاز است.
تفاوت Brute Force با حملات دیگر:
- Credential Stuffing: در این روش، مهاجم از لیست نامهای کاربری و رمزهای عبور لو رفته در سرویسهای دیگر استفاده میکند. فرض بر این است که کاربران از یک رمز عبور در چند سایت استفاده میکنند. اما در Brute Force، رمز عبور بهصورت سیستماتیک حدس زده میشود.
- DDoS: هدف حمله DDoS ازکار انداختن سرویس ازطریق ارسال ترافیک بسیار زیاد است، نه ورود به آن. اما Brute Force با هدف ورود غیرمجاز انجام میشود، هرچند میتواند باعث کندی سرور هم بشود.
چه سرویسهایی بیشتر هدف قرار میگیرند؟
هر بخشی که نیاز به احراز هویت داشته باشد، یک هدف بالقوه است:
- صفحات ورود (CMS مانند وردپرس، جوملا و پنلهای مدیریتی)
- پروتکل SSH و RDP (برای دسترسی به سرور)
- سرویسهای FTP و ایمیل
نشانههای حمله Brute Force

تشخیص این حملات معمولاً دشوار نیست، چون ردپای مشخصی از خود بهجا میگذارند. اگر مدیر سرور یا وبسایت هستید، با مشاهده این علائم باید هوشیار باشید:
- تعداد بسیار زیاد تلاشهای ناموفق برای ورود: اولین و واضحترین نشانه، ثبت تعداد زیادی لاگ (Log) ناموفق برای ورود به سیستم در یک بازه زمانی کوتاه است.
- قفل شدن مکرر حسابهای کاربری: اگر کاربران شما مکرراً گزارش میدهند که حسابشان بدون دلیل قفل شده، احتمالاً یک حمله در جریان است که در آن تلاشهای ناموفق از آستانه مجاز عبور کرده است.
- مشاهده IPهای ناشناس و متعدد در لاگها: بررسی لاگهای سرور، ترافیک ورودی از آدرسهای IP متعدد و ناشناس از موقعیتهای جغرافیایی غیرمنتظره را نشان میدهد که همگی درحال تلاش برای دسترسی به یک حساب کاربری خاص یا چندین حساب هستند.
- افزایش ناگهانی مصرف منابع سرور: پردازش هزاران درخواست ورود در ثانیه، میتواند باعث افزایش مصرف CPU و پهنای باند سرور شود و عملکرد کلی آن را کُند سازد.
روشهای جلوگیری از Brute Force
خوشبختانه، جلوگیری از حملات Brute Force پیچیده نیست و با پیادهسازی چند راهکار دفاعی لایهای، میتوانید امنیت سرور در برابر brute force را بهشکل چشمگیری افزایش دهید. این روشها مانند ساختن یک دیوار دفاعی چندلایه عمل میکنند؛ اگر مهاجم از یک لایه عبور کند، لایه بعدی او را متوقف خواهد کرد.
در ادامه، به چند مورد از مؤثرترین روشهای مقابله با brute force میپردازیم.
۱. محدود کردن تلاشهای ورود
یکی از سادهترین و کارآمدترین راهکارها، محدودکردن تعداد دفعاتی است که یک کاربر میتواند در یک بازه زمانی مشخص برای ورود تلاش کند. اگر یک آدرس IP بیشاز حدّ مجاز (مثلاً ۵ بار در دقیقه) رمز عبور اشتباه وارد کند، سیستم بهطور خودکار آن IP را برای مدتی مسدود (یا Block) میکند.
این تکنیک که به آن Rate Limiting میگویند، سرعت حملات خودکار را بهشدت کاهش میدهد و عملاً آنها را بیاثر میکند. ابزارهایی مانند Fail2Ban بهطور تخصصی برای پیادهسازی این مکانیزم در سرورهای لینوکسی طراحی شدهاند و یک راهکار عالی برای جلوگیری از brute force در login هستند.
۲. استفاده از احراز هویت دو مرحلهای (2FA/MFA)
احراز هویت چندعاملی (MFA) یک لایه امنیتی حیاتی است که جلوگیری از هک با brute force را تقریباً قطعی میکند. حتی اگر مهاجم بتواند نام کاربری و رمز عبور صحیح را حدس بزند، برای ورود به یک کد یکبارمصرف دیگر نیاز دارد که به دستگاه شما (مثلاً تلفن همراه) ارسال میشود. ازآنجاییکه مهاجم به این دستگاه دسترسی ندارد، تلاش او ناکام میماند.
آمار: طبق گزارش آژانس امنیت ملی آمریکا (NSA)، استفاده از MFA میتواند تا ۹۹٪ از حملات مبتنی بر سرقت هویت را مسدود کند. این آمار نشان میدهد که فعالسازی آن چقدر ضروری است.
۳. پیادهسازی سیاستهای رمز عبور قوی
رمزهای عبور ساده و قابلحدس، بزرگترین ضعف امنیتی هر سیستمی هستند. با اجبار کاربران به انتخاب رمزهای عبور پیچیده، کار را برای ابزارهای Brute Force دشوارتر میکنید. سیاست رمز عبور قوی باید شامل موارد زیر باشد:
- حداقل طول کاراکتر: حداقل ۱۲ کاراکتر.
- ترکیب کاراکترها: استفاده از حروف بزرگ و کوچک، اعداد و نمادها (!@#$%^&*).
- عدم استفاده از اطلاعات شخصی: مانند نام، تاریخ تولد یا کلمات رایج.
۴. استفاده از CAPTCHA در فرمهای ورود
CAPTCHA مخفف Completely Automated Public Turing test to tell Computers and Humans Apart یک ابزار ساده برای تشخیص انسان از ربات است. با افزودن یک چالش ساده (مانند انتخاب تصاویر یا واردکردن حروف کجومعوج) به فرم ورود، از فعالیت اسکریپتهای خودکار که حملات Brute Force را اجرا میکنند جلوگیری میکنید.
جلوگیری از Brute Force در SSH با ۴ اقدام
سرویس SSH (Secure Shell) دروازه اصلی مدیریت سرورهای لینوکسی است و به همین دلیل، یکی از اهداف اصلی مهاجمان برای حملات Brute Force محسوب میشود. باتنتها بهشکل خستگیناپذیری پورت پیشفرض (22) را برای پیدا کردن نامهای کاربری و رمزهای عبور رایج اسکن میکنند. بنابراین، امنیت سرور لینوکس در برابر brute force به ایمنسازی SSH گره خورده است.
خوشبختانه با چند اقدام ساده اما هوشمندانه، میتوانید دیواری محکم در برابر این حملات بسازید و درخصوص جلوگیری از brute force در VPS یا سرور اختصاصی خود بیمه شوید. در جدول زیر، ۴ راهکار اصلی برای جلوگیری از brute force در SSH را معرفی و سپس هر کدام را توضیح میدهیم.
| روش امنسازی SSH | هدف اصلی و دلیل اهمیت |
|---|---|
| تغییر پورت پیشفرض SSH | کاهش چشمگیر تعداد حملات خودکار و رباتها |
| غیرفعال کردن لاگین Root | حذف مهمترین و قابلپیشبینیترین نام کاربری (root) |
| استفاده از کلید SSH | جایگزینی رمزهای عبور آسیبپذیر با احراز هویت رمزنگاریشده |
| نصب و راهاندازی Fail2Ban | شناسایی و مسدودسازی IP مهاجمان بهصورت خودکار |
۱. تغییر پورت SSH:
اولین و سادهترین قدم، تغییر پورت SSH از ۲۲ به یک عدد دیگر (مثلاً در بازه ۱۰۰۰ تا ۶۵۵۳۵) است. این کار شما را از دید اکثر اسکنرهای خودکار که فقط پورت پیشفرض را بررسی میکنند مخفی نگه میدارد.
۲. غیرفعال کردن لاگین کاربر Root:
کاربر root بالاترین سطح دسترسی را در سرور لینوکس دارد و نام آن برای همه مشخص است. با غیرفعال کردن ورود مستقیم این کاربر ازطریق SSH، مهاجمان را مجبور میکنید که علاوهبر رمز عبور، نام کاربری را نیز حدس بزنند که کار را برایشان بسیار دشوارتر میکند.
۳. استفاده از کلید SSH به جای رمز عبور:
این روش امنترین راه برای اتصال به سرور است. در این مکانیزم شما یک جفت کلید (عمومی و خصوصی) میسازید. کلید عمومی روی سرور قرار میگیرد و کلید خصوصی نزد شما باقی میماند. برای ورود، سیستم بهجای رمز عبور، این دو کلید را تطبیق میدهد که عملاً شکستن آن با روش Brute Force غیرممکن است.
۴. استفاده از Fail2Ban:
این ابزار یک سیستم پیشگیری از نفوذ (IPS) است که لاگهای سرور شما را برای تلاشهای ناموفق ورود تحتنظر میگیرد. پساز چند تلاش ناموفق از یک IP مشخص، Fail2Ban باعث میشود آن IP بهطور خودکار برای مدتی مسدود (یا Ban) شود و حملات Brute Force متوقف شوند.
جلوگیری از حملات Brute Force در وردپرس
وردپرس بهدلیل محبوبیت بالا، هدف شماره یکِ حمله جستجوی فراگیر در سیستمهای مدیریت محتوا است. مهاجمان معمولاً دو نقطه اصلی را هدف قرار میدهند: فایل wp-login.php (صفحه ورود) و xmlrpc.php (برای دسترسی از راه دور). نکته مهم این است که جلوگیری از brute force در وردپرس علاوهبر امنیت سایت برای جلوگیری از مصرف زیاد منابع سرور و جلوگیری از هک سرور ضروری است.
در ادامه سه راهکار مؤثر برای محافظت از سایت وردپرسی شما آورده شده است:
۱. تغییر آدرس صفحه ورود:
بهطور پیشفرض، صفحه ورود همه سایتهای وردپرسی wp-admin یا wp-login.php است. با استفاده از افزونههایی مانند WPS Hide Login میتوانید این آدرس را به چیزی منحصربهفرد تغییر دهید. بااینکار، رباتها دیگر نمیتوانند صفحه ورود شما را پیدا کنند.
۲. محدود کردن تلاش برای ورود:
افزونههای امنیتی محبوبی مانند Limit Login Attempts Reloaded یا Wordfence به شما اجازه میدهند تعداد دفعاتی که یک کاربر میتواند رمز عبور اشتباه وارد کند را محدود کنید. پساز رسیدن به آستانه مشخصشده، IP مهاجم برای مدتی مسدود میشود. این روش یکی از سادهترین و مؤثرترین راهها برای خنثی کردن حملات بروت فورس است.
۳. استفاده از فایروال برنامه وب یا WAF
سرویسهایی مانند Cloudflare یا فایروالهای اختصاصی سرور، یک لایه امنیتی قدرتمند بین سایت شما و اینترنت ایجاد میکنند. WAF میتواند ترافیک مخرب، رباتهای حملهکننده و تلاشهای Brute Force را قبلاز اینکه حتی به سرور شما برسند، شناسایی و مسدود کند. این راهکار، دفاعی پیشگیرانه و بسیار کارآمد برای جلوگیری از هک شدن سایت است.
چکلیست اقدامات فوری هنگام حمله Brute Force

حتی با بهترین استراتژیهای پیشگیرانه، ممکن است روزی در لاگهای سرور خود با هزاران تلاش ناموفق برای ورود مواجه شوید و بفهمید که زیر آتش یک حمله Brute Force هستید. در این لحظات، سرعت و دقت در واکنش، میتواند یک دردسر کوچک را تبدیل به یک فاجعه امنیتی کند.
هدف اصلی، رفع حملات brute force در سرور است، پیشاز آنکه مهاجم به هدف خود برسد یا منابع سرور شما بهطور کامل مصرف شوند. این چکلیست به شما کمک میکند تا بهسرعت اوضاع را مدیریت کنید:
- ۱. شناسایی و مسدودسازی IPهای مهاجم:
اولین و فوریترین قدم، پیداکردن آدرسهای IP است که درخواستهای لاگین متعدد ارسال میکنند. با بررسی لاگهای سرور (مانند /var/log/auth.log در لینوکس برای SSH یا لاگهای دسترسی وبسرور) میتوانید این IPها را شناسایی و به کمک فایروال (مانند UFW یا iptables) آنها را مسدود کنید. ابزارهایی مانند Fail2Ban این فرایند را خودکار میکنند.
- ۲. بررسی وضعیت منابع سرور (CPU و RAM):
حملات Brute Force میتوانند پردازنده و حافظه سرور شما را بهمیزان زیادی درگیر کنند و باعث کندی یا از دسترس خارجشدن سرویسهایتان شوند. با دستوراتی مانند top یا htop وضعیت منابع را بررسی کنید. اگر مصرف منابع به شکل غیرعادی بالا است، شاید لازم باشد پروسههای مشکوک را متوقف کنید یا بهطور موقت سرویس موردحمله (مثلاً SSH) را ریاستارت کنید.
- ۳. تغییر فوری رمزهای عبور مهم:
اگر شک دارید که ممکن است حملهای موفقیتآمیز بوده باشد (مثلاً یک حساب کاربری قفل شده است)، فوراً رمز عبور آن حساب و سایر حسابهای کاربری با دسترسی بالا (مانند root یا ادمین) را تغییر دهید.
- ۴. تحلیل لاگها برای یافتن الگو:
کمی عمیقتر شوید. آیا حملات فقط روی یک نام کاربری خاص متمرکز شدهاند؟ آیا از یک رنج IP مشخص میآیند؟ پیدا کردن این الگوها به شما کمک میکند تا دفاع خود را هوشمندانهتر بچینید.
نکته تکمیلی: بسیاری از تکنیکهای دفاعی در برابر حملات Brute Force و DDoS همپوشانی دارند. برای تقویت لایههای دفاعی شبکه خود، میتوانید از راهنمای ما در مقاله «چک لیست جامع مقابله با حملات DDoS» نیز استفاده کنید.
نکتهای درباره لزوم ارتقای زیرساخت
جلوگیری از حملات Brute Force آنهم بهصورت مداوم، یک نبرد فرسایشی است. حتی اگر موفق به دفع آنها شوید، یک حقیقت مهم پابرجا میماند: هر حمله، بخشی از منابع پردازشی (CPU و RAM) سرور شما را مصرف میکند. این یعنی حتی یک حمله ناموفق هم میتواند به قیمت کُند شدن وبسایت یا سرویس شما تمام شود.
بنابراین بهرهمندی از زیرساخت قدرتمندی که با هر حملهای آخ نگوید، بهمنظور افزایش امنیت سرور در اینترنت ملی ایزوله اهمیت زیادی دارد. داشتن زیرساختی که امکانات امنیتی را در سطح شبکه (مانند فایروالهای سختافزاری و نرمافزاری پیشرفته) در اختیار شما بگذارد و منابع کاملاً ایزوله برایتان فراهم کند، اولین و مهمترین خط دفاعی شما است. وقتی حملات در همان لایه شبکه متوقف شوند، هرگز به سرور شما نمیرسند که منابع ارزشمند آن را هدر دهند.
اگر برای پیادهسازی راهکارهای گفته شده در این مقاله به دسترسی کامل (root) و محیطی امنتر و ایزولهتر نیاز دارید، خرید سرور ابری یک راهکار اصولی و قدمی هوشمندانه برای ارتقای امنیت است.
برای آشنایی بیشتر با مزایای فنی این زیرساخت میتوانید مقاله سرور ابری ما را مطالعه فرمایید.
گوشهای از مزایای سرورهای ابری فردوسی:
- امکان ایجاد تنظیمات امنیتی در بالاترین لایههای فایروال
- افزایش و تغییر منابع سیستم متناسب با نیاز لحظهای و بدون وقفه
- پرداخت هزینههای بهازای ساعات استفاده از سرور (پرداخت بهمیزان مصرف)
- خودکارسازی فرایندها (کنترل ورودی/خروجی، منابع و…) با کلید api
- نصب خودکار اسکریپتهایی مانند داکر یا وردپرس ازطریق بازاریچه ابری
- بهرهمندی از پردازندههای نسل جدید و هارد پرسرعت NVMe
- نسخه دمو و ۱۰۰ هزارتومان اعتبار رایگان برای تست بدون هزینه امکانات
- و کلی امکانات کاربردی و منحصربهفرد دیگر!
جمعبندی
در این راهنما دیدیم که جلوگیری از حملات Brute Force بیشاز آنکه یک اقدام پیچیده باشد، مجموعهای از تنظیمات هوشمندانه و لایهبندیشده است. اقداماتی مانند محدودسازی تلاشهای ورود با Fail2Ban و فعالسازی احراز هویت دوعاملی (MFA) یا امنسازی SSH و وردپرس، هرکدام یک لایه به دیوار دفاعی شما اضافه میکنند. مهمترین پیام این است که امنیت یک فرایند مستمر از مجموعهای از اقدامات است. با پیادهسازی این تکنیکها، میتوانید با اطمینان بیشتری از زیرساخت دیجیتال خود محافظت کنید.
شما از چه روشهای دیگری برای تقویت امنیت سرور خود در برابر این نوع حملات استفاده میکنید؟ تجربیات خود را با ما در میان بگذارید.
منابع:
موسسه استاندارد و فناوری (NIST) | سایت attack.mitre | راهنمای هویت دیجیتال | nsa | cloudflare | radu
سؤالات متداول
حمله Brute Force چیست و چه تفاوتی با Dictionary Attack دارد؟
Brute Force (حمله کور): به زبان ساده، یک روش آزمون و خطای کاملاً سیستماتیک برای حدس زدن رمز عبور است. در این روش، ابزارهای خودکار تمام ترکیبات ممکن از حروف، اعداد و نمادها را امتحان میکنند تا به رمز صحیح برسند.
Dictionary Attack (حمله مبتنی بر دیکشنری): این روش هوشمندانهتر است. مهاجم بهجای امتحان تمام ترکیبات، از یک لیست کلمات (مانند کلمات رایج در یک زبان، رمزهای عبور فاش شده، یا اصطلاحات مرتبط با یک سازمان) استفاده میکند. این نوع حمله معمولاً سریعتر به نتیجه میرسد.
از کجا بفهمیم هدف حمله Brute Force قرار گرفتهایم؟
نشانههای اصلی عبارتاند از:
افزایش ناگهانی و شدید بار پردازنده (CPU Load) بدون دلیل مشخص
مشاهده هزاران تلاش ناموفق برای ورود در فایلهای لاگ سرور (مثلاً auth.log برای SSH یا access.log برای وبسرور)
دریافت ایمیلهای متعدد مبنی بر تلاش برای ورود به حسابهای کاربری
قفل شدن مکرر حسابهای کاربری بهدلیل تلاشهای ناموفق زیاد
چگونه از حملات brute force جلوگیری کنیم؟
بهترین راه، ایجاد یک دفاع چندلایه است. هیچ راهکار قطعی و واحدی وجود ندارد، اما ترکیب موارد زیر مؤثرترین استراتژی است:
محدود کردن تلاشهای ورود (Rate Limiting): استفاده از ابزارهایی مانند Fail2Ban
استفاده از رمزهای عبور طولانی و پیچیده
فعالسازی احراز هویت دوعاملی (2FA/MFA)
امنسازی سرویسهای حساس: مانند تغییر پورت پیشفرض SSH و غیرفعال کردن root login
استفاده از CAPTCHA در فرمهای ورود برای جلوگیری از حملات رباتها
آیا تغییر پورت SSH و غیرفعال کردن root login در مقابل حملات login به سایتها واقعاً مؤثر است؟
تغییر پورت SSH: بله، بسیار مؤثر است. اکثر رباتهای مهاجم به صورت خودکار فقط پورت پیشفرض (۲۲) را اسکن میکنند. با تغییر آن، شما از بیشتر این حملات خودکار پنهان میشوید.
غیرفعال کردن root login: این اقدام حیاتی است. نام کاربری root برای همه شناخته شده است و این یعنی مهاجم نیمی از راه را رفته است. با غیرفعال کردن آن، مهاجم مجبور است هم نام کاربری و هم رمز عبور را حدس بزند که کار را بسیار دشوارتر میکند.
برای وردپرس بهترین راهکار امنیتی چیست؟
علاوهبر موارد عمومی، در وردپرس میتوانید:
از افزونههای امنیتی معتبر مانند Wordfence یا iThemes Security استفاده کنید که قابلیتهایی مثل محدودیت تلاش ورود، 2FA و مسدودسازی IP دارند.
آدرس صفحه ورود (wp-admin) را تغییر دهید.
از نام کاربری admin استفاده نکنید.
آیا استفاده از کلید SSH بهتر از رمز عبور است؟
قطعاً بله. کلیدهای SSH بسیار طولانیتر و پیچیدهتر از هر رمز عبوری هستند که انسان بتواند بهخاطر بسپارد. شکستن آنها ازطریق Brute Force تقریباً غیرممکن است و امنترین روش برای ورود به سرور محسوب میشود.
اگر حمله شروع شد، اولین و فوریترین اقدام چیست؟
اولین قدم، شناسایی سریع IPهای مهاجم ازطریق تحلیل لاگها و مسدودکردن فوری آنها با استفاده از فایروال (مثلاً iptables یا UFW) است. این کار فشار را از روی سرور برداشته و به شما فرصت میدهد تا راهکارهای دائمیتر را پیادهسازی کنید.
چرا این حملات اغلب روی سرورها (SSH) و سایتها (صفحه ورود) انجام میشود؟
زیرا این دو، دروازههای اصلی ورود به داراییهای دیجیتال شما هستند. دسترسی به سرور ازطریق SSH به مهاجم کنترل کامل میدهد و ورود به پنل مدیریت یک سایت (مانند وردپرس) امکان ایجاد خرابی، سرقت اطلاعات یا انتشار بدافزار را فراهم میکند.

