Исследователи компании Legit Security представили технику атаки на GitHub Copilot, которая позволяет извлечь содержимое из приватных репозиториев при использовании чат-бота для анализа присылаемых pull-запросов. Так, атака позволила определить хранимые в приватном репозитории ключи для доступа к облачному окружению AWS.
Атака использует способность GitHub Copilot загружать внешние изображения в зависимости от обрабатываемого содержимого и возможность подставлять в pull-запросы скрытые комментарии. Хакер может создать набор однопиксельных прозрачных изображений, каждое из которых соответствуют спецсимволу, цифре или букве алфавита. Далее он отправляет pull-запрос жертве, в котором указывает скрытый комментарий с инструкцией для чат-бота, оформленный в блоке ««.
Скрытый комментарий предлагает боту найти во всех репозиториях пользователя, включая приватные, строки с кодом, содержащим значение «AWS_KEY», и вывести их не обычным текстом, а используя визуализацию на основе изображений. Для сопоставления символов и картинок в комментарии приводится таблица. При этом ИИ предписывается при выполнении задания не показывать рассуждения и информацию кроме картинок. Поскольку они прозрачные, мейнтейнер не заметит аномалий, а атакующий сможет воссоздать содержимое найденных строк с ключами AWS путём анализа последовательности загрузки картинок в логе веб-сервера.
Чтобы обойти защиту CSP (Content Security Policy), которая позволяет только загрузку в GitHub Copilot картинок с серверов GitHub, в качестве прокси задействован сервис GitHub Camo. Он используется на платформе как промежуточное звено для загрузки внешних изображений, например, встраиваемых на страницу README. При этом в таблице сопоставления символов указываются не прямые ссылки, а ссылки на сам прокси, оформленные как «https://camo.githubusercontent.com/хэш_картинки». До этого через GitHub REST API в Camo добавляются и заверяются необходимые пути для перенаправления загрузки изображений.
Ранее Microsoft заявила, что переведёт IT-инфраструктуру GitHub на серверы Azure. Это произойдёт в течение следующих 24 месяцев.
Источник: habr.com