O.TrdP 1

Aus d.hack

Beschreibung

Der Hersteller MUSS eine zentrale und vollständige Liste von Abhängigkeiten durch externe Software, Bibliotheken und Frameworks führen.

Kurzfassung

Abhängigkeiten durch externe Software, Bibliotheken und Frameworks.

Anmerkungen

Prüftiefe


CHECK


Der Hersteller stellt eine Liste der eingesetzten externen Software, Frameworks und Bibliotheken inkl. der verwendeten Versionen bereit. Der Evaluator prüft die bereitgestellte Liste auf Vollständigkeit.

Lösungsansätze

Implementierung

Tools
Dependency Management Tools
Verwenden Sie Dependency-Management-Tools wie npm (für JavaScript/Node.js), pip (für Python), Maven (für Java), Composer (für PHP) oder andere ähnliche Tools für Ihre spezifische Sprache oder Plattform. Diese Tools ermöglichen es Entwicklern, Abhängigkeiten in ihren Projekten zu verwalten und automatisch eine Liste aller verwendeten externen Softwarebibliotheken und Frameworks zu generieren.
Build Automation Tools
Integrieren Sie Build-Automation-Tools wie Gradle, Apache Ant, Make oder ähnliche Tools in Ihren Build-Prozess. Diese Tools können so konfiguriert werden, dass sie automatisch eine Liste der Abhängigkeiten erstellen, wenn das Projekt kompiliert oder gebaut wird.
Package Managers
Verwenden Sie Paketmanager wie apt (für Linux), Homebrew (für macOS), Chocolatey (für Windows) oder ähnliche Paketmanager für Ihr Betriebssystem, um Abhängigkeiten zu verwalten und eine Liste aller installierten Pakete zu erstellen.
Statische Codeanalyse-Tools
Integrieren Sie statische Codeanalyse-Tools wie SonarQube, ESLint, PyLint, Checkstyle oder ähnliche Tools in Ihren CI/CD-Pipeline. Diese Tools können den Quellcode scannen und automatisch eine Liste aller externen Softwarebibliotheken und Frameworks extrahieren, die im Code verwendet werden.
Automatisierte Dokumentationstools
Verwenden Sie automatisierte Dokumentationstools wie Doxygen, Sphinx, JavaDoc oder ähnliche Tools, um automatisch eine Liste aller externen Abhängigkeiten zu generieren und in der Projektdokumentation aufzuführen.

Software Bill of Materials (SBOM)

Eine Software-Bill-of-Materials (SBOM) ist eine detaillierte Liste aller Komponenten und Abhängigkeiten einer Softwareanwendung, die in der BSI-TR-03183-2 gefordert wird. Sie enthält Informationen über externe Bibliotheken, Frameworks, Module und andere Komponenten, die in der Software verwendet werden, sowie deren Versionen und Herkunft. Durch die Bereitstellung eines SBOM können Organisationen die Transparenz über die verwendeten Komponenten verbessern, Risiken besser managen, Compliance-Anforderungen erfüllen und Schwachstellen schneller identifizieren und beheben.

pom.xml (Maven)

Im Falle einer Java-Anwendung sollte zudem auf die Vollständigkeit der pom.xml (Project Object Model) geprüft werden. Die pom.xml enthält eine XML-Präsentation des Maven-Projektes.

Validierung

Tools

OWASP Dependency Check
OWASP Dependency-Check ist ein Open-Source-Tool, das automatisiert Schwachstellen in den Abhängigkeiten von Java-, .NET- und Ruby-Projekten identifiziert. Es kann in CI/CD-Pipelines integriert werden, um automatisch nach bekannten Sicherheitslücken in den verwendeten Bibliotheken zu suchen.
Snyk
Snyk ist ein Sicherheits- und Compliance-Tool, das Entwicklern dabei hilft, Schwachstellen in ihren Abhängigkeiten zu finden und zu beheben. Es unterstützt eine Vielzahl von Sprachen und Plattformen und kann in CI/CD-Pipelines integriert werden, um automatisch nach Sicherheitslücken zu suchen.
Dependency Track
Dependency-Track ist ein Open-Source-Tool zur Verwaltung von Anwendungsabhängigkeiten und zur Identifizierung von Sicherheitslücken in diesen Abhängigkeiten. Es bietet Funktionen wie Schwachstellenscans, Lizenzmanagement und Policy-Compliance und kann in CI/CD-Pipelines integriert werden, um Abhängigkeiten automatisch zu überprüfen.
WhiteSource
WhiteSource ist eine Plattform für das Open-Source-Management, die Entwicklern dabei hilft, Open-Source-Abhängigkeiten zu verwalten, Sicherheitslücken zu finden und Compliance-Richtlinien einzuhalten. Es bietet Integrationen mit verschiedenen CI/CD-Tools und kann automatisch Sicherheits- und Compliance-Scans durchführen.
Sonatype Nexus Lifecycle
Sonatype Nexus Lifecycle ist eine Plattform zur Automatisierung des Open-Source-Risikomanagements. Es bietet Funktionen wie automatisierte Schwachstellenscans, Lizenzüberprüfungen und Richtlinienverwaltung für Abhängigkeiten und kann in CI/CD-Pipelines integriert werden, um Sicherheits- und Compliance-Scans durchzuführen.

Prüfung SBOM auf Vollständigkeit

Die Vollständigkeit des SBOMs kann beispielsweise mit Open-Source-Tools wie Dependency Track oder Grype geprüft werden.

Prüfung pom.xml auf Vollständigkeit

Die Vollständigkeit der pom.xml eines Maven Projekts kann mithilfe einiger Tools, wie OWASP Dependency Check oder Snyk überprüft werden, die zudem Schwachstellen in den verwendeten Abhängigkeiten erkennen können.

Einzelnachweise und Ressourcen

BSI-TR-03183-2

Doug Hudson, et al.: Federal Software Inventory Bill: How to Get a Complete SBOM of Your Cloud Doug Hudson, Jason Silberman Federal: Software Inventory Bill: How to Get a Complete SBOM of Your Cloud, aufgerufen am 07.05.2024

Weblinks