امنیت در وردپرس بسیار جدی گرفته می شود ، اما مانند هر سیستم دیگری مشکلات امنیتی بالقوه ای وجود دارد که ممکن است در صورت عدم رعایت برخی اقدامات احتیاطی اولیه ایجاد شود. این مقاله برخی از اشکال رایج آسیب پذیریها و کارهایی را که میتوانید انجام دهید تا نصب وردپرس خود را ایمن نگه دارید، بررسی میکند.
این مقاله راه حل سریع و نهایی برای نگرانی های امنیتی شما نیست. اگر نگرانیها یا تردیدهای امنیتی خاصی دارید، باید آنها را با افرادی که به آنها اعتماد دارید و دانش کافی از امنیت رایانه و وردپرس دارند در میان بگذارید.
عساکره 7 آبان 1400
اساسا، امنیت در مورد سیستم های امنیتی یا داشتن سیستم کاملا امن و نگهداری آن ممکن است غیرعملی یا غیرممکن باشد. اما آنچه امنیت است کاهش ریسک است نه حذف ریسک. این در مورد به کارگیری تمام کنترل های مناسب در دسترس شما است که به شما امکان می دهد وضعیت کلی خود را بهبود ببخشید و احتمال اینکه خود را هدف قرار دهید و متعاقباً هک شوید را کاهش دهید.
اغلب، یک مکان خوب برای شروع در مورد امنیت وب سایت، محیط میزبانی شما است. امروزه، تعدادی گزینه در دسترس شماست، و در حالی که هاست ها امنیت را تا حد مشخصی ارائه می دهند، مهم است که بدانید مسئولیت آنها به کجا ختم می شود و مسئولیت شما از کجا شروع می شود. یک سرور امن از حریم خصوصی، یکپارچگی و در دسترس بودن منابع تحت کنترل مدیر سرور محافظت می کند.
ویژگی های یک میزبان وب قابل اعتماد ممکن است شامل موارد زیر باشد:
با تعیین نرم افزار و داده هایی که باید ایمن شوند، تصمیم بگیرید که به کدام امنیت روی سرور خود نیاز دارید. بقیه این راهنما به شما در این امر کمک می کند.
به راحتی می توان به هاست های وب نگاه کرد و مسئولیت امنیت را به آنها واگذار کرد، اما امنیت بسیار زیادی نیز بر عهده صاحب وب سایت است. میزبان های وب اغلب مسئول زیرساختی هستند که وب سایت شما روی آن قرار دارد، آنها مسئولیتی در قبال برنامه ای که شما برای نصب انتخاب می کنید نیستند.
برای درک اینکه کجا و چرا این مهم است، باید بدانید که چگونه وب سایت ها هک می شوند ، به ندرت به زیرساخت نسبت داده می شود و اغلب به خود برنامه (یعنی محیطی که شما مسئول آن هستید) نسبت داده می شود.
هنگام در نظر گرفتن امنیت برای هر یک از جنبه های سیستم خود، چند ایده کلی را در نظر داشته باشید:
محدود کردن دسترسی
انتخاب های هوشمندانه ای که نقاط ورود احتمالی را در دسترس افراد بدخواه کاهش می دهد.
مهارسیستم
شما باید به گونه ای پیکربندی شود که در صورت به خطر افتادن، میزان آسیبی که می تواند وارد شود را به حداقل برساند.
آمادگی و دانش
پشتیبان گیری و اطلاع از وضعیت نصب وردپرس خود در فواصل زمانی معین. داشتن برنامهای برای پشتیبانگیری و بازیابی نصب در صورت بروز فاجعه میتواند به شما کمک کند در صورت بروز مشکل سریعتر آنلاین شوید.
منابع مورد اعتماد
افزونه ها/قالب ها را از منابع نامعتبر دریافت نکنید. خودتان را به مخزن WordPress.org یا شرکت های معروف محدود کنید. تلاش برای دریافت افزونه ها/موضوعات از خارج ممکن است منجر به مشکلاتی شود .
مطمئن شوید رایانههایی که استفاده میکنید عاری از نرمافزارهای جاسوسی، بدافزارها و ویروسها هستند. اگر کی لاگر روی رایانه شما وجود داشته باشد، هیچ میزان امنیتی در وردپرس یا وب سرور شما کوچکترین تفاوتی ایجاد نمی کند.
همیشه سیستم عامل و نرم افزار روی آن، به خصوص مرورگر وب خود را به روز نگه دارید تا از آسیب پذیری های امنیتی محافظت کنید. اگر در حال مرور سایت های نامعتبر هستید، توصیه می کنیم از ابزارهایی مانند no-script (یا غیرفعال کردن جاوا اسکریپت/فلش/جاوا) در مرورگر خود استفاده کنید.
مانند بسیاری از بستههای نرمافزاری مدرن، وردپرس بهطور مرتب بهروزرسانی میشود تا مسائل امنیتی جدیدی که ممکن است ایجاد شود، برطرف کند. بهبود امنیت نرم افزار همیشه یک نگرانی مداوم است و برای این منظور باید همیشه آخرین نسخه وردپرس را به روز نگه دارید . نسخه های قدیمی وردپرس با به روز رسانی های امنیتی نگهداری نمی شوند.
مقاله اصلی: به روز رسانی وردپرس .
آخرین نسخه وردپرس همیشه از وب سایت اصلی وردپرس به آدرس https://wordpress.org در دسترس است . نسخههای رسمی از سایتهای دیگر در دسترس نیستند – هرگز وردپرس را از هیچ وبسایتی غیر از https://wordpress.org دانلود یا نصب نکنید . حتی نگارش فارسی موجود در سایت از خود سایت اصلی وردپرس است – برای اینکار شما میتوانید ادرس لینک دانلود و یا ارجاع در مرورگر خود را مشاهده نمایید.
وردپرس از نسخه 3.7، وردپرس بهروزرسانیهای خودکار را ارائه کرده است. از این قابلیت برای سهولت فرآیند به روز نگه داشتن استفاده کنید. همچنین می توانید از داشبورد وردپرس برای اطلاع از به روز رسانی ها استفاده کنید. ورودی داشبورد یا وبلاگ توسعهدهنده وردپرس را بخوانید تا مشخص کنید چه مراحلی را برای بهروزرسانی و حفظ امنیت باید انجام دهید.
اگر آسیبپذیری در وردپرس کشف شود و نسخه جدیدی برای رفع این مشکل منتشر شود، تقریباً مطمئناً اطلاعات مورد نیاز برای بهرهبرداری از آسیبپذیری در حوزه عمومی است. این باعث میشود که نسخههای قدیمی برای حمله بازتر شوند و یکی از دلایل اصلی است که باید وردپرس را همیشه بهروز نگه دارید.
اگر مدیری هستید که بیش از یک نصب وردپرس را بر عهده دارید، از Subversion برای تسهیل مدیریت استفاده کنید.
اگر فکر می کنید یک نقص امنیتی در وردپرس پیدا کرده اید، می توانید با گزارش مشکل کمک کنید. برای اطلاعات در مورد نحوه گزارش مشکلات امنیتی، پرسشهای متداول امنیتی را ببینید .
اگر فکر می کنید اشکالی پیدا کرده اید، آن را گزارش کنید. برای نحوه انجام این کار به ارسال اشکالات مراجعه کنید . ممکن است آسیبپذیری یا اشکالی را کشف کرده باشید که میتواند منجر به آسیبپذیری شود.
وب سروری که وردپرس را اجرا می کند و نرم افزار روی آن می تواند آسیب پذیری داشته باشد. بنابراین، مطمئن شوید که نسخههای ایمن و پایدار وب سرور و نرمافزار روی آن را اجرا میکنید، یا مطمئن شوید که از یک میزبان قابل اعتماد استفاده میکنید که از این موارد برای شما مراقبت میکند.
اگر روی یک سرور اشتراکی (سروری که میزبان وب سایت های دیگری غیر از سرور شماست) هستید و وب سایتی در همان سرور در معرض خطر قرار گرفته است، حتی اگر همه موارد موجود در این راهنما را دنبال کنید، احتمالاً وب سایت شما نیز به خطر می افتد. حتما از میزبان وب خود بپرسید که چه اقدامات احتیاطی امنیتی انجام می دهند.
شبکه در هر دو طرف – سمت سرور وردپرس و سمت شبکه مشتری – باید قابل اعتماد باشد. این بدان معناست که قوانین فایروال را در روتر خانگی خود به روز کنید و مراقب باشید که از چه شبکه هایی کار می کنید. یک کافی نت که در آن شما در حال ارسال کلمه عبور بیش از یک اتصال تکه تکه کردن، بی سیم و یا در غیر این صورت، است نه یک شبکه قابل اعتماد است.
میزبان وب شما باید مطمئن باشد که شبکه آنها توسط مهاجمان در معرض خطر قرار نمی گیرد و شما نیز باید همین کار را انجام دهید. آسیبپذیریهای شبکه میتوانند رمز عبور و سایر اطلاعات حساس را رهگیری کنند.
با عادات امنیتی خوب می توان از بسیاری از آسیب پذیری های احتمالی جلوگیری کرد. رمز عبور قوی یکی از جنبه های مهم این امر است.
هدف از رمز عبور شما این است که حدس زدن را برای افراد دیگر و موفقیت یک حمله بروتال فورس را سخت کند. بسیاری از تولید کننده های رمز عبور خودکار در دسترس هستند که می توان از آنها برای ایجاد رمزهای عبور ایمن استفاده کرد.
وردپرس همچنین دارای قدرت سنج رمز عبور است که هنگام تغییر رمز عبور در وردپرس نشان داده می شود. هنگام تغییر رمز عبور خود از این مورد استفاده کنید تا مطمئن شوید که قدرت آن کافی است.
مواردی که هنگام انتخاب رمز عبور باید از آنها اجتناب کرد:
یک رمز عبور قوی نه تنها برای محافظت از محتوای وبلاگ شما ضروری است. هکری که به حساب سرپرست شما دسترسی پیدا می کند، می تواند اسکریپت های مخربی را نصب کند که به طور بالقوه می تواند کل سرور شما را به خطر بیندازد.
علاوه بر استفاده از رمز عبور قوی، ایده خوبی است که احراز هویت دو مرحله ای را به عنوان یک اقدام امنیتی اضافی فعال کنید.
هنگام اتصال به سرور خود باید از رمزگذاری SFTP استفاده کنید اگر میزبان وب شما آن را ارائه می دهد. اگر مطمئن نیستید که میزبان وب شما SFTP را ارائه می دهد یا خیر، فقط از آنها بپرسید.
استفاده از SFTP مانند FTP است، با این تفاوت که رمز عبور شما و سایر داده ها رمزگذاری می شوند که بین رایانه شما و وب سایت شما منتقل می شود. این بدان معنی است که رمز عبور شما هرگز به صورت واضح ارسال نمی شود و مهاجم نمی تواند آن را رهگیری کند.
برخی از ویژگی های منظم وردپرس ناشی از امکان نوشتن فایل های مختلف توسط وب سرور است. با این حال، اجازه دسترسی نوشتن به فایلهای شما به طور بالقوه خطرناک است، به ویژه در یک محیط میزبانی مشترک.
بهترین کار این است که مجوزهای فایل خود را تا حد امکان قفل کنید و در مواقعی که نیاز به دسترسی به نوشتن دارید، این محدودیت ها را کاهش دهید، یا برای انجام کارهایی مانند آپلود فایل، پوشه های خاصی با محدودیت های کمتر ایجاد کنید.
در اینجا یک طرح مجوز ممکن است.
همه فایل ها باید متعلق به حساب کاربری شما باشند و باید توسط شما قابل نوشتن باشند. هر فایلی که نیاز به دسترسی نوشتن از وردپرس دارد باید توسط وب سرور قابل نوشتن باشد، اگر راه اندازی میزبانی شما به آن نیاز دارد، ممکن است به این معنی باشد که آن فایل ها باید متعلق به حساب کاربری مورد استفاده در فرآیند وب سرور باشند.
/
دایرکتوری ریشه وردپرس: همه فایل ها باید فقط توسط حساب کاربری شما قابل نوشتن باشند، به جز .htaccess
اگر می خواهید وردپرس به طور خودکار قوانین بازنویسی را برای شما ایجاد کند.
/wp-admin/
بخش مدیریت وردپرس: همه فایل ها باید فقط توسط حساب کاربری شما قابل نوشتن باشند.
/wp-includes/
بخش عمده ای از منطق برنامه وردپرس: همه فایل ها باید فقط توسط حساب کاربری شما قابل نوشتن باشند.
/wp-content/
محتوای ارائه شده توسط کاربر: در نظر گرفته شده است که توسط حساب کاربری شما و فرآیند وب سرور قابل نوشتن باشد.
در داخل /wp-content/
خواهید یافت:
/wp-content/themes/
فایل های تم اگر میخواهید از ویرایشگر تم داخلی استفاده کنید، همه فایلها باید توسط فرآیند وب سرور قابل نوشتن باشند. اگر نمیخواهید از ویرایشگر تم داخلی استفاده کنید، همه فایلها فقط توسط حساب کاربری شما قابل نوشتن هستند.
/wp-content/plugins/
فایل های افزونه: همه فایل ها باید فقط توسط حساب کاربری شما قابل نوشتن باشند.
دایرکتوری های دیگری که ممکن است وجود /wp-content/
داشته باشند باید توسط هر پلاگین یا موضوعی که به آنها نیاز دارد، مستند شوند. مجوزها ممکن است متفاوت باشد.
اگر به سرور خود دسترسی پوسته دارید، می توانید مجوزهای فایل را به صورت بازگشتی با دستور زیر تغییر دهید:
برای دایرکتوری ها:
find /path/to/your/wordpress/install/ -type d -exec chmod 755 {} \;
برای فایل ها:
find / path /to/your/wordpress/install/ - type f -exec chmod 644 {} \;
وقتی به وردپرس میگویید که بهروزرسانی خودکار را انجام دهد، تمام عملیات فایل بهعنوان کاربر مالک فایلها انجام میشود، نه به عنوان کاربر وب سرور. همه فایل ها روی 0644 و همه دایرکتوری ها روی 0755 تنظیم شده اند و فقط توسط کاربر قابل نوشتن هستند و توسط همه افراد از جمله وب سرور قابل خواندن هستند.
اگر چندین وبلاگ را روی یک سرور اجرا می کنید، عاقلانه است که آنها را در پایگاه داده های جداگانه نگهداری کنید که هر کدام توسط یک کاربر متفاوت مدیریت می شوند. این به بهترین وجه هنگام اجرای نصب اولیه وردپرس انجام می شود . این یک استراتژی جلوگیری از خرابکاری است: اگر یک مزاحم با موفقیت یک وردپرس را کرک کند، تغییر وبلاگ های دیگر شما بسیار سخت تر می شود.
اگر MySQL را خودتان مدیریت میکنید، مطمئن شوید که پیکربندی MySQL خود را درک کردهاید و ویژگیهای غیرضروری (مانند پذیرش اتصالات TCP از راه دور) غیرفعال هستند. برای معرفی خوب به طراحی پایگاه داده ایمن MySQL مراجعه کنید .
برای عملیات عادی وردپرس، مانند ارسال پستهای وبلاگ، آپلود فایلهای رسانهای، ارسال نظرات، ایجاد کاربران جدید وردپرس و نصب افزونههای وردپرس، کاربر پایگاه داده MySQL فقط به امتیازات خواندن و نوشتن داده در پایگاه داده MySQL نیاز دارد: انتخاب، درج، به روز رسانی و حذف.(SELECT, INSERT, UPDATE ,DELETE)
بنابراین هر ساختار پایگاه داده و امتیازات مدیریتی دیگر، مانند DROP، ALTER و GRANT را می توان باطل کرد. با لغو چنین امتیازاتی، سیاست های مهار را نیز بهبود می دهید.
توجـه: برخی از افزونه ها، تم ها و به روز رسانی های اصلی وردپرس ممکن است نیاز به ایجاد تغییرات ساختاری پایگاه داده مانند اضافه کردن جداول جدید یا تغییر طرح داشته باشند. در چنین شرایطی، قبل از نصب افزونه یا به روز رسانی یک نرم افزار، باید به طور موقت به کاربر پایگاه داده امتیازات مورد نیاز را بدهید.
اخطـار: تلاش برای بهروزرسانی بدون داشتن این امتیازات میتواند باعث ایجاد مشکل در هنگام ایجاد تغییرات در طرح پایگاه داده شود. بنابراین، اینطور نیست توصیه به لغو این امتیازات. اگر به دلایل امنیتی نیاز به انجام این کار دارید، لطفاً مطمئن شوید که ابتدا یک برنامه پشتیبان قوی در اختیار دارید، با نسخههای پشتیبان معمولی از کل پایگاه داده که آزمایش کردهاید معتبر هستند و به راحتی قابل بازیابی هستند. یک ارتقای ناموفق پایگاه داده معمولاً با بازگرداندن پایگاه داده به نسخه قدیمی، دادن مجوزهای مناسب و سپس اجازه دادن به وردپرس برای آزمایش مجدد بهروزرسانی پایگاه داده حل میشود. بازیابی پایگاه داده آن را به نسخه قدیمی برمی گرداند و صفحه های مدیریت وردپرس نسخه قدیمی را شناسایی کرده و به شما امکان می دهند دستورات SQL لازم را روی آن اجرا کنید. اکثر ارتقاءهای وردپرس طرحواره را تغییر نمی دهند، اما برخی تغییر می دهند. فقط ارتقاء نقاط اصلی (مثلاً 3.7 تا 3.8) طرح واره را تغییر می دهد. ارتقاء جزئی (3.8 به 3.8.1) به طور کلی انجام نمی شود. با این اوصاف،یک نسخه پشتیبان منظم داشته باشید .
افزودن محافظت از رمز عبور سمت سرور (مانند BasicAuth ) برای /wp-admin/
افزودن لایه دوم حفاظت در ناحیه مدیریت وبلاگ، صفحه ورود به سیستم و فایلهای شما است. این مهاجم یا ربات را مجبور می کند که به جای فایل های مدیریت شما، به این لایه دوم حفاظت حمله کند. بسیاری از حملات وردپرس به صورت مستقل توسط ربات های نرم افزاری مخرب انجام می شود.
به سـادگی ایمـن کردن wp-admin/
دایرکـتوری ممکن است برخـی از عملکردهای وردپـرس مانند کنـترل کنـنده AJAX در wp-admin/admin-ajax.php
را خراب نمایید. برای مستندات بیشتر در مورد نحوه محافظت صحیح با رمز عبور دایرکتوری wp-admin/
خود به بخش منابع مراجعه کنید .
رایج ترین حملات علیه وبلاگ وردپرس معمولاً به دو دسته تقسیم می شوند.
اجرای نهایی این محافظت از رمز عبور لایه دوم این است که برای مدیریت نیاز به یک اتصال رمزگذاری شده HTTPS SSL برای دسترسی است، به طوری که تمام ارتباطات و داده های حساس رمزگذاری شوند. به مدیریت از طریق SSL مراجعه کنید .
لایه دوم حفاظتی را می توان وقتی اضافه کرد که در آن اسکریپت ها معمولاً برای هیچ کاربری در نظر گرفته نمی شوند. یکی از راههای انجام این کار، مسدود کردن آن اسکریپتها با استفاده از mod_rewrite در فایل htaccess است.
توجه: برای اطمینان از اینکه کد زیر توسط وردپرس بازنویسی نشده است، آن را خارج از تگ های # BEGIN WordPress
و # END WordPress
در فایل htaccess قرار دهید. وردپرس می تواند هر چیزی را بین این تگ ها بازنویسی کند.
# Block the include-only files. <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^wp-admin/includes/ - [F,L] RewriteRule !^wp-includes/ - [S=3] RewriteRule ^wp-includes/[^/]+\.php$ - [F,L] RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L] RewriteRule ^wp-includes/theme-compat/ - [F,L] </IfModule> # BEGIN WordPress
توجه داشته باشید که این کار در Multisite به خوبی کار نخواهد کرد،
زیرا RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
از تولید تصاویر توسط فایل ms-files.php جلوگیری می کند. حذف آن خط به کد اجازه می دهد تا کار کند، اما امنیت کمتری را ارائه می دهد.
می توانید فایل wp-config.php را به دایرکتوری بالای نصب وردپرس خود منتقل کنید. این بدان معناست که برای سایتی که در ریشه فضای وب شما نصب شده است، می توانید wp-config.php را در خارج از پوشه web-root ذخیره کنید.
توجه: برخی افراد ادعا میکنند که انتقال wp-config.php دارای حداقل مزایای امنیتی است و اگر با دقت انجام نشود، ممکن است آسیبپذیریهای جدی ایجاد کند. دیگران مخالفند .
توجه داشته باشید که wp-config.php را می توان یک سطح دایرکتوری بالاتر از نصب وردپرس (جایی که wp-includes موجود است) ذخیره کرد. همچنین، مطمئن شوید که فقط شما (و سرور وب) می توانید این فایل را بخوانید (به طور کلی به معنای مجوز 400 یا 440 است).
اگر از سروری با htaccess. استفاده میکنید، میتوانید این را در آن فایل (در بالای صفحه) قرار دهید تا از دسترسی هر کسی که برای آن جستجو میکند جلوگیری کنید:
<files wp-config.php> order allow,deny deny from all </files>
داشبورد وردپرس به طور پیشفرض به مدیران اجازه میدهد فایلهای PHP، مانند فایلهای افزونه و تم را ویرایش کنند. این اغلب اولین ابزاری است که مهاجم در صورت امکان لاگین از آن استفاده می کند، زیرا امکان اجرای کد را فراهم می کند. وردپرس برای غیرفعال کردن ویرایش از داشبورد ثابت دارد. قرار دادن این خط در wp-config.php معادل حذف قابلیتهای «edit_themes»، «edit_plugins» و «edit_files» همه کاربران است:
define('DISALLOW_FILE_EDIT', true);
این مانع از آپلود فایل های مخرب در سایت شما توسط مهاجم نمی شود، اما ممکن است برخی از حملات را متوقف کند.
اول از همه، مطمئن شوید که افزونه های شما همیشه به روز هستند. همچنین اگر از افزونه خاصی استفاده نمی کنید، آن را از سیستم حذف کنید.
افزونه ها و سرویس های زیادی وجود دارند که می توانند به عنوان فایروال برای وب سایت شما عمل کنند. برخی از آنها با تغییر فایل htaccess شما و محدود کردن برخی دسترسی ها در سطح آپاچی، قبل از پردازش توسط وردپرس کار می کنند. یک مثال خوب iThemes Security یا All in One WP Security است . برخی از افزونههای فایروال در سطح وردپرس عمل میکنند، مانند WordFence و سعی میکنند حملات را هنگام بارگیری وردپرس فیلتر کنند، اما قبل از پردازش کامل این کار انجام می شود.
علاوه بر افزونهها، میتوانید یک WAF (فایروال وب) را در سرور وب خود نصب کنید تا محتوا را قبل از پردازش توسط وردپرس فیلتر کنید. محبوب ترین WAF منبع باز ModSecurity است.
فایروال وب سایت نیز می تواند به عنوان واسطه بین ترافیک اینترنت و سرور میزبان شما اضافه شود. این سرویسها همگی به عنوان پراکسی معکوس عمل میکنند، که در آن درخواستهای اولیه را میپذیرند و آنها را به سرور شما تغییر مسیر میدهند و آن را از تمام درخواستهای مخرب حذف میکنند. آنها این کار را با تغییر سوابق DNS شما، از طریق یک رکورد CNAME یا تعویض کامل DNS انجام می دهند، و اجازه می دهند تمام ترافیک ابتدا از طریق شبکه جدید عبور کند. این باعث می شود که تمام ترافیک قبل از رسیدن به سایت شما توسط فایروال فیلتر شود. چند شرکت مانند Cloudflare (به راهنمای سختسازی امنیت وردپرس مراجعه کنید )، Sucuri و Incapsula چنین خدماتی را ارائه میدهند .
علاوه بر این، این ارائه دهندگان خدمات شخص ثالث به طور پیش فرض به عنوان شبکه توزیع محتوا (CDN) عمل می کنند و بهینه سازی عملکرد و دسترسی جهانی را معرفی می کنند.
اگر افزونهای میخواهد به فایلها و دایرکتوریهای وردپرس شما دسترسی داشته باشد، لطفاً کدنویسی آن را بخوانید تا مطمئن شوید که قانونی است یا توسط شخصی که به آن اعتماد دارید آن را بررسی کنید. مکانهای ممکن برای بررسی، انجمنهای پشتیبانی و کانال IRC هستند .
همانطور که گفتیم، بخشی از هدف مقاوم سازی وردپرس شامل آسیبهایی است که در صورت حمله موفقیتآمیز ایجاد میشود. پلاگین هایی که به PHP دلخواه یا کدهای دیگر اجازه می دهند از ورودی های یک پایگاه داده اجرا شوند، به طور موثر احتمال آسیب را در صورت حمله موفقیت آمیز افزایش می دهند.
یک راه برای جلوگیری از استفاده از چنین افزونه ای استفاده از قالب های صفحه سفارشی است که تابع را فراخوانی می کند. بخشی از امنیتی که این کار فراهم می کند تنها زمانی فعال است که ویرایش فایل را در وردپرس ممنوع کنید .
امنیت از طریق ابهام به طور کلی یک استراتژی اولیه نامناسب است. با این حال، مناطقی در وردپرس وجود دارد که پنهان کردن اطلاعات ممکن است به امنیت کمک کند:
admin
یا webmaster
نام کاربری خودداری کنید زیرا معمولاً ابتدا در معرض حملات قرار می گیرند. در نصب وردپرس موجود، میتوانید نام حساب موجود در سرویس گیرنده خط فرمان MySQL را با دستوری مانند UPDATE wp_users SET user_login = 'newuser' WHERE user_login = 'admin';
یا با استفاده از یک فرانت اند MySQL مانند phpMyAdmin تغییر دهید .
wp_
پیشفرض است. تغییر این می تواند حداقل برخی از حملات تزریق SQL را مسدود کند.به طور منظم از داده های خود از جمله پایگاه داده MySQL خود نسخه پشتیبان تهیه کنید. مقاله اصلی را ببینید: پشتیبان گیری از پایگاه داده خود .
یکپارچگی داده ها برای پشتیبان گیری قابل اعتماد بسیار مهم است. رمزگذاری پشتیبانگیری، نگهداشتن یک رکورد مستقل از هشهای MD5 برای هر فایل پشتیبان، و/یا قرار دادن نسخههای پشتیبان در رسانههای فقط خواندنی، اطمینان شما را از دستکاری نکردن دادههایتان افزایش میدهد.
یک استراتژی پشتیبانگیری میتواند شامل نگهداشتن مجموعهای از نسخه های فوری زمانبندی شده از کل نصب وردپرس (از جمله فایلهای هسته وردپرس و پایگاه داده شما) در یک مکان مطمئن باشد. سایتی را تصور کنید که نسخه های فوری هفتگی می سازد. چنین استراتژی به این معنی است که اگر سایتی در اول ماه مه به خطر بیفتد، اما تا 12 مه شناسایی نشود، صاحب سایت دارای پشتیبانگیری از قبل از در معرض خطر بودن است که میتواند به بازسازی سایت و احتمالاً حتی بازیابی نسخههای پشتیبان پس از به خطر افتادن کمک کند.
گزارشها بهترین دوست شما برای درک اتفاقاتی هستند که در وبسایت شما اتفاق میافتد، به خصوص اگر در تلاش برای انجام تحقیقات بهینه سازی و امنیت هستید. برخلاف باورهای رایج، لاگ به شما امکان می دهد ببینید چه کاری و توسط چه کسی و چه زمانی انجام شده است. متأسفانه گزارشها به شما نمیگویند چه کسی، نام کاربری، وارد شده است، اما به شما امکان میدهد IP و زمان و مهمتر از آن، اقداماتی که مهاجم ممکن است انجام داده باشد را شناسایی کنید. شما میتوانید هر یک از این حملات را از طریق گزارشها مشاهده کنید – Cross Site Scripting (XSS)، Remote File Inclusion (RFI)، Local File Inclusion (LFI) و تلاشهای Directory Traversal. همچنین میتوانید تلاشهای brute force را ببینید. مثالها و آموزشهای مختلفی برای کمک به شما در فرآیند تجزیه و تحلیل لاگهای خام وجود دارد.
اگر با گزارشهای خود راحتتر شوید، میتوانید مواردی مانند، زمانی که از ویرایشگرهای تم و افزونه استفاده میشود، زمانی که شخصی ویجتهای شما را بهروزرسانی میکند و زمانی که پستها و صفحات اضافه میشوند را ببینید. همه عناصر کلیدی هنگام انجام کار روی وب سرور شما است. چند افزونه امنیتی وردپرس هستند که به شما در این امر کمک می کنند، مانند ابزار Sucuri Auditing یا افزونه Audit Trail .
دو راه حل کلیدی منبع باز وجود دارد که از منظر امنیتی روی سرور وب خود می خواهید، این یک رویکرد لایه ای برای امنیت است.
OSSEC می تواند بر روی هر توزیع NIX اجرا شود و همچنین در ویندوز اجرا می شود. وقتی به درستی پیکربندی شود بسیار قدرتمند است. این ایده همبستگی و تجمیع تمام سیاهههای مربوط است. شما باید مطمئن شوید که آن را به گونه ای پیکربندی کنید که همه access_logs و error_logs را ضبط کند و اگر چندین وب سایت در حساب سرور برای آن دارید. همچنین باید مطمئن شوید که نویز را فیلتر کنید. بهطور پیشفرض، نویز زیادی خواهید دید و میخواهید آن را طوری پیکربندی کنید که واقعاً مؤثر باشد.
گاهی اوقات پیشگیری کافی نیست و ممکن است همچنان هک شوید. به همین دلیل است که تشخیص/نظارت نفوذ بسیار مهم است. این به شما امکان می دهد سریعتر واکنش نشان دهید، بفهمید چه اتفاقی افتاده و سایت خود را بازیابی کنید.
مانیتورینگ بر لاگ های شما
اگر روی یک سرور خصوصی اختصاصی یا مجازی هستید که در آن لوکس دسترسی روت را دارید، می توانید به راحتی موارد را پیکربندی کنید تا بتوانید ببینید چه اتفاقی می افتد. OSSEC به راحتی این کار را تسهیل می کند .
مانیتورینگ بر فایل های خود برای تغییرات
وقتی حمله ای اتفاق می افتد، همیشه آثاری از خود بر جای می گذارد. چه در گزارشها یا در سیستم فایل (فایلهای جدید، فایلهای اصلاحشده و غیره). برای مثال اگر از OSSEC استفاده میکنید، فایلهای شما را کنترل میکند و در صورت تغییر به شما هشدار میدهد.
اهداف مانیتورینگ فایل سیستم عبارتند از:
رویکردهای عمومی
مدیران می توانند سیستم فایل را از طریق فناوری های عمومی مانند:
ابزارهای خاص
گزینه های نظارت بر سیستم فایل عبارتند از:
هنگام پیکربندی یک استراتژی نظارت مبتنی بر فایل، ملاحظات زیادی وجود دارد، از جمله موارد زیر.
اسکریپت/سرویس مانیتورینگ را به صورت روت اجرا کنید
این امر غیرفعال کردن یا تغییر راه حل نظارت بر سیستم فایل شما را برای مهاجمان دشوار می کند.
مانیتورینگ را در طول تعمیرات/به روز رسانی برنامه ریزی شده غیرفعال کنید
این امر از اعلانهای غیر ضروری هنگام انجام تعمیر و نگهداری منظم سایت جلوگیری میکند.
فقط انواع فایل های اجرایی را مانیتور کنید
ممکن است نظارت بر انواع فایلهای اجرایی، مانند فایلهای php. و غیره، نسبتاً ایمن باشد. فیلتر کردن فایلهای غیرقابل اجرا ممکن است ورودیهای گزارش و هشدارهای غیرضروری را کاهش دهد.
از مجوزهای سختگیرانه سیستم فایل استفاده کنید
درباره ایمن کردن مجوزها و مالکیت فایل بخوانید. به طور کلی، تا حد امکان از اجازه دادن به مجوزهای اجرا و نوشتن خودداری کنید.
مانیتورینگ وب سرور شما به صورت خارجی
اگر مهاجم سعی می کند سایت شما را خراب کند یا بدافزار اضافه کند، می توانید این تغییرات را با استفاده از یک راه حل نظارت بر یکپارچگی مبتنی بر وب نیز شناسایی کنید. این امروزه به اشکال مختلفی ارائه می شود، از موتور جستجوی مورد علاقه خود استفاده کنید و به دنبال شناسایی و اصلاح بدافزارهای وب بگردید و احتمالاً لیست بلندبالایی از ارائه دهندگان خدمات دریافت خواهید کرد.