حمله Brute Force تلاشی برای شکستن رمز عبور، یافتن نام کاربری، یافتن یک صفحه وب پنهان یا یافتن کلید مورد استفاده برای رمزنگاری پیام با استفاده از یک روش آزمون و خطا و بررسی تمام حالات ممکن است. این روش به میزان زیادی از امیدواری نیز نیاز دارد تا در نهایت رمز عبور را به درستی پیدا کند. Brute force حملهای قدیمی اما همچنان محبوب و کاربری است.
یکی از کاربردهای حمله Brute Force انجام دادن کرک است. کرک یا Cracking عنوان عملیاتی است که معمولن مهاجم برای به دست آوردن رمز عبور یا نام کاربری جهت وارد شدن به یک سرور، سایت و سرویس انجام میدهد. در این نوع حملات مهاجم با استفاده از الگوهایی که در اختیار دارد ابزارهایی را استفاده میکند تا بتواند فهرستی از کاربران یا رمزهای موجود را روی سرور مدنظر تست کند. با این کار مهاجم در نهایت میتواند نام کاربری یا رمز عبور سرور، سایت و سرویس را به دست آورد. حملات Cracking خود دارای انواع مختلفی هستند و عملکرد و الگوی خاصی را نمیتوان برای آنها در نظر گرفت. ولی با توجه به استفاده کاربران از پسوردهای تکراری، فهرستی از پسوردها، نامکاربریها و... وجود دارد که در اصطلاح به آن دیکشنری گفته میشود و رایجترین روش برای انجام حملهی Cracking است.
در دیکشنریها برای پسوردهایی که کاربرد بیشتری میان کاربران دارند، الگوهای خاصی تعریف میشود. برای نمونه 123456 پسوردی است که اولین و بیشترین استفاده در دیکشنری پسورد را دارد. دیکشنری در واقع فهرستی از رمز عبورهای رایج یا رمزهایی است که مهاجمان در طول سالهای قبل با استفاده از آنها به خیلی از سایتها نفوذ کردهاند. مهاجم هر رمز در دیکشنری را برای نفوذ امتحان میکند و این کار را تا زمانی که ترکیب صحیح نام کاربری و رمز عبور سایت را کشف کند، ادامه میدهد. همچنین در نوع دیگری از حملات cracking، مهاجمان فهرستی از پسوردها یا نام کاربریهایی دارند که در اصطلاح به آنها Combo گفته میشود. معمولن این Comboها بعد از تست بهوسیلهی ابزارهای کرک، روی سایتها یا سرویسهای مقصد، رتبه نیز میگیرند.
یکی دیگر از روشهای انجام Brute Force شکستن رمز عبور با نرمافزارهایی است که برای این کار تولید شدهاند. این نرمافزارها برای سرویس مقصد ایجاد میشوند و با توجه به الگوریتمهای آماده، نوع سیستم و موارد مرتبط، رمزهای عبور تصادفی ایجاد میکنند. در حملات Brute Force، مهاجمان الگوهای خود و همچنین بازههای خطاگیری و قفل شدن را در نرمافزار مورد استفاده تنظیم و فیلترینگهای خود را نسبت به سرویس مقصد آنقدر محدود میکنند تا مدت زمان دریافت نتیجه را به حداقل برسانند. برای نمونه مهاجم وقتی که قصد نفوذ به یک سرور لینوکس را دارد، میداند که امکان استفاده از کاراکتر ^ یا % وجود ندارد یا بسیار کم است، پس فیلترهای اعمال شده برای ایجاد نام کاربری را از این مقادیر خالی میکند تا نتایج را در زمان سریعتری دریافت کند.
روشهای جلوگیری از حملات Brute Force
تقریبا میتوان گفت روشی برای مقابله کامل با این نوع حملات وجود ندارد اما، میتوان به گونهای احتمال یافتن پسورد در این حملات را به حداقل رساند. برخی از این روشها به شرح زیر هستند:
1. رمزهایعبور قویِ انتخاب کنید. بزرگترین هدیهای که میتوانید به مهاجمان بدهید رمزهای عبور یکسان برای تمامی سرورها، حسابها و... است! از این اقدام جدا خودداری نمایید. برای رمزنگاری روی تمام نرمافزارها، سرورها، بخش مدیریت سایتها و... از رمز عبورهای Full Complex و طولانی استفاده کنید. رمزها باید شامل حروف بزرگ و کوچک و اعداد و کاراکترهای خاص مثل @ # ! باشند.
2. از کلمات معنیدار و قابل حدس در رمزهای عبور استفاده کنید.
3. از الگوریتمهای رمزنگاری پیچیده مانند SHA-512 استفاده کنید، از الگوریتمهای رمزنگاری قدیمی یا ضعیف استفاده نکنید. استفاده کردن از الگوریتمهای پیچیده و جدید به طور چشمگیری سرعت حملات Brute Force را کاهش میدهد.
4. رمزهای عبور خود را در نرمافزارهای مخصوص این کار نگهداری کنید. به این ترتیب هم رمزهای پیچیده خود را فراموش نمیکنید و هم به راحتی به آنها دسترسی خواهید داشت. در ضمن امنیت این نرمافزارها در برابر اینگونه حملات نیز بسیار بیشتر است.
5. اطلاعات رمزگذاری شدهی خود را در یک جای امن نگه دارید که مهاجمان به آن دسترسی نداشته باشند.
6. رمزهای عبور مشترک سرور خود را در سایتهایی که ثبتنام میکنید، وارد نکنید. یکی دیگر از بزرگترین مشکلاتی که مهاجم با کمک آن میتواند بدون نیاز به Brute Force سرور شما را هک کند، پسورد مشترک و ورود آنها در سایتهای غیر معتبر است.
مواردی که میتوانند جلوی حملات Brute Force روی وبسایتها را بگیرند، کمی سادهتر هستند و کاربر با اندکی تغییر، به سادگی میتواند حداقل الگوهای راحت را برای مهاجم حذف کند. برای نمونه تمام کاربران آماتور و مهاجمان، میدانند که صفحه ورودی پیشفرض قسمت ادمین، برای سیستم مدیریت wordpress و ورود اعضای آن، آدرس /wp-admin.php و wp-login.php است. پس اولین قدم برای جلوگیری از حملات مهاجمان، تغییر صفحات پیشفرض و یا ایجاد محدودیت برای دسترسی به این صفحه است. برای نمونه صفحات مدیریتی حساس برای سیستم خود را میتوانید محدود به IP کنید. با این روش امکان تست پسورد برای قسمت مدیریت بهوسیله مهاجمان کمتر وجود دارد. در سرورها نیز با تغییر پورتهای پیشفرض سرور میتوانید جلوی این حملات را بگیرید. برای نمونه پورت پیشفرض ورود با ssh پورت شماره 22 است و میتوان آن را به پورت دیگری تغییر داد. در سرورهای ویندوزی نیز بیشترین کرکها روی پورت پیشفرض Remote Desktop با شماره 3389 انجام میشوند. اگر از این سرویس استفاده میکنید، پورت پیشفرض Remote Desktop را حتما عوض کنید.