Как стать автором
Обновить

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

Время на прочтение 2 мин
Количество просмотров 3.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 года. Это делается для защиты пользователей и предотвращения использования злоумышленниками похищенных или взломанных паролей.
Теги:
Хабы:
Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку
+4
Комментарии 5
Комментарии Комментарии 5

Другие новости

Истории

Работа

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн