Демонстрация атаки на редакторы кода, приводящей к утечке файлов при открытии исходных текстов

D2

Администратор
Регистрация
19 Фев 2025
Сообщения
4,380
Реакции
0
Продемонстрирован метод атаки на редактор кода VSCode, позволяющий передать произвольные файлы в рамках прав текущего пользователя при открытии в редакторе специально оформленного исходного кода. В предложенной демонстрации при открытии кода на языке Rust, в котором используется процедурный макрос, выполняется установка соединения с хостом 127.0.0.1:8080 и отправка содержимого файла "~/.ssh/id_rsa" с SSH-ключами пользователя.

Для компрометации достаточно просто открыть файл с кодом без выполнения каких-либо других действий с проектом. Для работы примера требуется наличие в VSCode плагина rust-analyzer (обвязка над штатным компилятором rustc) и наличие в системе инструментария для работы с кодом на языке Rust. Проблема связана с раскрытием процедурных макросов во время начального анализа кода. Аналогичного эффекта также можно добиться во время компиляции с использованием команды "cargo build".

Отмечается, что проблема может затрагивать другие редакторы кода и языки программирования. VSCode и rust-analyze использованы лишь для демонстрации вектора атаки. Теоретически проблеме подвержен любой редактор кода, раскрывающий процедурные макросы, которые позволяют создавать расширения синтаксиса и выполнять код на этапе компиляции. Изначально исследователь изучал возможность совершения вредоносных действий во время компиляции кода, но обнаружил, что процедурные макросы раскрываются при обработке исходных текстов в редакторах кода. Вероятно, атака может затрагивать и другие языки программирования, например, в Java похожим образом можно манипулировать с обработкой аннотаций.
 
Сверху Снизу