راهنمای افزایش امنیت WordPress – قدم به قدم (۲۰۲۰)

sina yeganeh

2020-07-11
10 دقیقه
دسته بندی :

راهنمای افزایش امنیت WordPress – قدم به قدم (۲۰۲۰)

این راهنمای امنیت WordPress به طور کامل در مورد نحوه تامین امنیت کاربران ، کاهش تهدیدات و ایجاد یک وب سایت امن WordPress می باشد.

سیستم مدیریت محتوای WordPress یک نرم افزار منبع باز یا همان اوپن سورس است که برای ایجاد وب‌سایت یا فروشگاه اینترنتی  از آن استفاده می شود و بیش از ۳۵ درصد از کل وب‌سایت‌ها در جهان با استفاده از وردپرس ساخته‌شده‌اند.

آیا WordPress امن است؟

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

شما می توانید لیست آسیب پذیری های منتشر شده بر روی هسته وردپرس را از سایت wpvulndb.com مشاهده کنید

فهرست مطالب:

۱- اقدامات اولیه برای امنیت وردپرس

• به روز رسانی ور‌دپرس

• به روز رسانی افزونه ها

• دریافت هشدار در هنگام اختلال و از دسترس خارج شدن سایت

۲-بالا بردن امنیت وردپرس با چند قدم

• دریافت بک اپ از سایت وردپرس

• محافظت از سایت با https

• اضافه کردم رمز دو مرحله ای برای ورود به پنل مدیریت وردپرس

• استفاده از WAF برای امنیت وردپرس

• محدودیت تعداد تلاش برای ورود به پنل مدیریت

• تغییر پوشه پیش فرض مدیریت wp-admin

۳-امنیت وردپرس به صورت حرفه ای

• غیر فعال کردن قابلیت تغییرات فایل

• جلوگیری از اجرای فایل های php در دایرکتوری uploads

• غیر فعال کردن نمایش لیست فایل ها

• اسکن و شناسایی کدهای مخرب در سایت وردپرس

• غیر فعال کردن api مربوط به افشای اطلاعات کاربر

• عدم استفاده از افزونه و قالب های تجاری کرک شده

• سطح دسترسی پوشه های وردپرس

• تنظیمات php برای غیر فعال کردن فانکشن های خطرناک

سوالات متداول

: اقدامات اولیه برای امنیت وردپرس

:به روز رسانی ور‌دپرس

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

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

برخی از آسیب پذیری های منتشر شده :

  •  آسیب پذیری XSS رو تمام ورژن های قبل از WordPress 5.2.3
  • حملات RCE یا اجرای دستورات سیستم بر روی سایت های وردپرس ورژن قبل از ۴.۹.۹ و تمام ورژن های ۵.x تا قبل از ۵.۰.۱
  • حملات DDOS و DOS به سایت های وردپرس قبل از ۴.۹.۲  و از دسترس خارج کردن سایت

برای کشف آسیب پذیری های سایت وردپرس می توانید از اسکنر و تست نفوذ آنلاین وبگارد استفاده کنید.


نحوه فعال سازی آپدیت اتوماتیک وردپرس

  1. از طریق  FTP یا  SFTP به سایت متصل شوید .
  2. فایل  wp-config.php  را باز کنید ، این فایل در روت اصلی سایت وجود دارد .

خط زیر را به انتهای صفحه اضافه کنید:

define( ‘WP_AUTO_UPDATE_CORE’, true );


به روز رسانی افزونه ها

اگر شما پلاگین های خود را به روز رسانی نکنید و یا از پلاگین هایی که به روز رسانی نمی شوند یا تیم پشتیبانی ندارد استفاده کنید به زودی وب سایت شما هک خواهد شد

این افزونه های درهای نفوذ به وب سایت شما هستند و تنها کافیه یکی از این افزونه ها به روز رسانی نشده باشد و یا آسیب پذیری روی آنها کشف شود. مهاجم می تواند به راحتی به سایت شما نفوذ کند

وردپرس دارای ساختار مشخصی می باشد و پلاگین ها در مسیر :/wp-content/plugins/ بارگذاری می شود . این یعنی اگر پلاگین نصب کنید داخل پوشه plugins یک دایرکتوری به نام پلاگین ایجاد می شود.

لیست این پلاگین ها به صورت عمومی می باشد و مهاجم می تواند اسم تمام پلاگین های را در این دایرکتوری جستجو کند و لیست پلاگین های شما  را کشف کند .

در مثال زیر نمونه ای از نتیجه اسکن امنیت وردپرس با استفاده از اسکنر سایت وبگارد به صورت رایگان را مشاهده می کنید.

نتیجه اسکن آسیب پذیری وردپرس

آسیب پذیری وردپرس و سو استفاده از طریق پلاگین

در این مثال وبسایت از پلاگین   WP-Statistics که یکی از پر طرفدار ترین پلاگین های مربوط به وردپرس می باشد استفاده می کند که این پلاگین به شما کمک می کند وبسایت و کاربران خود را رسد کنید

وب سایت هدف از WP-Statistics  ورژن 12.0.7 استفاده کرده که این نسخه یک نسخه قبل از اخرین نسخه می باشد . در این نسخه یک  آسیب پذیری از نوع  sql Injection وجود دارد که مهاجم با سو استفاده از این آسیب پذیری می تواند به بانک اطلاعاتی وب سایت دسترسی پیدا کند و وب سایت شما را هک کند

اطلاعات فنی این آسیب پذیری و نحوه سو استفاده از این آسیب پذیری به صورت عمومی منتشر شده است جزئیات فنی این آسیب پذیری در سایت Sucuri منتشر شده است


دریافت هشدار در هنگام اختلال و از دسترس خارج شدن سایت

Uptime Robot هر 5 دقیقه 1 بار سایت شما را مانیتور می کند و اگه سایت  در دسترس نباشد و یا با خطایی مواجه شده باشد شما رو از طریق ایمیل مطلع میکنه. سرویس Uptime Robot  رایگان بوده و اجازه میدهد تا ۵۰ سایت برای هر نام کاربری رایگان می باشد

در ویدیو زیر نحوه ثبت نام و مانیتورینگ سایت توسط سرویس آپ تایم ربات ارائه شده است


تهیه نسخه پشتیبانی از سایت

تهیه نسخه پشتیبان از پایگاه داده وردپرس یکی از مهم‌ترین و حیاتی‌ترین کارهایی است که باید به صورت مداوم آن را انجام دهید.

به یاد داشته باشید ، هیچ چیز 100٪ امن نیست. و شما باید به صورت مداوم از بانک اطلاعاتی و تمام فایل ها و دایرکتوری ها نسخه پشتیبانی تهیه کنید

پیشنهاد میشود که فایل های پشتیبانی داخل سرور نگه داری نشده و در سیستم های ابری مانند Dropbox , ابرآروان نگه داری شود

Dropbox ۲گیگ فضای رایگان در اختیار کاربران خود قرار می دهد

شما می توانید با استفاده از ابزار ها و پلاگین های مختلف مانند wordpress-backup-to-dropbox بک آپ های سایت خود را به Dropbox ارسال کنید

backwpup : یک افزونه رایگان است که به شما امکان می دهد پشتیبان گیری کامل وردپرس را به صورت رایگان ایجاد کنید و آن را در ابر (Dropbox ، Amazon S3 ، Rackspace و غیره) ، FTP ، ایمیل یا رایانه خود ذخیره کنید.


محافظت از سایت با https

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

مرکز ماهر بمنظور تسهیل فرایند درخواست و دریافت گواهینامه SSL از LetsEncrypt CA ایجاد شده است. در این سامانه شما میتوانید برای وبسایت یا سامانه‌های خود گواهینامه SSL معتبر بصورت رایگان دریافت نمایید. این گواهینامه‌ها توسط موسسه‌ی LetsEncrypt CA* صادر می‌گردد. برای این منظور مجموعه ابزاری تهیه گردیده است که بر حسب نیاز، کاربر میتواند با استفاده از آن تمامی مراحل دریافت، نصب، پیکربندی و صدور مجدد گواهینامه‌ی SSL را به صورت خودکار انجام دهد. با استفاده از ابزار تحت وب (آنلاین) سامانه نیز کاربر میتواند تنها با چند کلیک و بعد از احراز مالکیت دامنه، گواهینامه SSL را دریافت نماید.

دریافت گواهی SSL به صورت رایگان

https://letsencrypt.cert.ir/register

اضافه کردم رمز دو مرحله ای برای ورود به پنل مدیریت WordPress

با استفاده از افزونه Two Factor Authentication می توانید یک احراز هویت 2 مرحله ای برای ورود به بخش مدیریت سایت وردپرس ایجاد کنید .


استفاده از WAF برای امنیت وردپرس

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

یکی از راه های ساده برای ایجاد امنیت برای سایت های وردپرس استفاده از فایروال می باشد همانند:  فایروال وبگارد .

برخی از قابلیت های فایروال وبگارد:

  • مانیتور Real Time و شناسایی حملات
  • فایروال وب اپلیکیشن وبگارد  در کوتاه ترین زمان ممکن هر محیط تحت وب را در برابر بیش از ۱۴,۰۰۰ مورد آسیب پذیری نرم افزاری و پیکربندی های ناقص سرور، ایمن  می سازد.
  • شرکت‌ها و سازمان‌ها  با هشدارها و لاگ‌های دقیق از تلاش هایی که برای نفوذ به سیستم انجام شده  به همراه اطلاعات لازم در مورد انواع حملات، مبدا حملات، واکنش های انجام گرفته و بسیاری موارد دیگر آگاه می کند .
  • فراهم آوردن امنیت و محافظت آنی بلافاصله بعد از پیاده سازی و بدون نیاز به هرگونه دستکاری و تغییر در وب سایت
  • سهولت کاربری بالا و بدون نیاز به تخصص و دانش ویژه
  • ابزارهای پیشرفته برای کاهش وضعیت False Positive  به همراه قابلیت ارزیابی کاربر و ردیابی
  • تمامی ترافیک های ورودی و توسط فایروال وب گارد بررسی میگردند و در صورتی که مورد مشکوک یا مطابق با رول های تعریف شده باشد جلوی آن گرفته می شود.
  • تمامی فایل های در هنگام بارگذاری، از طریق فایروال بصورت کامل و طبق آخرین آپدیت رول ها بررسی میگردند و در صورتی که مورد مشکوک و مطابق با الگوهای تعریف شده مانند درب های پشتی و شلرها  وجود داشته باشد به سرعت شناسایی و قرنطینه کند.
  • جلوگیری از حملات و سواستفاده از آسیب پذیری های 1Day با استفاده از  پچ های امنیتی ارائه شده.
  • تشخیص و جلوگیری از فعالیت ربات ها و اسکنرهایی همچون Acunetix , Netsparker,AppScan  و …

محدودیت تعداد تلاش برای ورود به پنل مدیریت

به طور پیش فرض ، وردپرس به کاربران اجازه می دهد تا هر تعداد که بخواهند پسورد مدیر را امتحان کند. اما این کار به هکر ها اجازه می دهد تا پسورد های مختلف را برای ورود به بخش مدیریت تست کنند ،و در برابر حملات bruteforce آسیب پذیر باشد.

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

اما اگر فایروال ندارید می توانید افزونه Login LockDown را نصب و فعال کنید.


تغییر پوشه پیش فرض مدیریت wp-admin

صفحه ورود مدیریت وردپرس به صورت پیش فرض در مسیر  wp-admin می باشد

شما با استفاده از افزونه  HC Custom WP-Admin URL    قادر به تغییر آدرس ورود به مدیریت وردپرس یعنی wp admin و wp-login.php هستید


غیر فعال کردن قابلیت تغییرات فایل

 WordPress از یک ویرایشگر کد استفاده می کند که به شما امکان می دهد سورس قالب ها  و پلاگین های خود را درست از پنل مدیریت وردپرس ویرایش کنید. این ویژگی می تواند خطر ناک باشد و هکر های از این قابلیت وردپرس برای نصب شلر ها و Backdoor خود استفاده می کنند، پیشنهاد می شود که این قابلیت را غیر فعال کنید

شما می توانید به اضافه کردن خط زیر به انتهای فایل wp-config.php این کار را انجام دهید:

// Disallow file edit
define( 'DISALLOW_FILE_EDIT', true );

 


جلوگیری از اجرای فایل های php در دایرکتوری uploads

یکی دیگر از راه ها برای افزایش امنیت وردپرس جلوگیری از اجرای فایل های php در دایرکتوری wp-content/uploads/ می باشد.

برای این کار لازم است یک فایل به نام .htaccess در دایرکتوری /wp-content/uploads/ ایجاد کنید و اطلاعات زیر را در فایل وارد کنید :

<Files *.php>
deny from all
</Files>

غیر فعال کردن نمایش لیست فایل ها

همین حالا مسیر زیر را در سایت وردپرس خود باز کنید :http://YourSite.ir/wp-content/uploads/

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

برای حل این مشکل باید در روت اصلی سایت فایل .htaccess را باز کنید و اطلاعات زیر را به آن اضافه کنید :

Options -Indexes


اسکن و شناسایی کدهای مخرب در سایت WordPress

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

خیلی وقت ها شما هک می شوید ، اما هدف اطلاعات شما نیست و از سرور های شما برای مقصود دیگه مانند حملات DDOS به سایت های دیگر ، Crypto mining و ….  استفاده می شود.

به شما پیشنهاد می کنم که حتما سایت وردپرس را اسکن کنید و اگر سایت شما به کد های مخرب آلوده شده است شناسایی و حذف نمایید.

راه های شناسایی کدهای مخرب در سایت وردپرس:

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

اما اگر از فایروال سایت استفاده نمی کنید می توانید با استفاده از راهکار زیر آنها را شناسایی کنید

داخل پوشه /wp-content/uploads اگر فایل php شناسایی کردید ، امکان اینکه این فایل یک درب پشتی باشد بسیار بالا است. چون به صورت پیش فرض امکان آپلود این فایل ها از طریق وردپرس وجود ندارد . شما می توانید از دستور زیر برای اسکن و شناسایی تمام دایرکتوری های داخل uploads استفاده کنید

find /Your-Web-Directory/wp-content/uploads/ -type f -mtime -n -name '*.php' 

معمولا در فایل های مخرب از توابع php زیر استفاده می شود :

  • base64
  • str_rot13
  • gzuncompress
  • eval
  • exec
  • system
  • assert
  • stripslashes
  • preg_replace (with /e/)
  • move_uploaded_file

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


غیر فعال کردن api مربوط به افشای اطلاعات کاربر

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

همین حالا لیست یوسر های مدیریت سایت وردپرس را از لینک زیر دریافت کنید :

https://YourSite.ir/wp-json/wp/v2/users

این یک آسیب پذیری نیست ، اما به دست آمدن لیست نام کاربری مدیر های سیستم به این سادگی ، می تواند به ربات ها و هکر ها امکان حملات BruteForce را راحت تر می کند

این حمله به صورت پیش فرض در فایروال وبگارد گرفته شده است

بهترین راه برای جلوگیری از این مشکل فیلتر کردن خروجی درخواست می باشد

برای این کار در فایل functions.php در پوشه پوسته وردپرس سایت کد زیر را اضافه کنید :

add_filter( 'rest_endpoints', function( $endpoints ){
    if ( isset( $endpoints['/wp/v2/users'] ) ) {
        unset( $endpoints['/wp/v2/users'] );
    }
    if ( isset( $endpoints['/wp/v2/users/(?P<id>[\d]+)'] ) ) {
        unset( $endpoints['/wp/v2/users/(?P<id>[\d]+)'] );
    }
    return $endpoints;
});

 

اگر از قابلیت Rest Api وردپرس استفاده نمی کنید پیشنهاد می شود به صورت کامل غیر فعال شود. برای این کار در فایل functions.php در پوشه پوسته وردپرس سایت کد زیر را اضافه کنید :

add_filter('rest_enabled', '_return_false');
add_filter('rest_jsonp_enabled', '_return_false');

امنیت افزونه و پلاگین ها

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

این افزونه های درهای نفوذ به وب سایت شما هستند و تنها کافیه یکی از این افزونه ها به روز رسانی نشده باشد و یا آسیب پذیری روی آنها کشف شود. مهاجم می تواند به راحتی به سایت شما نفوذ کند

وردپرس دارای ساختار مشخصی می باشد و پلاگین ها در مسیر :/wp-content/plugins/ بارگذاری می شود . این یعنی اگر پلاگین نصب کنید داخل پوشه plugins یک دایرکتوری به نام پلاگین ایجاد می شود.

همانطور که مشاهده می کنید لیست پلاگین ها و ورژن استفاده شده آنها به راحتی کشف می شود.  و نسخه woocommerce دارای آسیب پذیری می باشد

اگر شما پلاگین های خود را به روز رسانی نکنید و یا از پلاگین هایی که به روز رسانی نمی شوند یا تیم پشتیبانی ندارد استفاده کنید به زودی وب سایت شما هک خواهد شد


عدم استفاده از افزونه و قالب های تجاری کرک شده

این جمله رو همیشه به یاد داشته باشید ؛

“ابزار های تجاری کرک شده که به صورت رایگان در اختیار شما قرار گرفته ، عموما هدفشان هک کردن شما هستش که شما این اجازه را با دست های خود به آنها می دهید .”

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

به این فایل ها درب پشتی یا Backdoor گفته می شود که برای دسترسی به وب سایت شما ایجاد شده اند .

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

من در ویدیویی از نحوه عملکرد فایل های مخرب و شلرها در ویدیو قرار داده ام که نشان می دهد تنها با اضافه کردن یک خط کد در سایت  می توان به تمام اطلاعات وب سایت دسترسی داشت

به شما پیشنهاد می کنم برای اطلاعات بیشتر از عملکرد backdoor ها ویدیو زیر را مشاهده کنید .

اگر وب سایت خود را بررسی کردید و کد های مخرب در سایت شناسایی کردید از کارشناسان ما مشاوره رایگان دریافت کنید !

امنیت بخش مدیریت WordPress

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

  • صفحه پنل مدیریت را از مسیر پیش فرض WP-Admin تغییر دهید
  • از نام کاربری Admin و administrator برای مدیریت استفاده نکنید
  • کافیست از رمز عبور ۸ کارکتری استفاده کنید که شامل عدد ، حرف بزرگ و حرف کوچک باشد
  • فعال کردن رمز دو مرحله ای برای ورود به پنل مدیریت
برچسب ها:
اشتراک گذاری: