در ۲۲ آوریل (۱۴۰۵/۰۲/۰۲)، یک نسخه مخرب از رابط خط فرمان Bitwarden تحت نام رسمی بسته @bitwarden/cli@2026.4.0 در npm ظاهر شد. به مدت ۹۳ دقیقه، هر کسی که CLI را از طریق npm دریافت میکرد، یک جایگزین دارای درب پشتی به جای ابزار اصلی دریافت میکرد.
Bitwarden این نفوذ را شناسایی کرد، بسته را حذف نمود و بیانیهای صادر کرد مبنی بر اینکه هیچ مدرکی دال بر دسترسی مهاجمان به دادههای vault کاربران نهایی یا نفوذ به سیستمهای تولیدی یافت نشده است.
شرکت تحقیقاتی امنیتی JFrog محموله مخرب را تحلیل کرد و دریافت که این بدافزار علاقه خاصی به vault های Bitwarden نداشته است. این بدافزار توکنهای GitHub، توکنهای npm، کلیدهای SSH، تاریخچه شل، اعتبارنامههای AWS، اعتبارنامههای GCP، اعتبارنامههای Azure، اسرار GitHub Actions و فایلهای پیکربندی ابزارهای هوش مصنوعی را هدف قرار داده بود.
اینها اعتبارنامههایی هستند که نحوه ساخت، استقرار و دسترسی تیمها به زیرساختهایشان را کنترل میکنند.
| نوع داده / اسرار هدف | معمولاً کجا قرار دارد | چرا از نظر عملیاتی اهمیت دارد |
|---|---|---|
| توکنهای GitHub | لپتاپهای توسعهدهنده، پیکربندی محلی، محیطهای CI | میتواند دسترسی به مخزن، سوءاستفاده از workflow، فهرستبرداری اسرار و حرکت جانبی از طریق اتوماسیون را ممکن سازد |
| توکنهای npm | پیکربندی محلی، محیطهای انتشار | میتواند برای انتشار بستههای مخرب یا تغییر جریانهای انتشار استفاده شود |
| کلیدهای SSH | ماشینهای توسعهدهنده، میزبانهای ساخت | میتواند دسترسی به سرورها، مخازن داخلی و زیرساخت را باز کند |
| تاریخچه شل | ماشینهای محلی | میتواند اسرار پیستشده، دستورات، نامهای میزبان داخلی و جزئیات workflow را آشکار کند |
| اعتبارنامههای AWS | فایلهای پیکربندی محلی، متغیرهای محیطی، اسرار CI | میتواند بارهای کاری ابری، فضای ذخیرهسازی و سیستمهای استقرار را در معرض خطر قرار دهد |
| اعتبارنامههای GCP | فایلهای پیکربندی محلی، متغیرهای محیطی، اسرار CI | میتواند پروژههای ابری، سرویسها و خطوط لوله اتوماسیون را در معرض خطر قرار دهد |
| اعتبارنامههای Azure | فایلهای پیکربندی محلی، متغیرهای محیطی، اسرار CI | میتواند زیرساخت ابری، سیستمهای هویت و مسیرهای استقرار را در معرض خطر قرار دهد |
| اسرار GitHub Actions | محیطهای CI/CD | میتواند دسترسی به اتوماسیون، خروجیهای ساخت، استقرارها و اسرار پاییندستی را فراهم کند |
| ابزارهای هوش مصنوعی / فایلهای پیکربندی | دایرکتوریهای پروژه، محیطهای توسعه محلی | میتواند کلیدهای API، نقاط پایانی داخلی، تنظیمات مدل و اعتبارنامههای مرتبط را افشا کند |
Bitwarden به بیش از ۵۰,۰۰۰ کسبوکار و ۱۰ میلیون کاربر خدمات ارائه میدهد و مستندات خودش CLI را به عنوان یک روش «قدرتمند و کاملویژگی» برای دسترسی و مدیریت vault توصیف میکند، از جمله در workflow های خودکاری که با استفاده از متغیرهای محیطی احراز هویت میکنند.
Bitwarden، npm را به عنوان سادهترین و روش نصب ترجیحی برای کاربرانی که از قبل با این رجیستری آشنا هستند معرفی میکند. این ترکیب از استفاده اتوماسیون، نصب روی ماشین توسعهدهنده و توزیع رسمی npm، CLI را دقیقاً در جایی قرار میدهد که اسرار زیرساخت با ارزش بالا معمولاً وجود دارند.
تحلیل JFrog نشان میدهد که بسته مخرب هم hook پیشنصب و هم نقطه ورودی باینری bw را به یک بارگذار که Bun runtime را دریافت میکرد و یک محموله مبهمسازیشده را راهاندازی مینمود، تغییر مسیر داد. این نفوذ هم در زمان نصب و هم در زمان اجرا فعال میشود.
یک سازمان میتوانست CLI دارای درب پشتی را بدون لمس کردن هیچ رمز عبور ذخیرهشدهای اجرا کند، در حالی که بدافزار بهطور منظم اعتبارنامههای حاکم بر خطوط لوله CI، حسابهای ابری و اتوماسیون استقرار آن را جمعآوری میکرد.
شرکت امنیتی Socket میگوید این حمله به نظر میرسد از یک GitHub Action در معرض خطر در خط لوله CI/CD Bitwarden بهرهبرداری کرده است، که با الگویی که محققان Checkmarx دنبال میکردند همخوانی دارد.
Bitwarden تأیید کرد که این حادثه به کمپین گستردهتر زنجیره تأمین Checkmarx مرتبط است.
npm مدل انتشار مورد اعتماد خود را دقیقاً برای رسیدگی به این دسته از ریسکها ساخته است.
با جایگزینی توکنهای انتشار npm طولانیمدت با احراز هویت CI/CD مبتنی بر OIDC، این سیستم یکی از رایجترین مسیرهایی را که مهاجمان برای ربودن انتشارهای رجیستری استفاده میکنند حذف میکند، و npm انتشار مورد اعتماد را توصیه میکند و آن را یک گام پیشرفت معنادار میداند.
سطح سختتر خود منطق انتشار است، مانند workflow ها و actionهایی که مرحله انتشار را فراخوانی میکنند. مستندات خود npm کنترلهایی فراتر از OIDC را توصیه میکند، مانند محیطهای استقرار با الزامات تأیید دستی، قوانین حفاظت از تگ و محدودیتهای شاخه.
| لایه در زنجیره اعتماد | چه چیزی را باید تضمین کند | چه چیزی هنوز میتواند اشتباه پیش برود |
|---|---|---|
| مخزن منبع | پایگاه کد مورد نظر در مخزن مورد انتظار وجود دارد | مهاجمان ممکن است هرگز نیازی به تغییر مستقیم پایگاه کد اصلی نداشته باشند |
| workflow CI/CD | ساخت و انتشار از مخزن را خودکار میکند | در صورت نفوذ، میتواند یک artifact مخرب تولید و منتشر کند |
| GitHub Actions / منطق انتشار | مراحلی را که نرمافزار را میسازند و منتشر میکنند اجرا میکند | یک action آلوده یا workflow سوءاستفادهشده میتواند یک مسیر انتشار قانونی را مخرب کند |
| انتشار مورد اعتماد OIDC | توکنهای رجیستری طولانیمدت را با احراز هویت مبتنی بر هویت کوتاهمدت جایگزین میکند | ثابت میکند که یک workflow مجاز بسته را منتشر کرده، نه اینکه خود workflow ایمن بوده است |
| مسیر بسته رسمی npm | نرمافزار را تحت نام بسته مورد انتظار توزیع میکند | کاربران ممکن است همچنان بدافزار دریافت کنند اگر مسیر انتشار رسمی در معرض خطر باشد |
| ماشین توسعهدهنده / CI runner | بسته رسمی را دریافت میکند | بدافزار در زمان نصب یا زمان اجرا میتواند اسرار محلی، ابری و اتوماسیون را جمعآوری کند |
تنظیمات محیطی GitHub به سازمانها اجازه میدهد قبل از اینکه یک workflow بتواند استقرار یابد، تأیید بررسیکنندگان را الزامی کنند. چارچوب SLSA با درخواست از مصرفکنندگان برای تأیید اینکه منشأ با پارامترهای مورد انتظار مطابقت دارد، مانند مخزن، شاخه، تگ، workflow و پیکربندی ساخت صحیح، فراتر میرود.
حادثه Bitwarden نشان میدهد که مشکل سختتر در لایه workflow قرار دارد. اگر یک مهاجم بتواند از workflow انتشار به خودی خود بهرهبرداری کند، نشان «رسمی» همچنان بسته مخرب را همراهی میکند.
انتشار مورد اعتماد، بار اعتماد را به بالاتر به سمت یکپارچگی workflow ها و actionهایی که آن را فراخوانی میکنند منتقل میکند، لایهای که سازمانها تا حد زیادی بدون بررسی رها کردهاند.
برای تیمهای توسعهدهنده و زیرساخت، یک workflow انتشار در معرض خطر، خطوط لوله CI، زیرساخت اتوماسیون و اعتبارنامههایی را که آنها را کنترل میکنند در معرض خطر قرار میدهد.
تحلیل JFrog نشان میدهد که پس از اینکه بدافزار یک توکن GitHub به دست آورد، میتوانست توکن را اعتبارسنجی کند، مخازن قابل نوشتن را فهرست کند، اسرار GitHub Actions را لیست کند، یک شاخه ایجاد کند، یک workflow commit کند، منتظر اجرای آن بماند، artifactهای حاصل را دانلود کند و سپس آثار را پاک کند.
به دست آوردن توکن یک زنجیره خودکار ایجاد میکند که یک اعتبارنامه دزدیدهشده واحد را به دسترسی پایدار در سراسر زیرساخت اتوماسیون یک سازمان تبدیل میکند.
لپتاپ یک توسعهدهنده که یک بسته رسمی آلوده نصب میکند، پلی میشود از مخزن اعتبارنامه محلی میزبان به دسترسی GitHub و به هر چیزی که آن توکن GitHub میتواند به آن دسترسی داشته باشد.
حادثه Bybit یک قیاس ساختاری نزدیک است. یک ایستگاه کاری توسعهدهنده در معرض خطر به مهاجمان اجازه داد یک رابط upstream مورد اعتماد را آلوده کنند، که سپس به فرایند عملیاتی قربانی دسترسی پیدا کرد.
تفاوت این است که Bybit شامل یک رابط وب Safe دستکاریشده بود، در حالی که Bitwarden شامل یک بسته رسمی npm دستکاریشده بود.
در محیطهای کریپتو، فینتک یا حضانت، آن مسیر میتواند از یک مخزن اعتبارنامه به امضاکنندگان انتشار، دسترسی ابری و سیستمهای استقرار بدون لمس کردن هیچ ورودی vault طی شود.
در ظرف ۶۰ روز، Checkmarx workflow های GitHub Actions و افزونههای OpenVSX در معرض خطر را افشا کرد، در حالی که Cloud Security Alliance هشدار داد که کمپین TeamPCP به طور فعال پروژههای متنباز و اجزای اتوماسیون CI/CD را در معرض خطر قرار میدهد.
JFrog مستند کرد که چگونه یک GitHub Action آلوده Trivy توکن انتشار LiteLLM را استخراج کرد و انتشارهای مخرب PyPI را ممکن ساخت، و Axios فاش کرد که دو نسخه مخرب npm به مدت تقریباً سه ساعت از طریق یک حساب نگهدارنده در معرض خطر در گردش بودند.
Sonatype تنها در سال ۲۰۲۵ بیش از ۴۵۴,۶۰۰ بسته مخرب جدید را شمارش کرد و مجموع تجمعی را به بیش از ۱.۲ میلیون رساند. Bitwarden به زنجیرهای از حوادث میپیوندد که workflow های انتشار و رجیستریهای بسته را به عنوان سطح حمله اصلی تأیید میکند.
| تاریخ / دوره | حادثه | نقطه اعتماد در معرض خطر | چرا اهمیت دارد |
|---|---|---|---|
| ۱۴۰۵/۰۱/۰۳ | Checkmarx workflow های GitHub Actions و افزونههای OpenVSX در معرض خطر را افشا کرد | workflow های GitHub Actions، توزیع ابزارهای توسعهدهنده | نشان میدهد مهاجمان اتوماسیون upstream و کانالهای ابزاری مورد اعتماد را هدف قرار میدهند |
| در همان بازه کمپین | زنجیره Trivy / LiteLLM که توسط JFrog مستند شد | GitHub Action در معرض خطر که منجر به سرقت توکن و انتشارهای مخرب PyPI شد | نشان میدهد چگونه یک جزء اتوماسیون آلوده میتواند به سوءاستفاده از انتشار بسته تبدیل شود |
| ۱۴۰۵/۰۱/۱۱ | نسخههای مخرب npm مربوط به Axios | حساب نگهدارنده در معرض خطر | نشان میدهد نامهای بسته رسمی میتوانند از طریق نفوذ در سطح حساب به بردارهای حمله تبدیل شوند |
| ۱۴۰۵/۰۲/۰۲ | انتشار مخرب npm مربوط به Bitwarden CLI | مسیر توزیع رسمی npm برای یک ابزار امنیتی | نشان میدهد یک بسته مورد اعتماد میتواند اسرار زیرساخت را بدون لمس محتویات vault افشا کند |
| مجموع سال ۲۰۲۵ | شمارش بدافزار Sonatype | اکوسیستم بسته متنباز به طور گسترده | نشاندهنده مقیاس فعالیت بستههای مخرب و دلیل اینکه اعتماد به رجیستری اکنون یک ریسک استراتژیک است |
علت ریشهای دقیق هنوز عمومی نشده است، زیرا Bitwarden ارتباط با کمپین Checkmarx را تأیید کرده اما جزئیات دقیقی از نحوه دسترسی مهاجم به خط لوله انتشار منتشر نکرده است.
قویترین پیامد برای مدافعان این است که این حادثه بازتعریف معنای «رسمی» را تسریع میکند.
امروز، انتشار مورد اعتماد دادههای منشأ را به هر بسته منتشرشده ضمیمه میکند و بدین ترتیب هویت ناشر را در رجیستری تأیید میکند. SLSA به صراحت یک استاندارد بالاتر را برای تأییدکنندگان مستند میکند تا بررسی کنند آیا منشأ با مخزن، شاخه، workflow و پارامترهای ساخت مورد انتظار مطابقت دارد.
اگر آن استاندارد به رفتار پیشفرض مصرفکننده تبدیل شود، «رسمی» شروع به معنای «ساختهشده توسط workflow صحیح تحت محدودیتهای صحیح» میکند، و مهاجمی که یک action را به خطر میاندازد اما نمیتواند هر محدودیت منشأ را برآورده کند، بستهای تولید میکند که مصرفکنندگان خودکار قبل از رسیدن آن را رد میکنند.
مسیر محتملتر کوتاهمدت در جهت مخالف پیش میرود. مهاجمان در حداقل ۴ حادثه در ۶۰ روز نشان دادهاند که workflow های انتشار، وابستگیهای action و اعتبارنامههای مجاور نگهدارنده نتایج پرارزشی با اصطکاک نسبتاً پایین ارائه میدهند.
هر حادثه متوالی تکنیک مستند دیگری به یک کتاب راهنمای عمومی از نفوذ به action، سرقت توکن از خروجی CI، ربودن حساب نگهدارنده و سوءاستفاده از مسیر انتشار مورد اعتماد اضافه میکند.
مگر اینکه تأیید منشأ به رفتار پیشفرض مصرفکننده به جای یک لایه سیاست اختیاری تبدیل شود، نامهای بسته رسمی اعتمادی بیشتر از آنچه فرایندهای انتشارشان میتوانند توجیه کنند را جلب خواهند کرد.
این پست برای اولین بار با عنوان «به مدت ۹۳ دقیقه، نصب CLI 'رسمی' Bitwarden لپتاپها را به لانچ پدهایی برای ربودن حسابهای GitHub تبدیل کرد» در CryptoSlate منتشر شد.


