بدافزاری در کمین توسعهدهندگان: اکستنشن جعلی Prettier در VSCode حامل بدافزار Anivia Stealer
تهدیدی که از دل ابزارهای محبوب توسعهدهندگان سر برآورد
دنیای توسعه نرمافزار طی دهه گذشته با رشد چشمگیر ابزارها، لایبرریها و افزونههایی روبهرو شده که فرآیند برنامهنویسی را سادهتر و سریعتر میکنند. اما همین وابستگی گسترده به ابزارهای شخص ثالث، فضای مناسبی برای مهاجمان سایبری ایجاد کرده است تا با سوءاستفاده از اعتماد توسعهدهندگان، حملات Supply Chain را پیادهسازی کنند. حمله اخیر که در آن یک افزونه جعلی Prettier بر بستر VSCode منتشر شد، نمونهای روشن از همین الگوست؛ الگویی که با وجود سرعت شناسایی و حذف، نشاندهندۀ شکنندگی زنجیره تأمین نرمافزار است.
در تاریخ ۲۱ نوامبر ۲۰۲۵ پژوهشگران امنیتی Checkmarx اعلام کردند افزونهای با نام prettier-vscode-plus روی مارکت VSCode منتشر شده که در ظاهر کاملاً مشابه افزونه محبوب و معتبر Prettier بود، اما در پسزمینه، بدافزاری مخرب برای سرقت اطلاعات حساس کاربران نصب میکرد. این افزونه تنها چهار ساعت روی مارکت فعال بود، اما در همین مدت کوتاه توانست شش دانلود و سه نصب واقعی به ثبت برساند؛ رقمی که اگرچه کوچک به نظر میرسد، اما اهمیت آن در این است که کاربران هدف، توسعهدهندگان و متخصصانی هستند که اغلب دسترسیهای عمیق و گسترده به شبکهها، مخازن کد، سرویسها و سیستمهای حساس دارند.
اکستنشن جعلی چگونه اعتماد کاربران را جلب کرد؟
یکی از مؤثرترین تکنیکهایی که مهاجمان در این حمله بهکار بردند، Brandjacking یا سوءاستفاده از شهرت برند بود. اکستنشن جعلی با انتخاب نامی که بهطور خطرناکی شبیه prettier-vscode اصلی بود و با استفاده از آیکون و توضیحات مشابه، توانست کاربران را فریب دهد. توسعهدهندگانی که معمولاً برای مدیریت فرمت کدهای خود به سرعت دنبال افزونه Prettier میگردند، با دیدن چنین گزینهای ممکن است بدون بررسی دقیق، آن را نصب کنند؛ زیرا ابزارهای محبوب و شناختهشده معمولاً اعتماد ذاتی در ذهن کاربر ایجاد میکنند.
مارکتهای رسمی مانند VSCode Marketplace بهطور مداوم در حال افزایش میزان و تنوع افزونهها هستند و همین موضوع فضای بیشتری برای پنهانسازی اکستنشنهای جعلی فراهم میکند. برخلاف فروشگاههای موبایلی که روند بررسی سفتوسخت دارند، مارکتهای توسعهدهندگان معمولاً چرخههای بررسی سبکتری دارند تا سرعت انتشار ابزارها حفظ شود؛ این موضوع ناخواسته فرصتهایی برای مهاجمان ایجاد میکند.
کشف بدافزار Anivia Stealer در دل افزونه جعلی
پژوهشگران Checkmarx هنگام بررسی این افزونه دریافتند که سازندگان آن یک نسخه اصلاحشده از بدافزار Anivia Stealer را درون فایلهای اکستنشن جاسازی کردهاند. Anivia Stealer از خانواده بدافزارهایی است که سالهای اخیر رشد چشمگیری داشتهاند و روی سرقت گواهیهای ورود، اطلاعات هویتی، فراداده، اطلاعات سیستمی و حتی فایلهای خصوصی تمرکز دارند.
نسخهای که در این افزونه استفاده شده بود بهطور خاص طوری تنظیم شده بود که بتواند اطلاعات حساس ذخیرهشده در ویندوز، مرورگرها و اپلیکیشنهای ارتباطی را استخراج کند. یکی از نکات نگرانکننده، توانایی آن در سرقت محتوای چتهای WhatsApp در ویندوز بود؛ قابلیتی که نشان از تمرکز مهاجمان بر استخراج دادههای خصوصی دارد.
این نکته را نیز باید در نظر داشت که توسعهدهندگان معمولاً روی سیستم خود کلیدهای SSH، API Tokens، Secret Keys و دسترسیهای مهم کاری نگه میدارند. بنابراین نصب موفق چنین بدافزاری میتواند پیامدهای سازمانی گستردهتری داشته باشد و تنها به افشای اطلاعات شخصی محدود نشود.
معماری چندمرحلهای یک حمله مخفیانه
یکی از جنبههای قابلتوجه این حمله، طراحی چندمرحلهای و بسیار مخفیانه بدافزار بود؛ ساختاری که آن را از بدافزارهای ساده که فایل اجرایی را مستقیماً روی دیسک قرار میدهند متمایز میکرد و باعث میشد شناسایی و تحلیل آن بسیار دشوارتر باشد. پس از نصب افزونه، بخشی از کد مخفی در پسزمینه فعال میشد و یک Blob رمزگذاریشده بهصورت base64 را از مخزن GitHub دریافت میکرد تا بدافزار اصلی در همان لحظه و از راه دور بارگیری شود و درون فایلهای افزونه قرار نگیرد؛ روشی که معمولاً برای دور زدن بررسیهای اولیه مارکتها استفاده میشود. در ادامه، افزونه یک VBScript کوچک را در مسیر موقت ویندوز مینوشت تا نقش یک بوتاسترپر را ایفا کند و زمینه اجرای دستورات پاورشل را فراهم سازد. در مرحله بعد، محتوای مخرب بدون اینکه روی دیسک ذخیره شود، با استفاده از رمزگشایی AES در حافظه و با یک کلید ثابت باز میشد؛ شیوهای که باعث میشد ردپای قابلتوجهی در سیستم باقی نماند و بسیاری از راهکارهای امنیتی نتوانند فعالیت آن را تشخیص دهند. در نهایت، بدافزار با بهرهگیری از مکانیزم Reflection در .NET، باینری رمزگشاییشده را مستقیماً در حافظه بارگذاری میکرد و نقطه ورود Anivia.AniviaCRT را فراخوانی میکرد؛ جایی که عملکرد اصلی استیلر برای جمعآوری و ارسال دادهها فعال میشد و بدافزار بدون ایجاد آرتیفکتهای معمول، عملیات خود را آغاز میکرد.
تکنیکهای پیشرفته فرار از شناسایی
مهاجمان برای جلوگیری از تحلیل بدافزار در محیطهای آزمایشگاهی از تکنیکهای Sandbox Evasion استفاده کرده بودند. بدافزار پیش از اجرای عملیات اصلی بررسی میکرد که آیا سیستم قربانی دارای تعداد کمی CPU، میزان کم RAM یا سایر نشانههای محیطهای شبیهسازی است یا خیر. اگر چنین نشانههایی را تشخیص میداد، فعالیت خود را متوقف میکرد تا از شکار توسط پژوهشگران جلوگیری کند.
این ترکیب از رمزگشایی در حافظه، اجرای بدون فایل، و تکنیکهای ضدتحلیل نشان میدهد که مهاجمان نه یک گروه آماتور، بلکه بازیگرانی باتجربه و حرفهای هستند که بهصورت هدفمند توانستهاند یک حمله کاملاً پنهانی را طراحی کنند.
پیامدهای امنیتی برای اکوسیستم توسعه نرمافزار
حمله اخیر تنها یک حادثه محدود نیست، بلکه نشانهای از روند رو به رشد حملات Supply Chain در اکوسیستم توسعه است. افزونههای VSCode میلیونها بار نصب میشوند و بسیاری از توسعهدهندگان بدون بررسی دقیق ناشر، مجوزها یا کد منبع، ابزارها را نصب میکنند. اگرچه در این مورد تنها سه نصب انجام شد، اما همین تعداد اندک نیز میتوانست شامل توسعهدهندگانی باشد که روی پروژههای حساس سازمانی یا در تیمهای DevOps فعالیت میکنند و دسترسیهای عمیق به مخازن و سرویسهای کلیدی دارند؛ دسترسیهایی که برای مهاجمان ارزش فوقالعادهای دارد. این حادثه در عمل زنگ خطری جدی برای دو گروه اصلی است: از یکسو توسعهدهندگان و کاربران VSCode که باید با دقت بیشتر هویت ناشران، تعداد دانلودها، نظرات و منابع افزونهها را بررسی کنند، و از سوی دیگر پلتفرمهای ارائهدهنده افزونه که لازم است سازوکارهای ارزیابی امنیتی خود را تقویت کرده و با تکیه بر روشهای خودکار و دستی، احتمال انتشار افزونههای مخرب یا مشکوک را به حداقل برسانند.
جمعبندی: ضرورت بازنگری در امنیت زنجیره تأمین
حمله اکستنشن جعلی Prettier بار دیگر نشان داد که زنجیره تأمین نرمافزار تا چه اندازه میتواند آسیبپذیر باشد؛ بهویژه زمانی که مهاجمان میتوانند با طراحی افزونهای ساده، اما با اجرای پیچیده و مخفیانه، بدافزاری خطرناک را وارد سیستم توسعهدهندگان کنند. سرعت شناسایی این حمله توسط Checkmarx قابلتحسین بود، اما واقعیت این است که تنها چند ساعت کافی بود تا بدافزار روی سیستم توسعهدهندگان اجرا شود.
در این گزارش خبری در کارینا سکیوریتی تأکید میشود که توسعهدهندگان باید رویکردی امنیتمحور نسبت به ابزارهای روزمره خود داشته باشند و مارکتپلیسها نیز باید کنترلهای بیشتری برای جلوگیری از انتشار افزونههای جعلی و مخرب اعمال کنند. با پیچیدهتر شدن حملات و ورود تکنیکهای جدید فرار از شناسایی، آینده امنیت توسعه نرمافزار نیازمند تحول جدی در نظارت، آموزش و ابزارهای حفاظتی است.
این حادثه نه یک اتفاق مجزا، بلکه نشانهای از جنگ پنهان و مداوم میان مهاجمان سایبری و مدافعان امنیت در فضای توسعه نرمافزار است؛ جنگی که پیروزی در آن تنها با آگاهی، دقت و افزایش استانداردهای امنیتی ممکن خواهد شد.
منبع: cybersecuritynews.com