В экосистеме Go обнаружена новая атака на цепочку поставок. Злоумышленники опубликовали вредоносный модуль, который маскируется под популярную криптографическую библиотеку и встраивает в Linux-системы бэкдор для удалённого управления. Под угрозой оказываются разработчики и серверы, автоматически подтягивающие зависимости.
Речь идёт о поддельном пакете github.com/xinfeisoft/crypto, который выдает себя за официальный модуль golang.org/x/crypto. Оригинальная библиотека широко используется в проектах на Go для шифрования, работы с SSH и безопасного хранения данных. Этим и воспользовались атакующие.
Как работает вредоносный код
Исследователи из Socket выяснили, что модуль содержит изменённую реализацию функции чтения пароля из терминала. Когда приложение вызывает ReadPassword, вредоносный код перехватывает введённые пользователем данные и отправляет их на внешний сервер.
После кражи пароля запускается дополнительный сценарий который делает следующее:
добавляет SSH-ключ злоумышленника в
~/.ssh/authorized_keys, чтобы закрепиться в системе;изменяет настройки брандмауэра для упрощения удалённого доступа;
загружает дополнительные файлы;
устанавливает бэкдор Rekoobe.
Таким образом атака не ограничивается кражей пароля. Она превращает сервер в полностью контролируемую точку доступа.
Что известно о Rekoobe
Rekoobe используется как минимум с 2015 года. Это троян удалённого доступа для Linux, который позволяет выполнять команды, скачивать и запускать файлы, а также скрытно взаимодействовать с управляющим сервером.
Подобные инструменты часто применяются в целевых атаках и встраиваются в инфраструктуру жертвы для длительного скрытого присутствия.
Атака демонстрирует уязвимость современных цепочек поставок. Разработчики всё чаще полагаются на внешние зависимости, автоматически загружаемые из публичных репозиториев. Если злоумышленнику удаётся опубликовать пакет с похожим именем, часть проектов может подключить его по ошибке.
Даже если конкретный модуль уже заблокирован, сам метод остаётся актуальным. Подмена имён и публикация "двойников" популярных библиотек регулярно используется в npm, PyPI и других экосистемах.
Как снизить риски
Чтобы защититься от подобных атак, специалисты рекомендуют:
проверять источник и репутацию зависимостей;
фиксировать версии библиотек и использовать проверку контрольных сумм;
внедрять сканирование цепочки поставок;
отслеживать изменения в сторонних модулях перед обновлением.
Для команд, работающих с Go в продакшене, контроль зависимостей становится такой же критичной задачей, как и защита серверов.
Источник: HN