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

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

Брешь в защите охватывает версии программы для Windows, Linux и macOS.

image

В популярном редакторе кода 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.

Домашний Wi-Fi – ваша крепость или картонный домик?

Узнайте, как построить неприступную стену