بنا بر این گزارش این حمله به سادگی قابل تشخیص نبوده و مهاجمان از طریق اضافه کردن یک webshell کنترل کامل سایت را بدست می گیرند.
این روش حمله، به زنجیره تأمین (Supply Chain Attack) معروف است. backdoored in supply chain attack یا حمله درپشتی در زنجیره تامین برای بسیاری از سایتهای وردپرس استفاده کننده از قالب و افزونه های AccessPress رخ داده که در ادامه راهکار رفع آن توضیح داده شده است.
اقدام مهاجمان به این صورت است که بعد از نصب قالب یا افزونه، فایل جدیدی به نام initial.php در پوشه اصلی قالب یا افزونه ایجاد شده و آن را در فایل function.php اینکلود می کند. این فایل حاوی کدهای رمزگذاری شده (base64 encoded) است که یک webshell را در فایل wp-includes/vars.php برای ایجاد بکدور جایگذاری میکند، بنابراین کنترل از راه دور سایت آلوده به سادگی انجام می شود.

آیا سایت من مورد حمله قرار گرفته است؟
این بدافزار دارای یک تابع خود تخریبی است که فایل initial.php را حذف می کند تا ردپای خود را به حداقل برساند و از شناسایی آن جلوگیری کند. تنها راه شناسایی این حملات بکدور، نظارت بر یکپارچگی فایل هسته ای است. تغییر در فایل vars.php نشان دهنده این حمله است.
در غیر اینصورت اگر کاربران از سایر محصولات این ارائه کننده استفاده می کنند و سرویس فایروال sucuri یا jetpack را نصب کده اند، حمله بکدور به صورت خودکار شناسایی و متوقف می شود. زیرا هرگونه درخواست مستقیم به فایلهای موجود در wp-includes کاملاً مسدود میشود و این رفتار عادی نیست.
این حملات در نیمه اول سپتامبر 2021 صورت گرفت، پس از آن اکثر افزونه های این ارائه کننده در دسامبر 2021 بروز شده و نسخه های تمیز در دسترس کاربران قرار گرفت. سایر افزونههای آپدیت نشده نیز از مخزن وردپرس حذف شدند.
با اینحال بسیاری از وب سایتها هنوز از نسخه های آپدیت نشده و آلوده محصولات AccessPress استفاده می کنند؛ توصیه می شود گام های زیر را جهت شناسایی و رفع مشکل بکدور انجام دهند.
اگر نگران حمله بکدور در زنجیره تامین هستید، گام های زیر را انجام دهید
- فایل wp-includes/vars.php خود را در خطوط 146-158 بررسی کنید. اگر تابع ‘wp_is_mobile_fix’ با کدهای مبهم مشاهده کردید، در معرض خطر قرار گرفته اید.
- همچنین می توانید از ‘wp_is_mobile_fix’ یا ‘wp-theme-connect’ کوئری گرفته تا ببینید آیا فایل های آسیب دیده وجود دارند یا خیر.
Jetpack نیز رول YARA زیر را ارائه کرده است که می تواند برای بررسی آلوده بودن سایت استفاده شود.
rule accesspress_backdoor_infection
{
strings:
// IoC's for the dropper
$inject0 = "$fc = str_replace('function wp_is_mobile()',"
$inject1 = "$b64($b) . 'function wp_is_mobile()',"
$inject2 = "$fc);"
$inject3 = "@file_put_contents($f, $fc);"
// IoC's for the dumped payload
$payload0 = "function wp_is_mobile_fix()"
$payload1 = "$is_wp_mobile = ($_SERVER['HTTP_USER_AGENT'] == 'wp_is_mobile');"
$payload2 = "$g = $_COOKIE;"
$payload3 = "(count($g) == 8 && $is_wp_mobile) ?"
$url0 = /https?:\/\/(www\.)?wp\-theme\-connect\.com(\/images\/wp\-theme\.jpg)?/
condition:
all of ( $inject* )
or all of ( $payload* )
or $url0
}
اگر موارد مشکوکی مشاهده شد، مراحل زیر را برای رفع حمله backdoored in supply chain attack دنبال کنید:
- فایل های اصلی وردپرس خود را با نسخه های بروز جایگزین کنید
- قالب یا افزونه های AccessPress آسیب دیده را با نسخه های تازه دانلود شده از مخزن رسمی وردپرس یا وب سایت ارائه دهنده جایگزین کنید.
- به عنوان یک اقدام احتیاطی، مراحل استاندارد پس از آلودگی مانند بهروزرسانی رمزهای عبور مدیر wp-admin و پایگاه داده را انجام دهید.
بنابراین اگر از هریک از افزونه و قالب های انتهای مقاله استفاده می کنید؛ توصیه می کنیم در اسرع وقت اقدامات لازم را جهت برقراری امنیت سایت خود انجام دهید.
لیست قالبهای آلوده شده به در پشتی
نام قالب | نسخه |
---|---|
accessbuddy | 1.0.0 |
accesspress-basic | 3.2.1 |
accesspress-lite | 2.92 |
accesspress-mag | 2.6.5 |
accesspress-parallax | 4.5 |
accesspress-ray | 1.19.5 |
accesspress-root | 2.5 |
accesspress-staple | 1.9.1 |
accesspress-store | 2.4.9 |
agency-lite | 1.1.6 |
aplite | 1.0.6 |
bingle | 1.0.4 |
bloger | 1.2.6 |
construction-lite | 1.2.5 |
doko | 1.0.27 |
enlighten | 1.3.5 |
fashstore | 1.2.1 |
fotography | 2.4.0 |
gaga-corp | 1.0.8 |
gaga-lite | 1.4.2 |
one-paze | 2.2.8 |
parallax-blog | 3.1.1574941215 |
parallaxsome | 1.3.6 |
punte | 1.1.2 |
revolve | 1.3.1 |
ripple | 1.2.0 |
scrollme | 2.1.0 |
sportsmag | 1.2.1 |
storevilla | 1.4.1 |
swing-lite | 1.1.9 |
the-launcher | 1.3.2 |
the-monday | 1.4.1 |
uncode-lite | 1.3.1 |
unicon-lite | 1.2.6 |
vmag | 1.2.7 |
vmagazine-lite | 1.3.5 |
vmagazine-news | 1.0.5 |
zigcy-baby | 1.0.6 |
zigcy-cosmetics | 1.0.5 |
zigcy-lite | 2.0.9 |
لیست افزونههای آلوده شده به در پشتی
نام افزونه | آلوده | پاک | یادداشت (نکته) |
---|---|---|---|
accesspress-anonymous-post | 2.8.0 | 2.8.1 | 1 |
accesspress-custom-css | 2.0.1 | 2.0.2 | |
accesspress-custom-post-type | 1.0.8 | 1.0.9 | |
accesspress-facebook-auto-post | 2.1.3 | 2.1.4 | |
accesspress-instagram-feed | 4.0.3 | 4.0.4 | |
accesspress-pinterest | 3.3.3 | 3.3.4 | |
accesspress-social-counter | 1.9.1 | 1.9.2 | |
accesspress-social-icons | 1.8.2 | 1.8.3 | |
accesspress-social-login-lite | 3.4.7 | 3.4.8 | |
accesspress-social-share | 4.5.5 | 4.5.6 | |
accesspress-twitter-auto-post | 1.4.5 | 1.4.6 | |
accesspress-twitter-feed | 1.6.7 | 1.6.8 | |
ak-menu-icons-lite | 1.0.9 | ||
ap-companion | 1.0.7 | 2 | |
ap-contact-form | 1.0.6 | 1.0.7 | |
ap-custom-testimonial | 1.4.6 | 1.4.7 | |
ap-mega-menu | 3.0.5 | 3.0.6 | |
ap-pricing-tables-lite | 1.1.2 | 1.1.3 | |
apex-notification-bar-lite | 2.0.4 | 2.0.5 | |
cf7-store-to-db-lite | 1.0.9 | 1.1.0 | |
comments-disable-accesspress | 1.0.7 | 1.0.8 | |
easy-side-tab-cta | 1.0.7 | 1.0.8 | |
everest-admin-theme-lite | 1.0.7 | 1.0.8 | |
everest-coming-soon-lite | 1.1.0 | 1.1.1 | |
everest-comment-rating-lite | 2.0.4 | 2.0.5 | |
everest-counter-lite | 2.0.7 | 2.0.8 | |
everest-faq-manager-lite | 1.0.8 | 1.0.9 | |
everest-gallery-lite | 1.0.8 | 1.0.9 | |
everest-google-places-reviews-lite | 1.0.9 | 2.0.0 | |
everest-review-lite | 1.0.7 | ||
everest-tab-lite | 2.0.3 | 2.0.4 | |
everest-timeline-lite | 1.1.1 | 1.1.2 | |
inline-call-to-action-builder-lite | 1.1.0 | 1.1.1 | |
product-slider-for-woocommerce-lite | 1.1.5 | 1.1.6 | |
smart-logo-showcase-lite | 1.1.7 | 1.1.8 | |
smart-scroll-posts | 2.0.8 | 2.0.9 | |
smart-scroll-to-top-lite | 1.0.3 | 1.0.4 | |
total-gdpr-compliance-lite | 1.0.4 | ||
total-team-lite | 1.1.1 | 1.1.2 | |
ultimate-author-box-lite | 1.1.2 | 1.1.3 | |
ultimate-form-builder-lite | 1.5.0 | 1.5.1 | |
woo-badge-designer-lite | 1.1.0 | 1.1.1 | |
wp-1-slider | 1.2.9 | 1.3.0 | |
wp-blog-manager-lite | 1.1.0 | 1.1.2 | |
wp-comment-designer-lite | 2.0.3 | 2.0.4 | |
wp-cookie-user-info | 1.0.7 | 1.0.8 | |
wp-facebook-review-showcase-lite | 1.0.9 | ||
wp-fb-messenger-button-lite | 2.0.7 | ||
wp-floating-menu | 1.4.4 | 1.4.5 | |
wp-media-manager-lite | 1.1.2 | 1.1.3 | |
wp-popup-banners | 1.2.3 | 1.2.4 | |
wp-popup-lite | 1.0.8 | ||
wp-product-gallery-lite | 1.1.1 |
یادداشت (نکته):
- این افزونه بهروزرسانی نشده است، اما گمان میرود که تمیز باشد زیرا نسخه موجود در وبسایت AccessPress Themes نسخه قدیمیتر بود.
- این افزونه به روز نشده است، اما اعتقاد بر این است که تمیز است زیرا در ابتدا در وب سایت AccessPress Themes موجود نبود.
توصیهها
- اگر تم یا پلاگینی دارید که مستقیماً از AccessPress Themes یا هر مکان دیگری به جز مخزن وردپرس نصب شده است، باید فوراً به نسخه ایمن همانطور که در جداول بالا نشان داده شده است ارتقا دهید. اگر نسخه ایمن در دسترس نیست، آن را با آخرین نسخه از مخزن وردپرس جایگزین کنید.
- توجه داشته باشید که این درب پشتی را از سیستم شما حذف نمیکند، بنابراین علاوه بر این باید یک نسخه تمیز از وردپرس را مجدداً نصب کنید تا تغییرات اصلی فایل انجام شده در هنگام نصب درب پشتی را برگردانید.