Skip to main content

Die vier Schritte der Schwachstellenbehebung

wordpress-sync/java-survey-2021-header

16. Februar 2021

0 Min. Lesezeit

Der wichtigste Bestandteil des Schwachstellen-Managements ist die Beseitigung vorhandener Sicherheitsrisiken. Schließlich ist die Anzahl geschlossener Schwachstellen einer der wichtigsten Indikatoren für die Leistungsfähigkeit Ihres Schwachstellen-Managements.

Wozu dient das Schwachstellen-Management?

Kunden, Partner, Beschäftigte und Aufsichtsbehörden erwarten, dass Unternehmen Richtlinien und Prozesse aufstellen, um Daten dauerhaft und wirksam vor versehentlichem und mutwilligem Verlust und Offenlegung zu schützen. Auch Störungen und Verlangsamungen des Systems werden nicht geduldet. Kurzum: Die Beseitigung von Schwachstellen ist immer öfter geschäftsentscheidend.

Was wird unter Schwachstellenbehebung verstanden?

Bei der Schwachstellenbehebung handelt es sich um ein Verfahren zur Beseitigung festgestellter Anfälligkeiten, einschließlich Bugs und Sicherheitslücken. Sie beinhaltet die vier Schritte Durchsuchung und Prüfung, Priorisierung, Beseitigung und fortlaufende Kontrolle.

In diesem Artikel geht es vor allem um die Priorisierung und Problembeseitigung und die Aufstellung eines gleichermaßen skalierbaren wie wirksamen Verfahrens zur Schwachstellenbehebung.

Mit diesen vier Schritten beheben Sie die Schwachstellen

  1. Finden: Mithilfe von Scans und Tests wird nach Schwachstellen gefahndet.

  2. Priorisieren: Es wird ermittelt, welche Schwachstellen ein besonderes Risiko darstellen.

  3. Beheben: Mithilfe von Patches, Sperren und anderen Methoden werden die Sicherheitsrisiken behoben.

  4. Kontrollieren: Projekte und Codes werden automatisch auf neu entdeckte Schwachstellen hin überwacht. Diese werden auf unterschiedlichen Wegen direkt gemeldet.

wordpress-sync/vulnerability-remediation-process-2

1. Schwachstellen finden

Bevor es an Priorisierung und Problembeseitigung geht, sollten Sie sich vor Augen führen, was genau unter Schwachstellen zu verstehen ist und wie sie zu erkennen sind.

Was ist eine Sicherheitslücke?

Als Sicherheitslücken werden Programmierfehler und fehlerhafte Konfigurationen bezeichnet, die die Manipulation von Anwendungen, Diensten, Bibliotheken, Containern oder Funktionen ermöglichen. Dabei wird unter anderem versucht, die Leistungsfähigkeit des Systems zu beeinträchtigen, Daten abzugreifen oder Rechenleistung zu kapern. Systeme und Anlagen, auf die von unsicheren Komponenten aus zugegriffen werden kann, sind ebenfalls gefährdet.

Als Sicherheitslücken werden Programmierfehler und fehlerhafte Konfigurationen bezeichnet, die die Manipulation von Anwendungen, Diensten, Bibliotheken, Containern oder Funktionen ermöglichen. Dabei wird unter anderem versucht, die Leistungsfähigkeit des Systems zu beeinträchtigen, Daten abzugreifen oder Rechenleistung zu kapern. Systeme und Anlagen, auf die von unsicheren Komponenten aus zugegriffen werden kann, sind ebenfalls gefährdet.

So wird beim Programmieren von Software gern übersehen, eine Benutzerauthentifizierung einzurichten oder diese ausreichend zu kontrollieren. In diesem Fall wird beispielsweise nur ein einziger Faktor abgefragt, anstatt auf die empfohlene Mehrfaktor-Authentifizierung zu setzen. Diese Art Schwachstelle öffnet Tür und Tor für Man-in-the-Middle-Angriffe (MITM), mit denen Hacker die Kontrolle über den Datenverkehr übernehmen können. Sicherheitsteams und Hacker finden regelmäßig neue Schwachstellen wie Log4Shell. Häufige Scans sind also unverzichtbar.

Der erste Schritt der Schwachstellenbehebung besteht somit darin, die Schwachstellen überhaupt erst zu erkennen. Ein ausgereiftes Schwachstellen-Management nimmt daher mit Blick auf DevSecOps einen sogenannten Shift-Left vor. Die Suche nach Schwachstellen wird dabei in einen sicheren SDLC (Softwareentwicklungs-Lebenszyklus) eingebettet. Um die CI/CD-Pipeline nicht zu gefährden, werden in Entwicklungs-, Test- und Produktionsumgebungen zudem automatische Prüftools eingesetzt. Dazu zählen unter anderem:

Besondere Aufmerksamkeit erfordert auch das Thema Container-Sicherheit. Vor allem Containerabbilder und ausgeführte Containerinstanzen sowie deren Anbindungen sollten auf Schwachstellen hin überprüft werden. Zudem ist sicherzustellen, dass Drittanbieter-Containerimages ausschließlich von vertrauenswürdigen Quellen bezogen werden. Aus Kubernetes-Sicherheit ergeben sich ebenfalls eine Reihe von Herausforderungen beim Schwachstellen-Scan. Denn wird auch nur ein Cluster gehackt, ist das gesamte Netzwerk in Gefahr.

2. Schwachstellen priorisieren

Der nächste Schritt der Schwachstellenbehebung besteht in der Priorisierung der gefundenen Schwachstellen.

Ein häufiger Fehler in der Anwendungssicherheit besteht in diesem Zusammenhang darin, zu viele Dinge auf einmal erledigen zu wollen. Denn dann verschwendet man übermäßig viel Zeit mit Detailfragen zu bestimmten Schwachstellen.

Brendan Dibbel, Teamleiter Anwendungssicherheit bei Toast

Für welche Herangehensweise Sie sich in Sachen Sicherheitsmanagement auch entscheiden: Nicht alle festgestellten Schwachstellen bergen dasselbe Risiko. Deshalb gilt es, Gefahrenpotenzial, Behebbarkeit, Tragweite und Compliance immer wieder neu gegeneinander abzuwägen. Bei einer risikoorientierten und kontextbezogenen Priorisierung kann das Schwachstellenbehebungs-Team seine begrenzten Ressourcen so ganz auf die wichtigsten Probleme konzentrieren.

Mit einiger Wahrscheinlichkeit handelt es sich bei über 80 % der festgestellten Schwachstellen um falsch-positive Ergebnisse. Weitere 18 % stellen lediglich ein geringes Risiko dar und 2 % müssen tatsächlich behoben werden.

Die cloudnative Plattform für die Anwendungssicherheit von Snyk unterstützt die Priorisierung von Schwachstellen auf mehreren Wegen:

  • Relevante Daten zu Schwachstellen: Mit Snyk erhalten Sie praxisnahe Daten etwa zum Schweregrad, zur Behebbarkeit, zum (allgemeinen und projektbezogenen) Risiko, zur (zahlenmäßigen) Bedeutung und zur Bestandsdauer von Schwachstellen.

  • Präzise risikoabhängige Priorisierung: Die Schwachstellen-Datenbank von Snyk wertet Daten aus diversen öffentlichen und privaten Quellen aus. So entsteht ein einzigartiges Verzeichnis bekannter wie auch unbekannter Schwachstellen, denen zudem ein exakt kalkulierter Risikoscore zugeordnet wird.

  • Analysen auf Anwendungsebene: Snyk nutzt Ausführungs- und Laufzeitdaten, Kubernetes-Konfigurationsdaten und Signale ausgeführter Container, um die Bedeutung der einzelnen Schwachstellen abzuschätzen. Denn anfällige Funktionen, die überhaupt nicht aufgerufen werden, sind natürlich weniger dringlich.

  • Präzise Sicherheitsvorschriften: Bei der Priorisierung von Schwachstellen sind auch die Sicherheitsrichtlinien des Unternehmens zu berücksichtigen. Je kleinteiliger die Sicherheitskontrollen also aufgestellt werden, desto genauer ist auch die daraus folgende Priorisierung der Schwachstellen. Mit Snyk können Sie mithilfe von Tags und Attributen projektbezogene Sicherheitsrichtlinien aufstellen.

3. Schwachstellen beheben

Der dritte Schritt der Schwachstellenbehebung besteht darin, die festgestellten Schwachstellen zu beheben.

Oftmals beinhaltet dies Upgrades oder Patches, die von den jeweiligen Softwareanbietern empfohlen werden. Daraus ergeben sich jedoch wiederum ganz eigene Herausforderungen. Denn die Erprobung und Ausführung dieser Patches und Upgrades bedeutet einen erheblichen Zeit- und Ressourcenaufwand. So müssen geschäftskritische Systeme während der Bereitstellung mitunter abgeschaltet werden. Und immer besteht auch die Gefahr, dass ein Patch unerwartete Auswirkungen auf die jeweilige Anwendung oder ihre Abhängigkeiten hat.

Glücklicherweise gibt es auch weniger riskante Möglichkeiten, Schwachstellen zu beseitigen oder sich zumindest etwas Handlungsspielraum zu verschaffen. So lassen sich gefährdete Systeme, Plattformen und Systemkonfigurationen auch einfach aktualisieren. Oder Sie schalten anfällige Prozesse bzw. Funktionen ab oder entfernen ungenutzte Komponenten, von denen eine Gefahr ausgeht.

4. Schwachstellen im Blick behalten

Wie der gesamte SDLC ist auch die Schwachstellenbehebung ein fortlaufender Prozess. Und dieser erfordert ein aufmerksames Monitoring. Zu diesem Zweck sollten Sie Ihre Projekte und Quellcodes automatisch auf neu entdeckte Schwachstellen hin überwachen und entsprechende Warnhinweise einrichten.

Im Idealfall übernimmt das dazu eingesetzte Tool auch die kontextbezogene Priorisierung und unterstützt damit die ersten beiden Schritte der Schwachstellenbehebung (Suche und Priorisierung). Denn andernfalls besteht die Gefahr, dass zu viele irrelevante Schwachstellen gemeldet werden und die Warnungen mit der Zeit ignoriert werden. Man sollte also darauf achten, dass die Teams nicht durch übermäßig viele Meldungen abstumpfen und sich ganz auf die wirklich wichtigen Dinge bei der Behebung konzentrieren können.

Die fortlaufende Kontrolle bildet hier zwar erst den vierten Schritt, hätte mit Blick auf ihre Bedeutung aber auch den ersten Platz verdient.

Zwar sind die vier Schritte der Schwachstellenbehebung äußerst wichtig. Wichtig ist aber auch, dass Sie über geeignete Werkzeuge verfügen, um den Prozess zu koordinieren und effizienter zu gestalten.

Fast jedes Unternehmen steht vor derselben Herausforderung: ein überschaubares Sicherheitsteam, eine riesige Entwicklungsabteilung – und ständige Veränderungen.

Anstatt also zu versuchen, alles auf einmal zu erledigen, sollten Sie sich darauf konzentrieren, dem Engineering Tools an die Hand zu geben, um selbst für Sicherheit sorgen zu können.

Brendan Dibbel, Teamleiter Anwendungssicherheit bei Toast

Unterstützten Sie Ihre Entwickler mit geeigneten Tools dabei, Schwachstellen zu finden und zu schließen. So kann Snyk helfen:

  • Sofortige Sperren: Die SCA-Tools von Snyk finden sämtliche Instanzen, die von einer Schwachstellen betroffen sind, und wehren Angreifer unverzüglich und zielgenau ab.

  • Bessere Orientierung: Moderne Anwendungen sind weitverzweigt, ereignisabhängig und cloudnativ, was die Suche nach Programmierfehlern und unsicheren Komponenten deutlich erschwert. Deshalb unterstützt Snyk Entwickler mit konkreten Handlungsempfehlungen.

  • Automatische oder manuelle Upgrades für sichere schwachstellenfreie Versionen: Snyk aktualisiert direkte Abhängigkeiten auf weniger anfällige Versionen – durch den automatischen Abruf von Fixes oder mithilfe entsprechender Aufforderungen an das Team.

  • Beseitigung von Schwachstellen: Snyk überprüft automatisch, ob Branches vorhanden sind, und ruft dann passgenaue Fixes ab. Andernfalls werden neue Branches und entsprechende Pull-Requests erstellt.

FAQ

Was wird unter Schwachstellen-Scans und -Tests verstanden?

Bei Schwachstellen-Scans werden Anwendungen und Systeme mit einer Datenbank bekannter Programmier- und Konfigurationsfehler abgeglichen. Dabei werden sie auch auf ihre Anfälligkeit hin überprüft. Schwachstellen-Scans und -Tests sollten automatisch erfolgen und während des gesamten Softwareentwicklungs-Lebenszyklus in die CI/CD-Pipeline eingebunden werden.

Wie lassen sich Schwachstellen richtig priorisieren?

Mit Snyk priorisieren Sie Schwachstellen anhand von Risikoscores, die auf verschiedenen Datenquellen zu Schwachstellen und Bedrohungsinformationen basieren. Einige davon sind zwar öffentlich zugänglich, sollten aber stets um Praxisdaten (aus Entwicklung, Wissenschaft usw.) ergänzt werden.

Wie lässt sich anfällige Software entfernen?

Meist werden verwundbare Programme mittels Patches oder Upgrades der Softwareanbieter beseitigt. Zur Behebung von Schwachstellen können aber auch andere Verfahren angewendet werden. Hierzu zählt unter anderem die Aktualisierung von Systemen bzw. Konfigurationen und die Löschung/Deaktivierung ungenutzter Komponenten, die als Sicherheitsrisiko identifiziert wurden.

wordpress-sync/java-survey-2021-header