Aikido

Supply Chain Security: Der ultimative Leitfaden zu Software-Kompositionsanalyse SCA)

Ruben CamerlynckRuben Camerlynck
|
#
#

Software-Kompositionsanalyse SCA) ist das wichtigste Tool zur Sicherung von Open-Source-Abhängigkeiten in Ihrer Codebasis, Ihren Containern und Ihrer Cloud. In diesem Leitfaden wird erläutert, was SCA , warum es wichtig ist, wie moderne Tools Störsignale reduzieren und welche praktischen Schritte erforderlich sind, um echte Risiken zu finden und zu beheben – und nicht nur laute Warnmeldungen.

TL;DR

  • Etwa 70–90 % des Anwendungscodes stammen häufig aus Open-Source-Abhängigkeiten. Das schafft eine große Angriffsfläche.
  • SCA scannen Ihre Abhängigkeiten (einschließlich transitiver Abhängigkeiten), gleichen sie mit CVE-Datenbanken ab und generieren Abhilfemaßnahmen oder SBOMs.
  • Falsch-positive Ergebnisse sind häufig – moderne SCA Erreichbarkeitsanalyse Dev-vs-Prod-Erkennung, um Störsignale um ~80 % zu reduzieren.
  • Strategie zur Fehlerbehebung: Nicht-kompatible Änderungen automatisch aktualisieren, triage Upgrades triage und die Fehlerbehebung durch automatische Korrekturen/PR-Generierung beschleunigen.

Was ist SCA Software-Kompositionsanalyse)?

SCA, auch Scan von Softwareabhängigkeiten Scan von Softwareabhängigkeiten genannt, identifiziert jedes Open-Source-Paket, das Ihre App verwendet, und überprüft dann, ob diese Pakete (und bestimmte Versionen) mit bekannten Schwachstellen in Verbindung stehen. Die Ergebnisse helfen Teams bei der Entscheidung, was gepatcht, aktualisiert oder ignoriert werden soll.

Warum SCA

Moderne Anwendungen sind mehrschichtig aufgebaut: Apps basieren auf Bibliotheken, die wiederum auf anderen Bibliotheken basieren – eine Art russische Puppe der Abhängigkeiten. Eine Schwachstelle in einem grundlegenden Projekt kann sich auf die gesamte Lieferkette auswirken. Der Log4j-Vorfall ist ein Paradebeispiel dafür: Eine kritische Sicherheitslücke in einer weit verbreiteten Logging-Bibliothek, die die Ausführung von Remote-Code ermöglichte, machte weite Teile des Internets angreifbar.

Log4j-Logo mit dem Text „LOG4J” und dem Java-Cup-Symbol, zentriert auf einem violetten Gitterhintergrund.
Log4j – eine Erinnerung an weit verbreitete Risiken in der Lieferkette.

Wie SCA – die Grundlagen

  1. Inventar: SCA Abhängigkeitsmanifeste (package.json, package-lock.json, requirements.txt, Pipfile.lock, Gemfile.lock usw.), um direkte und transitive Abhängigkeiten aufzulisten.
  2. Abgleich: Es vergleicht Paketnamen und -versionen mit Schwachstellen-Feeds (NVD, MITRE CVE, GitHub Advisory Database und anderen Quellen).
  3. Priorisierung: Modern SCA Kontext SCA – Erreichbarkeit, Umgebung (Entwicklung vs. Produktion) und Ausnutzbarkeit –, um die Ergebnisse zu priorisieren.

Gemeinsame Abhängigkeitsdateien

  • Knoten: package.json (direkte Abhängigkeiten) und package-lock.json (transitive Abhängigkeiten)
  • Python: requirements.txt, pipfile.lock
  • Ruby: Gemfile und Gemfile.lock

SBOMs – die nützliche Nebenaufgabe

Eine Software-Stückliste SBOM) ist eine maschinenlesbare Bestandsaufnahme der in Ihrer Software verwendeten Komponenten und Versionen.

SBOMs sind in vielen compliance und Regierungsverträgen vorgeschrieben. Die meisten SCA können neben Schwachstellenberichten auch SBOMs (SPDX, CycloneDX) generieren.

CVEs und Schwachstellen-Feeds

Wenn Sicherheitsforscher ein Problem entdecken, weisen sie ihm eine CVE-Kennung zu und veröffentlichen Details, einschließlich der betroffenen Versionen. SCA aggregieren CVE-Daten aus Quellen wie NVD, MITRE und GitHub Advisories, um festzustellen, ob Ihre Abhängigkeitsversionen mit bekannten anfälligen Bereichen übereinstimmen.

Beispiel für einen Schnellscan – Abhängigkeiten scannen

Leichte Scanner (z. B. ein Trivy) können Abhängigkeiten auflisten und Übereinstimmungen mit Schwachstellendatenbanken innerhalb von Sekunden melden. Die Scan-Ergebnisse können als JSON exportiert und in Dashboards oder automatisierte Workflows eingespeist werden.

Terminalfenster mit der Eingabeaufforderung, in dietrivy eingegeben wurde, und einer kleinen Überlagerung mit einer Miniaturansicht des Präsentators.
Führen Sie einen schnellen Trivy im Terminal durch, um Abhängigkeiten aufzulisten.

Ergebnisse interpretieren: Korrekturen, grundlegende Änderungen und Umfang

Auf den ersten Blick scheint die Behebung einfach zu sein – ein Upgrade auf eine nicht anfällige Version. In der Praxis können Upgrades jedoch zu grundlegenden Änderungen führen, die Regressionen verursachen oder umfangreiche Tests erfordern. Wenn eine Anwendung Hunderte von anfälligen transitiven Paketen enthält, ist ein blindes Upgrade oft unrealistisch.

Nahaufnahme eines Modals „Breaking Changes“ mit einer Warnung „Found breaking changes“ und einer Tabelle mit Versionen und Beschreibungen in einem SCA ; Moderator-Einblendung unten rechts.
Zusammenfassung der grundlegenden Änderungen für eine Abhängigkeit – verwenden Sie diese, um triage Upgrades triage .

Zwei Sanierungsbehälter

  • Nicht-kompatible Upgrades: Einfache Upgrades, die das Verhalten nicht verändern – priorisieren Sie diese und beheben Sie sie zuerst automatisch.
  • Bedeutende Upgrades: erfordern triage gründlichere triage, Kompatibilitätstests oder Codeänderungen. Dies sind die kleineren, aber aufwändigeren Aufgaben.

Falsch-positive Ergebnisse und Erreichbarkeitsanalyse

Viele gemeldete Schwachstellen sind in Ihrem Kontext nicht ausnutzbar. Zwei häufige Gründe:

  • Nur für Entwickler bestimmte Abhängigkeiten: Pakete, die nur zur Erstellungszeit verwendet werden, sind in der Produktion nicht erreichbar.
  • Nicht erreichbare Funktionen: Eine anfällige Funktion kann in einem Paket vorhanden sein, wird jedoch von Ihrer App (und anderen Abhängigkeiten) nie aufgerufen.

Erreichbarkeitsanalyse (Call-Tree-Analyse) bildet ab, wie eine Abhängigkeit auf oberster Ebene nachgelagerte Pakete einbezieht und ob die anfälligen Codepfade tatsächlich von Ihrer Laufzeitumgebung aufgerufen werden. Dadurch werden Störfaktoren beseitigt und Teams können sich auf das tatsächliche Risiko konzentrieren.

SCA mit einer Übersicht über y18n-Probleme, dem Ergebnis der Erreichbarkeitsprüfung „Betrifft mich das?“ und einem Vorschlag zur automatischen Korrektur sowie einer Miniaturansicht des Präsentators
Erreichbarkeitsanalyse , dass die Schwachstelle keine Auswirkungen auf unsere Umgebung haben kann.

Praktisches Beispiel: Ein Prototyp für eine Umweltverschmutzungswarnung, der nicht ausgenutzt werden kann.

Betrachten Sie ein weit verbreitetes Node-Paket, das eine Schwachstelle namens „Prototype Pollution“ in einer Funktion namens „setLocale“ aufweist. Wenn keiner der Codepfade in Ihrem Aufrufbaum „setLocale“ aufruft, ist die Schwachstelle für Ihre Anwendung praktisch nicht ausnutzbar – und kann nach der Überprüfung sicher zurückgestellt werden.

Moderne SCA , die das Spiel verändern

  • Automatisches Ignorieren mit Begründungen: Tools können Ergebnisse automatisch unterdrücken, wenn eine Abhängigkeit nur in der Entwicklung verwendet wird oder wenn die betroffene Funktion nicht erreichbar ist, wodurch Fehlalarme drastisch reduziert werden.
  • Erreichbarkeit/Anrufbaumvisualisierung: Visualisieren Sie den Abhängigkeitspfad von Ihrem Projekt zum anfälligen Paket, um die Ausnutzbarkeit zu überprüfen.
  • Flags für grundlegende Änderungen: Markieren Sie Korrekturen, die Kompatibilitätsprobleme verursachen könnten, damit Teams sichere Upgrades vorrangig behandeln können.
  • Autofix/PR-Generierung: Automatische Generierung von Dependency-Upgrade-Commits oder Pull-Requests für Fehlerbehebungen mit geringem Risiko.
Tabelle mit dem Titel „Gründe für das Ignorieren“ mit Einträgen wie „Linux-Distribution ist nicht betroffen“, „Abhängigkeit wird in der Produktion nicht verwendet“, Anzahl der Probleme und einer kurzen Beschreibung sowie einem Miniaturbild des Vortragenden.
Die wichtigsten Gründe, warum das SCA Ergebnisse automatisch ignoriert, die für triage Rauschreduzierung verwendet werden.

Empfohlener Workflow für die Sanierung

  1. Führen Sie SCA als Teil der CI durch, um Probleme frühzeitig zu erkennen.
  2. Nicht-zerbrechende Korrekturen automatisch über Autofix/PR-Generierung anwenden und Tests ausführen.
  3. Triage Änderungen: Erstellen Sie Tickets, planen Sie Kompatibilitätstests oder planen Sie schrittweise Upgrades.
  4. Verwenden Sie Erreichbarkeitsanalyse triage: Ignorieren Sie verifizierte, nicht erreichbare CVEs und dokumentieren Sie die Begründung.
  5. Verwalten Sie SBOMs für compliance schnellere Reaktion auf Vorfälle.

Werkzeugauswahl – eine pragmatische Herangehensweise

Open-Source-CLI-Scanner (Trivy, Grype) eignen sich hervorragend für schnelle Überprüfungen und die CI-Integration. Unternehmensplattformen bieten zusätzlich eine Erreichbarkeitsanalyse, automatisierte Priorisierung, PR-basierte Autofixesund zentralisierte Dashboards hinzu, um Störungen zu verwalten und die Fehlerbehebung teamübergreifend zu skalieren. Wählen Sie je nach Größe Ihrer Codebasis, compliance und dem gewünschten Automatisierungsgrad bei der Fehlerbehebung.

Wichtigste Erkenntnisse

  • SCA unverzichtbar, da die meisten modernen Anwendungen in hohem Maße auf Open-Source-Komponenten basieren.
  • Nicht jede gemeldete CVE ist ausnutzbar – Erreichbarkeitsanalyse Dev/Prod-Kontext sind entscheidend, um echte Risiken von Störsignalen zu unterscheiden.
  • Priorisieren Sie nicht-kompatible Upgrades und automatisieren Sie diese, wo immer möglich. Reservieren Sie manuelle Arbeiten für kompatible Updates, die tiefgreifendere technische Arbeiten erfordern.
  • Erstellen und pflegen Sie SBOMs für Transparenz und compliance.

Loslegen

SCA noch heute SCA Ihre CI/CD-Pipeline: Führen Sie regelmäßige Scans durch, generieren Sie SBOMs und aktivieren Sie die automatische Korrektur für eine sichere und schnelle Behebung. Beginnen Sie damit, Ihr Repository mit einem leichtgewichtigen CLI-Scanner zu scannen, überprüfen Sie die Erreichbarkeitsergebnisse auf Warnmeldungen mit höchster Schwere und integrieren Sie dann automatisierte Korrekturen in Pull-Request-Workflows.

Schutz Ihrer Software-Lieferkette ist sowohl eine technische als auch eine prozessuale Herausforderung. Die richtigen SCA + ein praktischer Workflow zur Behebung von Schwachstellen reduzieren Risiken und sorgen für einen reibungslosen Ablauf der Entwicklungsarbeit. Probieren Sie Aikido noch heute aus!

4.7/5

Sichern Sie Ihre Software jetzt.

Kostenlos starten
Ohne Kreditkarte
Demo buchen
Ihre Daten werden nicht weitergegeben · Nur Lesezugriff · Keine Kreditkarte erforderlich

Werden Sie jetzt sicher.

Sichern Sie Ihren Code, Ihre Cloud und Ihre Laufzeit in einem zentralen System.
Finden und beheben Sie Schwachstellen schnell und automatisch.

Keine Kreditkarte erforderlich | Scan-Ergebnisse in 32 Sek.