Vulnerability Scanning mit Software Composition Analysis – Eine Anleitung

Jede Softwareanwendung kann Schwachstellen enthalten. Einem Report aus dem Jahr 2021 zufolge enthielten nicht weniger als 100 Prozent von Sicherheitsforschern getesteter Anwendungen Sicherheitslücken, von denen 85 Prozent als kritisch eingestuft wurden.

Zum Glück können die meisten Schwachstellen mit SCA-Tools (Software Composition Analysis) entdeckt werden, bevor die Software in die Produktion geht. SCA-Scanner sind in der Lage, Schwachstellen sowohl im Quellcode als auch in Binärdateien zu identifizieren und zu analysieren, selbst in solchen Fällen, in denen Entwickler die Schwachstellen durch manuelle Codeüberprüfung wahrscheinlich nicht entdeckt hätten.

Aus diesem Grund sollte das Scannen auf Schwachstellen mit SCA-Tools ein wichtiger Schritt in jeder Application Delivery Pipeline sein. Erfahren Sie, wie Software Composition Analysis funktioniert und wie Sie die Vorteile von SCA-Tools nutzen können, um die Sicherheit der von Ihnen entwickelten Anwendungen zu verbessern.

Wie funktionieren SCA-Schwachstellenscanner?

SCA-Scans funktionieren recht einfach: Durch das Parsen von Quellcode und/oder Binärdateien suchen SCA-Tools nach Anwendungskomponenten, die als unsicher bekannt sind.

In den meisten Fällen gleichen SCA-Tools Anwendungskomponenten mit Schwachstellen-Datenbanken ab, die Sicherheitslücken katalogisieren, die Researcher in Open-Source-Bibliotheken, Modulen, Container-Images und anderen Ressourcen gemeldet haben. Indem SCA-Tools die spezifischen Versionen von Komponenten von Drittanbietern innerhalb einer Anwendung identifizieren und dann feststellen, ob diese Versionen mit bekannten Sicherheitslücken verbunden sind, können sie so leicht potenzielle Sicherheitsrisiken aufzeigen.

Moderne SCA-Tools können auch feststellen, ob sich ein Sicherheitsproblem auf der Grundlage der spezifischen Konfiguration oder Umgebung einer Anwendung ausnutzen lässt. Mithilfe dieser Informationen können Entwickler die Sicherheitsrisiken beseitigen, indem sie z. B. eine unsichere Open-Source-Bibliothek auf eine neuere, sichere Version updaten.

Beachten Sie jedoch, dass SCA-Tools zwar viele Arten von Schwachstellen erkennen können, in der Regel aber nur Risiken aufspüren können, die mit Open-Source-Komponenten in Verbindung stehen. SCA-Tools können keine Schwachstellen finden, die durch den von Ihren Entwicklern selbst geschriebenen First-Party-Code verursacht werden, es sei denn, diese Probleme sind bereits in Open-Source-Schwachstellendatenbanken erfasst.

Auch Schwachstellen, die in Open-Source-Code vorhanden sind, aber noch nicht von Sicherheitsexperten oder der Open-Source-Community identifiziert wurden, können ebenfalls nicht mit SCA-Tools erkannt werden.

Wann sollte man Schwachstellen-Scans durchführen?

Obwohl SCA-Schwachstellen-Scans in jeder Phase des Softwareentwicklungszyklus durchgeführt werden können, sind sie am nützlichsten, wenn sie schon vor der Bereitstellung stattfinden. Mit anderen Worten: Entwickler sollten ihre Anwendungen schon scannen, bevor sie sie in Produktion geben, damit Sicherheitslücken entdeckt werden können, bevor Risiken für Endbenutzer entstehen.

SCA-Scans können auch in verschiedenen Phasen des Softwareentwicklungszyklus durchgeführt werden. In vielen Fällen ist es sinnvoll, mit dem Scannen des Quellcodes in einer frühen Phase des Entwicklungszyklus zu beginnen, um Schwachstellen zu identifizieren, die möglicherweise durch den Import von Code von Drittanbietern in die Codebasis einer Anwendung eingeführt wurden.

Anschließend können SCA-Scans gegen binäre Anwendungskomponenten wie Container-Images in Staging-Umgebungen vor der Produktion durchgeführt werden. Durch das Scannen von Binärdateien können Entwickler zusätzliche Arten von Schwachstellen erkennen, z. B. die Verwendung unsicherer Base-Images in containerisierten Anwendungen, die beim Scannen des Quellcodes der Anwendung nicht unbedingt auffallen würden.

Beispiele für SCA-Schwachstellen-Scans

Die folgenden Anwendungsfälle sind Beispiele dafür, wie SCA dazu beitragen kann, Schwachstellen bereits vor der Anwendungsbereitstellung zu erkennen:

Schwachstellen im Quellcode erkennen

Stellen Sie sich vor, Sie entwickeln eine Python-Anwendung und binden das Modul urllib.parse in den Quellcode ein. Dieses Modul hat eine bekannte Schwachstelle, die Injektionsangriffe ermöglichen kann.

Ein SCA-Tool kann Ihren Python-Quellcode scannen, die Verwendung des unsicheren Moduls erkennen und Sie auf das Risiko hinweisen, so dass Sie Gegenmaßnahmen ergreifen können (was etwa im Fall der urllib.parse-Vulnerability ein Upgrade auf eine neuere Version bedeuten würde).

Erkennung von Schwachstellen in Container-Images

Bei der Erstellung von Containern ist es üblich, so genannte Base-Images zu verwenden, die verschiedene Bibliotheken und Tools enthalten, die Sie als Grundlage für Ihre containerisierte Anwendungsumgebung verwenden können.

Wenn Sie mit einem Base-Image mit bekannten Schwachstellen (wie das Ubuntu 18.04 Base-Image auf Docker Hub, das derzeit 21 bekannte Schwachstellen enthält) starten, können SCA-Tools diese Risiken identifizieren. Entsprechend können Sie Maßnahmen ergreifen, um das Risiko zu verringern, indem Sie beispielsweise Code in Ihren Container einfügen, um die anfälligen Komponenten des Base-Images auf neuere Versionen zu aktualisieren.

Schwachstellen in Helm-Diagrammen erkennen

Helm-Charts, die zur Installation von Anwendungen in Kubernetes verwendet werden, können ebenfalls eine Vielzahl von Schwachstellen enthalten. SCA-Tools können Helm-Charts scannen, bevor sie in einem Kubernetes-Cluster bereitgestellt werden, so dass Entwickler auf die darin enthaltenen Sicherheitsrisiken reagieren können.

Fazit

Source Composition Analysis (SCA) ist die beste Methode, um Schwachstellen in Open-Source-Software aufzuspüren, sowohl im Quellcode von Anwendungen als auch in Binärdateien. Wenn Sie Ressourcen von Drittanbietern in die von Ihnen erstellte Software importieren, sollten Sie SCA-Schwachstellenscans durchführen, um Sicherheitsrisiken zu erkennen, bevor sie ausgenutzt werden können.

Als ein SCA Scanning Tool, das sich nahtlos in Ihre DevOps Software Delivery Pipeline integriert, macht es JFrog Xray einfach, kontinuierliche Vulnerability Scans durchzuführen, während der Code von der Entwicklung in die Produktion übergeht.  Mit Xray können Sie sicher sein, dass Sie Schwachstellen finden, bevor Hacker sie ausnutzen.