Afhankelijkheden

Deze pagina beschrijft de inventarisatie van de afhankelijkheden, monitoren van de kwetsbaarheid, triage voor afhankelijkheden en scannen op kwetsbaarheid van containers. Voor gepubliceerde uitgaveartefacten, SBOM’s, handtekeningen en attesten over herkomst, bekijk Artefacten en verificatie uitgaven.

Inventarisatie van afhankelijkheden

Weblate afhankelijkheidsinformatie wordt in verscheidene bestanden voor opslagruimten onderhouden:

  • Afhankelijkheden voor Python worden gedeclareerd in pyproject.toml en opgelost in uv.lock.

  • Afhankelijkheden voor frontend worden gedeclareerd in client/package.json en opgelost in client/yarn.lock.

  • Bibliotheken van eigenaren voor frontend en gegenereerde licentiegegevens worden gedocumenteerd in Subprojecten en ingebedde code.

  • SBOM’s voor uitgaven worden gepubliceerd voor uitgaven van Weblate zoals wordt beschreven in Software materiaallijst.

  • Docker-schijfkopie en Helm-chart-afhankelijkheden worden onderhouden in de aan Weblate toebehorende Docker- en Helm-opslagruimten die zijn vermeld in Inventarisatie artefacten uitgaven.

De bereiken voor afhankelijkheden in pyproject.toml beschrijven de vereisten voor de ondersteunde runtime. De vergendfelingsbestanden beschrijven de geteste set van afhankelijkheden die werd gebruikt door CI en automatisering van de uitgave.

Afhankelijkheden bijhouden voor kwetsbaarheden

Beveiligingsproblemen in afhankelijkheden van Weblate worden gemonitord met Renovate, beoordelen van afhankelijkheden van GitHub, FOSSA, SBOM’s voor uitgaven en scans voor kwetsbaarheden in containers.

De opslagruimten van Weblate breiden de gedeelde voorkeuze van Renovate in WeblateOrg/meta uit. Die voorkeuze schakelt het dashboard voor afhankelijkheden in, meldingen voor kwetsbaarheden OSV, meldingen voor kwetsbaarheden van het, commits voor semantische afhankelijkheid en Renovate aangepast beheer voor GitHub Actions, Dockerfiles, Helm chart-toepassingsversies en andere vastgezette versies voor programma’s. Het configureert ook geselecteerde groepen voor pakketten, schema’s en gedrag voor automatisch samenvoegen.

Deze opslagruimte voegt main en stable toe als basisbranches voor Renovate. Algemene updates voor afhankelijkheden en onderhoud voor vergrendelingsbestanden zijn uitgeschakeld op stable; dekking van beveiligingsupdates voor uitgaven van Weblate wordt beschreven in Updates beveiliging.

Beoordelen van afhankelijkheden van GitHub wordt uitgevoerd op pull requests om wijzigingen in afhankelijkheden weer te geven voordat ze worden samengevoegd. FOSSA wordt uitgevoerd op pushes naar main en legt testresultaten van scan en beleid vast in de service FOSSA.

Triage van afhankelijkheden voor kwetsbaarheden

Wanneer een kwetsbaarheid voor een afhankelijkheid wordt gerapporteerd door Renovate, beoordelen van afhankelijkheid GitHub, FOSSA, een beoordeling van een SBOM voor een uitgave, een containerscan, of een kwetsbaarheidsrapport, evalueren beheerders of dat invloed heeft op Weblate. De controles voor triage omvatten:

  • of de betreffende afhankelijkheid en versie door Weblate wordt gebruikt, een gepubliceerd artefact voor de uitgave, of een beheerd artefact voor de uitrol;

  • of het codepad voor de kwetsbaarheid is te bereiken via ondersteunde functionaliteit voor Weblate of ondersteunde modi voor uitrollen;

  • of het probleem ligt in het gebruik door Weblate van de afhankelijkheid of zou moeten worden gerapporteerd naar het bovenliggende project;

  • of een update van de afhankelijkheid, wijziging in de configuratie, mitigatie, advies of beveiligingsupdate voor Weblate nodig is.

Hint

Er zouden kwetsbaarheden in bibliotheken van derde partijen kunnen zijn die Weblate niet beïnvloeden, die worden dus niet aangepakt bij het uitgeven van versies met reparaties voor problemen van Weblate.

Onderhoud afhankelijkheden en vergrendelingsbestand

Het Python-vergrendelingsbestand wordt onderhouden door de werkstroom uv lock update. Het vergendelingsbestand voor de afhankelijkheid van het frontend en merkgebonden bestanden voor frontend worden onderhouden door de werkstroom yarn update.

Gegenereerde wijzigingen in onderhoud worden doorgegeven via de werkstroom Apply maintenance patch. Die werkstroom past alleen gevalideerde artefacten voor de patch toe en beperkt de paden die elke werkstroom voor onderhoud mag updaten.

Docker container beveiliging

De containers van Weblate en Weblate Client Docker worden gescand op kwetsbaarheden in de beveiliging in CI. Dat stelt ons in staat kwetsbaarheden vroeg te detecteren en snel verbeteringen uit te geven.

De geïnspecteerde scan van werkstromen voor Weblate Docker en Weblate Client bouwt container-schijfkopieën met Anchore en Trivy. Resultaten worden geüpload naar de GitHub codescannen als gegevens van SARIF. De geïnspecteerde werkstromen slaan ook Trivy SARIF-artefacten op en de werkstroom Weblate Client slaat Anchore SARIF-artefacten op.

Bekende details voor extern beleid

Sommige details voor het beheren van afhankelijkheden en kwetsbaarheden worden buiten deze documentatie onderhouden:

  • het volledige gedrag van Renovate wordt gedefinieerd in de gedeelde voorkeuze WeblateOrg/meta en instellingen voor de platform opslagruimten;

  • GitHub afhankelijkheidsgrafiek, melding Dependabot en status voor branchbeveiliging zijn platformconfiguratie van GitHub;

  • FOSSA geschiedenis van resultaten en drempelwaarden voor beleid worden opgeslagen in FOSSA;

  • scanneruitvoer wordt opgeslagen GitHub codescannen en artefacten van werkstromen.