Один Docker-контейнер чуть не обрушил всю экосистему Python

Команда JFrog Security Research обнаружила утечку токена с административными правами доступа к репозиториям GitHub Python, PyPI и Python Software Foundation. Токен был найден в публичном Docker-контейнере на платформе Docker Hub.

Выявленный токен предоставлял административный доступ ко всей инфраструктуре Python, включая репозитории Python Software Foundation, PyPI и CPython. Если бы злоумышленники получили доступ к этим ресурсам, они могли бы провести крупномасштабную атаку на цепочку поставок, например, внедрить вредоносный код в CPython, что могло бы привести к распространению вредоносного ПО на десятки миллионов машин по всему миру.

Другой возможный сценарий атаки – внедрение вредоносного кода в хранилище кода PyPI, что дало бы киберпреступникам доступ к управлению популярными пакетами PyPI. Хакеры могли бы скрыть вредоносный код внутри пакетов или заменить их полностью, что также представляло бы серьезную угрозу.

Автор кода временно добавил токен авторизации в исходный код, после чего скомпилировал код, но не удалил токен из скомпилированного файла. Затем разработчик поместил в Docker-образ как исходный код, так и скомпилированный pyc-файл вместе с токеном. В результате токен оказался в Docker-образе, несмотря на отсутствие его в исходном коде.

Случай показал, что одного сканирования исходного кода для обнаружения утечек недостаточно. Необходима проверка как исходного кода, так и бинарных данных в опубликованных Docker-образах. Вредоносные данные могут содержаться только в бинарных файлах, что делает их обнаружение более сложным, но не менее важным.

Команда JFrog оперативно сообщила об утечке токена службе безопасности PyPI, и всего через 17 минут доступ был отозван. Благодаря быстрому реагированию, удалось предотвратить потенциальную катастрофу. PyPI провела всестороннюю проверку, подтвердив отсутствие подозрительной активности, связанной с токеном. PyPI также опубликовала подробности инцидента и меры, предпринятые для его предотвращения.

Один Docker-контейнер чуть не обрушил всю экосистему Python
Мы в VK: https://vk.com/darkwebex