Brute Force Attack یا (حملات بروت فورس) نوعی از حملات کرکینگ (Cracking) می باشد که در آن هکر سعی میکند با استفاده از آزمون تست و خطا Username و Password یک سیستم یا سرور را حدس بزند. در این نوع حملات هکرها سعی میکنند با استفاده از roboot ها و ابزارهای مشابه شروع به ارسال میلیون ها user و password به سمت صفحه login وب سایت یا مثلا پورت ssh سرور شما، جهت حدس زدن یوزر و پسورد شما میکنند.
مختصری درباره حملات کرکینگ (Cracking)
پیش از توضیح دادن حملات بروت فورس که خود نوعی از حملات کرکینگ است، ابتدا توضیح مختصری درباره حملات (Cracking) بدهیم. در حملات کرکینگ (Cracking) هکر با استفاده از ابزارهای مخصوص در تلاش برای یافتن مقدار اولیه یک عبارت رمزگذاری شده و یا پیدا کردن یک مقدار حساس مثلاً رمز عبوری است که حتی عبارت رمزگذاری شده آن را هم در دست ندارد.
حملات کرکینگ اغلب از الگوی خاصی پیروی نکرده و با بررسی همه احتمالات موجود و یا مقادیری که احتمال صحیح بودن آن ها بیشتر است، انجام می پذیرد از این رو حملات کرکینگ را به بخش های مختلفی تقسیم کرده اند. دو مورد از مهترین این ها، حملات دیکشنری (Dictionary) و حملات بروت فورس (Brute Force) است.
در حملات بروت فورس با توجه به اینکه یک کلمه عبور 8 کاراکتری 2 به توان 63 بار آزمایش میشود، برای پیدا کردن یک یوزر و پسورد شما نیاز به یک سرور قدرتمند خواهید داشت. یک کامپیوتر معمولی میتواند 10 کلمه عبور را در هر ثانیه تست کند، پس هر چی پسورد قوی تری داشته باشید کار هکر را سخت تر و پیدا کردن یوزر و پسورد توسط ربوت ها را طولانی تر خواهید کرد. این روش به دلیل کاهش سرعت در حملات آنلاین بر روی سایت ها و سرورها پیشنهاد نمی شود ولی جهت استفاده در حملات آفلاین (مثلا داخل شبکه) بسیار سرعت بالایی دارد.
کرک کردن چنین رمزهای 8 رقمی که 96 کاراکتر مختلف می تواند داشته باشد آسان و سریع نخواهد بود. کرک چنین رمزهایی ممکن است از چند دقیقه تا صدها قرن به طول بینجامد! با این که امکان یافتن رمز اصلی در بروت فورس 100% است اما به قدری از منابع کامپیوترها استفاده خواهد شد و به قدری زمان خواهد برد که برای چنین رمزهایی باید بیخیال بروت فورس شویم.
حملات Brute Force اما برای رمزهایی که فقط از اعداد یا کاراکترهای کمی استفاده شده باشد بسیار موثر خواهد بود. مثلاً یک رمز 8 رقمی که از اعداد 0-9 استفاده شده است می تواند در کمتر از یک روز با یک کامپیوتر عادی کرک شود. به علاوه این متد برای رمزهایی با طول حدود 5 کاراکتر و کمتر نیز بسیار مقرون به صرفه و کاربردی خواهد بود. مثلا اگر یک رمز 5 کاراکتر با همه 96 کاراکتر ممکن وجود داشته باشد، می تواند در کمتر از 10 روز کرک شود.
آشنایی با حملات brute force برای همه مدیران سایت ها و کاربران اینترنتی که دارای پنل مدیریت اینترنتی یا نام کاربری و رمز عبور در یک سایت خاص هستند لازم و ضروری است؛ چراکه با شناختن این نوع حمله و راهکار های مقابله با آن گامی بلند در جهت ارتقای امنیت سایبری برداشته شده و میزان کمتری از سایت ها توسط این روش خطرناک مورد نفوذ قرار می گیرند.
گفتني است كه این یک مقاله آموزشی brute force نیست و صرفا براي آشنایی با روش های مقابله با آن بوده و هر گونه استفاده نابجا از این مطلب به عهده خواننده است.
روش های عمومی brute force
1 : امتحان کردن دستی رمز عبور
در این روش هکر به صورت دستی نام کاربری و رمز عبور فرم ورود را توسط روش آزمون و خطا بررسی می کند. در این روش با توجه به تنظیمات امنیتی، سایت هکر می تواند تا میزان مجازی برای آزمودن رمز عبور مورد نظر اقدام کند. این روش ساده ترین راه برای کشف رمز عبور است که بیشتر به ضعف امنیت رمز عبور انتخاب شده بستگی دارد.
2 : حمله Dictionary
حمله Dictionary را می توان به عنوان یک حمله Brute Force هوشمند تعریف کرد. این حمله از رمز عبوری که یک کلمه است و بتوان آن را در یک دیکشنری پیدا کرد استفاده می کند. تنها محدودیت واقعی که حمله Brute Force همیشه با آن مواجه بوده، زمان لازم برای پایان جست و جو و همچنین قدرت محاسباتی است. این روش یکی از معروف ترین و پراستفاده ترین راه ها برای کشف رمز عبور ذخیره شده در جدول دیتابیس سرور است.
در یک حمله Brute Force عادی، ما هر ترکیب احتمالی از اعداد، حروف و سمبل ها را آزمایش می کنیم تا به کلمه عبور واقعی برسیم. در این روش، هکر با در اختیار داشتن میلیون ها کاراکتر پیشنهادی برای امتحان در فرم ورود به پنل مدیریت و با استفاده از ابزارهای بروت فورس، جهت حمله به هدف مورد نظر خود اقدام می کند که یک پروسه زمان بر و طولانی بوده و با قدرت سخت افزاری سیستم مخصوصا کارت گرافیک ارتباط کاملا مستقیم دارد. هر چقدرGPU قوی تر باشد، روند انجام کار سریع تر است. در واقع هکر مانند یک فرد مسلح به سمت هدف با سرعت بالا شلیک می کند تا هدف مورد نظر آسیب پذیر شود.
حمله دیکشنری (Dictionary Attack) فقط در صورتی موفقیت آمیز خواهد بود که رمز عبور یک کلمه حقیقی باشد، مثلا linuxzone. در نتیجه این نوع حمله با محدودیت هایی همراه است؛ چراکه اگر کاربر هوشمندی کرده و رمز عبور پیچیده و قوی انتخاب کرده باشد در این صورت کار هکر بسیار سخت و دشوار خواهد بود. این روش در برابر پسورد های قوی که ترکیبی از کلمات و شماره ها و سمبل ها هستند زیاد کارآمد نیست.
3 : Mask Attack
در صورتی که هکر رنج تعداد کاراکترهای رمز عبور را حدس بزند، این روش کارآمد ترین راه محسوب می شود؛ چراکه با توجه به طولانی و زمان بر بودن پروسه حمله Brute Force، کاهش میزان احتمالات باعث سرعت بخشیدن به طرز چشم گیری به روند کار خواهد شد. همچنین در صورتی که هکر کاراکتر های مشخصی از رمز عبور را تشخیص دهد، در این روش برای كشف بقيه کاراکتر ها امتحان خواهد کرد. به عنوان مثال هکر یقین دارد که مقدار ابتدایی رمز asreertebat است، بنابرین توسط این روش به دنبال کاراکتر های بعد از asreertebat می گردد. براي مثال، از asreertebat1000 تا asreertebat10000000 و کلیه اعداد در این رنج را توسط ابزار بررسی می کند یا هر نوع رنج و کاراکتری که هکر احتمال آن را بدهد.
4 : Combination
هکر در این روش دو دیکشنری جداگانه را همزمان با یکدیگر مورد استفاده قرار می دهد و عبارات هر دیکشنری را با هم ترکیب و بررسی می کند و هر دو عبارت متناظر با یکدیگر ترکیب و مورد آزمایش قرار می گیرند. میزان ترکیب و رنج کاراکتر در این روش کاملا انعطاف پذیر بوده و هکر قدرت انتخاب زیادی را دارد.
5 : روش hybrid
این روش یکی از جدید ترین و کارآمد ترین روش های هک رمز عبور است که نه تنها عبارات حقیقی و تکی بلکه عبارات ترکیبی مانند اعداد، سمبل ها و کاراکتر های ویژه را نیز شامل می شود و از قدرت مانور بیشتری برخوردار است. در واقع بسیاری از کاربران تصور می کنند صرفا با اضافه کردن عدد پس از نام خود، رمز عبور ایمن است، در صورتی که هکر پس از ناموفق بودن در کشف رمز عبور توسط متد dictionary به روش hybrid یا دورگه روی می آورد که با اضافه کردن رنج اعداد مشخصی که توسط هکر انتخاب می شود و ترکیب علايم و سمبل های مشخص اقدام به بررسی صحت رمز عبور خواهد کرد.
6 : Brute Force با کارت های گرافیکی (GPU)
شاید به نظر بیاید که انجام بروت فورس با پردازنده اصلی یا CPU انجام می گیرد و این روش بهینه ای است. با این که استفاده از CPU برای کرک کردن برخی از الگوریتم های رمزگذاری بهینه است اما برای بیشتر الگوریتم ها کرک کردن با استفاده از پردازنده های گرافیکی (GPU) بسیار سریع تر و کم هزینه تر خواهد بود.
ما در پردازنده های اصلی تنها چندین هسته داریم که در یک لحظه می توانند تنها یک حالت را امتحان کنند اما در پردازنده های گرافیکی با صدها و گاهاً هزاران هسته پردازشی داریم که در یک لحظه می توانند بسیار بسیار بهینه تر و پر سرعت تر از پردازنده اصلی اقدام به Crack کردن کنند. البته این موضوع برای همه الگوریتم های رمزگذاری صدق نمی کند.
7 : Brute Force برعکس (Reverse)
در این نوع حملات هکر بجای این که مثلاً سراغ یک کاربر خاص در یک سایت برود و رمزهای متعدد را برای آن اکانت تست کند، لیست کاربران را بدست آورده و با انجام یک حمله بروت فورس برعکس با در نظر داشتن یک یا چندین رمز پر استفاده، همه کاربران آن سایت یا گروه خاصی را با آن رمز(ها) امتحان می کند.
این یک روش بسیار موثر برای وقتی است که یک سایت یا سرویس که مخاطبان زیادی دارد بجای یک کاربر خاص، توسط هکر هدف قرار گرفته است. به همین دلیل است که همیشه بهتر است رمزهای غیرقابل حدس زدن و با کاراکترهای بلند بسازیم حتی اگر اکانت ما شناخته شده نباشد.
روش های مقابله با حملات brute force
با توجه به اینکه حملات بروت فورس وسعت بسیاری داشته و در جاهای متعددی قابل استفاده هستند. ابتدا باید محدوده کار مشخص شود؛ مثلا قرار است از فرم ورود به مدیریت یک سایت جوملایی یا وردپرسی محافظت شود یا از پنل مدیریت هاست یا سرور یا.... اما در این قسمت راهکار های متفاوتی برای این نوع حمله ذکر خواهد شد :
1 : استفاده از کد captcha در کنار فرم ورود به پنل
در حالت عادی یک فرم ورود شامل دو کادر نام کاربری و رمز عبور است، اما با اضافه کردن کادر captcha که یک عبارت مشخص در داخل آن نوشته شده، کاربر باید آن را در کادر پایین تر وارد كند که به اصطلاح به آن عبارت امنیتی گفته می شود. همچنين می توان به جای عبارت امنیتی، از سوال امنیتی استفاده کرد که کاربر باید جواب آن را در کادر پایین تر بدهد.
تا زمانی که عبارت یا سوال امنیتی پاسخ داده نشود حتی با صحیح بودن نام کاربری یا رمز عبور، امکان ورود ممکن نیست که اين مساله یک سد امنیتی مهم در مقابل حملات brute force محسوب می شود، چون با توجه به اینکه حملات brute force توسط ربات و نرم افزار ها انجام می شوند، بنابراین با ایجاد کد کپچا ربات یا نرم افزار از هوش لازم برای پاسخگویی به کد کپچا برخوردار نیستند؛ چراکه سوالات از نوع انسانی مطرح می شود.
2 : Block کردن ip های مهاجم
یکی دیگر از اقدامات مهم و موثر برای پنل مدیریت سایت و سرور، بلاک کردن ip هایی است که بیش از سه بار رمز عبور را اشتباه وارد می کنند. بر اساس این اقدام، هر آی پی که بیش از حد مجاز اقدام به تست رمز عبور در فرم ورود را انجام دهد توسط ابزار ها یا پلاگین های اختصاصی تا مدت زمان مشخصی بلاک خواهد شد. همچنین در تنظیمات سرور ها نیز این امکان وجود دارد تا توسط فایروال سرور آی پی های مهاجم بلاک شوند.
3 : تغییر پورت های پیش فرض سرور
یکی دیگر از روش های محافظت در مقابل این گونه حملات، تغییر پورت پیش فرض برنامه ها توسط سرور است. به عنوان مثال پورت ssh را که به صورت پیش فرض 22 است، به یک پورت بیکار دیگر تغییر داد؛ چون بر حملات brute force به تعیین پورت نیاز بوده که همیشه پورت پیش فرض مدنظر است. همچنین پورت پیش فرض ورود به پنل مدیریت هاست نیز که مثلا در دایرکت ادمین شماره 2222 است نیز بهتر است تغییر یابد یا در cpanel که 2083 است نیز در صورت تغییر پورت، کار هکر بسیار سخت تر خواهد شد. به طور کلی تغییر پورت های پیش فرض در سرور یک سد امنیتی بسیار مناسب برای جلوگیری از حملات بروت فورس به وجود خواهد آورد.
4 : ایمن سازی فرم ورود
یکی دیگر از راهکارهای ایمن سازی، اسکریپت فرم ورود است؛ چرا که از فرم ورود به پنل مدیریت سایت ها در صورت مشکلات امنیتی و رعایت نکردن اصول برنامه نویسی برای سایت خطرناک و امکان نفوذ را افزایش می دهد.
5 : انتخاب نام کاربری مناسب و تغییر مداوم آن
برای انجام حملات brute force فهمیدن نام کاربری الزامی است؛ بنابرین انتخاب نام کاربری مناسب و تعویض مرتب آن می تواند سد امنیتی مناسبی در برابر حملات ایجاد کند.
6 : انتخاب رمز عبور مناسب
شاید بتوان گفت مهم ترین عامل در جلوگیری از حملات brute force، انتخاب رمز عبور مناسب است، اما به طور کلی انتخاب رمز عبور بین 15 تا 25 رقم، استفاده از جملات، استفاده نکردن از اسامی معروف، استفاده نکردن از علايم و رمزهای ساده و قابل حدس، ترکیب اعداد و علايم ویژه در رمز، از معيارهای مناسب برای انتخاب رمز عبور ایمن محسوب می شوند.
در پایان باید گفت حملات brute force قربانیان زیادی را تا به امروز گرفته که دلایل متعددی مانند ضعف امنیتی فرم های ورود، رمز عبور ناامن، پیش فرض بودن پورت ها، نام کاربری قابل حدس، استفاده نکردن از افزونه های امنیتی، فقدان تنظیمات بهینه فایروال سرور در آن دخیل بوده اند.
مختصری درباره حملات کرکینگ (Cracking)
پیش از توضیح دادن حملات بروت فورس که خود نوعی از حملات کرکینگ است، ابتدا توضیح مختصری درباره حملات (Cracking) بدهیم. در حملات کرکینگ (Cracking) هکر با استفاده از ابزارهای مخصوص در تلاش برای یافتن مقدار اولیه یک عبارت رمزگذاری شده و یا پیدا کردن یک مقدار حساس مثلاً رمز عبوری است که حتی عبارت رمزگذاری شده آن را هم در دست ندارد.
حملات کرکینگ اغلب از الگوی خاصی پیروی نکرده و با بررسی همه احتمالات موجود و یا مقادیری که احتمال صحیح بودن آن ها بیشتر است، انجام می پذیرد از این رو حملات کرکینگ را به بخش های مختلفی تقسیم کرده اند. دو مورد از مهترین این ها، حملات دیکشنری (Dictionary) و حملات بروت فورس (Brute Force) است.
در حملات بروت فورس با توجه به اینکه یک کلمه عبور 8 کاراکتری 2 به توان 63 بار آزمایش میشود، برای پیدا کردن یک یوزر و پسورد شما نیاز به یک سرور قدرتمند خواهید داشت. یک کامپیوتر معمولی میتواند 10 کلمه عبور را در هر ثانیه تست کند، پس هر چی پسورد قوی تری داشته باشید کار هکر را سخت تر و پیدا کردن یوزر و پسورد توسط ربوت ها را طولانی تر خواهید کرد. این روش به دلیل کاهش سرعت در حملات آنلاین بر روی سایت ها و سرورها پیشنهاد نمی شود ولی جهت استفاده در حملات آفلاین (مثلا داخل شبکه) بسیار سرعت بالایی دارد.
کرک کردن چنین رمزهای 8 رقمی که 96 کاراکتر مختلف می تواند داشته باشد آسان و سریع نخواهد بود. کرک چنین رمزهایی ممکن است از چند دقیقه تا صدها قرن به طول بینجامد! با این که امکان یافتن رمز اصلی در بروت فورس 100% است اما به قدری از منابع کامپیوترها استفاده خواهد شد و به قدری زمان خواهد برد که برای چنین رمزهایی باید بیخیال بروت فورس شویم.
حملات Brute Force اما برای رمزهایی که فقط از اعداد یا کاراکترهای کمی استفاده شده باشد بسیار موثر خواهد بود. مثلاً یک رمز 8 رقمی که از اعداد 0-9 استفاده شده است می تواند در کمتر از یک روز با یک کامپیوتر عادی کرک شود. به علاوه این متد برای رمزهایی با طول حدود 5 کاراکتر و کمتر نیز بسیار مقرون به صرفه و کاربردی خواهد بود. مثلا اگر یک رمز 5 کاراکتر با همه 96 کاراکتر ممکن وجود داشته باشد، می تواند در کمتر از 10 روز کرک شود.
آشنایی با حملات brute force برای همه مدیران سایت ها و کاربران اینترنتی که دارای پنل مدیریت اینترنتی یا نام کاربری و رمز عبور در یک سایت خاص هستند لازم و ضروری است؛ چراکه با شناختن این نوع حمله و راهکار های مقابله با آن گامی بلند در جهت ارتقای امنیت سایبری برداشته شده و میزان کمتری از سایت ها توسط این روش خطرناک مورد نفوذ قرار می گیرند.
گفتني است كه این یک مقاله آموزشی brute force نیست و صرفا براي آشنایی با روش های مقابله با آن بوده و هر گونه استفاده نابجا از این مطلب به عهده خواننده است.
روش های عمومی brute force
1 : امتحان کردن دستی رمز عبور
در این روش هکر به صورت دستی نام کاربری و رمز عبور فرم ورود را توسط روش آزمون و خطا بررسی می کند. در این روش با توجه به تنظیمات امنیتی، سایت هکر می تواند تا میزان مجازی برای آزمودن رمز عبور مورد نظر اقدام کند. این روش ساده ترین راه برای کشف رمز عبور است که بیشتر به ضعف امنیت رمز عبور انتخاب شده بستگی دارد.
2 : حمله Dictionary
حمله Dictionary را می توان به عنوان یک حمله Brute Force هوشمند تعریف کرد. این حمله از رمز عبوری که یک کلمه است و بتوان آن را در یک دیکشنری پیدا کرد استفاده می کند. تنها محدودیت واقعی که حمله Brute Force همیشه با آن مواجه بوده، زمان لازم برای پایان جست و جو و همچنین قدرت محاسباتی است. این روش یکی از معروف ترین و پراستفاده ترین راه ها برای کشف رمز عبور ذخیره شده در جدول دیتابیس سرور است.
در یک حمله Brute Force عادی، ما هر ترکیب احتمالی از اعداد، حروف و سمبل ها را آزمایش می کنیم تا به کلمه عبور واقعی برسیم. در این روش، هکر با در اختیار داشتن میلیون ها کاراکتر پیشنهادی برای امتحان در فرم ورود به پنل مدیریت و با استفاده از ابزارهای بروت فورس، جهت حمله به هدف مورد نظر خود اقدام می کند که یک پروسه زمان بر و طولانی بوده و با قدرت سخت افزاری سیستم مخصوصا کارت گرافیک ارتباط کاملا مستقیم دارد. هر چقدرGPU قوی تر باشد، روند انجام کار سریع تر است. در واقع هکر مانند یک فرد مسلح به سمت هدف با سرعت بالا شلیک می کند تا هدف مورد نظر آسیب پذیر شود.
حمله دیکشنری (Dictionary Attack) فقط در صورتی موفقیت آمیز خواهد بود که رمز عبور یک کلمه حقیقی باشد، مثلا linuxzone. در نتیجه این نوع حمله با محدودیت هایی همراه است؛ چراکه اگر کاربر هوشمندی کرده و رمز عبور پیچیده و قوی انتخاب کرده باشد در این صورت کار هکر بسیار سخت و دشوار خواهد بود. این روش در برابر پسورد های قوی که ترکیبی از کلمات و شماره ها و سمبل ها هستند زیاد کارآمد نیست.
3 : Mask Attack
در صورتی که هکر رنج تعداد کاراکترهای رمز عبور را حدس بزند، این روش کارآمد ترین راه محسوب می شود؛ چراکه با توجه به طولانی و زمان بر بودن پروسه حمله Brute Force، کاهش میزان احتمالات باعث سرعت بخشیدن به طرز چشم گیری به روند کار خواهد شد. همچنین در صورتی که هکر کاراکتر های مشخصی از رمز عبور را تشخیص دهد، در این روش برای كشف بقيه کاراکتر ها امتحان خواهد کرد. به عنوان مثال هکر یقین دارد که مقدار ابتدایی رمز asreertebat است، بنابرین توسط این روش به دنبال کاراکتر های بعد از asreertebat می گردد. براي مثال، از asreertebat1000 تا asreertebat10000000 و کلیه اعداد در این رنج را توسط ابزار بررسی می کند یا هر نوع رنج و کاراکتری که هکر احتمال آن را بدهد.
4 : Combination
هکر در این روش دو دیکشنری جداگانه را همزمان با یکدیگر مورد استفاده قرار می دهد و عبارات هر دیکشنری را با هم ترکیب و بررسی می کند و هر دو عبارت متناظر با یکدیگر ترکیب و مورد آزمایش قرار می گیرند. میزان ترکیب و رنج کاراکتر در این روش کاملا انعطاف پذیر بوده و هکر قدرت انتخاب زیادی را دارد.
5 : روش hybrid
این روش یکی از جدید ترین و کارآمد ترین روش های هک رمز عبور است که نه تنها عبارات حقیقی و تکی بلکه عبارات ترکیبی مانند اعداد، سمبل ها و کاراکتر های ویژه را نیز شامل می شود و از قدرت مانور بیشتری برخوردار است. در واقع بسیاری از کاربران تصور می کنند صرفا با اضافه کردن عدد پس از نام خود، رمز عبور ایمن است، در صورتی که هکر پس از ناموفق بودن در کشف رمز عبور توسط متد dictionary به روش hybrid یا دورگه روی می آورد که با اضافه کردن رنج اعداد مشخصی که توسط هکر انتخاب می شود و ترکیب علايم و سمبل های مشخص اقدام به بررسی صحت رمز عبور خواهد کرد.
6 : Brute Force با کارت های گرافیکی (GPU)
شاید به نظر بیاید که انجام بروت فورس با پردازنده اصلی یا CPU انجام می گیرد و این روش بهینه ای است. با این که استفاده از CPU برای کرک کردن برخی از الگوریتم های رمزگذاری بهینه است اما برای بیشتر الگوریتم ها کرک کردن با استفاده از پردازنده های گرافیکی (GPU) بسیار سریع تر و کم هزینه تر خواهد بود.
ما در پردازنده های اصلی تنها چندین هسته داریم که در یک لحظه می توانند تنها یک حالت را امتحان کنند اما در پردازنده های گرافیکی با صدها و گاهاً هزاران هسته پردازشی داریم که در یک لحظه می توانند بسیار بسیار بهینه تر و پر سرعت تر از پردازنده اصلی اقدام به Crack کردن کنند. البته این موضوع برای همه الگوریتم های رمزگذاری صدق نمی کند.
7 : Brute Force برعکس (Reverse)
در این نوع حملات هکر بجای این که مثلاً سراغ یک کاربر خاص در یک سایت برود و رمزهای متعدد را برای آن اکانت تست کند، لیست کاربران را بدست آورده و با انجام یک حمله بروت فورس برعکس با در نظر داشتن یک یا چندین رمز پر استفاده، همه کاربران آن سایت یا گروه خاصی را با آن رمز(ها) امتحان می کند.
این یک روش بسیار موثر برای وقتی است که یک سایت یا سرویس که مخاطبان زیادی دارد بجای یک کاربر خاص، توسط هکر هدف قرار گرفته است. به همین دلیل است که همیشه بهتر است رمزهای غیرقابل حدس زدن و با کاراکترهای بلند بسازیم حتی اگر اکانت ما شناخته شده نباشد.
روش های مقابله با حملات brute force
با توجه به اینکه حملات بروت فورس وسعت بسیاری داشته و در جاهای متعددی قابل استفاده هستند. ابتدا باید محدوده کار مشخص شود؛ مثلا قرار است از فرم ورود به مدیریت یک سایت جوملایی یا وردپرسی محافظت شود یا از پنل مدیریت هاست یا سرور یا.... اما در این قسمت راهکار های متفاوتی برای این نوع حمله ذکر خواهد شد :
1 : استفاده از کد captcha در کنار فرم ورود به پنل
در حالت عادی یک فرم ورود شامل دو کادر نام کاربری و رمز عبور است، اما با اضافه کردن کادر captcha که یک عبارت مشخص در داخل آن نوشته شده، کاربر باید آن را در کادر پایین تر وارد كند که به اصطلاح به آن عبارت امنیتی گفته می شود. همچنين می توان به جای عبارت امنیتی، از سوال امنیتی استفاده کرد که کاربر باید جواب آن را در کادر پایین تر بدهد.
تا زمانی که عبارت یا سوال امنیتی پاسخ داده نشود حتی با صحیح بودن نام کاربری یا رمز عبور، امکان ورود ممکن نیست که اين مساله یک سد امنیتی مهم در مقابل حملات brute force محسوب می شود، چون با توجه به اینکه حملات brute force توسط ربات و نرم افزار ها انجام می شوند، بنابراین با ایجاد کد کپچا ربات یا نرم افزار از هوش لازم برای پاسخگویی به کد کپچا برخوردار نیستند؛ چراکه سوالات از نوع انسانی مطرح می شود.
2 : Block کردن ip های مهاجم
یکی دیگر از اقدامات مهم و موثر برای پنل مدیریت سایت و سرور، بلاک کردن ip هایی است که بیش از سه بار رمز عبور را اشتباه وارد می کنند. بر اساس این اقدام، هر آی پی که بیش از حد مجاز اقدام به تست رمز عبور در فرم ورود را انجام دهد توسط ابزار ها یا پلاگین های اختصاصی تا مدت زمان مشخصی بلاک خواهد شد. همچنین در تنظیمات سرور ها نیز این امکان وجود دارد تا توسط فایروال سرور آی پی های مهاجم بلاک شوند.
3 : تغییر پورت های پیش فرض سرور
یکی دیگر از روش های محافظت در مقابل این گونه حملات، تغییر پورت پیش فرض برنامه ها توسط سرور است. به عنوان مثال پورت ssh را که به صورت پیش فرض 22 است، به یک پورت بیکار دیگر تغییر داد؛ چون بر حملات brute force به تعیین پورت نیاز بوده که همیشه پورت پیش فرض مدنظر است. همچنین پورت پیش فرض ورود به پنل مدیریت هاست نیز که مثلا در دایرکت ادمین شماره 2222 است نیز بهتر است تغییر یابد یا در cpanel که 2083 است نیز در صورت تغییر پورت، کار هکر بسیار سخت تر خواهد شد. به طور کلی تغییر پورت های پیش فرض در سرور یک سد امنیتی بسیار مناسب برای جلوگیری از حملات بروت فورس به وجود خواهد آورد.
4 : ایمن سازی فرم ورود
یکی دیگر از راهکارهای ایمن سازی، اسکریپت فرم ورود است؛ چرا که از فرم ورود به پنل مدیریت سایت ها در صورت مشکلات امنیتی و رعایت نکردن اصول برنامه نویسی برای سایت خطرناک و امکان نفوذ را افزایش می دهد.
5 : انتخاب نام کاربری مناسب و تغییر مداوم آن
برای انجام حملات brute force فهمیدن نام کاربری الزامی است؛ بنابرین انتخاب نام کاربری مناسب و تعویض مرتب آن می تواند سد امنیتی مناسبی در برابر حملات ایجاد کند.
6 : انتخاب رمز عبور مناسب
شاید بتوان گفت مهم ترین عامل در جلوگیری از حملات brute force، انتخاب رمز عبور مناسب است، اما به طور کلی انتخاب رمز عبور بین 15 تا 25 رقم، استفاده از جملات، استفاده نکردن از اسامی معروف، استفاده نکردن از علايم و رمزهای ساده و قابل حدس، ترکیب اعداد و علايم ویژه در رمز، از معيارهای مناسب برای انتخاب رمز عبور ایمن محسوب می شوند.
در پایان باید گفت حملات brute force قربانیان زیادی را تا به امروز گرفته که دلایل متعددی مانند ضعف امنیتی فرم های ورود، رمز عبور ناامن، پیش فرض بودن پورت ها، نام کاربری قابل حدس، استفاده نکردن از افزونه های امنیتی، فقدان تنظیمات بهینه فایروال سرور در آن دخیل بوده اند.