در مقالهی قبل با آسیب پذیرترین افزونههای وردپرس آشنا شدید. حال، بهتر است ابتدا بدانید چه آسیبهایی آنها را تهدید میکند و بعد از آن با بهترین راه ها برای حفظ امنیت وبسایت وردپرسی آشنا شوید.
ایرادهای رایج در افزونه های وردپرس
فهم آسیبهایی که افزونههای وردپرس را تهدید میکنند؛ به درک عمیقی از تهدیدهای امنیتی و خطرات استفاده از آنها کمک میکند. در ادامه با برخی از این آسیبهای رایج آشنا میشوید:
SQL Injection های وردپرس
SQL Injection (تزریق دستورات سمی در پایگاه داده)؛ یکی از رایجترین حملههایی است که به دلیل آسیبپذیری در افزونهها رخ میدهد. این اتفاق زمانی میافتد که افزونه اطلاعات ارسالی به پایگاه داده را که با استفاده فرمها یا قسمت سرچ انجام میشود، اعتبارسنجی نمیکند.
هکرها با تزریق کدهای خرابکارانه از طریق فیلدهای فرمها از این آسیب پذیری سوءاستفاده میکنند و زمانی که کد آلوده وارد دیتابیس شما شود، هکرها از آن برای ساخت دسترسی برای خود یا تزریق لینکها اسپم استفاده میکنند.
احراز هویت ناقص (broken authentication)
حملات احراز هویت ناقص به حمله کنندهها، سطوح دسترسی ادمین را اعطا میکنند. این حملات با استفاده از آسیبپذیریهایی رخ میدهند که به هکر اجازهی ورود به عنوان ادمین را میدهد. یکی از دلایل زیر میتواند راه ورود هکر باشد: استفاده از رمز عبور (پسورد) ضعیف، اشتراک گذاری رمز عبور در شبکهی رمزگذاری نشده، و شناسه نشست (session id) قابل رویت در URL. در صورت دسترسی هکر به پنل ادمین، آسیبهای زیادی به سایت وارد میشود.
آشکارسازی دادهها
حملاتdata exposure یا آشکاریسازی دادهها به صورت ناخواسته دادههای شخصی کاربران سایت یا دادههای حساس کسب و کار را آشکارسازی میکند، که میتواند باعث آسیبهای زیادی شود. آشکارسازی دادهها با نفوذ در داده(data breach) متفاوت است، گرچه به هم ارتباط هم دارند. در نفوذ به دادهها، هکر اطلاعات را میدزدد.
اما حملات آشکارسازی دادهها زمانی رخ میدهد که دادههای ذخیره شده به خوبی محافظت نمیشوند، که این آسیب پذیری بسیار نیز رایج است. اگر رمزگذاری برای وبسایتتان ضعیف باشد، یا سیستم درستی برای رمزگذاری نداشته باشید، یا در کد خود رخنهای داشته باشید، و یا آپلود دچار اشتباه شوید، امنیت سایت به شدت کم شده و در معرض حمله قرار میگیرد.
مشکلات XML external entity
تمامی وبسایتها دارای ویژگیای به نامXML parser هستند. این قسمت مشخص از کد، برای اجرای وبسایت مهم است؛ زیرا زبان نشانه گذاری گسترش پذیر یا XML را تبدیل به کدهای قابل خواندن میکند. اما تمام XML parser به خوبی ساخته نشدهاند و بعضی از آنها آسیبپذیری های جدی دارند.
این آسیب پذیریها میتوانند با حملهی XML External Entity (XXE) مورد سوءاستفاده قرار بگیرند. درواقع parser XMLها، XML را دریافت میکنند، آن را پردازش میکنند، و به کدهای قابل خواندن تبدیل میکنند.
اما اگر آسیب پذیریای وجود داشته باشد، parser به جای تبدیل کد، داده های اضافه را بازمیگرداند یا کدهای مخرب را اجرا میکند. این عمل میتواند موجب هر اتفاقی بشود؛ از استخراج داده تا دسترسی به اکانت و حملات DDos.
نقض کنترل دسترسی (broken access control)
حملات نقض کنترل دسترسی با نام بالا بردن سطح دسترسی نیز شناخته میشوند. زیرا کاربران میتوانند به قسمتهایی از وبسایت دسترسی پیدا کنند که نباید به آنها دسترسی داشته باشند. برای مثال در اثر این حمله، یک کاربر ساده توانایی ویرایش محتوای سایت را پیدا میکند. این نوع آسیب پذیری معمولا به دلیل اشتباهات سهوی و بیدقتی در نوشتن کد به وجود میآید.
برای مثال ممکن یک کاربر با استفاده از صفحهی ورود نتواند به عنوان ادمین وارد سایت شود، اما اگر از URL ورودِ ادمین به صورت مستقیم استفاده کند، بتواند از این امتیاز بهره ببرد. بنابراین به حمله کنندهها اجازه میدهد که اطلاعات را بدزدند یا به اطلاعات حساس دسترسی غیرمجاز پیدا کنند.
پیکربندی اشتباه امنیتی (security misconfigurations)
این نوع نقص زمانی بروز میکند که پیکربندی امنیتی سایت به صورت پیش فرض مانده باشد، بهینه نشده باشد یا اشتباه تنظیم شده باشد. بنابراین موجب باقی ماندن گپ های زیادی در امنیت وبسایت میشود و آن را در برابر حملهی هکرها بی دفاع میکند. این ایراد در پیکربندی سایت است که ناشی از ایرادِ کد یا زیرساخت افزونه است.
تزریق اسکریپت از طریق سایت (cross-site scripting)
حملات اسکریپ نویسی متقابل یا XSS معمولا با سوءاستفاده از آسیب پذیریهای هر بخشِ محافظت نشده برای ورود داده به وبسایت رخ میدهند. اگر وبسایتی از کاربران دادههای خام دریافت، و بدون اعتبارسنجی آنها را منتشر کند، بستری را برای این حمله فراهم کرده است؛ یعنی حمله کنندهها از فیلدهای ورودی، مانند قسمت ارسال پیام و فرم، به عنوان ماشینی برای حملهی XSS خود استفاده میکنند و حتی میتوانند مرورگر بازدیدکنندگان سایت شما را نیز آلوده کنند. گاهی حملات XSS چهرهی سایت را نیز به هم میریزد.
نمایش فایل به صورت دلخواه (arbitrary file viewing)
سورس فایلها، بخش مهمی از وبسایت شما هستند. این فایلها دادههای حساس و مهمی در خود دارند که هیچکس به جز ادمین نباید به آنها دسترسی داشته باشد. معمولا برای جلوگیری از نمایش این فایلها به شخص خارجی، ملاحظات امنیتی وجود دارند. اما اگر چنین ملاحظاتی وجود نداشته باشند هکرها میتوانند به راحتی فایلهایی مانند wp.config.php را مشاهده کرده و به وبسایت شما دسترسی داشته باشند. ممکن است این موضوع برای وبسایت تبدیل به فاجعه شود.
بهترین راه برای حفظ امنیت در برابر آسیب پذیری افزونهها
بهتر است همواره از افزونه های معتبر استفاده کنید. اما حتی افزونه های معتبر، مانند آن هایی که بررسی کردیم، آسیب پذیرند. پس برای داشتن بالاترین سطح امنیت چه باید کرد؟
همواره به یاد داشته باشید که افزونهها را از مخزن وردپرس دانلود کنید. در هنگام دانلود به تعداد دفعات دانلود، آخرین به روزرسانی و تعداد نصبهای فعال توجه نمایید. این موارد دیدی کلی دربارهی نگهداری، حفظ و اعتبار کلی افزونه به شما میدهد. همچنین برای حفظ امنیت وبسایت میتوانید مراحل زیر را انجام دهید:
نصب یک افزونهی امنیتی
افزونهی امنیتی یکی از مهمترین اقداماتی است که برای امنیت وبسایت خود میتوانید انجام دهید. راه حل کاملی مانند MalCare میتواند هر آسیب پذیریای را در وبسایت شناسایی کند و قبل از هر رخدادی آن را به اطلاع شما برساند.
به علاوه وبسایت، مجهز به firewall قدرتمندی میشود که بیشتر حملات را دفع میکند و هرگونه عملیات خرابکارانه را به شما اطلاع میدهد.
افزونههای خود را همواره به روزرسانی نمایید
توسعه دهندگان افزونه همواره در تلاشند تا محصولات خود را بهبود بخشند و این شامل رفع هرگونه خطای امنیتی از جمله آسیبپذیریها نیز میشود. به محض آنکه آسیبپذیریای پیدا شود، تیم پشتیبان یک پچ برای رفع ایراد ارائه میدهند. بنا بر این، مهم این است که وبسایت و افزونهها را به صورت مرتب آپدیت نمایید.
پشتیبانگیری مداوم از وبسایت
گاهی آسیبپذیریهای افزونه یا پوسته میتوانند ساختار وبسایت شما را به کل خراب کنند. برای حفظ اطلاعات وبسایت خود، پشتیبانگیری مداوم از وبسایت و نگهداری آن در جایی دیگر مهم است.
از رمزهای رایج استفاده نکنید
پسوردهای رایج و ساده مانند تاریخ تولد، کلمات رایج، یا حتی نام فیلم مورد علاقه به راحتی توسط حمله کنندهها قابل کشف هستند. برای جلوگیری از این اتفاق از پسوردهای قوی استفاده کنید. اگر برای به خاطرسپردن رمز عبور مشکل دارید، از یک برنامهی مدیریت رمز عبور استفاده کنید تا تمام پسوردهایتان را برایتان حفظ کند!
از ورود دو مرحلهای یا 2FA استفاده کنید
اگر رمز عبور و اطلاعات با ارزش شما در معرض حمله قرار بگیرند، هکرها دسترسی نامحدودی به حسابتان پیدا میکنند. اما میتوانید با استفاده از اعتبارسنجی دو مرحلهای لایهی امنیتی دیگری به وبسایت خود اضافه کنید.
وقتی اعتبارسنجی دو مرحلهای را فعال نمایید، هرکسی که بخواهد وارد وبسایت شما بشود مجبور است از مرحلهی تایید هویت اضافی برای دسترسی به وبسایت عبور کند که تایید یا عدم تایید آن در دستان شماست.
از پوسته و افزونههای کرک (null) شده استفاده نکنید
بی دلیل نیست که پوسته و افزونههای کرک شده، رایگانند! معمولا این افزونهها کدهای مخرب دارند و امنیت وبسایت را به خطر انداخته و دربرابر حملات آسیبپذیر میسازند.
بنابراین برای حفظ امنیت وبسایت خود همواره پوسته و افزونهها را از منابع معتبر و قابل اطمینان خریداری کنید.
پیاده سازی Hardening روی وبسایت
اصطلاح hardening website یا سختسازی، به اقدامات لازم برای ایمنسازی سازی وبسایت گفته میشود، که توسط وردپرس نیز توصیه شده است. این اقدامات شامل موارد زیر میشود:
- از کار انداختن ویرایشگر فایلها در پوسته و افزونهها
- استفاده از کلمات عبور قوی
- تنظیم مجدد کلمات عبور برای تمام کاربران
- و تغییر کلیدهای امنیتی و سالتها (salt)
نکات نهایی برای حفظ امنیت در برابر آسیب پذیری افزونهها
هیچ نرم افزاری 100% امن نیست و آسیب پذیری جزء جدایی ناپذیر افزونههاست. پس به جای نگرانی، موارد احتیاطی را رعایت کنید و چگونگی حفظ امنیت وبسایت را بیاموزید.
اگر به هک شدن یا وجود آسیب پذیری در وبسایت خود مشکوک هستید، پیشنهاد ما نصب MalCare است که کار بررسی وبسایت را به تنهایی انجام و موارد مشکوک را گزارش میدهد. سپس میتوانید تنها با یک کلیک به صورت خودکار سایت را تمیز کنید. افزونهی امنیتی مانند Malcare با حفظ امنیت وبسایت آرامش خاطر شما را فراهم میکند.
پرسش و پاسخ
افزونهی آسیب پذیر وردپرس چیست و یعنی چه؟
اشتباهات سهوی در توسعه و دولوپ یک افزونه منجر به ایجاد نقاط ضعفی در آن میشود که دستمایهی سواستفادهی هکرها قرار میگیرند. این نقاط ضعف را آسیب پذیری مینامیم. هر افزونهای که چنین نقاط ضعفی داشته باشد و در اثر آن امنیت کاربرانش به خطر بیفتد، افزونهی آسیب پذیر وردپرس مینامیم.
توسعهدهندگان افزونههای معتبر، معمولا برای رفع این آسیبپذیریها به سرعت پچ ارائه میدهند. بنابراین به روزرسانی افزونهها به صورت مستمر باید انجام شود.
آیا استفاده از افزونه در وردپرس کار اشتباهی است؟
افزونهها بهترین راه حل برای شخصی سازی وبسایت وردپرس هستند. آنها به شما اجازه میدهند ویژگیهای مورد نظر را به وبسایت اضافه کنید و وبسایت خود را پویاتر کنید. بنابراین، خیر! افزونهها برای وبسایت وردپرس بد نیستند.
مانند هر نرمافزاری، افزونهها نیز گپ یا ضعف امنیتی دارند که به آنها آسیب پذیری میگوییم. این آسیبپذیریها اگر به موقع رفع نگردند، منجر به اتفاقات بدی برای امنیت سایت میگردند. اما با سختسازی وبسایت با استفاده از یک افزونهی امنیتی و به روزرسانی مستمر میتوان از این خطرات امنیتی جلوگیری کرد.
آیا وردپرس دارای مشکلات امنیتی است؟
مانند هر CMS دیگری، وردپرس هم 100% امن نیست و به دلیل محبوبیت بسیار توجهات زیادی را نیز به خود جلب میکند. بنابراین هکرها نفع بیشتری در یافتن خلاء های امنیتی در وردپرس دارند.
اما wordpress انجمن فعال و موفقی دارد که هر روزه برای رفع مشکلات امنیتی آن در تلاش هستند. در وردپرس راه حلها بیشتر از مشکلات هستند. در واقع در سایهی محبوبیت، مشکلات بسیاری را حل کرده که CMS های دیگر از حل آنها عاجز هستند.
کدام پلاگین های وردپرس آسیب پذیر هستند؟
بسیاری از پلاگینهای وردپرس دچار آسیبپذیری میشوند. این موضوع تنها زمانی مشخص میشود که یکی از این آسیبپذیریها شناسایی شود. همچنین آسیبپذیریها ثابت نیستند و به محض شناسایی، توسعهدهندگان درصدد رفع آن برمیآیند. به همین دلیل باید به صورت مداوم آنها را آپدیت کنید.
چگونه از نصب پلاگین های آسیب پذیر جلوگیری کنیم؟
هیچ راهی برای جلوگیری کامل از نصب افزونههای آسیبپذیر وجود ندارد؛ چرا که حتی مطمئنترین و معتبرترین افزونهها مانند ووکامرس هم دارای آسیبپذیری هستند. بهترین راه برای آنکه مطمئن شوید افزونهی شما امن است این است که از افزونههای مطمئن و معتبر در مخزن وردپرس استفاده کنید. به تعداد دانلودها، به رورسانیها و نظرات دیگر کاربران دربارهی آن دقت نمایید تا متوجه شوید که تیم پشتیبان افزونه چگونه عمل میکنند.