دسته بندی ها
13:55 1401/05/09

حملات Brute Force چیست و چگونه در Asp.net Core جلوگیری کنیم ؟

مشخصات سوال کننده :
کاربر : hamid_b     امتیاز کاربر : 510     رتبه کاربر : 4
دسته بندی : Asp.net Core پلسک

به این سوال امتیاز بدهید    1
تعداد بازدید این سوال : 2006
پاسخ دهنده : fateme 14:24 1401/05/09

حملات Brute Force چیست ؟

جلوگیری از حملات brute force در asp.net core

 

حملات بروت فورس یا Brute Force از طریق صفحه لاگین وب سایت انجام می شود. در این نوع از حملات فرد مهاجم توسط نرم افزارها یا ربات هایی که در اختیار دارد میلیاردها نام کاربری و رمز عبور را به سمت صفحه لاگین شما ارسال می کند. در واقع این روش به صورت سعی و خطا می باشد. در این روش انواع نام کاربری و رمز عبور به صورت ترکیبهای مختلف اعداد و حروف و ... ارسال می شود تا در نهایت یک نام کاربری و رمزعبور صحیح پیدا شود.

در حملات Brute Force چون هزاران درخواست در لحظه به سمت سایت و سرور شما ارسال می شود باعث فشار مضاعف به سرورهای شما می شود. در صورتی که سرورهای شما توان پاسخگویی به این حجم از درخواست ها را نداشته باشند احتمال crash کردن سرور وجود دارد و عملا حملات بروت فورس هم دچار مشکل می شود. اما اگر شما یک سرور قدرتمند داشته باشید که توان پاسخگویی داشته باشد این حملات اینقدر ادامه پیدا میکند تا در نهایت به یک یا چند اکانت دسترسی پیدا شود.

 

راههای مقابله با حملات Brute Force 

با توجه به اینکه حملات بروت فورس از طریق صفحه لاگین انجام می شود میتوان با ایجاد تمهیداتی از آن جلوگیری کرد.

 

قرار دادن Captcha یا Google Recaptcha در صفحه لاگین

اولین و ساده ترین کار برای مقابله با حملات بروت فورس این می باشد که در صفحه لاگین سایت از کدکپچا و یا گوگل ریکپچا استفاده کنید. در این صورت امکان ارسال پشت سر هم نام کاربری و رمزعبور برای مهاجم مقدور نمی باشد. (نحوه استفاده از گوگل ریکپچا در Asp.net Core)

 

مسدود ساختن IP های مشکوک

روش دیگری که برای مقابله با حملات بروت فورس استفاده می شود مسدود ساختن آی پی های مشکوک و مهاجم می باشد. شما می توانید با استفاده از دستورات Asp.net Core آی پی افراد مراجعه کننده به سایت را بدست بیاورید و در صورتی که یک آی پی مراجعات بیش از حدی داشت آن را بلاک کنید. (پیدا کردن IP کاربر در Asp.net Core)

البته روش بهتر این می باشد که از هاستینگ خود بخواهید این کار را برای شما انجام دهد. چون هاستینگ هم میتواند IP های مشکوک و مهاجم به سرور رو شناسایی و مسدود کند. اگر این کار توسط هاستینگ انجام شود سرعت لاگین در سایت شما بهینه تر خواهد بود.

 

انتخاب نام کاربری و رمزعبور پیچیده

شاید بهترین راه حل برای جلوگیری از حملات بروت فورس انتخاب نام کاربری و رمزعبور پیچیده می باشد. با انتخاب نام کاربری و رمزعبور پیچیده امکان پیدا شدن اطلاعات اکانت کاربران بسیار کم می شود و فرد مهاجم ناامید خواهد شد. در Asp.net Core Identity به صورت پیش فرض هنگام ایجاد کاربران باید رمزعبور پیچیده شامل حروف، اعداد، کاراکترهای خاص و ... استفاده می شود.

 

استفاده از LockoueEnabled در Identity

یکی دیگر از راههای که در Asp.net Core می توان برای مقابله با حملات بروت فورس استفاده کرد فعال کردن قابلیت LockOutEnabled می باشد. در این صورت اگر بیش از یک مقدار مشخصی برای یک اکانت خاص رمز عبور اشتباه وارد شود اکانت مسدود می شود. برای استفاده از این خاصیت کافیست در Startup و در متد ConfigureServices دستور زیر را استفاده کنید:

services.AddIdentity<Users, Roles>(option =>
{
   option.Lockout.MaxFailedAccessAttempts = 10;
})

طبق دستور بالا اگر 10 بار رمزعبور کاربر اشتباه وارد شود اکانت مسدود می شود و امکان یافتن رمزعبور وجود نخواهد داشت. 

ویرایش شده در یکشنبه 9 مرداد 1401 ساعت 14:32:22
به این پاسخ امتیاز بدهید    1
امتیاز: 1617 رتبه: 2
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود