۷۷ افزونهٔ جاسوس توی مارکتپلیس Open VSX
خلاصهٔ کاملتر
به گزارش Manifold Security، بین ۲۶ جولای تا ۱ آگوست ۲۰۲۶ در مجموع ۷۷ افزونه توی مارکتپلیس Open VSX منتشر شدن که بهشون میگن «همزاد شیطانی» (evil twin): بستههایی که اسم، فضاینام و توضیحات افزونههای واقعی VS Code رو عیناً کپی میکنن تا کاربر اشتباهی نصبشون کنه. بیشترشون با شمارهٔ نسخهٔ پایین 0.0.1 منتشر شده بودن و فایل extension.js اصلی توشون با کدی برای جمعآوری و ارسال داده جایگزین شده بود.
این افزونهها اصلاً کاری رو که تو توضیحاتشون ادعا کرده بودن انجام نمیدادن؛ فقط یه پیام یا نشانگر توی نوار وضعیت نشون میدادن و پشت صحنه داده میفرستادن. اسمهایی که جعل شده بود به مجموعهای از شرکتها و پروژهها برمیگشت، از AMD و Azure و Salesforce گرفته تا Hyperledger، LEGO Education و حتی فضاینام یه سازمان دولتی آمریکا. هر بسته یه شناسهٔ ردیابی مخصوص خودش داشت تا گرداننده بفهمه کدوم نسخه نصب شده.
۵۸ تا از بستهها فقط نام میزبان و گاهی نام پوشهٔ ورکاسپیس و نسخهٔ ادیتور رو میفرستادن. ولی ۱۹ تای بقیه چهار پنج ثانیه بعد از فعال شدن یه شناسایی جدیتر انجام میدادن: نام کاربری سیستمعامل، شناسهٔ ماشین، معماری و منطقهٔ زمانی، مسیر کامل ورکاسپیس، و از پوشهٔ .git هم ریموت و سازمان، دامنهٔ ایمیل توسعهدهنده، برنچ فعلی و هش کامیت HEAD. تا ۶۰ افزونهٔ نصبشده رو هم فهرست میکردن و شناسههای محیطهای CI و کلاد مثل GitHub، GitLab، Azure DevOps، CircleCI، Codespaces و Gitpod رو جمع میکردن.
نکتهٔ عجیب ماجرا اینه که خود لیستینگها اعتراف کرده بودن «متریک ناشناس» جمع میکنن و درست هم گفته بودن سراغ سورسکد یا کردنشیال نمیرن — چیزی که Manifold هم تأییدش کرده. ولی همون گزارش میگه بیشتر از چیزی که اعلام شده بود داده رفته بیرون، از جمله اطلاعات CI که میتونه اسم یا مسیر مخزنهای خصوصی رو لو بده. همهٔ ۷۷ بسته با یه دامنهٔ واحد حرف میزدن که یازده روز قبل از انتشار اولین بسته ثبت شده بود، و بعضی نسخهها تا هفت روز برای ارسال داده تلاش میکردن.
نکات کلیدی:
- ۷۷ افزونهٔ «همزاد» توی Open VSX اسم و توضیحات افزونههای واقعی VS Code رو کپی کرده بودن
- ۵۸ تا فقط اطلاعات پایهٔ سیستم و ۱۹ تا متادیتای گیت، CI و محیط توسعه رو میفرستادن
- به سورسکد، توکن، کلید SSH و دادهٔ مرورگر دست نزده بودن
- همه به یه سرور واحد وصل بودن و در نبود اون، آدرس جایگزین رو از یه رکورد DNS TXT میگرفتن
- بستهها تا ۳ آگوست از مارکت حذف شدن، ولی پاک کردنشون از سیستم توسعهدهنده دستیه




