Исследователь продемонстрировал атаку на примере редактора кода VSCode с плагином rust-analyzer.
Исследователь безопасности Джаред Харпер (Jared Harper) представил атаку на редактор кода VSCode, позволяющую передавать произвольные файлы в контексте текущего пользователя при открытии в редакторе особым образом написанного исходного кода. В частности, Харпер продемонстрировал, как при открытии кода на языке Rust с использованием плагина расширения синтаксиса (так называемого процедурного макроса) можно установить соединение с хостом 127.0.0.1:8080 и отправить содержимое файла «~/.ssh/id_rsa» с SSH-ключами пользователя.
В ходе атаки исследователь использовал VSCode с плагином rust-analyzer. Метод связан с раскрытием процедурных макросов в процессе первоначального анализа кода. Того же самого можно достичь также в процессе компиляции с использованием команды «cargo build».
По словам Харпера, представленная им атака работает в отношении не только VSCode и Rust, но и других редакторов кода и языков программирования, а VSCode и rust-analyze использовались просто для демонстрации атаки.
По сути, проблема затрагивает любой редактор кода, раскрывающий процедурные макросы. Поначалу Харпера интересовала возможность осуществления вредоносных действий в процессе компиляции кода, однако затем он выяснил, что процедурные макросы раскрываются при обработке исходных текстов в редакторах кода.
От классики до авангарда — наука во всех жанрах