O.TrdP 1: Unterschied zwischen den Versionen

Aus d.hack
Keine Bearbeitungszusammenfassung
(6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
== Beschreibung ==
== Beschreibung ==
[[Beschreibung::
Der Hersteller MUSS eine zentrale und vollständige Liste von Abhängigkeiten durch externe Software, Bibliotheken und Frameworks führen.
Der Hersteller MUSS eine zentrale und vollständige Liste von Abhängigkeiten durch externe Software, Bibliotheken und Frameworks führen.
]]


== Kurzfassung ==
== Kurzfassung ==
[[Kurzfassung::
Abhängigkeiten durch externe Software, Bibliotheken und Frameworks.
Abhängigkeiten durch externe Software, Bibliotheken und Frameworks.
]]


== Anmerkungen ==
== Testcharakteristik ==
==== Prüftiefe ====
==== Prüftiefe ====
<br />
{|class="wikitable" style="width:50%; border: 1px solid black;"
:: '''CHECK'''
|-
! style="background-color: #f2f2f2;" | Bezeichnung
! style="background-color: #f2f2f2;" | Mindestanforderungen an die Prüfung
|-
| [https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR03161/BSI-TR-03161-2.pdf?__blob=publicationFile&v=10#%5B%7B%22num%22%3A65%2C%22gen%22%3A0%7D%2C%7B%22name%22%3A%22XYZ%22%7D%2C54%2C725%2C0%5D CHECK]
| Der Evaluator validiert (englisch „check“, analog zu Begriffsverwendung in der Common Criteria Evaluation Methodology) die vom Hersteller beschriebene Maßnahme im Hinblick auf ihre Wirksamkeit und räumt bestehende Zweifel (Plausibilitätsprüfung) aus, ob der Prüfaspekt und die damit verbundene Sicherheitsproblematik umfassend durch die beschriebenen Maßnahmen adressiert wird. Hierbei [https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR03161/BSI-TR-03161-2.pdf?__blob=publicationFile&v=10#%5B%7B%22num%22%3A15%2C%22gen%22%3A0%7D%2C%7B%22name%22%3A%22XYZ%22%7D%2C54%2C243%2C0%5D MUSS] der Evaluator den aktuellen Stand der Technik für die jeweilige Plattform mitberücksichtigen. Die Validierung [https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR03161/BSI-TR-03161-2.pdf?__blob=publicationFile&v=10#%5B%7B%22num%22%3A15%2C%22gen%22%3A0%7D%2C%7B%22name%22%3A%22XYZ%22%7D%2C54%2C243%2C0%5D KANN] weitergehende Schritte, wie z.B. eine Quelltextanalyse, umfassen, falls der Evaluator diese für eine umfassende Einschätzung benötigt.
|}
<br />
<br />


==== Ergänzende Informationen für Evaluatoren ====
[[Anmerkungen::
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.
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 ==
== Lösungsansätze ==
=== Implementierung ===
=== Implementierung ===
;Tools
;Tools
:Dependency Management Tools
:Dependency Management Tools
:: Verwenden Sie Dependency-Management-Tools wie [https://docs.npmjs.com/ npm] (für JavaScript/Node.js) {{#set: has Framework=NPM}}, [https://pip.pypa.io/en/stable/ pip] (für Python) {{#set: has Framework=PIP}}, [https://maven.apache.org/guides/index.html Maven] (für Java) {{#set: has Framework=Maven}}, [https://getcomposer.org/doc/ Composer] (für PHP) {{#set: has Framework=Composer}} 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.
:: Verwenden Sie Dependency-Management-Tools wie [https://docs.npmjs.com/ npm] (für JavaScript/Node.js) {{#set: Use Framework=NPM}}, [https://pip.pypa.io/en/stable/ pip] (für Python) {{#set: Use Framework=PIP}}, [https://maven.apache.org/guides/index.html Maven] (für Java) {{#set: Use Framework=Maven}}, [https://getcomposer.org/doc/ Composer] (für PHP) {{#set: Use Framework=Composer}} 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
:Build Automation Tools
:: Integrieren Sie Build-Automation-Tools wie [https://docs.gradle.org/current/userguide/userguide.html Gradle] {{#set: has BuildTool=Gradle}}, [https://ant.apache.org/manual/ Apache Ant] {{#set: has BuildTool=Ant}}, [https://www.make.com/en/help/app/google-docs Make] {{#set: has BuildTool=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.
:: Integrieren Sie Build-Automation-Tools wie [https://docs.gradle.org/current/userguide/userguide.html Gradle] {{#set: Has BuildTool=Gradle}}, [https://ant.apache.org/manual/ Apache Ant] {{#set: Has BuildTool=Ant}}, [https://www.make.com/en/help/app/google-docs Make] {{#set: Has BuildTool=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
:Package Managers
:: Verwenden Sie Paketmanager wie [https://ubuntu.com/server/docs/package-management apt] (für Linux) {{#set: has PackageManager=APT}}, [https://brew.sh/ Homebrew] (für macOS) {{#set: has PackageManager=Homebrew}}, [https://chocolatey.org/ Chocolatey] (für Windows) {{#set: has PackageManager=Chocolatey}} oder ähnliche Paketmanager für Ihr Betriebssystem, um Abhängigkeiten zu verwalten und eine Liste aller installierten Pakete zu erstellen.
:: Verwenden Sie Paketmanager wie [https://ubuntu.com/server/docs/package-management apt] (für Linux) {{#set: Has PackageManager=APT}}, [https://brew.sh/ Homebrew] (für macOS) {{#set: Has PackageManager=Homebrew}}, [https://chocolatey.org/ Chocolatey] (für Windows) {{#set: Has PackageManager=Chocolatey}} oder ähnliche Paketmanager für Ihr Betriebssystem, um Abhängigkeiten zu verwalten und eine Liste aller installierten Pakete zu erstellen.


:Statische Codeanalyse-Tools
:Statische Codeanalyse-Tools
:: Integrieren Sie statische Codeanalyse-Tools wie [https://docs.sonarsource.com/sonarqube/latest/ SonarQube] {{#set: has CodeAnalyseTool=SonarQube}}, [https://eslint.org/docs/latest/ ESLint] {{#set: has CodeAnalyseTool=ESLint}}, [https://pylint.readthedocs.io/en/stable/ PyLint] {{#set: has CodeAnalyseTool=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.
:: Integrieren Sie statische Codeanalyse-Tools wie [https://docs.sonarsource.com/sonarqube/latest/ SonarQube] {{#set: Has CodeAnalyseTool=SonarQube}}, [https://eslint.org/docs/latest/ ESLint] {{#set: Has CodeAnalyseTool=ESLint}}, [https://pylint.readthedocs.io/en/stable/ PyLint] {{#set: Has CodeAnalyseTool=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
:Automatisierte Dokumentationstools
:: Verwenden Sie automatisierte Dokumentationstools wie [https://www.doxygen.nl/manual/ Doxygen] {{#set: has DocTool=Doxygen}}, [https://www.sphinx-doc.org/en/master/ Sphinx] {{#set: has DocTool=Sphinx}}, [https://docs.oracle.com/javase/8/docs/technotes/tools/windows/javadoc.html JavaDoc] {{#set: has DocTool=JavaDoc}} oder ähnliche Tools, um automatisch eine Liste aller externen Abhängigkeiten zu generieren und in der Projektdokumentation aufzuführen.
:: Verwenden Sie automatisierte Dokumentationstools wie [https://www.doxygen.nl/manual/ Doxygen] {{#set: Has DocTool=Doxygen}}, [https://www.sphinx-doc.org/en/master/ Sphinx] {{#set: Has DocTool=Sphinx}}, [https://docs.oracle.com/javase/8/docs/technotes/tools/windows/javadoc.html JavaDoc] {{#set: Has DocTool=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) ====
==== Software Bill of Materials (SBOM) ====
Zeile 38: Zeile 52:
=== Validierung ===
=== Validierung ===
==== Tools ====
==== Tools ====
:[https://owasp.org/www-project-dependency-check/ OWASP Dependency Check] {{#set: use Framework=OWASP Dependency Check}}
:[https://owasp.org/www-project-dependency-check/ OWASP Dependency Check] {{#set: Has PentestingTool=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.
:: 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.


:[https://snyk.io/de/ Snyk] {{#set: use Framework=Snyk}}
:[https://snyk.io/de/ Snyk] {{#set: Has PentestingTool=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.
:: 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.


:[https://github.com/DependencyTrack/dependency-track Dependency Track] {{#set: use Framework=Dependency Track}}
:[https://github.com/DependencyTrack/dependency-track Dependency Track] {{#set: Has PentestingTool=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.
::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.


:[https://www.opensourceprotection.com/Open-Source-Security.asp WhiteSource] {{#set: use Framework=WhiteSource}}
:[https://www.opensourceprotection.com/Open-Source-Security.asp WhiteSource] {{#set: Has PentestingTool=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.
:: 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.


:[https://help.sonatype.com/en/sonatype-lifecycle.html Sonatype Nexus Lifecycle] {{#set: use Framework=Sonatype Nexus Lifecycle}}
:[https://help.sonatype.com/en/sonatype-lifecycle.html Sonatype Nexus Lifecycle] {{#set: Has PentestingTool=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.
:: 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.


Zeile 62: Zeile 76:
<div class="relatedLinks">
<div class="relatedLinks">
Dependency Management Tools
Dependency Management Tools
* [https://docs.npmjs.com/ npm] {{#set: has Literacy=npm}}
* [https://docs.npmjs.com/ npm] {{#set: Has Literacy=npm}}
* [https://pip.pypa.io/en/stable/ pip] {{#set: has Literacy=pip}}
* [https://pip.pypa.io/en/stable/ pip] {{#set: Has Literacy=pip}}
* [https://maven.apache.org/guides/index.html Maven] {{#set: has Literacy=Maven}}
* [https://maven.apache.org/guides/index.html Maven] {{#set: Has Literacy=Maven}}
* [https://getcomposer.org/doc/ Composer] {{#set: has Literacy=Composer}}
* [https://getcomposer.org/doc/ Composer] {{#set: Has Literacy=Composer}}
Statische Codeanalyse-Tools  
Statische Codeanalyse-Tools  
* [https://docs.sonarsource.com/sonarqube/latest/ SonarQube] {{#set: has Literacy=SonarQube}}
* [https://docs.sonarsource.com/sonarqube/latest/ SonarQube] {{#set: Has Literacy=SonarQube}}
* [https://eslint.org/docs/latest/ ESLint] {{#set: has Literacy=ESLint}}
* [https://eslint.org/docs/latest/ ESLint] {{#set: Has Literacy=ESLint}}
* [https://pylint.readthedocs.io/en/stable/ PyLint] {{#set: has Literacy=PyLint}}
* [https://pylint.readthedocs.io/en/stable/ PyLint] {{#set: Has Literacy=PyLint}}
* [https://checkstyle.sourceforge.io/ Checkstyle] {{#set: has Literacy=Checkstyle}}
* [https://checkstyle.sourceforge.io/ Checkstyle] {{#set: Has Literacy=Checkstyle}}
Build-Automation-Tools
Build-Automation-Tools
* [https://docs.gradle.org/current/userguide/userguide.html Gradle] {{#set: has Literacy=Gradle}}
* [https://docs.gradle.org/current/userguide/userguide.html Gradle] {{#set: Has Literacy=Gradle}}
* [https://ant.apache.org/manual/ Apache Ant] {{#set: has Literacy=Ant}}
* [https://ant.apache.org/manual/ Apache Ant] {{#set: Has Literacy=Ant}}
* [https://www.make.com/en/help/app/google-docs Make] {{#set: has Literacy=Make}}
* [https://www.make.com/en/help/app/google-docs Make] {{#set: Has Literacy=Make}}
Automatisierte Dokumentationstools  
Automatisierte Dokumentationstools  
* [https://www.doxygen.nl/manual/ Doxygen] {{#set: has Literacy=Doxygen}}
* [https://www.doxygen.nl/manual/ Doxygen] {{#set: Has Literacy=Doxygen}}
* [https://www.sphinx-doc.org/en/master/ Sphinx] {{#set: has Literacy=Sphinx}}
* [https://www.sphinx-doc.org/en/master/ Sphinx] {{#set: Has Literacy=Sphinx}}
* [https://docs.oracle.com/javase/8/docs/technotes/tools/windows/javadoc.html JavaDoc] {{#set: has Literacy=JavaDoc}}
* [https://docs.oracle.com/javase/8/docs/technotes/tools/windows/javadoc.html JavaDoc] {{#set: Has Literacy=JavaDoc}}
Validierungstools
Validierungstools
* [https://owasp.org/www-project-dependency-check/ OWASP Dependency Check] {{#set: has Literacy=OWASP Dependency Check}}
* [https://owasp.org/www-project-dependency-check/ OWASP Dependency Check] {{#set: Has Literacy=OWASP Dependency Check}}
* [https://snyk.io/de/ Snyk] {{#set: has Literacy=Snyk}}
* [https://snyk.io/de/ Snyk] {{#set: Has Literacy=Snyk}}
* [https://github.com/DependencyTrack/dependency-track Dependency Track] {{#set: has Literacy=Dependency Track}}
* [https://github.com/DependencyTrack/dependency-track Dependency Track] {{#set: Has Literacy=Dependency Track}}
* [https://www.opensourceprotection.com/Open-Source-Security.asp WhiteSource] {{#set: has Literacy=Whitesource}}
* [https://www.opensourceprotection.com/Open-Source-Security.asp WhiteSource] {{#set: Has Literacy=Whitesource}}
* [https://help.sonatype.com/en/sonatype-lifecycle.html Sonatype Nexus Lifecycle] {{#set: has Literacy=Sonatype Nexus Lifecycle}}
* [https://help.sonatype.com/en/sonatype-lifecycle.html Sonatype Nexus Lifecycle] {{#set: Has Literacy=Sonatype Nexus Lifecycle}}
</div>
</div>


== Ressourcen und Einzelnachweise ==
== Ressourcen und Einzelnachweise ==
[https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR03183/BSI-TR-03183-2.pdf?__blob=publicationFile&v=6 BSI-TR-03183-2] {{#set: has Literacy=BSI-TR-03183-2}}
[https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR03183/BSI-TR-03183-2.pdf?__blob=publicationFile&v=6 BSI-TR-03183-2] {{#set: Has Literacy=BSI-TR-03183-2}}
 
[https://orca.security/resources/blog/how-to-get-complete-sbom-of-your-cloud/ 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 {{#set: has Literacy=Doug Hudson, et al.: Federal Software Inventory Bill: How to Get a Complete SBOM of Your Cloud}}


[https://orca.security/resources/blog/how-to-get-complete-sbom-of-your-cloud/ 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 {{#set: Has Literacy=Doug Hudson, et al.: Federal Software Inventory Bill: How to Get a Complete SBOM of Your Cloud}}


[[Category:Pruefaspekt]]
{{#set:Status=angelegt}}
[[Category:CHECK]]
[[Category:CHECK]]
[[Category: TrdP]]

Version vom 6. August 2024, 13:32 Uhr

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.

Testcharakteristik

Prüftiefe

Bezeichnung Mindestanforderungen an die Prüfung
CHECK Der Evaluator validiert (englisch „check“, analog zu Begriffsverwendung in der Common Criteria Evaluation Methodology) die vom Hersteller beschriebene Maßnahme im Hinblick auf ihre Wirksamkeit und räumt bestehende Zweifel (Plausibilitätsprüfung) aus, ob der Prüfaspekt und die damit verbundene Sicherheitsproblematik umfassend durch die beschriebenen Maßnahmen adressiert wird. Hierbei MUSS der Evaluator den aktuellen Stand der Technik für die jeweilige Plattform mitberücksichtigen. Die Validierung KANN weitergehende Schritte, wie z.B. eine Quelltextanalyse, umfassen, falls der Evaluator diese für eine umfassende Einschätzung benötigt.


Ergänzende Informationen für Evaluatoren

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.

Weblinks

Ressourcen und Einzelnachweise

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