Компанії з безпеки Aikido, SafeDep, Socket і StepSecurity повідомляють, що зловмисники опублікували отруєні версії пакетів MemTensor у npm і PyPI, які встановлюють 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 днів.