Erkunden der Software Composition Analysis (SCA)
Zwei wichtige Bereiche der Secure DevOps-Pipeline sind die Paketverwaltung und Open-Source-Softwarekomponenten (OSS).
Paketverwaltung
Ebenso wie Teams die Versionskontrolle als Single Source of Truth für den Quellcode nutzen, stützt sich Secure DevOps auf einen Paket-Manager als eindeutige Quelle für Binärkomponenten.
Mithilfe der Verwaltung von Binärpaketen kann ein Entwicklungsteam einen lokalen Cache mit genehmigten Komponenten und einen vertrauenswürdigen Feed für die Continuous Integration-Pipeline (CI) erstellen.
In Azure DevOps ist Azure Artifacts ein integraler Bestandteil des Komponentenworkflows, um den Zugriff auf Ihre Pakete zu verwalten und freizugeben. Azure Artifacts ermöglicht Ihnen Folgendes:
- Strukturierung Ihrer Artefakte. Geben Sie Code auf einfache Weise zur gemeinsamen Nutzung frei, indem Sie Apache Maven-, npm- und NuGet-Pakete gemeinsam speichern. Sie können Pakete mithilfe von Universal Packages speichern, sodass keine Binärdateien in Git verwaltet werden müssen.
- Schutz Ihrer Pakete. Verwalten Sie alle von Ihnen verwendeten öffentlichen Quellpakete (Pakete von npmjs und NuGet.org eingeschlossen) sicher in Ihrem Feed, in dem nur Sie sie löschen können und der durch die Azure-Vereinbarung zum Servicelevel (SLA) für Unternehmen abgesichert ist.
- Integration einer nahtlosen Paketverarbeitung in Ihre CI/CD-Pipeline (Continuous Integration/Continuous Development). Greifen Sie problemlos auf all Ihre Artefakte in Builds und Releases zu. Azure Artifacts lässt sich nativ in das Azure Pipelines-CI/CD-Tool integrieren.
Weitere Informationen zu Azure Artifacts finden Sie auf dieser Webseite: Was ist Azure Artifacts?
Versionen und Kompatibilität
In der folgenden Tabelle sind die von Azure Artifacts unterstützten Pakettypen aufgeführt. Die Verfügbarkeit der einzelnen Pakete in Azure DevOps Services wird ebenfalls angegeben.
Die folgende Tabelle zeigt die Kompatibilität der einzelnen Pakete mit bestimmten Versionen von Azure DevOps Server, vormals Team Foundation Server (TFS).
Feature | Azure DevOps Services | TFS |
---|---|---|
NuGet | Ja | TFS 2017 |
npm | Ja | TFS 2017, Update 1 und höher |
Maven | Ja | TFS 2017, Update 1 und höher |
Gradle | Ja | TFS 2018 |
Universell | Ja | Nein |
Python | Ja | Nein |
Maven-, npm- und NuGet-Pakete können von Teams beliebiger Größe aus öffentlichen und privaten Quellen unterstützt werden. Azure Artifact ist im Lieferumfang von Azure DevOps enthalten, aber die Erweiterung ist auch über den Visual Studio Marketplace erhältlich.
Hinweis
Nachdem eine bestimmte Paketversion in einem Feed veröffentlicht wurde, ist diese Versionsnummer dauerhaft reserviert.
Hinweis
Sie können kein neueres Revisionspaket mit derselben Versionsnummer hochladen oder diese Version löschen und ein neues Paket mit derselben Versionsnummer hochladen. Die veröffentlichte Version ist unveränderlich.
Die Rolle von OSS-Komponenten
Die Entwicklungsarbeit wird durch die umfassende Verfügbarkeit von wiederverwendbaren Open-Source-Softwarekomponenten (OSS) produktiver.
Dieser praktische Ansatz zur Wiederverwendung schließt auch Runtimes wie Microsoft .NET Core und Node.js ein, die für Windows- und Linux-Betriebssysteme zur Verfügung stehen.
Die Wiederverwendung von OSS-Komponenten birgt jedoch das Risiko, dass wiederverwendete Abhängigkeiten Sicherheitsrisiken aufweisen können. Als Folge stoßen viele Benutzer aufgrund der genutzten Node.js-Paketversionen auf Sicherheitslücken in ihren Anwendungen.
OSS bietet ein neues Konzept, die sogenannte Software Composition Analysis (SCA), um diesen Sicherheitsproblemen zu begegnen, wie in der folgenden Abbildung veranschaulicht.
Bei Verwendung einer OSS-Komponente – unabhängig davon, ob Sie Abhängigkeiten erstellen oder nutzen – sollten Sie in der Regel diese grundlegenden Schritte befolgen:
- Beginnen Sie mit der neuesten, fehlerfreien Version, um alte Sicherheitslücken oder einen Lizenzmissbrauch zu vermeiden.
- Stellen Sie sicher, dass es sich bei den OSS-Komponenten um die richtigen Binärdateien für Ihre Version handelt. Validieren Sie die Binärdateien in der Releasepipeline, um Genauigkeit zu gewährleisten und eine nachverfolgbare Materialliste zu führen.
- Lassen Sie sich sofort über Schwachstellen in Komponenten benachrichtigen, korrigieren Sie diese, und stellen Sie die Komponente automatisch neu bereit, um Sicherheitslücken oder Lizenzmissbrauch durch wiederverwendete Software zu beheben.