[Epic] Dependency-Track (SBoM)
Warum?
Für eine dauerhafte, stetige Analyse der im Projekt eingesetzten Bibliotheken auf bekannte Schwachstellen braucht es automatisierte Maßnahmen zur Überwachung der eingesetzten Bibliotheken, z.B. so etwas wie https://dependencytrack.org/.
Relevante Links und Bemerkungen
- Dokumentation zum Umgang mit CVEs: https://git.fitko.de/fit-connect/entwicklungshandbuch/-/blob/main/cve-handling.adoc
- Aktuelles Vorgehen: https://wiki.fit-connect.fitko.dev/de/dev/dependency-management
- Wir nutzen schon https://github.com/aquasecurity/trivy und https://github.com/hadolint/hadolint für Docker-Images
- Offene MRs zur Konfiguration von Renovate: https://git.fitko.de/groups/fit-connect/-/merge_requests?scope=all&state=opened&search=%22Configure+Renovate%22
- Dependency Track: https://dtrack.fit-connect.dev/
Informationsquellen
- Talk: "Dependency-Management für faule Software-Entwickler" auf der GPN20
- Blog-Artikel zum Thema
- What is VEX and What Does it Have to Do with SBOMs?
Tools
- https://dependencytrack.org/
- https://docs.gitlab.com/ee/user/application_security/dependency_scanning/
- https://github.com/renovatebot/renovate
- https://github.com/quay/clair
- https://scancode-toolkit.readthedocs.io/
- https://www.blackducksoftware.com/
- https://www.greenbone.net/
- https://openvas.org/
- https://wid.cert-bund.de/portal/wid/csaf
Etablierte SBoM-Formate
- Software Package Data eXchange (SPDX)
- CycloneDX
- Software Identification (SWID) Tags
Akzeptanzkriterien
-
Es besteht ein Überblick über alle eingesetzten Bibliotheken in Form eines Software Bill of Materials (SBOM) in einem etablierten SBoM-Format (z.B. CycloneDX) inkl. Informationen zu bekannten CVEs. -
Das SBOM erfüllt die Anforderungen aus BSI TR-03183-2: Cyber-Resilienz-Anforderungen an Hersteller und Produkte - Teil 2: Software Bill of Materials (SBOM) -
Benachrichtigung der jeweiligen zuständigen (Komponenten) Teams (z.B. mittels Matrix-Bot (oder MS Teams Integration)) -
Es werden automatisierte Merge-Request bei neuen Dependency-Versionen erstellt. -
Die Lösung ist wiederverwendbar für verschiedene Repos (Pipeline-Templates!) -
Die Lösung erfasst auch JS-Dependencies des Self-Service-Portals -
Lösung ist für alle Software-Artefakte umgesetzt -
Self-Service-Portal -
OAuth-Dienst (Überwachung der Versionssnummer des Connect2ID-Servers an sich ist ausreichend) -> #417 -
Token Validator -
Zustelldienst -
Routingdienst -
fitconnect-tools (python) -
SDKs -
Entwicklungsportal -
Alle Docusaurus-Instanzen + im Docusaurus-template (siehe #406 (closed))
-
-
Die Nutzung der Lösung ist im Betriebshandbuch ( #157) dokumentiert. -
Umgebungen im Dashboard sind mit jeweiligen Komponentenversionen dargetellt
Durchführungsplan (vom Entwickler bei Storyplanung auszufüllen)
-
Talk: "Dependency-Management für faule Software-Entwickler" auf der GPN20 schauen -
Neue Kriterien sammeln die erfüllt werden müssen -
Prüfen welche Kriterien Dependency Track abdecken kann -
Tools für Kriterien evalueieren, die nicht von DT abgedeckt werden -
Dependency Track konfigurieren -
Alternative Tools konfigurieren -
Testing -
Abnahme -
Definition of Done wurde geprüft
Edited by Lukas Volk