Інструмент Python для аналізу даних, що працював половину дня, перетворився на шкідливий: він викрав ключі та токени.
Кіберзлочинець розмістив шкідливу версію пакета elementary‑data на PyPI
Невідомий зловмисник завантажив модифіковану версію 0.23.3 утиліти *elementary-data* – інструменту для моніторингу даних – у репозиторій PyPI. Шкідливий пакет збирав і надсилав на віддалений сервер конфіденційні дані: SSH‑ключі, облікові дані AWS, токени API, а також файли криптовалютних гаманців (Bitcoin, Litecoin, Dogecoin, Ethereum). Зібрані дані упаковувалися в архів `trin.tar.gz` і передавалися зловмиснику.
Як був отриманий доступ до репозиторію
Атакуючий скористався вразливістю у одному із робочих процесів GitHub Actions проекту *elementary‑data*. Отримавши автоматично виданий йому токен `GITHUB_TOKEN`, він створив pull request, у якому замінив оригінальний пакет на шкідливу версію. Завдяки автоматичному workflow PR був прийнятий і опублікований заражений реліз.
Час перебування шкідливого пакета
- 25 квітня, 02:20 (МСК) – зловмисник завантажив шкідливу версію в PyPI.
- 02:24 – він також розмістив заражений Docker‑образ у GitHub Container Registry, розширивши тим самим спектр атак.
- 13:45 того ж дня – адміністратори проекту видалили всі компрометовані файли і випустили чисту версію 0.23.4.
Таким чином, шкідливий пакет був доступний користувачам понад 11 годин, що дало шанс на витік даних.
Постраждали компоненти
Розробники підтвердили, що інші частини екосистеми – *Elementary dbt*, ресурси Elementary Cloud та інші версії проекту – не постраждали від інциденту.
Що робити користувачам
1. Видаліть заражену версію 0.23.3 і встановіть безпечний реліз 0.23.4.
2. Очистіть кеш пакетів (`pip cache purge` або аналогічний інструмент).
3. Видаліть файл‑маркер `.trinny-security-update`, якщо він присутній – його наявність свідчить про запуск шкідливого коду.
Мерки, прийняті розробниками
- Оновлено токен публікації PyPI.
- Переглянуто і оновлені токени GitHub та GitHub Container Registry.
- Вразливий workflow у GitHub Actions видалено; інші робочі процеси перевірені на безпеку.
Таким чином, команда *elementary‑data* відновила контроль над репозиторієм і забезпечила захист користувачів від подальших загроз.
Коментарі (0)
Поділіться своєю думкою — будь ласка, будьте ввічливі та по темі.
Увійдіть, щоб коментувати