
Компрометація бібліотеки mrmustard на PyPI
24 липня 2026 року було виявлено, що версія 0.7.4 бібліотеки mrmustard, відкритої квантової фотонної бібліотеки від XanaduAI, розміщена на PyPI, містить шкідливе програмне забезпечення для викрадення облікових даних. Цей реліз не був опублікований звичайним способом розробниками проєкту. Зловмисник отримав контроль над обліковим записом супроводжувача на GitHub, використав власну систему безперервної інтеграції (CI) проєкту для викрадення токена публікації, а потім завантажив скомпрометовану версію 0.7.4 безпосередньо на PyPI. Шкідливий код був впроваджений лише в опублікований артефакт, тому перегляд вихідного коду на GitHub не виявив би жодних проблем.
Механізм атаки
Атака відбувалася у кілька етапів:
1. Захоплення облікового запису та розвідка CI-середовища
23 липня 2026 року обліковий запис супроводжувача ziofil зробив два коміти. Перший коміт, названий 'Test Commit', видалив сім легітимних файлів робочого процесу та додав один робочий процес, який запускав команду whoami на самостійно розміщених CI-раннерах проєкту. Це було розвідкою для перевірки ідентичності та доступу, які мали раннери.
2. Викрадення токена публікації через CI
Другий коміт, названий 'ci: package check', додав робочий процес, який зчитував токени PyPI та Codecov з секретів GitHub Actions, кодував їх у Base64 та надсилав на URL-адресу webhook.site. Це дозволило зловмиснику отримати токен публікації PyPI проєкту, що дало можливість завантажити пакет безпосередньо на PyPI, оминаючи звичайний процес релізу. Після цього зловмисник видалив гілку, щоб приховати робочий процес.
3. Впроваджений шкідливий код
Тарбол 0.7.4 був ідентичний 0.7.3, за винятком блоку, доданого до файлу mrmustard/__init__.py. Цей блок був замаскований під функцію _check_tf_compatibility(), яка запускається при першому імпорті mrmustard. Функція запускає свою роботу у фоновому потоці-демоні, а потім видаляє своє ім'я з модуля (del _check_tf_compatibility) для приховування.
4. Уникнення виявлення в пісочницях та CI
Шкідливий код запускається лише тоді, коли вважає, що працює на реальній машині. Він негайно припиняє роботу, якщо виявляє систему CI або контейнер, перевіряючи змінні середовища (наприклад, CI, GITHUB_ACTIONS) та файли (наприклад, /.dockerenv, /proc/1/cgroup на наявність docker, kubepods, lxc).
5. Викрадення облікових даних та системної інформації
Після проходження перевірок, шкідливий код збирає широкий спектр секретів та системних деталей. Командний сервер (C2) знаходиться за адресою https://metrics.femboy.energy/v1/collect (обфускований XOR-ключем tf_compat_v2). Зібрані дані включають:
- Приватні SSH-ключі з
~/.ssh. - Облікові дані та конфігурації AWS з
~/.aws/credentialsта~/.aws/config. - Конфігурації Kubernetes з
~/.kube/config. - Змінні середовища, що відповідають префіксам хмарних та кластерних систем (наприклад,
AWS_,KUBE,SLURM_,PBS_,SGE_,CUDA,NVIDIA,CONDA). - Ім'я хоста, ім'я користувача, ОС, версія Python, робочий каталог та вивід команди
id. - Публічна IP-адреса, отримана з
ifconfig.me. - Повний список встановлених пакетів з
pip freeze. - Деталі GPU з
nvidia-smiта черга завдань SLURM зsqueue.
Ці дані надсилаються на C2 у форматі JSON, зашифровані XOR, закодовані Base64, з підробленим User-Agent браузера. Для уникнення повторного трафіку, шкідливий код записує ідентифікатор машини та часову мітку в ~/.cache/.tf_cache і пропускає надсилання протягом години.
6. Три механізми стійкості
Видалення пакета не очищає машину. Шкідливий код компілює свою другу стадію в ~/.cache/.tf_cache/hw_probe.pyc та встановлює три незалежні форми стійкості, які вказують на цей файл:
- Cron-завдання: Запускається кожні 15 хвилин.
- Хук запуску Python: Файл
.pthуsite-packages, який виконується при кожному запуску інтерпретатора Python. - Хук запуску оболонки: Рядок, доданий до
~/.bashrcабо~/.zshrc, замаскований коментарем# tensorflow hardware compatibility check.
Ознаки компрометації та відновлення
Ознаки компрометації
- Пакет PyPI:
mrmustard==0.7.4. - C2 для викрадення облікових даних:
https://metrics.femboy.energy/v1/collect. - Домен C2:
metrics.femboy.energy. - Пошук публічної IP:
ifconfig.me. - URL для викрадення секретів CI:
https://webhook.site/710babde-6ace-47fe-83f4-9688e6548df9. - Замаскована функція:
_check_tf_compatibility()уmrmustard/__init__.py. - Файл другої стадії:
~/.cache/.tf_cache/hw_probe.pyc. - Каталог-маркер:
~/.cache/.tf_cache. - Стійкість: Cron-завдання,
.pthфайл, хук оболонки.
Рекомендації щодо відновлення
Якщо mrmustard 0.7.4 було встановлено на машині, її слід вважати скомпрометованою:
- Змініть усі облікові дані, до яких машина могла мати доступ: приватні SSH-ключі, ключі доступу AWS, облікові дані Kubernetes та будь-які токени, присутні в змінних середовища під час роботи шкідливого коду.
- Видаліть пакет:
pip uninstall mrmustard, потім встановіть відому безпечну версію, наприклад,pip install 'mrmustard==0.7.3'. - Видаліть механізми стійкості: Видаліть cron-завдання, хук запуску з
~/.bashrcта~/.zshrc,.pthфайл зsite-packagesта каталог~/.cache/.tf_cache. - Заблокуйте C2: Заблокуйте
metrics.femboy.energyтаfemboy.energyна вашому DNS-резолвері або міжмережевому екрані. - Перевірте мережеві журнали: Шукайте вихідні запити до
metrics.femboy.energy,femboy.energy,ifconfig.meта URLwebhook.site. - Для проєкту XanaduAI: Змініть токени PyPI та Codecov, відкличте токени та сесії скомпрометованого облікового запису супроводжувача, перегляньте доступ до самостійно розміщених раннерів.
Захист від подібних атак
StepSecurity виявила цю атаку та пропонує захист на кількох рівнях:
- Глобальна політика блокування: Автоматично блокує відомі командні сервери (C2).
metrics.femboy.energyбув у цьому списку. - Виявлення аномалій на основі базових показників: Виявляє нові C2, позначаючи будь-який виклик до кінцевої точки, яка раніше не використовувалася робочим процесом.
- Виявлення спроб викрадення секретів: Виявляє крадіжку токенів CI, корелюючи зчитування секретів, їх надсилання на зовнішню кінцеву точку та подальше видалення робочого процесу/гілки.
Цю компрометацію повідомив Ільяс Макарі, дослідник шкідливого програмного забезпечення з Aikido Security.
Що це означає для розробників
Розробники, які встановили mrmustard 0.7.4, повинні негайно вважати свої системи скомпрометованими. Їм необхідно змінити всі облікові дані (SSH, AWS, Kubernetes), видалити шкідливий пакет та всі встановлені ним механізми стійкості, а також заблокувати домени командного сервера.
Ключові факти
-
Версія 0.7.4 бібліотеки mrmustard на PyPI містила шкідливе програмне забезпечення для викрадення облікових даних.
-
Зловмисник отримав контроль над обліковим записом супроводжувача GitHub та викрав токен публікації PyPI через CI.
-
Шкідливий код викрадав приватні SSH-ключі, облікові дані AWS, конфігурації Kubernetes та іншу системну інформацію.
-
Код був впроваджений лише в опублікований артефакт PyPI, а не у вихідний код на GitHub.
-
Шкідливе ПЗ встановлювало три механізми стійкості: cron-завдання, хук запуску Python (.pth) та хук запуску оболонки.
Джерела
Попередні статті

Податкові юристи як "вартові" системи: погляд Меган Брекні
Меган Брекні, партнер Kostelanetz, наголосила на ключовій ролі податкових юристів як "вартових" податкової системи США, обговоривши етичні обов'язки та важливість дотримання Circular 230.

Україна перетворилася на лідера оборонних інновацій, навчаючи західних союзників
Від країни, що приймала будь-яку допомогу, Україна стала джерелом передових військових технологій та тактик, які вивчають західні партнери.

Європейська Комісія Запускає Альянс Дронів ЄС-Україна
Європейська Комісія офіційно започаткувала Альянс Дронів ЄС-Україна для посилення співпраці у розробці та використанні дронів і систем протидії, а також для зміцнення оборонної промисловості.
Наступні статті

Nvidia та SK Group запускають ініціативу з розвитку ШІ-центрів обробки даних та пам'яті
Nvidia та SK Group оголосили про ініціативу вартістю понад $500 мільярдів, що охоплює масштабні ШІ-центри обробки даних та пам'ять нового покоління.

Технологічний сектор зростає на тлі послаблення інфляції та попиту на чипи й кібербезпеку
Ринки S&P 500 та Nasdaq завершили день зростанням завдяки послабленню інфляції та значному підйому акцій виробників чипів та компаній кібербезпеки.

NUC Схвалила 24 Нові Програми для KWASU
Національна комісія університетів (NUC) схвалила запуск 24 нових програм денної форми навчання в Університеті штату Квара (KWASU), починаючи з академічного року 2026/2027.