GlassWorm відновив атаки на OpenVSX: нові шкідливі розширення для VS Code і вразливість до Unicode-обфускації

CyberSecureFox 🦊

Попри підсилені заходи безпеки, в каталозі OpenVSX знову виявлено три шкідливі пакети, пов’язані з групою GlassWorm. За оцінками дослідників, ці розширення для Visual Studio Code встигли зібрати понад 10 000 завантажень, що підкреслює стійкість загрози та прогалини у виявленні прихованого коду.

Профіль GlassWorm: крадіжка облікових даних і зараження ланцюга постачання ПЗ

GlassWorm відстежується з жовтня 2025 року і орієнтується на крадіжку токенів і паролів сервісів для розробників (GitHub, npm, OpenVSX), а також на компрометацію криптогаманців. Група застосовує невидимі Unicode-символи для маскування JavaScript-навантаження, що ускладнює як ручний код-рев’ю, так і статичний аналіз. Використовуючи викрадені облікові дані, зловмисники проникають у проєкти та розширення, до яких жертви мають доступ, що надає атаці червоподібної динаміки та сприяє ланцюговому поширенню.

Командування через Solana і резервний канал Google Calendar

Для керування ботнетом використовується блокчейн Solana, тоді як Google Calendar слугує резервним каналом C2. Така архітектура ускладнює блокування інфраструктури: записи в публічних децентралізованих мережах практично неможливо видалити, а трафік до легітимних хмарних сервісів розчиняється у фонових запитах.

Попередня хвиля: 12 інфікованих розширень і десятки тисяч завантажень

Під час першого спалаху в жовтні у OpenVSX та Visual Studio Code Marketplace було виявлено 12 компрометованих розширень із сумарно близько 35 800 завантажень. Частина метрик могла бути штучно накручена, тож реальний масштаб ураження оцінити складно. Команда OpenVSX після інциденту відкликала токени зламаних облікових записів і посилила контроль якості, однак нинішня активність свідчить, що критичний вектор залишився відкритим.

Чому Unicode-обфускація обходить перевірки

За даними Koi Security, нові зловмисні розширення знову використовують невидимі символи нульової ширини та «схожі» літери з інших алфавітів. Візуально код виглядає легітимно, але змінюється семантика: ідентифікатори, порівняння рядків, логіка конкатенації. Такі символи неочевидні у дифах, ламають регулярні вирази та обходять сигнатурні правила. Практична протидія включає нормалізацію Unicode (NFC/NFKC), заборону confusables і відлов U+200B/U+200C/U+200D на рівні лінтерів і pre-commit хуків, а також увімкнення режиму «показати невидимі символи» у IDE.

Експансія на GitHub і географія ураження

Компанія Aikido повідомляла про розширення кампанії на GitHub, що збільшує ризики для команд, залежних від внутрішніх і відкритих реєстрів. Koi Security, отримавши доступ до одного з серверів операторів (за анонімною наводкою), зафіксувала жертв у США, Південній Америці, Європі та Азії, а також випадки проникнення в держоргани Близького Сходу. За ознаками інфраструктури й комунікацій, виконавці є російськомовними і користуються фреймворком RedExt. Зібрані ідентифікатори на криптобіржах і в месенджерах передано правоохоронцям, триває координація оповіщення постраждалих.

Ознаки компрометації та заходи зниження ризику

Пильнуйте аномалії: звернення до Solana RPC і нетипова активність Google Calendar API, несанкціоновані публікації/оновлення розширень, раптові втрати доступу до реєстрів, неочікувані зміни у CI/CD, витоки токенів і необґрунтовані запити до GitHub/npm/OpenVSX. На етапі вихідного коду виявляйте змішані алфавіти та zero-width символи, застосовуйте Git-хуки і політику code owners.

Що робити маркетплейсам розширень

OpenVSX і VSC Marketplace варто посилити перевірку паблішерів (KYC/репутаційні сигнали), вимагати апаратну 2FA для чутливих дій, додати статичні детектори confusables/zero-width, налаштувати автоматичне блокування підозрілих оновлень і регулярно проводити ретроскан вже опублікованих пакетів із примусовими сповіщеннями користувачів та відзивом довіри.

Рекомендації для команд розробки

Запровадьте allowlist розширень і блокуйте неофіційні джерела, періодично інвентаризуйте встановлені плагіни VS Code, моніторте мережеві звернення до Solana RPC/Calendar API, регулярно ротувати токени GitHub/npm/OpenVSX, використовуйте менеджери секретів та автоматичне відкликання скомпрометованих облікових даних. Налаштуйте лінтери/пре-коміти для пошуку U+200B/U+200C/U+200D, увімкніть показ невидимих символів у IDE, обмеж

Залишити коментар

Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються дані ваших коментарів.