Хакеры заполонили GitHub проектами с «невидимым» кодом
Хакеры прячут вредоносный код в невидимых символах Unicode и маскируют его в популярных репозиториях GitHub и NPM.
Вредоносный код в проектах: на GitHub идёт распространение скрытых команд
Хакеры прячут вредоносный код в невидимых символах Unicode и маскируют его в популярных репозиториях GitHub и NPM.
Вредоносный код в проектах: на GitHub идёт распространение скрытых команд
Фото: © RusPhotoBank
Исследователи кибербезопасности выявили новую масштабную кампанию, в рамках которой злоумышленники размещают на GitHub проекты со скрытым вредоносным кодом. Особенность таких репозиториев заключается в использовании специальных символов Unicode, которые практически невозможно заметить при визуальном просмотре кода. Для разработчиков они выглядят как пустые пробелы или строки, однако при обработке интерпретатором такой код может корректно декодироваться и выполнять вредоносные действия.
По данным специалистов компании Aikido Security, только в период с 3 по 9 марта на платформе появилось не менее 151 пакета, подготовленного подобным способом. Чаще всего такие проекты маскируются под популярные библиотеки или известные программные инструменты, что повышает вероятность их случайного использования разработчиками. На первый взгляд код выглядит безопасным и читаемым, однако опасные функции спрятаны в последовательностях невидимых символов, из-за чего традиционная ручная проверка не обнаруживает угрозу. Аналогичные находки эксперты уже фиксировали и на других площадках, включая NPM, Open VSX и маркетплейс расширений VS Code.
Эксперты связывают кампанию с группой, получившей условное название Glassworm. Определить её участников крайне сложно, поскольку репозитории выглядят максимально правдоподобно. В них регулярно появляются обновления документации, изменения версий, исправления ошибок и рефакторинг кода — всё это имитирует активную работу над проектом. Специалисты предполагают, что для создания большого количества таких правдоподобных изменений злоумышленники могли использовать генеративные модели искусственного интеллекта.
Технически атака основана на том, что некоторые символы Unicode визуально не отличаются от пустых пробелов, но могут интерпретироваться как символы латинского алфавита. В результате небольшой встроенный декодер извлекает из этих знаков реальные байты и передаёт их в функцию выполнения кода. Найденные проекты, по мнению исследователей, могут быть лишь небольшой частью всей кампании, поскольку вредоносные пакеты часто удаляются после того, как успевают набрать достаточно загрузок.