امنیت ورد پرس – نکات مهم در خصوص ایمنی ورد پرس

wordpress-security سامانه مدیریت محتوای ورد پرس در ابتدای امر سامانه ای بدنام در زمینه امنیت می باشد که البته بخاطر عدم تجربه کافی توسعه دهندگان ورد پرس در ایجاد و یا تغییر در پلاگین های ورد پرس نیز می باشد. از هر ۵ ورد پرس ایجاد شده در سطح اینترنت، یکی از آنها قربانی حملات هکر ها خواهد شد. در سال ۲۰۱۳ قریب به ۹۰٫۰۰۰ سایت نوشته شده با ورد پرس به منظور استفاده در bonet هک شده بودند. این بدین معنی است که هکر ها در جهت استفاده از آن وب سایت ها در حملات DDoS و یا ارسال بدافزار به هدف های دیگر (سرور ها و وب سایت های دیگر)، از آن وب سایت ها بدون اطلاع صاحبان وب سایت بعنوان قربانی استفاده می کردند. به همین دلیل در ادامه زمانی در جهت بررسی امنیت ورد پرس که مقوله ای بسیار مهم در زمینه امنیت وب سایت ها می باشد برای شما اختصاص می دهیم و امیدواریم که تمامی این موارد را در صورت وجود آسیب پذیری مرتفع نمایید.

۱- اجرای آخرین نسخه ورد پرس

اجرای آخرین نسخه یک نرم افزار بعنوان مهمترین مورد امنیتی شناخته شده است. با آماری که در این زمینه وجود دارد بیش از ۸۶ درصد از وب سایت های پیاده سازی شده توسط ورد پرس با ورد پرس منقضی شده نصب می گردند. نسخه های جدید ورد پرس علاوه بر ویژگی های جدید، رفع باگ و همچنین موارد امنیتی را نیز در خود نگهداری می کند.

۲- اجرای آخرین نسخه های پلاگین و تم

بروز رسانی و یا اجرای آخرین نسخه ورد پرس کافی نمی باشد – پلاگین و تم وب سایت شما نیز دارای آسیب پذیری می باشد که می بایستی به آخرین نسخه خود بروز رسانی گردند. تقریبا هر ۳ روز یک مرتبه شما می بایستی به داشبورد وردپرس خود در جهت بروز رسانی موارد یاد شده مراجعه نمایید. پلاگین Slider Revolution نمونه ای خوبی در جهت اثبات این مورد می باشد که توسط آن پلاگین هکر قادر بود که به پنل ورد پرس شما و همچنین بانک اطلاعاتی ورد پرس دسترسی یابد. نماد امنیت وب در بسته های امنیتی خود و در داشبورد امنیتی اعطایی به مشتریان خود، تمامی موارد منقضی شده وب سایت شما را یاداور می شود.

۳- در انتخاب پلاگین و تم ورد پرس خود بسیار دقت کنید

ورد پرس به شما امکان نصب پلاگین و تم های متعدد را می دهد. اگر چه افزایش امکانات وب سایت ورد پرس بسیار مهم است اما این در صورتی است که امنیت ورد پرس تحت تاثیر قرار نگیرد. حتی اگر وب سایت ورد پرس، پلاگین ها و تم های وب سایت شما بروز باشند این بدین معنا نیست که وب سایت شما آسیب پذیر نمی باشد و تحت حمله هکر ها قرار نخواهد گرفت. افزایش تعداد پلاگین ها در وب سایت به هکر امکان بررسی بیشتری در خصوص راه های آسیب پذیری وب سایت خواهد داد.

زمانی که قصد انتخاب پلاگین و یا تمی را برای ورد پرس خود دارید بسیار به توسعه دهنده آن پلاگین و یا تم و همچنین میزان استقبال کاربران از آنها و از همه مهمتر اعتبار آنها توجه نمایید زیرا بعضی از آن پلاگین ها و یا تم ها دارای بدافزار بوده و از شما بعنوان قربانی استفاده خواهد کرد.

۴- کاربران غیر فعال را حذف نمایید

نگهداری کاربران غیر فعال میزان حمله را به وب سایت شما تشدید می کند. کاربران، مخصوصا مدیران ورد پرسی که قابلیت تغییر محتوا در وب سایت را دارند معمولا از رمز عبور ضعیف برای خود استفاده می نمایند. در صورتی که اصرار به حفظ کاربران غیر فعال خود در سامانه ورد پرس دارید پیشنهاد می شود نقش آنها را به Subscriber به منظور کاهش حق دسترسی به محتوای  وب سایت تغییر دهید.

۵- جلوگیری از Directory Listing

آسیب پذیری Directory Listing زمانی رخ می دهد که وب سرور در پوشه مورد نظر فایل ایندکس index را یافت نکند (برای مثال index.html و یا index.php). در صورتی که گزینه Directory Listing شما فعال باشد لیستی از تمامی فایل های درون پوشه بصورت HTML برای کاربر نمایان می شود.
directory-listing
افشای این فایل ها امکان آسیب پذیر نمودن وب سایت را افزایش داده و هکر ها اطلاعات مورد نیاز برای هک کردن وب سایت های ورد پرس را اعم از اسامی پلاگین و تم ها ، براحتی در اختیار خواهند داشت. اگرچه این مورد امنیتی، نقص در سامانه وورد پرس محسوب نمی شود و ارتباطی با آن ندارد، اما سیاری از سایت های ورد پرس در زمان نصب این مورد امنیتی را فعال می کنند.

۶- محدود نمودن دسترسی به دایرکتوری wp-admin

محدود نمودن صفحه ورودی مدیریت به IP مشخص و یا استفاده از رمز عبور به منظور حفاظت از مدیریت ورد پرس در لایه HTTP authentication راه موثری در جهت جلوگیری از تلاش هکر ها به منظور دسترسی به حدس نام کاربری و رمز عبور می باشد. بعلاوه در صورت ربوده شدن نام کاربری و رمز عبور توسط هکر، آنها نیاز به عبور از HTTP authentication در جهت دسترسی به فرم لاگین ورد پرس خواهند داشت.

basic-http-authentication

در سرور Apache شما قادر به رسیدن به آن با ایجاد فایل .htpasswd و اضافه نمودن تعدادی دایرکتیو پیکربندی (configuration directives) که در زیر شرح داده شده است خواهید بود.

فایل .htpasswd ترکیبات هش شده (hashes) نام کاربری و رمز عبور را در جهت استفاده وب سرور برای اعتبار سنجی کاربر در خود نگه می دارد. توسعه دهندگان لینوکس معمولا این فایل را با خود Apache ایجاد می کنند اما بیشتر کاربران debian و ubuntu می بایستی بسته apache2-utils را نصب نمایند.

apt-get update
apt-get upgrade
apt-get install apache2-utils

پس از نصب htpasswd دستور زیر را اجرا نمایید تا برای یک کاربر فایل .htpasswd ایجاد گردد که در مسیر /srv/auth/.htpasswd قرار می گیرد.

htpasswd -c /srv/auth/.htpasswd myuser

به منظور فعال سازی basic HTTP authentication بر روی مسیر admin ورد پرس،  می بایستی directive که در زیر توضیح داده شده است را به فایل .htpasswd ایجاد شده ارجاع دهید. کد های زیر را در قسمت <Directory>  مناسب در فایل .htaccess وب سرور آپاچی درج  نمایید.

AuthType Basic
AuthUserFile /srv/auth/.htpasswd
AuthName “WordPress Authenticated area.”
Require valid-user

توجه: از آنجایی که این فایل در هر جایی از سیستم فایل قابلیت قرار گیری دارد پیشنهاد می گردد آن را در دایرکتوری وب سایت خود قرار ندهید. بصورت پیش فرض تمامی فایل هایی که با .ht شروع می شوند در تنظیمات پیش فرض آپاچی قابلیت دسترسی از طریق وب را نخواهند داشت اما شما این فرض را در نظر نگیرید و مسیر آن را تغییر دهید.

۷- غیر فعال کردن ویرایش فایل

بطور پیش فرض ورد پرس امکان ویرایش فایل های PHP پلاگین و تم را از درون خود پنل مدیریت ورد پرس فراهم می کند و این امکان اولین احتمال حمله هکر به وب سایت را موجب می گردد و البته این قابلیت همچنین امکان اجرای کد را برای هکر میسر می سازد. پس این قابلیت را با اضافه نمودن کد زیر در فایل wp-config.php غیر فعال نمایید.

define(‘DISALLOW_FILE_EDIT’, true);

۸- جلوگیری از شمارش تعداد نام های کاربری ورد پرس

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

RewriteCond %{QUERY_STRING} author=d

RewriteRule ^ /? [L,R=301]

۹- فعال سازی HTTPS برای تمامی صفحات لاگین و wp-admin

HTTPS به خودی خود یک پروتکل نیست بلکه HTTP کپسوله شده در TLS/SSL می باشد. HTTPS معمولا برای فروشگاه های آنلاین و یا درگاه های بانکی استفاده می شود اما این پروتکل می بایستی در هر جایی که قرار است کاربری اعتبار سنجی شود مورد استفاده قرار گیرد. به جهت آنکه TLS/SSL بسته به ترافیک وب سایت مصرف بالای منابع را در بر دارد لذا توصیه نمی شود که در هر مکانی از این پروتکل استفاده شده و تنها پیشنهاد می گردد در صفحات لاگین ورد پرس مورد استفاده قرار گیرد.

وردپرس از راه حل ساده ای در جهت اجبار در استفاده TLS/SSL بر روی wp-login و wp-admin استفاده می کند که از طریق تعریف دو متغیر ثابت در wp-config.php قابل دسترسی می باشد.

define(‘FORCE_SSL_LOGIN’, true);
define(‘FORCE_SSL_ADMIN’, true);

۱۰ – محدود نمودن دسترسی به فایل های PHP پلاگین ها و تم های ورد پرس

اجازه دسترسی مستقیم به فایل های PHP بسیار می تواند خطرناک باشد. دلیل اول محدود کردن این دسترسی استفاده فایل های PHP  از فانکشن های یکدیگر می باشد که در صورت تغییر اشتباه در آنها می تواند اطلاعاتی حیاتی وب سایت را بعنوان خطا نمایش دهد. دلیل دوم آن اجازه ندادن به هکر به استفاده از این فایل های در جهت bypass نمودن حق دسترسی می باشد. در نهایت در صورتی که دایرکتیو register_globals بر روی سرور فعال باشد هکر قادر به انجام اعمال خطرناکی بر روی وب سایت خواهد بود که از آن جمله می توان به تعریف متغیر در درخواست های GET و POST اشاره نمود.

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

# Restrict access to PHP files from plugin and theme directories
RewriteCond %{REQUEST_URI} !^/wp-content/plugins/file/to/exclude\.php
RewriteCond %{REQUEST_URI} !^/wp-content/plugins/directory/to/exclude/
RewriteRule wp-content/plugins/(.*\.php)$ – [R=404,L]
RewriteCond %{REQUEST_URI} !^/wp-content/themes/file/to/exclude\.php
RewriteCond %{REQUEST_URI} !^/wp-content/themes/directory/to/exclude/
RewriteRule wp-content/themes/(.*\.php)$ – [R=404,L]

۱۱- جلوگیری از اجرای فایل های PHP

از آنجایی که سایت ورد پرس امکان آپلود فایل برای کاربر را مهیا می سازد، دایرکتوری upload ورد پرس می بایستی writable یا قابل نوشتن باشد که این مورد یکی از پر ریسک ترین آسیب پذیری های وردپرس بشمار می رود. بهترین راه مقابله با این آسیب پذیری جلوگیری از آپلود فایل های PHP در این دایرکتوری می باشد که در کد زیر آمده است.

<Directory “/var/www/wp-content/uploads/”>
<Files “*.php”>
Order Deny,Allow
Deny from All

۱۲- ایمن سازی لاگ های دیباگ

در زمان توسعه وردپرس برنامه نویسان و یا مدیر سیستم ممکن است که لاگ دیباگ ورد پرس را در جهت رویت خطاهای PHP فعال نموده باشند. ورد پرس از متغیر ثابت WP_DEBUG که در wp-config.php قرار دارد استفاده می کند. این متغیر ثابت به منظور ثبت باگ های بوجود آمده در ورد پرس مورد استفاده قرار می گیرد. به منظور جلوگیری از افشای اطلاعات این متغیر می بایستی  در فایل wp-config.php حذف گردد و یا مقدار آن به false تغییر یابد.

define( ‘WP_DEBUG’, false );

اسکن امنیتی وب سایت
(5000 تومان)

نوع وب سایت: وبلاگ، شرکتی، تجارت الکترونیک و کسب و کارحرفه ای
آسیب پذیری های OWASP (شامل بررسی 10 آسیب پذیری متداول)
اسکن نرم افزار/وب سایت توسط Acunetix نسخه 11
اسکن تمامی پورت ها با ابزار Nmap
اسکن وب سرور و پیکربندی آن توسط ابزار Nikto
اسکن تزریق توسط نرم افزار قدرتمند SQLmap