Бесплатно Экспресс-аудит сайта:

10.08.2023

VSCode — редактор кода или дырявое ведро? Исследователи обнаружили способ кражи токенов аутентификации

В популярном редакторе кода VSCode (Visual Studio Code) от Microsoft обнаружена уязвимость , позволяющая вредоносным расширениям получить доступ к хранилищу аутентификационных токенов в операционных системах Windows , Linux и macOS .

Эти токены используются для интеграции со сторонними сервисами и API , такими как, например, GitHub . Их кража может привести к весьма серьёзным последствиям для безопасности скомпрометированной организации, в том числе к несанкционированному доступу к системам и утечкам конфиденциальных данных.

Уязвимость была обнаружена исследователями компании Cycode , которые сообщили о ней Microsoft вместе с рабочим примером эксплуатации. Проблема вызвана отсутствием изоляции в VSCode аутентификационных токенов в «секретном хранилище» — API, которое позволяет расширениям сохранять токены в операционной системе.

Это делается с помощью Keytar — оболочки VSCode для взаимодействия с хранилищем учётных данных (в Windows), связке ключей (в macOS) или keyring (в Linux).

Таким образом, любое расширение, запущенное в VSCode, даже вредоносное, может получить доступ к секретному хранилищу и злоупотребить Keytar для извлечения сохранённых токенов.

По словам исследователей Cycode, помимо встроенной аутентификации GitHub и Microsoft, уязвимы все сохранённые учётные данные от использования сторонних расширений.

Cycode протестировали атаку, создав вредоносное расширение для кражи токенов популярной платформы разработки CircleCI . Они смогли извлечь эти секреты, не изменяя код целевого расширения.

Ключевым моментом стало то, что любое расширение VSCode авторизовано для доступа к хранилищу операционной системы, поскольку запускается из приложения, которому ОС уже предоставила такой доступ.

Также исследователями была обнаружена и другая проблема — функция «getFullKey» извлекает секреты по идентификатору расширения, который формируется из его названия и издателя. Это позволяет обмануть VSCode и получить доступ к токенам другого расширения.

Cycode сообщили Microsoft о проблеме два месяца назад, продемонстрировав работу тестового расширения по краже токенов. Тем не менее, инженеры Microsoft не посчитали это угрозой безопасности и решили сохранить существующую архитектуру секретного хранилища VSCode.