هشدار NPM در خصوص شناسایی یک باگ جدید
تیم NPM که مالک بزرگترین کتابخانه بستههای مدیریتی جاوا اسکریپت است، در روزهای گذشته یک هشدار امنیتی منتشر کرده است. این تیم برای جلوگیری از حملات «تغییردهنده کدهای باینری» از همه کاربران درخواست کرده کتابخانهشان را هرچه سریعتر به آخرین نسخه آن یعنی 6.13.4 بهروزرسانی کنند.
توسعهدهندگان NPM (بسته مدیریت Node.js) گفته اند که واسط خط فرمان (CLI) سمت کاربر NPM دارای یک باگ امنیتی است. این باگ، زمینه جاسازی یا تغییر کدهای باینری در سیستم قربانی را به وسیله بسته کدهای مخرب جاوا اسکریپت فراهم میکند. همچنین این باگ ممکن است توسط مهاجمان برای تغییر کدهای باینری مخرب یا بازنویسی فایلهای موجود بر روی سیستم کاربران مورد استفاده قرار گیرد.
لازم به ذکر است آسیبپذیری گفته شده تنها در زمان نصب بسته تله NPM از طریق واسط خط فرمان NPM قابل سوءاستفاده است. تیم NPM با اشاره به رویدادهای گذشته که در آن حملهکنندگان، راه نفوذی در این کتابخانه ایجاد کرده یا تلههای پنهانی را بر روی فضای ذخیرهسازی رسمی NPM ایجاد می کردند، اعلام کرده است: «با این حال، همانطور که در گذشته نیز اتفاق افتاده، این یک مانع غیرقابل عبور نیست».
هیچ نشانهای از حمله وجود ندارد
توسعهدهندگان NPM مشغول اسکن و بازرسی پورتال بستهها هستند، به امید آنکه بتوانند کدهایی را که برای استفاده از این باگ طراحی شده اند، شناسایی کنند؛ با این وجود، آن ها تاکنون نتوانسته اند هیچ مورد مشکوکی را مشاهده کنند.
آن ها می گویند: «چنین امری، ضمانت عدم استفاده از این باگ نیست ولی میتوان اینگونه نتیجهگیری کرد که در حال حاضر در بستههای منتشر شده استفاده نشده است».
آن ها همچنین افزوده اند که: «ما نظارت خود را ادامه میدهیم؛ اما امکان اسکن کلیه منابع بستههای NPM (ثبت نامهای خصوصی، ثبتهای git و غیره) وجود ندارد. در نتیجه بهتر است هرچه سریعتر بهروزرسانی را انجام دهید».
علاوه بر NPM، یک بسته مدیریتی دیگر جاوا اسکریپت به نام Yarn نیز آلوده شده است. البته این باگ در نسخه Yarn 1.21.1 که هفته پیش منتشر شد، برطرف شده است.
اهمیت NPM در اکوسیستم جاوا اسکریپت
با تمام این اوصاف، مسأله به وجود آمده بیش از Yarn بر روی NPM تأثیر گذاشته است. نه تنها NPM بزرگ ترین برنامه مدیریت برای جاوا اسکریپت است بلکه با دارا بودن بیش از 350000 کتابخانه، بزرگ ترین فضای ذخیرهسازی هر زبان برنامهنویسی نیز به شمار میرود.
امروزه جاوا اسکریپت در همه جا از مرورگرها گرفته تا برنامههای مالی و همچنین از رایانه های رومیزی گرفته تا سرورها استفاده میشود. به همین خاطر، با توجه به نقش مهم NPM در کتابخانه جاوا اسکریپت، سوءاستفاده از آن امری کاملاً طبیعی است.
از این رو، هکرها کتابخانههای تله را به این امید که پروژههای قانونی از آن ها استفاده خواهند کرد، در NPM بارگذاری میکنند. نفوذگران با این کار میتوانند حسابهای کاربری توسعهدهندگان شناخته شده را به سرقت برده یا با استفاده از بستههای تله NPM، راه ورود مخفی برای نفوذ به نرمافزارها را ایجاد میکنند تا در آینده بتوانند دادههای کاربران در برنامه ها را سرقت کنند.
در سال گذشته میلادی، موارد این چنینی بسیاری رخ داده است. در جولای 2018 یک هکر از طریق کدی مخرب به کتابخانه ESLint نفوذ کرد تا بتواند اطلاعات محرمانه ورود سایر توسعهدهندگان را به دست آورد. در ماه می 2018 نیز یک هکر تلاش کرد در یکی از بستههای محبوب NPM به نام getcookies یک درب ورود مخفی را پنهان کند.
در آگوست 2017، تیم NPM 38 بسته جاوا اسکریپت NPM را که در حال سرقت متغیرهای محیطی جهت جمعآوری اطلاعات حساس پروژهها همچون کلمه های عبور یا کلیدهای API بودند، پاک کرد.
اغلب کاربران ارزهای دیجیتالی، هدف این حملات هستند
حملات سابق، توسعهدهندگان را هدف قرار میدادند در حالی که حملات اخیر تلاش میکنند یک ورودی مخفی به بستههای NPM کاربران ارزهای دیجیتال ایجاد کنند؛ چرا که جاوا اسکریپت و به تبع آن NPM برای ساخت بسیاری از برنامههای کیف پول ارزهای دیجیتالی وب، تلفن همراه و سیستم رایانه ای مورد استفاده قرار میگیرد.
مهاجمان معمولاً با ایجاد یک ورودی مخفی در کتابخانههای NPM یا نسخههای کپی از تلهها، کدهایشان را درون کیف پول کاربران جاسازی کرده و سپس شروع به سرقت داراییهای آن ها میکنند.
برای مثال در ماه ژوئن امسال، کد مخربی در یک بسته NPM کشف شد که برای سرقت ارز دیجیتال و سایر عبارتهای رمز مختص برنامههای ارز دیجیتالی طراحی شده بود. حمله مشابه دیگری هم در نوامبر سال 2018 رخ داد، زمانی که هکرها با استفاده از ورودی مخفی برنامه کیف پول تلفن همراه و رایانه Copay اقدام به سرقت بیت کوینهای کاربران کردند.
اگر چه این آسیبپذیری هم اکنون وصله شده است اما باید توجه داشت به اندازهای خطرناک است که میتواند زمینه وقوع حملات بسیار مخرب را بر روی توسعهدهندگان کیف پولهای دیجیتالی و کاربرانشان ایجاد کند.
منبع: zdnet