Была обнаружена сложная атака на цепочку поставок программного обеспечения, получившая название "GlassWorm", нацеленная на индекс пакетов Python (PyPI). Основная тактика кампании заключается в использовании украденных персональных токенов доступа (PAT) GitHub для выполнения вредоносных операций "принудительной отправки" (force-push), которые напрямую внедряют вредоносное ПО в репозитории исходного кода легитимных пакетов Python. Этот метод позволяет злоумышленникам обходить традиционные процессы проверки кода и компрометировать программное обеспечение в его источнике, создавая серьезную угрозу для конечных пользователей и организаций, которые полагаются на эти пакеты.
Атака начинается с компрометации аккаунта разработчика на GitHub, как правило, посредством украденных учетных данных или токенов. Получив действительный PAT, злоумышленники получают права на запись в связанные репозитории кода. Вместо того чтобы делать незаметный вредоносный коммит, атакующие используют команду `git push --force`, чтобы полностью перезаписать историю репозитория и текущую кодобазу поврежденной версией. Эта "принудительная отправка" заменяет легитимный код проекта вредоносной полезной нагрузкой, часто замаскированной под обновление версии. Затем код, содержащий вредоносное ПО, автоматически публикуется в официальном репозитории PyPI, откуда он распространяется на ничего не подозревающих разработчиков через стандартные инструменты установки, такие как `pip`.
Наблюдаемые в кампании GlassWorm вредоносные полезные нагрузки разработаны для скрытности и устойчивости. Они часто содержат обфусцированный код, который выполняет процедуры похищения информации, такие как сбор переменных окружения, учетных данных и конфиденциальных системных данных с зараженных машин разработчиков. Компрометируя исходный репозиторий напрямую, атака гарантирует, что любой пользователь, который клонирует или обновляет пакет, получает зараженный код. Этот метод особенно коварен, поскольку он злоупотребляет inherent trust в системах контроля версий и официальных репозиториях пакетов, что делает обнаружение с помощью традиционных инструментов безопасности, основанных на сигнатурах, более сложным.
Этот инцидент подчеркивает критические уязвимости в цепочке поставок программного обеспечения с открытым исходным кодом, в частности, чрезмерную зависимость от единичных факторов аутентификации, таких как статические персональные токены доступа. Эксперты по безопасности рекомендуют разработчикам и организациям немедленно внедрить более надежные меры защиты. К ним относятся: обязательное использование многофакторной аутентификации (MFA) для всех учетных записей разработчиков, регулярный аудит и смена токенов доступа, использование детализированных PAT с минимально необходимыми разрешениями, а также мониторинг журналов репозиториев на предмет несанкционированных операций принудительной отправки. Кроме того, разработчикам следует рассмотреть возможность использования криптографической подписи для своих релизов для проверки целостности, а организациям необходимо улучшить свои инструменты анализа состава программного обеспечения (SCA) для обнаружения аномалий в поведении пакетов и их происхождении.



