حملات بروت فورس چیست؟

برخلاف هک هایی که روی آسیب پذیری های نرم افزار تمرکز دارند، Brute Force Attack ساده ترین روش دسترسی به سایت می باشد. نام های کاربری و رمزهای عبور را بارها و بارها امتحان می کنند تا زمانی که به سایت وارد شوند. وقتی افراد از رمزهای عبور ساده مانند “123456” و نام های کاربری مانند “admin” استفاده می کنند ، بسیار در معرض این حملات هستند.
با توجه به ماهیت این حملات، ممکن است حافظه سرور را از سقف مجاز عبور دهند  و باعث مشکلات عملکردی سایت شما شوند.  درخواست های http (یعنی تعداد دفعات مراجعه شخصی به سایت شما) آنقدر زیاد شده که حافظه سرور کاملا پر می شود.
این حملات صرفا برای سایت های وردپرسی طراحی نشده اند، بلکه برای هر web app می توانند اتفاق بیفتند، دقت داشته باشید وردپرس با توجه به محبوبیت آن بیشتر در معرض این حملات است.

#از خود محافظت کنید
یک فایل مورد حمله در وردپرس فایل wp-login.php می باشد و بارها و بارها به آن حمله میکنند تا زمانی که بتوانند وارد آن شوند و یا روی سرور تاثیر بگذارند. برای محافظت از سایت خود موارد زیر را انجام دهید.

#از نام کاربری “admin” استفاده نکنید
اکثر حملات می دانند که افراد از نام کاربری “admin” استفاده می کنند، به این دلیل که نسخه های اولیه وردپرس به طور پیش فرض  از این نام استفاده میکنند. در صورتی که از این نام کاربری استفاده می کنید ، یک کاربری جدید ایجاد کنید، همه پست ها را به آن منتقل کنید و دسترسی کاربری”admin” را به یک کاربر عادی تغییر دهید (یا آن را کاملاً حذف کنید).
برای تغییر نام کاربری خود می توانید از پلاگین Change Username نیز استفاده کنید.

#رمزهای عبور خوب
هدف از رمز ورود شما این است که حدس زدن برای دیگران دشوار باشد. بسیاری از مولدهای رمز عبور خودکار، در دسترس هستند که می توانید برای ایجاد رمزهای عبور ایمن از آنها استفاده کنید.
وردپرس دارای یک نرم افزار بررسی رمز عبور است که هنگام تغییر رمز در وردپرس نشان داده می شود. برای مجبور کردن کاربران به تنظیم گذرواژه های قوی می توانید از افزونه Force Strong Password استفاده کنید.
مواردی که هنگام انتخاب رمز عبور باید از این موارد اجتناب کنید:
هرگونه تغییر نام کاربری به نام شرکت یا نام وب سایت خود.
رمز عبور کوتاه
هر گذرواژه فقط با عدد یا فقط حروف (ترکیبی از هر دو بهترین رمز عبور می باشد).
گذرواژه قوی فقط برای محافظت از محتوای وبلاگ شما لازم نیست. هکری که به حساب ادمین شما دسترسی پیدا کند قادر است اسکریپت های مخربی را نصب کند که به طور بالقوه می تواند کل سرور را به خطر بیندازد.
برای ایمنی بیشتر و محافظت از وبلاگ خود می توانید از احراز هویت دو مرحله ای استفاده کنید.

#پلاگین ها
افزونه های زیادی برای محدود کردن تعداد تلاش های ورود به سایت شما در دسترس است. همچنین، افزونه های بسیاری وجود دارد که می توانید با استفاده از آنها دسترسی افراد به wp-admin را به طور کلی مسدود کنید.

#از سرور خود محافظت کنید
اگر تصمیم دارید wp-login.php یا wp-admin را رمزگذاری کنید، ممکن است هنگام دسترسی به آن صفحات خطای 404 یا 401 دریافت کنید. برای جلوگیری از آن، باید موارد زیر را به پرونده .htaccess خود اضافه کنید.

ErrorDocument 401 default

در وب سرورهای IIS می توانید از httpErrors در وب خود استفاده کنید،

 set errorMode = “custom”:

<httpErrors errorMode=”Custom”>
<error statusCode=”401″
subStatusCode=”2″
prefixLanguageFilePath=””
path=”401.htm”
responseMode=”File” />
</httpErrors>

محافظت از رمز عبور wp-login.php #

محافظت از رمز عبور برای پرونده wp-login.php (و پوشه wp-admin) می تواند یک لایه به امنیت سرور شما اضافه کند. از آنجا که محافظت از رمز عبور wp-admin می تواند هر افزونه ای را که از ajax در قسمت جلوی آن استفاده می کند خراب کند، معمولاً برای محافظت از wp-login.php این مورد کافی است.
برای این کار باید یک فایل .htpasswd ایجاد کنید. بسیاری از میزبانان ابزارهایی برای انجام این کار برای شما دارند، اما اگر مجبورید این کار را به صورت دستی انجام دهید، می توانید از مولد htpasswd استفاده کنید. مانند فایل .htaccess شما (که فایلی است که فقط دارای پسوند است) ، .htpasswd نیز هیچ پیشوندی نخواهد داشت.
وقتی فایل .htpasswd را بارگذاری کردید، باید در فایل .htaccess دستور زیر وارد کنید.  با فرض اینکه .htpasswd را در فهرست اصلی سایت خود قرار داده اید و نام کاربری htpasswd شما mysecretuser است، پس این کد را در .htaccess خود قرار دهید:

# Stop Apache from serving .ht* files
<Files ~ “^\.ht”>
Order allow,deny
Deny from all
</Files>
# Protect wp-login.php
<Files wp-login.php>
AuthUserFile ~/.htpasswd
AuthName “Private access”
AuthType Basic
require user mysecretuser

#محدودیت دسترسی به wp-login.php توسط IP
اگر شما تنها کسی هستید که باید به قسمت Admin سایت وارد شوید و یک آدرس IP ثابت نیز دارید، می توانید دسترسی wp-login.php (و در نتیجه پوشه wp-admin /) را به همه غیر از خودتان از طریق .htaccess یا فایل web.config. انجام دهید. این تنظیم  به عنوان لیست سفید IP شناخته می شود.
توجه: مراقب باشید ممکن است ISP یا رایانه در حال تغییر آدرس IP باشد، این آدرس IP ثابت نیست و شما نیاز به آی پی ثابت دارید. اگر به این مورد مشکوک هستید، برای به دست آوردن آدرس ثابت با ISP خود تماس بگیرید تا بتوانید آی پی قابت دریافت کرده و از این روش استفاده کنید.
در تمام مثال ها باید آدرس IP خود را جایگزین 203.0.113.15 کنید. ارائه دهنده اینترنت شما می تواند در ایجاد آدرس IP به شما کمک کند. یا می توانید از یک سرویس آنلاین مانند What Is My IP استفاده کنید.
مثالهایی برای چندین آدرس IP نیز ارائه شده است. اگر از چند ارائه دهنده اینترنت مختلف استفاده میکنید، اگر چند آدرس آی پی داشته باشید که به داشبورد سایت شما اجازه دسترسی دارند، می توانید به صورت زیر استفاده نمایید. یک پرونده در یک ویرایشگر متن ساده به نام .htaccess ایجاد کنید و کد زیر را اضافه کنید:# Block access to wp-login.php.

<Files wp-login.php>
order deny,allow
allow from 203.0.113.15
deny from all

</Files> شما میتوانید آی پی های بیشتری را جهت استفاده به آنها دسترسی دهید.

# Block access to wp-login.php.
<Files wp-login.php>
order deny,allow
allow from 203.0.113.15
allow from 203.0.113.16
allow from 203.0.113.17
deny from all
</Files>

اگر می خواهید بیش از یک آدرس IP اضافه کنید، می توانید از موارد زیر استفاده کنید:

# Block access to wp-login.php.
<Files wp-login.php>
Require ip 203.0.113.15 203.0.113.16 203.0.113.17
# or for the entire network:
# Require ip 203.0.113.0/255.255.255.0
</Files>

در وب سرورهای IIS می توانید از یک فایل web.config برای محدود کردن آدرس های IP مورد نظر خود استفاده کنید.

<location path=”wp-admin”>
<system.webServer>
<security>
<ipSecurity allowUnlisted=”false”> <!– this rule denies all IP addresses, except the ones mentioned below –>
<!– 203.0.113.x is a special test range for IP addresses –>
<!– replace them with your own –>
<add ipAddress=”203.0.113.15″ allowed=”true” />
<add ipAddress=”203.0.113.16″ allowed=”true” />
</ipSecurity>
</security>
</system.webServer>
</location>

 #ModSecurity
اگر از ModSecurity استفاده می کنید، می توانید به توصیه های Frameloss –  (ورود بی رحمانه هکرها به وردپرس) عمل کنید. این مورد نیاز به دسترسی root  سرور دارد و ممکن است به کمک هاستینگ نیاز داشته باشد. اگر از ModSecurity 2.7.3 استفاده می کنید، می توانید قوانین را به جای آن در پرونده .htaccess اضافه کنید.

#Fail2Ban
Fail2ban  مانند پایتون است که در پس زمینه اجرا می شود. این پرونده ورود به سیستم را که توسط Apache (به عنوان مثال SSH) تولید شده است بررسی می کند و در برخی از رویدادها می تواند یک قانون برای فایروال اضافه کند. اگر آن درخواست به صورت منظم مثلاً 5 بار در 5 دقیقه اتفاق بیفتد ، می تواند آن آدرس IP را به مدت 60 دقیقه مسدود کند. نصب و راه اندازی Fail2ban نیاز به دسترسی روت سرور دارد.

#لیست های مسدود کننده
به نظر می رسد که بیشتر حملات از سوی میزبانانی از روسیه، قزاقستان و اوکراین صورت می گیرد. می توانید آدرس های IP که از این کشورها هستند را مسدود کنید. لیست های در اینترنت وجود دارد که می توانید آنها را دانلود و از آنها استفاده کنید.
سرویس هایی مانند CloudFlare و Sucuri CloudProxy نیز می توانند با مسدود کردن IP ها قبل از رسیدن به سرور شما، به کاهش این حملات کمک کنند.

طبقه بندی شده در:

امنیت وب, بهبود عملکرد وب سایت,

آخرین به روز رسانی: 5 شهریور 1403