تصویر(1)
brute force، روشی است که برای بدست آوردن اطلاعات شخصی کاربر مانند نام کاربری، گذرواژهها، عبارات عبور و عدد شناسائی فردی (PINs) استفاده می شود. این حملات معمولاً با استفاده از یک اسکریپت یا ربات انجام می شوند تا اطلاعات موردنظر را حدس بزنند و نتیجه ای میسر شود.
در حالی که ممکن است فکر کنید یک گذرواژه اطلاعات شما را ایمن نگه می دارد اما تحقیقات نشان داده است که هر رمز عبور هشت کاراکتری می تواند در کمتر از شش ساعت کرک شود. این بررسی در سال 2012 روی یک دستگاه نسبتاً ارزان قیمت صورت گرفت.
البته لازم به ذکر است که brute force می تواند راهی مفید برای متخصصان فناوری اطلاعات برای تست امنیت شبکه های آنها باشد. در واقع، یکی از اقدامات بررسی قدرت رمزگذاری سیستم این است که یک مهاجم چه مقدار زمان نیاز دارد تا توسط brute force رمز را حدس بزند.
اما از آنجا که این نوع حمله پیشرفته ترین شکل حملات نیست، با اقدامات مختلف می توان مانع از موفقیت آنها شد. در این مقاله جزئیات کاملی از این نوع حملات ارائه می شود تا آگاهی مدیران سرور را در این زمینه و چگونگی محافظت در برابر آنها را بهبود ببخشد.
مقدمه ای برای حملات brute force
حمله brute force از جمله ساده ترین روش های هک کردن است. تئوری چنین حمله ای این است که اگر تعداد نامتناهی از تلاش ها برای حدس زدن رمز عبور را انجام دهید، در نهایت موفق خواهید شد که رمز درست را پیدا کنید.
در این نوع حمله که بیشتر در مقیاس بزرگ انجام می شود، مهاجم قصد دارد با تلاش برای حدس زدن نام کاربری / ایمیل و رمز عبور، دسترسی یک حساب کاربری را بدست آورد. معمولاً انگیزه اصلی برای انجام یک حمله، سرقت داده های حساس ، خاموش کردن سیستم یا ترکیبی از این سه است.
ابزارهای زیادی به راحتی در دسترس هستند تا هکرها بتوانند brute force را انجام دهند. این حملات به راحتی قابل اجرا هستند، بسته به طول و ماهیت پسورد و قدرت محاسباتی مورد استفاده، حملات ممکن است روزها، هفته ها یا حتی سالها طول بکشند تا بتوانند موفقیت آمیز باشند.
قبل از اینکه به نحوه ردیابی و جلوگیری از حملات پرداخته شود، می بایست اصطلاحات دیگری که ممکن است با این موضوع در ارتباط باشند را بدانید.
Mask brute force attacks
با توجه به طولانی بودن پروسه brute force، در صورتی که هکر رنج تعداد کاراکتر یا بخشی از رمز را بداند، این روش کارآمد ترین راه محسوب می شود. به طور مثال شخص هکر می داند که رمز انتخابی توسط کاربر با passwords شروع می شود و توسط ابزارهای موجود به سرعت رنج Password000 تا Password999 را بررسی می کند. با توجه به انعطاف پذیری این نوع حمله، هر رنج و کاراکتری که هکر احتمال آن را بدهد می تواند بررسی کند.
Combination brute force attacks
در این روش هکر از دو دیکشنری به طور همزمان استفاده می کند و عبارات هر دیکشنری را با در نظر گرفتن علائم، فاصله و ... در کنار هم ترکیب و مورد آزمایش قرار میدهد. مسلماً در این روش هکر قدرت انتخاب زیادتری دارد و استفاده از رنج کاراکتر بسیار منعطف می باشد.
Hybrid brute force attacks
این روش، یکی از متداول ترین شکل های brute force است و از لیست کلمات موجود در یک فرهنگ لغت برای رمز عبور استفاده می کند. انواع دیگر حمله نیز وجود دارند که لیستی از رمزهای عبور معمول را مورد استفاده قرار می دهند. برای مثال اگر گذرواژه شما " password" است، یک ربات می تواند در عرض چند ثانیه رمز عبور شما را حدس بزند.
تصور برخی مدیران سرور بر این است که چنانچه پس از نام خود یک عدد به کار ببرند، امنیت سرور تضمین شده است در حالی که هکر در صورت به ثمر نرسیدن، تلاش می کند که با استفاده از متد dictionary و یک رنج اعداد مشخص و ترکیب علائم و سمبل ها به بررسی صحت رمز عبورها ادامه دهد.
Reverse brute force attack
در این روش هکر یک نام کاربری خاص را هدف قرار نمی دهد، بلکه از یک گروه متداول کلمه عبور یا یک گذرواژه مشخص شده، برای طیف وسیعی از کاربران موجود در لیست خود بهره می برد.
این روش برای زمانی بسیار مورد استفاده قرار می گیرد که یک سایت یا سرویس، کاربران زیادی دارد و بدین شکل آنها را مورد هدف خود قرار می دهد.
Credential stuffing
در این روش هکر از جفت های نام کاربری و رمز عبور نقض شده استفاده می کند. بدین شکل اگر یک نام کاربری و رمز عبور توسط هکر شناسایی شود از آن برای دسترسی به دیگر سایت ها و پنل های کاربر هم استفاده می کند. به منظور جلوگیری از این مشکل حتماً می بایست اطلاعات ورود برای سایت ها متفاوت باشند.
هدف حملات brute force
زمانی که هکر بتواند از طریق این نوع حملات به سیستم کاربر متصل شود، اقداماتی که می تواند انجام دهد به صورت زیر است.
- سرقت یا افشای اطلاعات شخصی کاربران موجود در حسابهای آنلاین
- پخش بدافزار یا هرزنامه یا هدایت دامنه به محتوای مخرب
- ایجاد محتوای جعلی یا پیوندهای فیشینگ
- سرقت منابع سیستم برای استفاده در سایر فعالیت ها
- دیفیس کردن سایت و دسترسی به مدارک مدیر سایت
همانطور که گفته شد ، حملات brute force همچنین می تواند برای تست آسیب پذیری در سیستم مورد استفاده قرار گیرد، بنابراین همیشه مخرب نیستند.
نمونه هایی از حملات brute force
Alibaba: حمله گسترده ای که در سال 2016 به سایت محبوب تجارت الکترونیکی صورت گرفت و میلیون ها حساب را تحت تاثیر قرار داد.
Magento: در مارس 2018 ، مجنتو مجبور شد به کاربران هشدار دهد که براثر حملات، حداکثر هزار اکانت ادمین به خطر افتاده است.
Northern Irish Parliament: همچنین در مارس 2018، به حساب چند عضو از پارلمان ایرلند شمالی دسترسی پیدا کردند.
Westminster Parliament: در پارلمان وست مینستر در سال 2017 حمله ای رخ داد که در آن 90 حساب ایمیل به خطر افتاد.
Firefox: در اوایل سال 2018 خبری درج شد که ویژگی "Master password" فایرفاکس می تواند به راحتی مورد حمله قرار گیرد. این بدان معنا است که در طی سال های گذشته، اطلاعات بسیاری از کاربران ممکن است در معرض دید قرار گرفته باشد.
نحوه مشاهده حملات brute force
هیچ سرویس دهنده ای به شما اعلام نمی کند که روی سرویس شما این نوع حملات وجود دارد یا شخصی از یک منطقه ای در حال آزمایش ورود به سایت یا پنل شما می باشد. اگر سرپرست شبکه یا مدیر سرور هستید، برای امنیت وب سایت و کاربران مهم است که به دنبال علائم آن باشید که نمونه هایی از آن به طور مثال ذکر خواهد شد.
-
حملات شکست خورده توسط یک آدرس IP. اگرچه، این می تواند نتیجه استفاده از سرور پروکسی توسط یک سازمان بزرگ باشد.
-
ورود به سیستم با چندین نام کاربری از یک آدرس IP. باز هم، این می تواند به سادگی از سمت یک سازمان بزرگ باشد.
-
یک الگوی غیرمعمول از ورود ناموفق به سیستم (یک الگوی عددی متوالی و ...)
-
مصرف پهنای باند به طور غیر عادی پس از ورود موفق آمیز به سیستم که می تواند نشان از حمله ای داشته باشد که برای سرقت منابع طراحی شده است.
نحوه جلوگیری از حملات brute force
تشخیص یا شناسایی حملات brute force به دلیل تعداد زیاد تلاش برای ورود به سیستم آسان است اما نه به این سادگی که با بلاک کردن آی پی، حمله خنثی شود. زیرا هکرها از طریق سرورهای پروکسی باز این نوع حملات را طراحی می کنند تا با آدرس ip های مختلف عمل کنند. اقداماتی که می توانید با انجام دادن آنها از این نوع حملات جلوگیری کنید به شرح زیر است :
-
استفاده از رمز عبور های پیچیده و قوی
-
ایجاد محدودیت در تلاش ورود به سیستم
-
استفاده از CAPTCHA
-
تعیین وقفه زمان بین تلاشهای ورود به سیستم
-
طراحی سوالات امنیتی
-
امکان ایجاد تایید هویت دو مرحلهای
-
تغییر پورت های پیش فرض SSH و در صورت امکان (کنترل پنل ها)
استفاده از رمز عبور های پیچیده و قوی
اگر سرپرست شبکه یا مدیر سرور هستید، ابتدایی ترین راهکار برای جلوگیری از حملات brute force استفاده از یک رمز قوی می باشد. این رمز می تواند یک طول مشخصی مانند ترکیبی از حروف بزرگ و کوچک به همراه عدد و کاراکترهای خاص باشد.
لازم به ذکر است که از گذرواژه یکسان برای حسابهای مختلف به هیچ عنوان استفاده نشود و همانطور که بالاتر عرض شد از رمز های ترکیبی حروف و اعداد و علائم استفاده نمایید.
البته تهیه و به خاطر سپردن رمزهای عبور قوی می تواند دشوار باشد اما ابزاری برای کمک به شما وجود دارد. مانند نرم افزار KeePass، با استفاده از این نرم افزار می توانید از کلمات عبور خود محافظت کنید.
ایجاد محدودیت در تلاش ورود به سیستم
یکی از راه های جلوگیری متداول در برابر یک حمله brute force محدود کردن تعداد تلاش برای ورود است، شاید در برخی سایت ها و سرورها این محدودیت بین پنج تا ده باشد البته این مورد کاملاً به وسعت و نوع کاربری شما بستگی دارد.
بر اساس کاربری های مختلف، تنظیمات گوناگونی را می توان ایجاد کرد. به طور مثال چنانچه مدیر یک سرور لینوکسی هستید، می توانید محدودیت هایی در تعداد اتصالات یک IP آدرس در فایروال نرم افزاری csf ایجاد کنید یا چنانچه از کاربران میهن وب هاست هستید، می توانید از فایروال نرم افزاری استفاده کنید.
استفاده از CAPTCHA
Captcha به معنی یک تست کاملا خودکار برای تشخیص انسان از کامپیوتر می باشد. در واقع نوعی سوال است که در حال حاضر انسان پاسخ آن را میداند اما کامپیوترها نمی توانند سوالات کپچا را تشخیص یا به آن جواب بدهند. برخی CAPTCHA ها به سادگی از کاربر درخواست می کنند تا کاراکترها را با ترتیب وارد کند یا به یک سوال ریاضی ساده پاسخ دهد. برخی دیگر کمی پیچیده تر هستند و درخواست می کنند که کاربران اشیاء موجود در تصاویر را شناسایی کنند.
دور زدن یک Captcha شاید به تنهایی برای یک هکر چندان هم دشوار نباشد اما می تواند موانعی را برای مهاجمان احتمالی ایجاد کنند و در صورتیکه با تکنیک های دیگری که در این مقاله ارائه شده است، ترکیب شود بسیار موثرتر واقع شود.

تصویر(2)

تصویر(3)
تعیین وقفه زمان بین تلاشهای ورود به سیستم
اجرای وقفه زمانی چند ثانیه بین تلاشهای ورود به سیستم بسیار ضروری و در واقع می تواند بسیار مؤثر باشد. برخی از حملات brute force بر اساس تعداد زیادی از تلاش ها در مدت زمان کوتاه انجام می شوند که یک تاخیر کوتاه بین تلاش ها می تواند حمله را به طور جدی کاهش دهد.
لازم به ذکر است که این تاکتیک برای همه حملات کاربردی نخواهد داشت زیرا بسیاری از حملات طراحی شده اند که به طور آهسته عمل کنند.
طراحی سوالات امنیتی
در حالی که بسیاری از کاربران از سوالات امنیتی مایوس می شوند، استفاده از آنها می تواند حتی بزرگترین مانع برای حمله کنندگان brute force باشد. حتی در حملات هدفمند که شامل اطلاعات شخصی برای یک کاربر خاص است، با تنظیم سوالات امنیتی می توانید حمله را دشوار کنید.
برای ایجاد یک تجربه کاربری بهتر، فقط می توانید پس از تعداد مشخصی از تلاشهای ناموفق ورود به سیستم یا هر بار که یک اتصال ورود به سیستم اتفاق می افتد، پاسخ های امنیتی را درخواست کنید. اگر یک حمله در حال وقوع را تشخیص داده اید، ممکن است زمان مناسبی باشد تا درخواست کنید که همه کاربران هنگام ورود به سیستم، به یک سوال امنیتی پاسخ دهند.
تصویر(4)
امکان ایجاد تایید هویت دو مرحلهای
بسته به ماهیت خدمات شما، ممکن است نخواهید تجربه کاربر از سایتتان را خراب کنید و به همین دلیل از اجرای یک قانون تایید هویت دو مرحله ای که بسیار هم می تواند موثر باشد، خودداری کنید. با این حال خوب است که بتوانید برای امنیت بیشتر کاربران هم که شده این ویژگی را در سایتتان فعال نمایید.
اما در صورت فعالسازی این ویژگی، می توانید به کاربر اجازه دهید که بین گزینه های مختلف از جمله رسانه های اجتماعی، ایمیل، پیام کوتاه و موارد دیگر مرحله اعتبار سنجی را انجام دهد.
توجه داشته باشید که دو نوع مختلف از این نوع احراز هویت وجود دارد که غالباً با هم اشتباه گرفته می شوند یا به سادگی در کنار یکدیگر قرار می گیرند.
تصویر(5)
(Two-step verification (2SV :
این نوع اعتبار سنجی معمولاً شامل یک کد تایید یا لینک است که اغلب از طریق پیام کوتاه یا ایمیل ارسال می شود.
(Two-factor authentication (2FA:
و این نوع اعتبار سنجی هم می تواند مواردی از قبیل صفحه کلید یا روش های شناسایی بیومتریک مانند اثر انگشت یا اسکن شبکیه را در بر بگیرد.
تغییر پورت های پیش فرض SSH و در صورت امکان (کنترل پنل ها)
با توجه به اینکه حجم زیادی از حملات brute force توسط ربات ها روی پورت های پیش فرض ایجاد می شوند به همین دلیل برای امنیت بیشتر سرورها ، مدیران سرور حتماً می بایست پورت SSH را از حالت پیش فرض یعنی 22 به مقدار دیگری تغییر دهند و کاربرانی که روی سرورهای خودشان هم از کنترل پنل دایرکت ادمین استفاده می کنند، حتماً می بایست پورت پیش فرض 2222 را به مقدار دیگری تغییر دهند. بدین شکل می توان مانع حجم زیادی از حملات شد.
باید بدانید، درحالیکه کنترل پنل سی پنل ماژولی تحت نام cphulk brute force protection برای مقابله با اینگونه حملات دارد، متاسفانه کنترل پنل دایرکت ادمین شامل این ویژگی نمی باشد اما می توان از طریق اسکریپت bash محدودیت هایی در فایروال ایجاد کرد که جلوی اینگونه حملات را بگیرد.
نتیجه
همانطور که مشاهده می کنید گزینه های بسیاری برای کمک به شما جهت جلوگیری از حمله موفقیت آمیز وجود دارد. از آنجا که ماهیت یک حمله brute force به صورت موردی متفاوت خواهد بود، در واقع یک روش برای پیشگیری وجود ندارد. به همین ترتیب، بهتر است برای ایجاد یک خط دفاعی، از ترکیب چندین استراتژی استفاده کنید.