Два недавних инцидента в репозитории PyPI выявили уязвимости в цепочке поставок программного обеспечения. Злоумышленникам удалось опубликовать изменённые версии легитимных пакетов, таких как PyTorch Lightning и Intercom-client. Эти варианты содержали скрытый код, предназначенный для извлечения учётных данных доступа, хранящихся в системах пользователей, что демонстрирует растущий риск для разработчиков и компаний, полагающихся на библиотеки с открытым исходным кодом.
Как злоумышленники манипулировали легитимными пакетами PyPI 🔍
Злоумышленники использовали методы typosquatting и dependency confusion для распространения своих вредоносных версий. В случае с PyTorch Lightning вредоносный код выполнялся во время установки, собирая переменные окружения и файлы конфигурации с учётными данными. Для Intercom-client вредоносное ПО активировалось при импорте пакета, извлекая данные с помощью HTTP-запросов к контролируемым серверам. Оба случая использовали доверие к экосистеме Python, где ручная проверка зависимостей остаётся сложной задачей.
Парадокс установки слепого доверия в PyPI 🤔
Любопытно, что те же разработчики, которые пишут код для автоматизации процессов, затем устанавливают пакеты, не проверяя их содержимое. Это как купить подержанную машину и не заглядывать под капот, потому что у продавца приятное лицо. Злоумышленники знают, что техническая лень — это выгодный вектор атаки. Тем временем мы продолжаем выполнять pip install, словно это акт веры, надеясь, что никто не вставил кейлоггер в последнее обновление библиотеки для сортировки списков.