اکستنشن های مخرب زیادی در VSCode به چشم می خورد.
در حال حاضر تعداد اکستنشن های VSCode به حدود 50هزار افزونه می رسد. اما Extensionهای مخربی هم در نرم افزار Visual Studio Code وجود دارد. با نصب اکستنشن های مخرب VSCode، بدافزاری بر روی سیستم کاربران نصب می شود. که باعث سرقت و از بین بردن اطلاعات کاربران و یا اخاذی از آنان می شود.
کاربرانی که اکستنشن های مخرب VSCode را نصب میکنند، مهاجمان را قادر میسازند تا shellهای خود را روی دستگاههای آنان اجرا کنند.
برای جلوگیری از توزیع اکستنشن های مخرب VSCode، مایکروسافت تدابیری را اتخاذ کرده است. یکی از این تدابیر استفاده از ابزارهای اسکن خودکار برای شناسایی و حذف اکستنشن های مخرب از VSCode است. بررسیها، رتبهبندی ها و گزارش های کاربران نیز برای شناسایی اکستنشن های مخرب VSCode بکار می رود.
هکرها همیشه به دنبال راههای جدید برای آلوده کردن سیستم های کاربران هستند. open source بودن و رایج بودن یک پلتفرم میتواند منبع خوبی برای آلوده سازی سیستم های کاربران باشد.
اکستنشن های مخرب VSCode ی یافت شد که برخی از آنها بیش از 45هزار نصب داشته اند.
اکستنشن های مخرب VSCode با بیش از 45000 نصب :
افزونه Prettiest java
اولین افزونه Prettiest java نام دارد. بر اساس توضیحات کوتاه آن، این افزونه قرار بود یک کمک کننده جاوا(java helper) باشد. اما این افزونه سعی میکند با تقلید نام خود از پروژه محبوب Prettier-Java، کاربران را فریب دهد. که متاسفانه موفق هم بوده است.
با نگاهی به کد این اکستنشن مخرب VSCode، شاهد یک کد کلاسیک *PII هستیم، که در PyPI کاملاً رایج است. که تاکنون بصورت گسترده در بسته های آلوده پایتونی مشاهده میشد. مهاجم از وب هوک Discord برای حمله استفاده می کند.
افزونه Theme Darcula dark
بر اساس توضیحات افزونه Theme Darcula dark قرار بود این اکستنشن برای بهبود ترکیب رنگهای تم Darcula در VS باشد. در حالیکه این افزونه قرار بود یک تم ساده باشد (که به طبع در آن هیچ کدی نباید گنجانده میشد)، اما دارای یک کد سرقت کننده PII بود. که در بین بستههای مخرب NPM بسیار رایج است.
این افزونه metadataهای زیادی را از دستگاه کاربر جمع آوری و به یک دستگاه راه دور(remote machine) ارسال میکرد. افزونه Theme Darcula dark بیش از 45 هزار نصب داشت.
افزونه Python-vscode
در حالی که این اکستنشن در VSCode هیچ توضیحی نداشت (بنابراین اکثر کاربران حتی نباید از آن استفاده میکردند!) اما با مشاهده تعداد نصب های نسبتاً بالای آن می توان دریافت که موفق شد به خوبی کاربران را فریب دهد.
قطعه کدی از این افزونه با js که برای تزریق کد C# استفاده می شود
با نگاهی به کد این افزونه می بینیم که اسکریپت مخربی وجود دارد که در حال تزریق یک installer(نصب کننده) به سیستم کاربر است. جالب اینجاست که بدانید این اسکریپت شامل یک کد تزریق شل رایج در زبان سی شارپ است.
ارجاع کد مخرب به Github
نکته آخر: هیچکس تضمین نمیکند که پلتفرم های open sourceی که ما از آن استفاده میکنیم بیخطر هستند. در واقع این مسئولیت ماست که آنها را تأیید، شناسایی و استفاده کنیم.
* Personal Identifiable Information (PII) یا اطلاعات قابل شناسایی شخصی به نمایش هرگونه اطلاعات شخصی و هویتی افراد می گویند. در واقع به زبان ساده تر به هر گونه استنتاج به صورت مستقیم و یا غیرمستقیم در مورد اطلاعات شخصی کاربران نظیر اطلاعات هویت افراد را شامل می شود.
منابع:
Checkpoint
U.S. Department of Labor
Zippyops