Вторник, 14 октября в 00:56 UTC+3
Загрузка...

Как Python борется с проблемой "призрачных" зависимостей в Open Source


60Опубликовано 15.08.2025 в 01:53Категория: ПрограммированиеИсточник
Изображение статьи
Статья о фантомных зависимостях в Python

С 2023 года Python Software Foundation поддерживает разработчика по безопасности (при поддержке проекта Open Source Security Foundation по поиску уязвимостей "Alpha-Omega"). Недавно он опубликовал новую 11-страничную аналитическую записку о проблеме "фантомных зависимостей" в open source, предлагая способ ее решения.

"Фантомные" зависимости не отслеживаются в метаданных пакетов, манифестах или файлах блокировки, что делает их "необнаруживаемыми" такими инструментами, как сканеры уязвимостей и инструменты соответствия требованиям и политики. Поэтому разработчик по безопасности Python, Сет Ларсон (Seth Larson), разработал недавно принятое Python Enhancement Proposal (PEP), предлагающее простой способ предоставления метаданных пакетами через Software Bill-of-Materials (SBOM). Из аналитической записки:

PEP 770 обратно совместим и может быть включен по умолчанию инструментами, что означает, что большинству проектов не потребуется вручную включать его для начала генерации корректных метаданных SBOM PEP 770. Python – не единственная программная экосистема, затронутая проблемой "фантомных зависимостей". Подход с использованием SBOM для метаданных может быть адаптирован и принят другими экосистемами упаковки, стремящимися записывать программные метаданные, не зависящие от экосистемы...

В отчете Endor Labs за 2023 год Python назван одной из наиболее пострадавших программных экосистем от проблемы "фантомных зависимостей". Существует несколько причин, по которым Python особенно подвержен этой проблеме:

  • Существует множество способов взаимодействия Python с программным обеспечением, не относящимся к Python, например, через C-API или FFI. Python может "оборачивать" и предоставлять простой в использовании Python API для программного обеспечения, написанного на других языках, таких как C, C++, Rust, Fortran, Web Assembly и другие.
  • Python является ведущим языком для научных вычислений и искусственного интеллекта, что означает, что многие высокопроизводительные библиотеки, написанные на системных языках, должны быть доступны из кода Python.
  • Наконец, Python-пакеты имеют тип распространения, называемый "wheel", который по сути является zip-файлом, который "устанавливается" путем распаковки в каталог, что означает, что во время установки не допускается этап компиляции. Это хорошо для возможности проверки пакета перед установкой, но это означает, что все скомпилированные языки должны быть предварительно скомпилированы в двоичные файлы перед установкой...

При разработке нового стандарта метаданных пакетов одной из главных задач является уменьшение усилий, необходимых в основном добровольцам, поддерживающим инструменты упаковки, и тысячам проектов, публикуемых в Python Package Index... Определив метаданные SBOM PEP 770 как каталог файлов, а не новое поле метаданных, мы смогли избежать всех трудностей реализации...

Мы будем работать над отправкой запросов в популярные инструменты open source SBOM и сканирования уязвимостей, и постепенно "фантомные зависимости" станут меньшей проблемой для Python-экосистемы.

В аналитической записке подробно описан подход, проблемы и идеи, связанные с созданием и принятием PEP 770, а также использование Software Bill-of-Materials (SBOM) для повышения измеримости Python-пакетов, – объясняет объявление Python Software Foundation. И аналитическая записка заканчивается полезным замечанием.

Пообщавшись с другими сопровождающими пакетные экосистемы open source, мы пришли к выводу, что другие экосистемы имеют аналогичные проблемы с "фантомными зависимостями". Мы приветствуем другие пакетные экосистемы, которые примут подход Python с PEP 770, и готовы предоставить рекомендации по реализации.

Интересные статьи

Нет статей для отображения

Загрузка предыдущей публикации...

Загрузка следующей публикации...

Предыдущие новости в категории

Загрузка предыдущих новостей...

Следующие новости в категории

Загрузка следующих новостей...

Мы отбираем новости из проверенных источников, обрабатываем их с помощью современных AI-технологий и публикуем на сайте, созданном с использованием искусственного интеллекта. Все материалы принадлежат их авторам, а контент проходит дополнительную проверку на достоверность. Возможны ошибки в тексте, так как нейросеть тоже имеет свойство ошибаться. Все изображения являются фантазией нейросети, совпадение с реальными предметами и личностями маловероятно.

© 2025 NOTid . QAter . AI service.