Уязвимость в VS Code Marketplace позволяет злоумышленникам переиспользовать имена удалённых расширений

information security

Исследователи кибербезопасности из ReversingLabs (RL) обнаружили критическую уязвимость на платформе VS Code Marketplace, которая позволяет злоумышленникам повторно использовать имена легитимных, но удалённых расширений для распространения вредоносного программного обеспечения. Это открытие противоречит официальной документации Microsoft, утверждающей, что каждое имя расширения должно быть уникальным.

Описание

Поводом для расследования стало обнаружение в июне вредоносного расширения ahbanC.shiba, функционально повторявшего два ранее выявленных пакета - ahban.shiba и ahban.cychelloworld, которые распространяли программу-шифровальщик (ransomware). Ключевой особенностью новой атаки стало совпадение имени расширения («shiba») с одним из мартовских образцов, хотя правила платформы явно запрещают такое повторное использование.

Расследование показало, что уязвимость возникает из-за различий в механизмах удаления расширений. VS Code Marketplace предоставляет авторам два варианта: «unpublish» (снятие с публикации) и «remove» (полное удаление). В первом случае статистика расширения сохраняется, и его имя остаётся заблокированным для повторного использования. Однако если расширение полностью удалено, его имя становится доступным для регистрации новыми авторами, включая злоумышленников.

Эксперименты RL подтвердили эту гипотезу. Исследователи успешно зарегистрировали расширение с именем Solidity-Ethereum, которое ранее принадлежало вредоносному пакету. Аналогичные уязвимости ранее фиксировались на других платформах, таких как PyPI, где также допускалось повторное использование имён удалённых пакетов.

В случае с ahbanC.shiba злоумышленники воспользовались тем, что оригинальные расширения ahban.shiba и ahban.cychelloworld были полностью удалены с платформы. Это позволило им зарегистрировать новый пакет с тем же именем, но под другим издателем (ahbanC вместо ahban). Расширение действовало как загрузчик: при активации команды shiba.aowoo оно скачивало и запускало вредоносный скрипт с внешнего сервера, который шифровал файлы в тестовой папке и требовал выкуп в криптовалюте Shiba Inu.

Хотя данная кампания не связана с крупными группами вроде Black Basta, её появление совпало с утечкой чат-логов последних, где обсуждалась возможность тестирования публичных репозиториев для доставки ransomware. Это свидетельствует о растущем интересе киберпреступников к платформам вроде VS Code Marketplace.

Для защиты разработчиков ReversingLabs рекомендует использовать инструменты анализа открытого кода, такие как Spectra Assure Community, который недавно добавил поддержку VS Code Marketplace. Это позволяет проверять расширения на наличие вредоносного кода до их интеграции в проекты.

Открытие уязвимости подчёркивает необходимость усиления контроля со стороны операторов платформ и повышения осведомлённости разработчиков о рисках использования публичных репозиториев. Повторное использование имён удалённых пакетов может стать новым вектором атак на цепи поставок программного обеспечения.

Индикаторы компрометации

SHA1

  • 038d561f31909d601e046f883483c7fff035989e
  • 0ea795be03410d4000157e4d29f2c9349ce41076
  • 13b0918924343ac79a99118806dddcace1ad923e
  • 272eda0a7dcb9d6453b6d0080a876e2b39a1dfe4
  • 48b06a5ac3e0ec75c9f62d0de82da3e6d3751206
  • 715e984f2d7ca57f3199f1b67d6e6b130738efe5
  • 78715eabe3a748a4474ddaa3bd4757dc09983f98
  • 7c861bcd2c735599d2cafd9c90fed2ae01acabbe
  • 82e468beb4498fc36b37ff68852bf28439bb2e5b
  • af1e7b349ca376cb21bc1738ca10035bc878c9f6
  • b070b89e68c29b870bd7e7bb233d36a2fc0af52d
  • b3811c2570612223c8e93940b8353050dc63e6aa
  • b8625b3687171c1f3b9e78e1060f24b80380d069
  • bf3f29a72a128a0331f92a02aef249c926ddc071
  • d6097dc96387df62de28e2a9e1dd2168c9bec3df
  • daa3fbb6d813e2a4891e7b0441026fe97a7ffaa5
  • dd19d11aa6c247173845c68a1ec438cbd54534fd
  • e4a99435b517653f6a74c2d589edd7a64f84bf7a
  • ed7d3a403c142153a36f6a2575f11d505e4fc927
  • f74807a5dbdabced658f8d523b0f4c551d5b44f9
  • f9981e9ca2893229eb0259e4b72bc63dfaa6a3e8

Unique_identifier Version

  • ahbanC.shiba 0.1.0
  • ahbanC.shiba 0.1.1
  • ahbanC.shiba 0.1.2
  • ahbanC.shiba 0.1.3
  • ahbanC.shiba 0.1.4
  • ahban.shiba 0.0.1
  • ahban.shiba 0.0.2
  • ahban.shiba 0.0.3
  • ahban.shiba 0.0.4
  • ahban.shiba 0.0.5
  • ahban.shiba 0.0.6
  • ahban.shiba 0.0.7
  • ahban.shiba 0.0.8
  • ahban.shiba 0.0.9
  • ahban.cychelloworld 0.0.1
  • ahban.cychelloworld 0.0.2
  • ahban.cychelloworld 0.1.0
  • ahban.cychelloworld 0.1.1
  • ahban.cychelloworld 0.2.0
  • ahban.cychelloworld 0.2.1
  • ahban.cychelloworld 0.2.2
Комментарии: 0