Компании по безопасности Aikido, SafeDep, Socket и StepSecurity сообщают, что злоумышленники опубликовали в npm и PyPI заражённые версии пакетов MemTensor, которые устанавливают sckit — написанный на Go похититель учётных данных разработчиков, сообщил The Hacker News 23 сентября. Похититель работает в Windows, Linux и macOS.
Предыстория
Реестры пакетов позволяют разработчикам устанавливать чужой код одной командой, а установка может выполнять код на собственном компьютере разработчика. Поэтому злоумышленники, получившие токен публикации сопровождающего, могут добраться до каждого компьютера, на который устанавливается их версия [1].
Что описывает материал
Затронуты пакет @memtensor/memos-cloud-openclaw-plugin в npm, версии 0.1.21, 0.1.23 и 0.1.25, и MemoryOS в PyPI, версия 2.0.34. Согласно материалу, злоумышленники получили токены публикации, скомпрометировав конвейеры выпуска MemTensor в GitHub Actions, и выпускали злонамеренные версии между чистыми выпусками [1].
В плагине npm скрытая полезная нагрузка запускается при старте шлюза агента или во время событий извлечения из памяти. В пакете PyPI она запускается при импорте модуля. В обоих случаях выполняется статически скомпонованная программа на Go, которая собирает токены API, ключи SSH, файлы облачной конфигурации и переменные окружения, связанные с такими сервисами, как npm, PyPI, GitHub, GitLab, AWS и Vault, и отправляет их на внешний сервер. Материал описывает имплант как червя, способного распространяться через репозитории GitHub и реестры пакетов [1].
Злонамеренные версии удалены. Материал называет последними чистыми выпусками 0.1.24 в npm и 2.0.33 в PyPI и советует закрепить версии 0.1.20 в npm и 2.0.33 в PyPI [1].
Выводы для пользователей Mac
Разработчики, установившие перечисленные версии на Mac, рискуют лишиться любых секретов, хранящихся в указанных выше местах. Тех, кто не использует эти пакеты, описанное не затрагивает. Любому, кто установил одну из перечисленных версий, следует считать учётные данные на этом компьютере раскрытыми [1].
Рекомендации
- Проверьте lock-файлы и установленные пакеты на наличие названных выше версий и удалите их.
- Смените все учётные данные, к которым мог получить доступ компьютер: токены npm, PyPI и GitHub, ключи SSH, облачные ключи и секреты в переменных окружения.
- Отзовите токены, а не только смените пароли, поскольку материал советует сменить раскрытые секреты.
- Закрепите зависимости на заведомо чистых версиях, как предлагает материал, и проверьте разрешения конвейеров выпуска для сопровождаемых пакетов.
Какое отношение это имеет к FireAI
FireAI не проверяет пакеты и не удаляет импланты. Похищенные данные должны быть отправлены на сервер, а новая программа на Go без правила вызывает запрос о соединении в режиме оповещения, и адрес назначения показывается на карте мира. Правила для приложений позволяют ограничить инструмент сборки или интерпретатор только нужными ему узлами. Если у инструмента сборки уже есть широкое правило «Разрешить», FireAI не спросит, поэтому такие правила должны быть узкими.
Ограничения
В материале не сказано, на сколько компьютеров были установлены заражённые версии, как долго каждая из них была доступна и кто стоит за кампанией. Описание поведения червя основано на анализе исследователей.
Попробуйте FireAI от HisnLabs бесплатно 17 дней.