در ایران، دانلود نسخهٔ «نالشده» یا «کرکشده» از افزونهها و قالبهای پولی وردپرس خیلی رایج است؛ از سایتهایی که آن را «رایگان» یا «با تخفیف» میدهند. وسوسهاش قابلفهم است، ولی هزینهٔ واقعیاش اغلب بعداً پرداخت میشود: با سایتی که بیصدا آلوده شده.
نالشده یعنی چه
افزونههای پولی معمولاً با یک کلید لایسنس فعال میشوند و از طریق همان کلید آپدیت و پشتیبانی میگیرند. نسخهٔ نالشده، نسخهای است که کسی کد بررسی لایسنس را از آن برداشته یا دور زده و دوباره منتشر کرده. مشکل اینجاست: کسی که توانسته کد را باز کند و تغییر دهد، میتواند هر چیز دیگری هم به آن اضافه کند، و شما راهی ندارید بفهمید فقط بررسی لایسنس را برداشته یا چیز دیگری هم گذاشته.
نمونهٔ واقعی: WP-VCD
WP-VCD نام یک بدافزار است که از راه قالبها و افزونههای نالشده پخش میشد. شرکت امنیتی Wordfence در پاییز ۱۳۹۸ (۲۰۱۹) گزارش داد که در آن زمان، بیشترین آلودگیهای تازهٔ وردپرس در هر هفته از همین بدافزار بود؛ آلودگیای که به قول خودشان «خود صاحب سایت نصبش کرده بود». کاری که میکرد:
- یک کاربر مدیر مخفی میساخت تا مهاجم هر وقت خواست برگردد.
- به سایتهای دیگرِ همان حساب هاست هم سرایت میکرد؛ یعنی یک قالب نالشده روی یک سایت، همهٔ سایتهای آن هاست را آلوده میکرد.
- لینک و محتوای اسپم تزریق میکرد تا رتبهٔ سایتهای پخشکنندهٔ فایلهای نالشده در گوگل بالا برود.
در گزارش دیگری در همان سالها، بیش از ۲۰ هزار سایت پیدا شد که قالب پولی آلوده به تروجان اجرا میکردند.
خطرهای دیگر
- بدون آپدیت امنیتی: وقتی سازندهٔ افزونه حفرهای را رفع میکند، نسخهٔ نالشده آن را نمیگیرد، یا دیر و از همان منبع نامطمئن میگیرد. در مقالهٔ امنیت وردپرس دیدیم حملهها گاهی کمتر از یک روز بعد از انتشار حفره شروع میشوند.
- آسیب به سئو: لینکهای اسپم مخفی و هدایت به سایتهای دیگر، میتواند رتبهٔ سایت را پایین بیاورد یا باعث هشدار گوگل شود.
- دزدی اطلاعات: در فروشگاه، اطلاعات مشتریها و سفارشها در دیتابیس است.
- تعلیق هاست: سایت آلودهای که اسپم ارسال میکند یا به بقیه حمله میکند، معمولاً از طرف هاست مسدود میشود.
- بدون پشتیبانی: اگر افزونه خراب شد، کسی جوابگو نیست.
چطور بفهمیم سایت آلوده است
- در پیشخوان → کاربران، مدیرهایی که نمیشناسید را پیدا کنید. بعضی بدافزارها کاربر را از این فهرست پنهان میکنند؛ پس با WP-CLI هم چک کنید:
wp user list --role=administrator - در گوگل
site:example.irرا جستوجو کنید و دنبال برگههایی با موضوعهای بیربط (دارو، قمار، فیلم) بگردید. - سایت را با گوشی و از طریق یک نتیجهٔ گوگل باز کنید؛ بعضی آلودگیها فقط در این حالت هدایت میکنند.
- فایلهای هسته و افزونههای رایگان را با نسخهٔ اصلی مقایسه کنید:
cd ~/public_html
wp core verify-checksums
wp plugin verify-checksums --all
# no PHP files should exist in uploads
find wp-content/uploads -name "*.php"
# common obfuscation patterns in themes and plugins
grep -rl "eval(base64_decode" wp-content/themes wp-content/pluginsverify-checksums فقط برای افزونههایی کار میکند که در مخزن wordpress.org هستند؛ برای افزونهٔ پولی، تنها راه مطمئن، دانلود دوبارهٔ آن از سایت سازنده و مقایسه است. اگر نشانهٔ آلودگی دیدید، مراحل پاکسازی در مقالهٔ امنیت وردپرس آمده است.
جایگزینهای امن
- نسخهٔ رایگان همان افزونه: بسیاری از افزونههای معروف (Yoast، Rank Math، Elementor، WPForms، UpdraftPlus) نسخهٔ رایگان کاملاً کاربردی در مخزن wordpress.org دارند. اغلب همان کافی است.
- افزونهٔ رایگان مشابه: برای تقریباً هر امکانی یک افزونهٔ رایگان معتبر در مخزن هست. معیارهای انتخاب را در مقالهٔ افزونههای معروف آوردهایم.
- خرید: از سایت خود سازنده، یا از نمایندهٔ فروش رسمی که لایسنس واقعی میدهد و آپدیت از طریق خود افزونه میرسد. «لایسنس اشتراکی» که کلیدش بین صدها سایت پخش شده، معمولاً همان مشکلات را دارد.
- قالبهای رایگان مخزن wordpress.org قبل از انتشار بازبینی میشوند و منبع امنی برای شروعاند.
منابع
- Wordfence — WP-VCD: The Malware You Installed On Your Own Site www.wordfence.com/blog/2019/11/wp-vcd-the-malware-you-install-on-your-own-sites
- BleepingComputer — Over 20,000 WordPress sites run trojanized premium themes www.bleepingcomputer.com/news/security/over-20-000-wordpress-sites-run-trojanized-premium-themes
- WP-CLI — wp plugin verify-checksums developer.wordpress.org/cli/commands/plugin/verify-checksums