Pull to refresh

Разработчик показал, как получить SSH-ключ с помощью compile-time макроса в Rust в VSCode просто при открытии приложения

Reading time2 min
Views3.4K
Слева консоль злоумышленника, справа жертвы, которая открыла файл в VSCode со специальным макросом на Rust.

14 мая 2021 года разработчик Джаред Харпер показал в GitHub, как можно удаленно получить ключ для авторизации по SSH (а по факту и другие данные и файлы) при простом открытии жертвой атаки файла с исходным кодом в редакторе кода для кроссплатформенной разработки Visual Studio Code. Атакуемый даже не поймет, что произошло, так как для скрытой передачи данных ему не нужно делать далее никаких манипуляций с открытым проектом. Атакующий использовал для этого специальный макрос на Rust. На компьютере пользователя должен быть установлен плагин rust-analyzer и инструменты для работы с кодом на языке Rust.

Харпера пояснил, что его макрос на Rust в тестовых целях после открытия приложения innocent_app выполняет установку соединения с локальным хостом 127.0.0.1:8080 (localhost) и передает содержимое файла "~/.ssh/id_rsa" с SSH-ключем пользователя. Причем это делается даже не во время компиляции открытого проекта, а в процессе его предварительной обработки.

После открытия проекта Харпера VSCode выполняет анализ и индексирует код, включая раскрытие макросов. Именно на этой этапе злоумышленник уже может удаленно получить содержимое закрытого ключа жертвы в случае наличия сетевого соединения без должной блокировки портов и адресов. В примере Харпера все работает на одном ПК.

Харпер опасается, что аналогичную атаку можно повторить в других редакторах кода, которые обрабатывают процедурные макросы. Также разработки уточнил, что подобную атаку можно реализовать и с помощью других языков программирования. Например, можно использовать обработку аннотаций в коде Java.

Пример скрытой передачи SSH-ключа через VSCode.

10 мая веб-сервис для хостинга IT-проектов и их совместной разработки GitHub добавил поддержку ключей безопасности для аутентификации по SSH при использовании Git.

15 декабря 2020 года GitHub предупредил всех пользователей о плановом переходе на токены и SSH-ключи при доступе к Git. Доступ только по паролям к Git будет заблокирован с 13 августа 2021 года. Это делается для защиты пользователей и предотвращения использования злоумышленниками похищенных или взломанных паролей.
Tags:
Hubs:
If this publication inspired you and you want to support the author, do not hesitate to click on the button
+4
Comments5

Other news