Was ist Schwachstellen-Scanning?

Software State of the Union Report
Topics DevSecOps Schwachstellen-Scanning

Definition

Beim Schwachstellen-Scanning wird ein System, ein Netzwerk oder eine Applikation automatisch durchsucht, um bekannte Schwachstellen zu finden, die zu einem möglichen Sicherheitsproblem, einer Kompromittierung des Netzwerks oder einem Datenleck führen könnten.

Überblick

Für einen wirksamen Schutz Ihrer Software-Lieferkette müssen DevSecOps Teams die Schwachstellen in ihren Systemen, Netzwerken und Anwendungsinfrastrukturen kennen und verwalten.  Schwachstellenscans spielen eine wichtige Rolle bei der Identifizierung von Schwachstellen und Lücken, die von Hackern oder böswilligen Akteuren ausgenutzt werden könnten.

Schwachstellen-Scans verstehen

Jede Softwareanwendung kann Schwachstellen enthalten.  Zum Glück ist es mit Software Composition Analysis (SCA) Tools möglich, die meisten Sicherheitslücken zu erkennen, bevor die Software in die Produktionsumgebung gebracht wird. SCA-Scanner können Schwachstellen sowohl im Quellcode als auch in Binärdateien aufspüren und analysieren, selbst solche, die von den meisten Entwicklern und ihren Managern bei den üblichen Code-Reviews wahrscheinlich nicht entdeckt werden.

Die Relevanz von Schwachstellen-Scans für die Cybersicherheit kann gar nicht hoch genug eingeschätzt werden. Durch regelmäßiges Scannen in jeder Phase des Softwareentwicklungszyklus können Unternehmen proaktiv Schwachstellen finden und beheben, noch bevor sie von Angreifern ausgenutzt werden können. Dies hilft, das Risiko von Datenschutzverletzungen, unbefugtem Zugriff und anderen Sicherheitsvorfällen, die sich negativ auf Kunden und Geschäft auswirken können, zu reduzieren.

 

Features von Vulnerability Scannern

Unabhängig vom Framework ist das Scannen von Schwachstellen eine grundlegende und permanente Aufgabe für alle Teams, die ein DevSecOps-Modell implementieren. Dabei werden potenzielle Schwachstellen in allen Schritten des Softwareentwicklungszyklus sowie Bedrohungen aufgrund von Schwachstellen in der Betriebsumgebung, wie z. B. der Cloud-Infrastruktur, identifiziert und evaluiert. Zu den wichtigsten Methoden für Schwachstellen-Scans, die Teil des Softwareentwicklungsprozesses sein sollten, gehören:

Scannen der Applikation

Anwendungsscanner prüfen in der Regel, ob der Inhalt eines Softwarepakets mit Elementen übereinstimmt, die auf der Grundlage von Datenbanken, die Sicherheitslücken in Anwendungen und Bibliotheken enthalten, als anfällig bekannt sind. So kann ein Schwachstellen-Scanner etwa feststellen, dass ein Paket eine bestimmte Version einer Software-Bibliothek enthält, die eine bekannte Sicherheitslücke aufweist. Der Scanner würde das Problem markieren und die Entwickler warnen, damit sie die Bibliothek auf eine neuere, sichere Version aktualisieren. Für eine ordentliche Anwendungssicherheit sollten Quellcode, Binärdateien, Abhängigkeiten und Konfigurationsdateien in jedem Schritt des Softwareentwicklungsprozesses gescannt werden.

Open Source Scanning

Open-Source-Software ist in vielerlei Hinsicht fantastisch. Sie ist in der Regel kostenlos, kann leicht modifiziert oder erweitert werden, und die Verwendung von Open-Source-Code kann die Entwicklungsdauer einer Anwendung verkürzen. Der Nachteil ist, dass sich in Open-Source-Code eine Vielzahl von Sicherheitslücken verstecken kann, z. B. Fehler in Open-Source-Bibliotheken oder -Modulen, die die Ausführung von beliebigem Code erlauben und es Angreifern ermöglichen, die Kontrolle über eine Anwendung oder das System, auf dem sie läuft, zu übernehmen.

Solche Sicherheitsrisiken können in praktisch jeder Art von Open-Source-Projekt auftreten. Große, bekannte Open-Source-Projekte wie Linux und Kubernetes, die gut verwaltet werden, weisen in der Regel weniger Sicherheitslücken auf als kleine, obskure Projekte, die man vielleicht auf GitHub findet. So oder so – das Risiko, dass Open-Source-Code Sicherheitslücken enthält, besteht immer, egal woher er stammt.

Scannen von Binaries

Moderne Software Composition Analysis (SCA)-Tools können sowohl den Quellcode als auch die Binärdateien von Applikationen scannen, um riskante Komponenten zu identifizieren. Durch das Scannen von Binärdateien erhalten die Projektteams nicht nur Einblick in den Quellcode, sondern in die gesamte Anwendung und können so Schwachstellen aufspüren, die nach der eigentlichen Entwicklungsphase eingebracht werden – noch bevor sie in die Produktion übernommen werden.

Scannen von Containern

Bei der Erstellung von Containern ist es üblich, Basis-Images zu verwenden, die bereits verschiedene Libraries und Tools enthalten, die Sie als Basis für Ihre containerisierte Anwendungsumgebung nutzen können. Eines der beliebtesten Image-Repositories ist Docker, das Millionen von Images umfasst. Natürlich sollten sie auf bekannte Schwachstellen gescannt werden, aber es ist in Folge dessen auch relevant zu überprüfen, ob gefundene CVEs auch ausgenutzt werden können. Denn laut JFrog Security Research sind 78% der gemeldeten CVEs in den Top DockerHub-Images gar nicht wirklich ausnutzbar.

Scannen auf Konfigurationsfehler

Selbst wenn der Code als sicher eingestuft wird, können Konfigurationsfehler in manchen Umgebungen eine Hintertür für potenzielle Angriffe öffnen. Ein schönes Beispiel ist die fehlerhafte Konfiguration der IAM-Regeln (Identity and Access Management) für die Cloud, über die ein öffentlicher Zugriff auf sensible Daten möglich ist, was zu einer Verletzung der Sicherheit führen kann.

Tools für die Überprüfung von Container-Images sind nützlich, um anfällige Abhängigkeiten oder Konfigurationen innerhalb eines Anwendungspakets zu identifizieren, die zu Angriffen einladen könnten. Ebenso gibt es Tools für Konfigurationschecks, mit denen die Konfiguration der Infrastruktur, auf der die Anwendungen gehostet werden, gescannt werden kann, anstatt nur die Anwendungen selbst zu prüfen.

Compliance-Scanning

Mit Hilfe von Scans können DevOps- und Legal-Teams auch sicherstellen, dass die Entwickler sich an die Softwarelizenzen halten, die für den von ihnen genutzten Open-Source-Code gelten. Derzeit gibt es fast 100 Open-Source-Lizenzformate mit jeweils unterschiedlichen Regeln und Bedingungen für die Weiterverwendung der Open Source Packages. Durch den Einsatz geeigneter Compliance-Scan-Tools können Developer automatisiert überprüfen, welche Lizenzen für ihren Code gelten, und etwaige Verstöße gegen die Lizenzbestimmungen beseitigen. Die Rechtsabteilung kann außerdem darüber eine Nachweis über die Lizenzbedingungen und deren Einhaltung bekommen.

Häufige Schwachstellen, die durch einen Scan erkannt werden können

Wenn es darum geht, die Sicherheit eines Systems zu gewährleisten, spielt das Schwachstellen-Scanning eine zentrale Rolle. Indem Schwachstellen und Lücken in der Systemabwehr identifiziert werden, hilft das Schwachstellen-Scanning, potenzielle Bedrohungen proaktiv anzugehen und sensible Daten zu schützen. Schauen wir uns einige häufige Schwachstellen genauer an, die oft durch Scans entdeckt werden können:

Schwache oder Standardpasswörter: Viele Sicherheitsverstöße lassen sich darauf zurückführen, dass schwache Passwörter verwendet oder die Standardpasswörter nicht geändert werden. Vulnerability Scanner können diese Schwachstellen identifizieren und fordern die Nutzer auf, ihre Passwörter zu verstärken oder die Voreinstellungen zu ändern.

Veraltete Software: Die Verwendung veralteter Softwareversionen macht ein System anfällig für viele verschiedene Sicherheitsprobleme. Schwachstellen-Scans können veraltete Versionen von Software kennzeichnen und fordern Sie auf, Patches oder Updates zu installieren, um potenzielle Risiken zu minimieren.

Falsch konfigurierte Security-Settings: Falsch konfigurierte Sicherheitseinstellungen können Schlupflöcher schaffen, die Angreifer dann ausnutzen könnten. Schwachstellen-Scans helfen dabei, solche Fehlkonfigurationen aufzuspüren, damit Sie sie beheben und die Sicherheit Ihres Systems erhöhen können.

Die Auswirkungen von Schwachstellen auf die Sicherheit Ihrer Systeme dürfen nicht unterschätzt werden. Ausgenutzte Schwachstellen können zu unbefugtem Zugriff, Datenpannen, finanziellen Verlusten, Imageschäden und juristischen Konsequenzen führen. Um diese Risiken zu minimieren, sollten Sie Schwachstellen umgehend beheben.

Wie werden Schwachstellen ausgenutzt?

Um eine Sicherheitslücke auszunutzen, muss ein Angreifer die Schwachstelle zunächst entdecken. Angreifer können das auf unterschiedliche Arten tun. Eine häufige Methode um Schwachstellen ausfindig zu machen, besteht darin, Port-Scan-Software wie das Open-Source-Tool Nmap laufen zu lassen, das Informationen darüber sammelt, welche Dienste auf einem Server oder Computer laufen und sogar welches konkrete Betriebssystem installiert ist. Mit diesen Infos kann der Angreifer feststellen, ob die Services oder das Betriebssystem selbst mit bekannten Sicherheitslücken belastet sind.

Methoden, wie Sicherheitslücken ausgenutzt werden

Hat der Angreifer die Schwachstelle gefunden, muss er eine Methode entwickeln, um diese auszunutzen. Auch hier gibt es viele verschiedene Vorgehensweisen, meist umfassen sie jedoch Techniken wie das Einschleusen von Schadcode in eine Anwendung oder die Umgehung von Zugriffsrechten.
Schafft es der Angreifer, die Schwachstelle erfolgreich ausnutzen, kann er böswillige Aktionen innerhalb der kompromittierten Anwendung oder des Host-Systems durchführen. Je nach Art der Schwachstelle kann das Aktionen wie das Abgreifen vertraulicher Daten, das Ausführen bösartiger Befehle, das Einschleusen von Malware oder die Unterbrechung geschäftskritischer Services umfassen, um Probleme für das Unternehmen zu verursachen.

Sind alle Schwachstellen ausnutzbar?

Nein, nicht alle Schwachstellen sind auch gleichermaßen ausnutzbar. Manche Schwachstellen können es Angreifern ermöglichen, die komplette Kontrolle über ein System zu erlangen, während andere es Angreifern lediglich erlauben, bestimmte Daten zu lesen oder zu bearbeiten. Die Angriffsfläche einer Sicherheitslücke ergibt sich daher aus der Anzahl der Möglichkeiten, die ein Angreifer hat, um die Lücke auszunutzen. Einige Schwachstellen können aus der Ferne ausgenutzt werden, während andere nur dann ausgenutzt werden können, wenn der Angreifer auch physischen Zugriff auf das System hat. Außerdem ist die Verfügbarkeit von Exploit-Code ein Faktor für die Ausnutzbarkeit einer Sicherheitslücke. Für manche Vulnerabilities gibt es öffentlich erhältliche Exploit-Codes, für andere  nicht.

Best Practices für Schwachstellen-Scanning

So nutzen Sie die Schwachstellen-Scanner für Ihre Packages am besten

Der erste Schritt, um Sicherheitsprobleme zu vermeiden, besteht darin, einen automatisierten Paket-Schwachstellen-Scanner in Ihre CI/CD-Pipeline zu integrieren. Es ist jedoch ratsam, sich nicht allein darauf zu verlassen, sondern weitere Schritte zu unternehmen, um die Chancen zu erhöhen, alle potenziellen Schwachstellen in Paketen zu finden.

Halten Sie Ihre Pakete so kompakt wie möglich

Je mehr Code und Abhängigkeiten in einem Paket stecken, desto schwieriger kann es für Schwachstellen-Scanner sein, alle Ebenen zu entpacken und Anfälligkeiten zu erkennen. Außerdem ist es schwieriger, ein Problem zu beheben und das Paket neu zu erstellen, wenn es viele Objekte enthält.

Am besten stellen Sie sicher, dass jedes Paket, das Sie erstellen, nur den Code und diejenigen Ressourcen enthält, die notwendig sind, um die gewünschte Funktionalität bereitzustellen. Widerstehen Sie der Versuchung, mehrere Komponenten einer Anwendung in ein einziges Paket zu packen.

Scannen Sie schon früh im Entwicklungszyklus

Das Scannen zu einem möglichst frühen Zeitpunkt bietet zwei Vorteile. Zum einen sind Schwachstellen zu einem früheren Zeitpunkt in der CI/CD-Pipeline leichter zu beheben, da Sie noch nicht so viel investiert haben. Zum anderen müssen Sie Tests wiederholen, wenn Sie mit dem Scannen warten, bis Sie andere Arten von Tests mit Ihren Packages durchgeführt haben, Sie eine Sicherheitslücke entdecken und das Paket neu erstellen müssen.

Priorisieren Sie gefundene Vulnerabilities

Eine lange Liste “potenzieller” Schwachstellen in einem Paket ist nicht sehr hilfreich, wenn Ihr Team Schwierigkeiten hat, zu beurteilen, welche Schwachstellen so gravierend sind, dass sie das betreffende Paket nicht mehr nutzen können. Vermeiden Sie dieses Problem, indem Sie in einen Scanner investieren, der eine effektive Risikobewertung und Priorisierung der Schwachstellen auf der Grundlage einer Analyse der tatsächlichen Auswirkungen der einzelnen Schwachstellen auf Ihre Sicherheit erlaubt. So können Sie schnell und einfach feststellen, welche Schwachstellen ein schwerwiegendes Problem darstellen und welche Sie einfach ignorieren können.

Scannen Sie alle Pakete – auch wenn Sie der Quelle vertrauen

Manchmal stammen die von Ihnen bereitgestellten Pakete nicht von Ihnen selbst, sondern von Drittanbietern. Auch in diesen Fällen ist es wichtig, dass Sie die Pakete scannen, unabhängig davon, wie vertrauenswürdig die Herkunft ist.

Investieren Sie in eine umfassende Schwachstellendatenbank

Open-Source-Scanner (SCA-Tools) sind nur so effektiv wie die Schwachstellendaten, mit denen sie gefüttert werden. Wenn Ihre Vulnerability-Datenbank nicht alle bekannten Schwachstellen enthält, kann Ihr Scanner sie nicht erkennen. Aus diesem Grund lohnt es sich, in eine Schwachstellen-Scan-Lösung von spezialisierten DevOps- und Security-Plattform-Anbietern zu investieren, die eine umfassende Schwachstellen-Datenbank nutzen, welche auf mehrere Quellen von Bedrohungsinformationen zurückgreift – einschließlich öffentlicher, proprietärer und interner Security Research Expertise.

Die JFrog Software Lieferketten-Plattform

Die JFrog-Plattform ist eine universelle Software Supply Chain-Lösung für DevOps, Security und MLOps. Mit über 50 Integrationen kann sie Ihr gesamtes Tool-Ökosystem abdecken  und bietet automatisiertes, integriertes, erweiterbares und sicheres Software Supply Chain Management.

Erfahren Sie hier mehr über Themen rund um Sicherheit in der Software-Lieferkette, oder probieren Sie JFrog direkt aus, indem Sie,  hier Ihre kostenlose Testversion starten.

Mehr zum Thema Security

JFrog Xray SCA Scanner

Eine universelle Software Composition Analysis-Lösung, für die proaktive Identifizierung von Schwachstellen.

JFrog Xray entdecken

JFrog Open Source Curation

Verwenden Sie Open-Source-Software ohne Bedenken, indem Sie nur zugelassene Komponenten verwenden und schädliche Pakete blockieren.

Jfrog Curation entdecken

JFrog Advanced Container Scanning

Die kontextbezogene Analyse prüft Container-Images und zeigt je nach Build-Anforderungen Prioritäten und konkrete Abhilfemaßnahmen auf.

Webinar ansehen

Jetzt JFrog Software Supply Chain Platform entdecken