حملهای supply chain جاوااسکریپت مرتبط با سرویس Polyfill.io رخ داده که بیش از ۱۰۰,۰۰۰ سایت را تحت تأثیر قرار داده است.
حمله به supply chain جاوااسکریپت به حملاتی گفته میشود که در آن مهاجمان با نفوذ به یکی از اجزای زنجیره تأمین نرمافزار (مانند کتابخانهها، سرویسها یا ابزارهای توسعه)، کد مخرب را به کاربران نهایی تزریق میکنند. در این نوع حملات، مهاجمان به جای حمله مستقیم به یک سایت، از آسیبپذیریهای موجود در یکی از اجزای زنجیره تأمین استفاده میکنند.
بیش از ۱۰۰,۰۰۰ سایت تحت تأثیر حملهای به supply chain قرار گرفتهاند. این حمله پس از آن رخ داده که یک شرکت چینی دامنه Polyfill.io را خریداری کرده و اسکریپت آن را تغییر داده تا کاربران را به سایتهای مخرب و کلاهبرداری هدایت کند.
Polyfill.io یک سرویس است که قطعههای کد (Polyfills) جاوااسکریپت را ارائه میدهد تا قابلیتهای جدید زبان جاوااسکریپت را در مرورگرهای قدیمی که از آنها پشتیبانی نمیکنند، فراهم کند. به عبارتی، این سرویس کمک میکند تا سایتها و برنامههای وب در مرورگرهای مختلف به درستی کار کنند.
استفاده از سرویس polyfill.io توسط صدها هزار سایت است تا امکان استفاده از یک کد پایه مشترک را برای همه بازدیدکنندگان فراهم کند، حتی اگر مرورگرهای آنها از ویژگیهای جدیدی که در مرورگرهای جدیدتر موجود است، پشتیبانی نمیکند.
در واقع، سرویس polyfill.io این امکان را فراهم میکند که کدهای جاوااسکریپت برای ویژگیهای جدیدی که مرورگر قدیمی کاربران آن را پشتیبانی نمیکند، به صورت خودکار اضافه شود. این کار باعث میشود که همه کاربران به یک نسخه از برنامه دسترسی داشته باشند، بدون اینکه به دلیل مشکلات سازگاری مرورگر نتوانند از آن استفاده کنند.
حمله Polyfill.io
شرکت امنیتی سایبری Sansec هشدار داد که دامنه و سرویس polyfill.io ابتدای امسال توسط یک شرکت چینی با نام ‘Funnull’ خریداری شده است و اسکریپت آن تغییر داده شده است تا کد مخرب را در یک حمله به زنجیره تأمین در وبسایتها وارد کند.
Sansec توضیح می دهد: با این حال، در فوریه امسال، یک شرکت چینی دامنه و حساب Github را خریداری کرد. از آن زمان، این دامنه در حال تزریق بدافزار به دستگاه های تلفن همراه از طریق هر سایتی که cdn.polyfill.io را تعبیه می کند، می باشد.
زمانی که polyfill.io خریداری شد، توسعهدهنده پروژه هشدار داد که او هرگز مالک سایت polyfill.io نیست و همه وبسایتها باید فوراً آن را حذف کنند. برای کاهش خطر حمله احتمالی، Cloudflare و Fastly ، mirrors های خود را از سرویس Polyfill.io تنظیم می کنند تا وب سایت ها بتوانند از یک سرویس قابل اعتماد استفاده کنند.
توسعهدهنده پروژه خدمات Polyfills در توییتی نوشت: «امروزه هیچ وبسایتی به Polyfills کتابخانه http://polyfill.io نیاز ندارد».
پس از مدتی، پیشبینی یا تصوری که توسعهدهنده داشته است، به واقعیت پیوسته است و سرویس Polyfill.io به یک دامنه جدید با نام polyfill.io.bsclink.cn منتقل شده است که توسط مالکان جدید آن اداره میشود.
وقتی توسعهدهندگان اسکریپتهای cdn.polyfill.io را در وبسایتهای خود جایگزین کردند، آنها حالا کد را مستقیماً از سایت شرکت چینی استخراج کردند.
با این حال، توسعه دهندگان وب سایت دریافتند که مالکان جدید کد مخربی را تزریق می کنند که بازدیدکنندگان را بدون اطلاع صاحب وب سایت به سایت های ناخواسته هدایت می کند.
در یک نمونه مشاهده شده توسط Sansec، اسکریپت تغییر یافته اصولاً برای هدایت کاربران به سایتهای کلاهبرداری مانند یک سایت Sportsbook جعلی استفاده میشود. این کار از طریق یک دامنه تقلبی Google Analytics (www.googie- anaiytics.com) تغییر مسیرهایی مانند kuurza.com/redirect?from=bitget انجام میشود.
پژوهشگران با مشکلاتی در تجزیه و تحلیل کامل اسکریپت تغییر یافته مواجه شدهاند، زیرا این اسکریپت از هدفگیری خاص و مقاومت در برابر فرآیند معکوسسازی (reverse engineering) استفاده میکند.
کد مخرب دارای مکانیسمهای خاصی برای جلوگیری از مهندسی معکوس است و فقط در دستگاههای خاص موبایل و در ساعات مشخصی فعال میشود، که این امر باعث افزایش مشکلات تشخیصی برای تحلیلگران میشود.
در حال حاضر، دامنه cdn.polyfill.io به نحو نامعلومی به Cloudflare هدایت شده است، اما زیرساخت DNS دامنه هنوز تغییر نکرده است. این به این معنی است که مالکان دامنه به راحتی میتوانند در هر زمانی آن را به دامنههای خود بازگردانند و کنترل کامل بر دامنه را داشته باشند.
شرکت امنیت سایبری Leak Signal یک وبسایت به نام Polykill.io ایجاد کرده است که به شما این امکان را میدهد تا سایتهایی که از cdn.polyfill.io استفاده میکنند را جستجو کنید و اطلاعاتی در مورد انتقال به گزینههای جایگزین را ارائه میدهد.
گوگل به تبلیغ کنندگان هشدار می دهد
گوگل شروع به اطلاع رسانی به تبلیغ کنندگان در مورد supply chain کرده است و به آنها هشدار می دهد که صفحات landing آنها حاوی کد مخرب است و می تواند بازدیدکنندگان را از سایت مورد نظر بدون اطلاع یا اجازه مالک وب سایت هدایت کند.
گوگل هشدار میدهد که Bootcss، Bootcdn و Staticfile نیز باعث ایجاد تغییر مسیرهای ناخواسته شدهاند که ممکن است باعث تاثیرگذاری بر صدها هزار، سایت در اثر حملات supply chain شود.
ایمیل گوگل بیان میکند که کدهای ایجادکننده این تغییر مسیرها به نظر میرسد از چند ارائهدهنده منابع وب شخص ثالث مختلف، از جمله Polyfill.io، Bootcss.com، Bootcdn.net، یا Staticfile.org، میآیند.
گزارشهای مشابه را میتوانید با جستجوی “polyfill.io” در گوگل پیدا کنید
گوگل هشدار می دهد که اگر آنها این تغییر مسیرها را در پیام های تبلیغاتی پیدا کنند، تبلیغات مربوطه را تایید نمی کنند.
در پستی در انجمن پشتیبانی Shopify که توسط Willem de Groot از SanSec منتشر شده است، بسیاری از تبلیغکنندگان گزارش دادند که گوگل از حدود ۱۵ ژوئن شروع به رد کردن تبلیغاتشان کرده است وقتی که تغییر مسیر ‘googie-anaiytics’ را شناسایی میکند.
دیگران در این بحث ادعا کردند که مشکل به خاطر اسکریپت Polyfill است و برای رعایت سیاستهای تبلیغاتی گوگل باید این اسکریپت حذف شود.
بهروزرسانی ۲۵/۶/۲۴: وقتی درباره این ایمیلها و حمله supply chain اطلاعات بیشتری از گوگل درخواست شد، گوگل بیانیه زیر را ارائه کرد :
حفاظت از کاربران ما اولویت اصلی ماست. ما اخیراً یک مشکل امنیتی را شناسایی کردیم که ممکن است وبسایتهایی که از کتابخانههای شخص ثالث خاصی استفاده میکنند را تحت تأثیر قرار دهد.
برای کمک به تبلیغکنندگانی که ممکن است تحت تأثیر قرار گرفته باشند تا وبسایتهای خود را ایمن کنند، ما به طور فعال اطلاعاتی را در مورد چگونگی رفع سریع این مشکل به اشتراک گذاشتهایم.
بهروزرسانی ۲۶/۶/۲۴: زمان تقریبی شروع به رد تبلیغات مرتبط با این حادثه توسط گوگل و اطلاعات درباره سایت PolyKill.io اضافه شد.