آلودگی کتابخانه محبوب JavaScript
کتابخانه UAParser.js که بر روی دهها میلیون کامپیوتر در سراسر جهان نصب شده است، به بدافزاری آلوده شده که رمزهای عبور را سرقت کرده و اقدام به استخراج رمزارز میکند.
مهاجمان ناشناسی، سه نسخه 0.7.29، 0.8.0 و 1.0.0 از کتابخانه محبوب JavaScript به نام UAParser.js را با تزریق کد مخرب آلوده کردهاند. بنا بر آمار صفحه توسعهدهندگان نرمافزار، در بسیاری از پروژهها از این کتابخانه استفاده شده و هر هفته کتابخانه مذکور، 6 تا 8 میلیون بار دانلود میشود.
شرکت مهندسی شبکه گستر اکیداً توصیه میکند که در اسرع وقت تمامی کاربران و راهبران، کتابخانههای مذکور را به ترتیب به نسخ 0.7.30، 0.8.1 و 1.0.1 بهروزرسانی کنند.
UAParser.js چیست و چرا اینقدر محبوب است؟
توسعهدهندگان JavaScript از کتابخانه UAParser.js برای پردازش و تحلیل (Parse) اطلاعات User-Agent ارسالی مرورگرها استفاده میکنند. کتابخانه مذکور در بسیاری از سایتها بکارگرفته شده و در پروسه تولید و توسعه نرمافزار شرکتهای مختلفی همچون Facebook ،Apple ،Amazon ،Microsoft ،Slack ،IBM ،HPE ،Dell ،Oracle ،Mozilla و غیره استفاده میشود.
علاوه بر این، برخی از توسعهدهندگان نرمافزار از ابزارهای ثالث (Third-party instruments) همچون چارچوب Karma برای تست کد استفاده میکنند که به کتابخانه مذکور وابسته است و با افزودن یک پیوند اضافی به زنجیره تأمین، وسعت و دامنه حمله را بیشتر میکند.
مهاجمان، اسکریپتهای مخرب را در کتابخانه UAParser.js جاسازی کردهاند تا کدهای مخرب را در کامپیوترهای قربانیان، هم در سیستمهای Linux و هم در در سیستمهای تحت Windows دانلود و آن را اجرا کنند.
اهداف یکی از ماژولهای جاسازی شده در اسکریپت مذکور، استخراج رمز ارز (Cryptocurrency) بوده و هدف دیگر (فقط برای سیستمهای تحت Windows) سرقت اطلاعات اصالتسنجی مانند کوکیهای مرورگر، رمزهای عبور و اطلاعات اصالتسنجی سیستمعامل میباشد. با این حال، ممکن است فعالیت اسکریپتها تنها به این موارد منتهی نشود. طبق هشدار آژانس امنیت سایبری و حفاظت از زیرساخت ایالات متحده (CISA)، مهاجمان با نصب کتابخانههای آلوده میتوانند کنترل سیستمهای هک شده را در اختیار بگیرند.
بنا بر اظهارات کاربران در GitHub، این بدافزار فایلهای باینری jsextension (در Linux) و jsextension.exe (در Windows) را ایجاد میکند. وجود فایلهای مذکور نشانه بارزی است از این که سیستم، هک شده است.
مهاجمان چگونه کد مخرب را وارد کتابخانه UAParser.js کردهاند؟
توسعهدهنده پروژه UAParser.js، اظهار داشت که پس از دریافت تعداد زیادی ایمیل حاوی هرزنامه (Spam)، گویا مهاجمی ناشناس به حساب کاربری او در Npm Repository دسترسی پیدا کرده و سه نسخه مخرب از کتابخانه UAParser.js را منتشر کرده است.
با این که کتابخانههای مذکور ظاهراً تنها کمی بیشتر از چهار ساعت از ساعت 14:15 تا 18:23 به وقت اروپای مرکزی (Central European Time – به اختصار CET) روز 30 مهر 1400 به صورت آنلاین در دسترس بودهاند، تعداد قابل توجهی از ماشینها توانسته بودند آن را دانلود کنند.
عصر همان روز، توسعهدهنده کتابخانه مذکور، متوجه فعالیت غیرمعمول هرزنامه در صندوق ورودی خود شده ودر مورد وقوع فعالیتی مشکوک هشدار داد و به دنبال آن علت اصلی مشکل را کشف کرد. توسعهدهنده مذکور بلافاصله با پشتیبانی Npm تماس گرفته و به آنها درخصوص سه نسخه آلوده شده از کتابخانه UAParser.js هشدار داده است و توصیه نموده که به سرعت نسخ آلوده شده را حذف کنند. وی همچنین اظهار داشته که به سختی میتوان فهمید که در این مدت چند بار کتابخانههای آلوده دانلود شدهاند.
در صورت دانلود کتابخانههای آلوده، چه کاری باید انجام داد؟
اولین قدم این است که کامپیوترها را به منظور شناسایی بدافزار بررسی کنید. سپس کتابخانههای خود را به نسخ وصله شده 0.7.30، 0.8.1 و 1.0.1 به روزرسانی کنید.
اما این بهروزرسانی کافی نیست، بنا بر توصیهنامهای که در نشانی زیر قابل دریافت است، هر کامپیوتری که نسخ آلوده کتابخانه مذکور روی آن نصب یا اجرا شده باید کاملاً در معرض خطر تلقی شود. بنابراین، کاربران و راهبران امنیتی باید تمام اطلاعات اصالتسنجی (رمزهای عبور) را که در آن کامپیوترها بکارگرفته شده، تغییر دهند.
https://github.com/advisories/GHSA-pjwm-rvh2-c87w
به طور کلی، محیطهای توسعه یا پیادهسازی، اهداف مناسبی برای مهاجمانی هستند که از آن جهت سازماندهی حملات زنجیره تامین سوءاستفاده میکنند. این بدان معناست که چنین محیطهایی همواره به رصد و محافظت نرمافزارهای ضدویروس نیاز دارند.