Зависимости¶
На этой странице описаны учёт зависимостей, мониторинг уязвимостей, сортировка зависимостей и сканирование уязвимостей контейнеров. Для опубликованных артефактов выпуска, SBOM, подписей и аттестаций происхождения см. Артефакты выпуска и проверка.
Учёт зависимостей¶
Информация о зависимостях Weblate поддерживается в нескольких файлах репозитория:
Зависимости Python объявлены в
pyproject.tomlи зафиксированы вuv.lock.Зависимости фронтэнда объявлены в
client/package.jsonи зафиксированы вclient/yarn.lock.Вендорные библиотеки фронтэнда и сгенерированные данные лицензий описаны в Подпроекты и встроенный код.
SBOM выпусков публикуются для выпусков Weblate, как описано в Спецификация программного обеспечения (SBOM).
Зависимости образов Docker и Helm-чартов поддерживаются в принадлежащих Weblate репозиториях Docker и Helm, перечисленных в Учёт артефактов выпуска.
Диапазоны зависимостей в pyproject.toml описывают поддерживаемые требования времени выполнения. Файлы блокировок описывают проверенный набор зависимостей, используемый CI и автоматизацией выпусков.
Отслеживание зависимостей для реагирования на уязвимости¶
Проблемы безопасности в зависимостях Weblate отслеживаются с помощью Renovate, проверки зависимостей GitHub, FOSSA, SBOM выпусков и сканирования уязвимостей контейнеров.
Репозитории Weblate расширяют общую предустановку Renovate из WeblateOrg/meta. Эта предустановка включает панель управления зависимостями, предупреждения об уязвимостях OSV, предупреждения об уязвимостях платформы, семантические коммиты зависимостей и пользовательские менеджеры Renovate для GitHub Actions, Dockerfiles, версий приложений Helm-чартов и других закреплённых версий инструментов. Она также настраивает группировку выбранных пакетов, расписания и поведение автоматического слияния.
Этот репозиторий добавляет main и stable как базовые ветки Renovate. Общие обновления зависимостей и обслуживание файлов блокировок отключены на stable; охват обновлений безопасности для выпусков Weblate описан в Обновления безопасности.
Проверка зависимостей GitHub выполняется на запросах на извлечение, чтобы показывать изменения зависимостей перед их слиянием. FOSSA выполняется при отправках в main и записывает результаты сканирования и проверки политик в сервисе FOSSA.
Сортировка уязвимостей зависимостей¶
Когда об уязвимости зависимости сообщается через Renovate, проверку зависимостей GitHub, FOSSA, анализ SBOM выпуска, сканирование контейнера или отчёт об уязвимости, сопровождающие оценивают, влияет ли она на Weblate. Проверки при сортировке включают:
используются ли затронутая зависимость и версия в Weblate, опубликованном артефакте выпуска или поддерживаемом артефакте развёртывания;
доступен ли уязвимый путь кода через поддерживаемую функциональность Weblate или поддерживаемые режимы развёртывания;
находится ли проблема в использовании зависимости Weblate или должна быть сообщена вышестоящему проекту;
требуется ли обновление зависимости, изменение конфигурации, смягчение, уведомление или обновление безопасности Weblate.
Подсказка
В сторонних библиотеках могут быть присутствовать уязвимости, которые не влияют на работу Weblate, поэтому они не решаются выпуском исправленных версий Weblate.
Обслуживание зависимостей и файлов блокировок¶
Файл блокировки Python поддерживается рабочим процессом uv lock update. Файл блокировки зависимостей фронтэнда и вендорные файлы фронтэнда поддерживаются рабочим процессом yarn update.
Созданные изменения обслуживания проходят через рабочий процесс Apply maintenance patch. Этот рабочий процесс применяет только проверенные артефакты патчей и ограничивает пути, которые каждый рабочий процесс обслуживания может обновлять.
Безопасность Docker-контейнера¶
Контейнеры Docker Weblate и Weblate Client сканируются на предмет уязвимостей безопасности в CI. Это позволяет нам обнаруживать уязвимости на раннем этапе и быстро выпускать улучшения.
Проверяемые рабочие процессы Weblate Docker и Weblate Client сканируют собранные образы контейнеров с помощью Anchore и Trivy. Результаты загружаются в GitHub code scanning как данные SARIF. Проверяемые рабочие процессы также сохраняют артефакты SARIF Trivy, а рабочий процесс Weblate Client сохраняет артефакты SARIF Anchore.
Известные подробности внешней политики¶
Некоторые детали управления зависимостями и уязвимостями поддерживаются за пределами этой документации:
полное поведение Renovate определяется в общей предустановке WeblateOrg/meta и настройках платформы репозитория;
граф зависимостей GitHub, предупреждения Dependabot и состояние защиты веток являются конфигурацией платформы GitHub;
история результатов FOSSA и пороги политик хранятся в FOSSA;
вывод сканера сохраняется в GitHub code scanning и артефактах рабочих процессов.