What's new
Runion

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

В репозитории PyPI выявлено около 5000 оставленных в коде секретов и 8 вредоносных обфускаторов

INC.

Midle Weight
Депозит
$0
Исследователи GitGuardian опубликовали результаты анализа конфиденциальных данных, забытых разработчиками в коде, размещённом в репозитории Python-пакетов PyPI (Python Package Index). После изучения более 9.5 млн файлов и 5 млн релизов пакетов, связанных с 450 тысячами проектов, было выявлено 56866 фактов утечки конфиденциальных данных. Если учитывать только уникальные данные, без дублирования в разных релизах, число выявленных утечек составило 3938, а число проектов, в которых присутствует хотя бы одна утечка - 2922.

Всего выделено более 150 типов утечек конфиденциальной информации, среди которых обычные пароли, криптографические ключи, токены доступа к облачным сервисам, системам непрерывной интеграции и API. Как минимум 768 учётных данных оставались действующими на момент проведения исследования. В качестве примера популярных утечек, сохраняющих актуальность, упоминаются ключи доступа к Azure Active Directory, учётные данные к SSH, MongoDB, MySQL и PostgreSQL, ключи к GitHub OAuth App, Dropbox и Auth0, параметры входа в Coinbase и Twilio.

Из набирающих популярность типов утечек упоминаются токены для доступа к ботам в Telegram, число которых удвоилось в начале 2021 года и затем ещё раз удвоилось весной 2023 года. Постоянный рост утечек также фиксируется с 2020 года для ключей доступа к Google API, а с 2022 года - учётных данных к СУБД. Из пакетов, лидирующих по числу утечек, упоминаются пакеты chatllm и safire, в которых были забыты 209 ключей к OpenAI и 320 ключей к Google Cloud.

Среди типов файлов, в которых выявлено наибольшее число утечек, помимо файлов с расширением ".py", отмечаются файлы с расширением .json (610 утечек), .md (270), PKG-INFO (240), METADATA (210), .txt (170), а также файлы README (209) и файлы из каталогов с именем test (675). Много утечек также связано с недосмотром и ошибками с настройкой исключения файлов при формировании пакетов. Например, файлы с локальными файлами конфигурации (.cookiecutterrc, .env, .pypirc и т.п.) могут исключаться из Git-репозитория через файл ".gitignore", который не учитывается при создании пакета. В частности, в репозитории было найдено 43 файла .pypirc, содержащих учётные данные для доступа к PyPI. В 15 случаях утечек разработчики не планировали публично размещать пакеты, изначально созданные для внутреннего использования, но опубликовали их в PyPI по ошибке.

Дополнительно можно упомянуть ещё два события, связанных с PyPI:

• В репозитории PyPI выявлены 8 вредоносных пакетов, преподносимых как утилиты для обфускации, т.е. приведения кода к нечитаемому виду, усложняющему восстановление алгоритма работы. Выявленные пакеты содержали в названиях строку "pyobf" (Pyobftoexe, Pyobfusfile, Pyobfexecute, Pyobfpremium, Pyobflight, Pyobfadvance, Pyobfuse и pyobfgood) и были загружены более 2000 раз.

Интегрированный в пакеты вредоносный код был специфичен для платформы Windows и позволял подключаться к внешнему управляющему серверу, запускать произвольные команды на компьютере разработчика, находить и отправлять на внешний сервер конфиденциальную информацию, такую как ключи доступа, а также передавать произвольные файлы с системы. Кроме того, вредоносный код мог выполнять функции кейлоггера, перехватывать вводимые в Chrome пароли, создавать скриншоты, записывать звук и даже управлять web-камерой.

• Опубликованы результаты независимого аудита кодовой базы инструментария, применяемого для организации работы репозитория pypi.org, и фреймворка "cabotage", задействованного в инфраструктуре для оркестровки контейнеров. Аудит проведён при поддержке некоммерческой организации OTF (Open Technology Fund). В ходе аудита не выявлено проблем с высоким уровнем опасности, а исходные тексты признаны отвечающими основным требованиям к безопасному написанию кода. При этом отмечен недостаточный охват тестами кодовой базы cabotage и выявлено 29 проблем, из которых восьми присвоен умеренный уровень опасности, 6 - низкий, а 14 помечены как информирующие замечания.

Наиболее заметные проблемы:

* Недостаточная проверка цифровых подписей, используемых для интеграции PyPI с AWS SNS, позволяла отправлять уведомления на email отдельных пользователей.

* Утечка информации в обработчике загрузок, позволяющая определить существование учётной записи без генерации событий о попытках входа.

* Применение ненадёжных криптографических хэшей, не исключающих атаки по отравлению кэша.

* При наличии прав запуска процессов сборки через cabotage, атакующий потенциально мог добиться подстановки своих команд.

* При наличии прав развёртывания (deployment) в cabotage, атакующий потенциально мог развернуть легитимно выглядящий образ.
 
Top