Dependências¶
Esta página descreve inventário de dependências, monitorização de vulnerabilidade, triagem de dependências, e análise de vulnerabilidades de contentor. Para artefactos de lançamentos publicados, SBOMs, assinaturas, e certificados de proveniências, veja Release artifacts and verification.
Inventário de dependências¶
Informação de dependência do Weblate é mantida em vários ficheiros de repositório:
Dependências de Python são declaradas em
pyproject.tomle resolvidos emuv.lock.Dependências de frontend são declaradas em
client/package.jsone resolvidas emclient/yarn.lock.Bibliotecas de frontend fornecidas e dados de licença gerados estão documentados em Subprojetos e código incorporado.
SBOMs lançados são publicados para lançamentos Weblate conforme descrito em Lista de materiais de software.
Imagem do Docker e dependências de gráficos do Helm agora são mantidas nos repositórios do Weblate Docker e Helm listados em Release artifact inventory.
Os intervalos de dependências em pyproject.toml descrevem os requisitos de tempo de execução suportados. Os ficheiros de bloqueio descrevem o conjunto de dependências testado utilizado pelo CI e a automatização de lançamento.
Rastreamento de dependências para vulnerabilidades¶
Problemas de segurança nas dependências Weblate são monitorados através de Renovate. revisão de dependências GitHub, FOSSA, SBOMs de lançamento, e análises de vulnerabilidade de contentor.
Os repositórios Weblate estendem a predefinição partilhada Renovate de WeblateOrg/meta. Essa predefinição ativa o painel de dependências, alertas de vulnerabilidade OSV, alertas de vulnerabilidade de plataforma, commits de dependência semântica, e gestores personalizados Renovate para o GitHub Actions, Dockerfiles, gráficos de versões de aplicação Help, e outras versões de ferramentas afixadas. Também configura o agrupamento de pacote selecionado, horários, e comportamento de auto-mesclagem.
Este repositório adiciona main e stable enquanto ramos base Renovate. Atualizações de dependências gerais e manutenção de ficheiros lock estão desativados no stable; cobertura de atualizações de segurança para lançamentos do Weblate estão descritas em Atualizações de segurança.
A revisão de dependências GitHub é executado em pull requests para mostrar mudanças de dependências antes de serem unidos. FOSSA é executado em pushes para o main e grava resultados de análise e teste de políticas no serviço FOSSA.
Rastreamento de triagens de vulnerabilidades¶
Quando uma vulnerabilidade de dependência é reportado pelo Renovate, revisão de dependência GitHub, FOSSA, uma revisão de lançamento SBOM, uma análise de contentor, ou um relatório de vulnerabilidade, colaboradores avaliam se afeta ou não o Weblate. As verificações de triagem incluem:
se a dependência afetada e versão são usadas pelo Weblate, um artefacto de lançamento publicado, ou um artefacto de implementação mantido;
se o caminho do código da vulnerabilidade é alcançável através de uma funcionalidade Weblate suportada ou modos de implementação suportados;
se o problema na utilização da dependência no Weblate deve ser reportado para o projeto na fonte;
se uma atualização de dependências, alteração de configuração, mitigação, aconselhamento, ou atualização de segurança do Weblate é necessária.
Dica
Pode haver vulnerabilidades em bibliotecas de terceiros que não afetam o Weblate, portanto, não são solucionadas com o lançamento de versões de correção de bugs do Weblate.
Dependência e manutenção de ficheiros de bloqueio¶
O ficheiro de bloqueio do Python é mantido pelo fluxo de trabalho uv lock update. O ficheiro de bloqueio de dependências do frontend e ficheiros de frontend fornecidos são mantidos pelo fluxo de trabalho yarn update.
Alterações de manutenção geradas são passadas pelo fluxo de trabalho Aplicar patch de manutenção. O fluxo de trabalho aplica-se apenas a artefactos de patches validados e limita os camihos que cada fluxo de trabalho de manutenção tem permissão para atualizar.
Segurança de contentor Docker¶
Os contentores do Weblate e Weblate Client Docker são analisados para vulnerabilidade de segurança no CI. Isso nos permite detetar vulnerabilidades antecipadamente e lançar melhorias rapidamente.
Os fluxos de trabalho Weblate Docker e Weblate Client inspecionados analisam contentores de imagens compiladas com Anchore e Trivy. Resultados são enviados para a análise de código GitHub na forma de dados SARIF. Os fluxos de trabalho inspecionados também armazenam artefactos SARIF Trivy, e o fluxos de trabalho do Weblate Client armazenam artefactos SARIF Anchore.
Detalhes de política externas conhecidas¶
Alguns detalhes de dependência e gestão de vulnerabilidades são mantidos fora desta documentação:
o comportamento Renovate completo é definido na predefinição WeblateOrg/meta partilhado e configurações de plataforma de repositório;
Gráfico de dependência GitHub, alerta Dependabot, e proteção de estado de ramo são configuração da plataforma GitHub;
Histórico de resultado FOSSA e limites de política estão armazenados em FOSSA;
análise de resultado é armazenada nos artefactos de fluxo de trabalho de análise de código.