Diese Webseite nutzt nur technisch notwendige Cookies.

Schwachstellen erklärt – Was sind CVEs? + Patch-Tipps

CVEs erklärt - Hacking Series Tutorial Steffen Lippke

Was sind CVEs?

Wie kann ich Schwachstellen beheben?

Und wie kann ich das ganze Patching lösen – was mir total auf den Keks geht.

Starten wir!

Was sind CVEs?

NIST CVEs sind ein gute Quelle
NIST CVEs sind ein gute Quelle

Die „Common Vulnerabilities and Exposures“ (CVE) sind Schwachstellen in der Software von Computern. Schwachstellen sind Logik-Fehler, eine unsichere Validierung, klar lesbare Passwörter oder andere Fehler, welche eine „sichere“ Software unsicher macht.

Schwachstellen sind eine Unterkategorie von einem Fehler (Bug) in einer Software, welche unzureichende Qualität anzeigen. Ganz lassen sich Schwachstellen nicht vermeiden, weil der Mensch schnell etwas vergisst und übersieht. Diese Schwachstellen nutzen Kriminelle aus, um sich Zugang zu einem System zu verschaffen. Sie erlangen weitreichende Rechte und können Daten löschen, verschlüsseln oder extrahieren.

Was machen Kriminelle mit Schwachstellen?

Metasploit - Kriminelle oder Pentester nutzen Exploits
Metasploit – Kriminelle oder Pentester nutzen Exploits

Das Gegenstück zu Schwachstellen sind Ausnutzung (Exploits). Diese sind Schadcode, welcher perfekt zugeschnitten auf die Schwachstelle diese ausnutzen. Kriminelle programmieren Exploits meistens nach Veröffentlichung eine Schwachstelle schnell, um die Schwachstelle für ihre Zwecke zu missbrauchen.

Im schlimmsten Fall …

Ein Krimineller kann eine Schwachstelle entdeckt, sodass er selbst einen Exploit entwickeln kann. Dieser Exploit funktioniert dann beim „ersten Schuss“ fast immer, weil bis jetzt der Weltöffentlichkeit diese Schwachstelle noch nicht bekannt ist (0-Day-Exploit).

Was sind die Serverity?

CVE ist nicht gleich CVE.

Ein erfahrener Analyst (z. B. Vom National Instiute of Standardisation and Technology, NIST) rankt die Schwachstellen auf einer Skala von 0 bis 10. Ein CVE von 0 ist irrelevant, während ein CVE von 10.0 dem Kriminellen einen unkomplizierten Zugang zu einem Computer / Software ermöglichen. Schwere CVEs können in kurzer Zeit viel Schaden anrichten.

Severity berechnen - je nach Kategorie
Severity berechnen – je nach Kategorie

Auf der anderen Seite kann drei 6.0 CVEs clever hintereinander geschaltet das Gleiche erreichen. Der Aufwand und die Menge an Gehirnschmalz steigen aber überproportional!

Wie kann ich Schwachstellen beheben?

Patching

Die sinnvollste Lösung ist es den Patch des Herstellers einzuspielen. Diese Lösung ermöglicht die vollständige Schließung der Schwachstelle.

Die Realität zeigt oft das der Patch noch einen Patch braucht, weil die Entwickler die Patches mit der heißen Nadel stricken. Es kommt der Hotfix vom Patch. Wenn ein Hersteller einmal eine Schwachstelle findet, überprüft er (hoffentlich) im großen Stil nach weiteren (ähnlichen) Schwachstellen. Ein Bug kommt selten alleine.

Ausschalten

Wenn kein Patch verfügbar ist, kannst Du die Software deaktivieren. Speichere die Daten ab und ziehe einfach den Netzstecker des Geräts. Manche Software läuft noch, ist aber sei Jahren nicht mehr im Einsatz.

Module ausschalten

Brauchst Du wirklich jedes Addon?
Brauchst Du wirklich jedes Addon?

Oft besteht eine Software aus mehreren Komponenten. Solange nicht die Kernsoftware betroffen ist, kannst Du die Module ausschalten. Bei Browsern sind das Plugins, bei Software Bibliotheken oder bei Windows Services. Wenn diese Module nicht in aktiver Nutzung sind, solltest Du diese Option prüfen und umsetzen.

Eigene Lösung

Wenn die Software (teilweise) Open-Source ist, kannst Du schnell selbst Hand anlegen oder die Software zu modifizieren, dass ein bestimmter Exploit gestoppt wird. Diese Varianten sind zeitlich nur sinnvoll, wenn Du Dich mit der Codebasis gut auskennst.

Bitte, so nicht:

  • Fuzzing: Eine schlechte Methode ist es, das Gerät unerkenntlich zu machen oder die Existenz der Software im Netzwerk mit verschiedenen Methoden zu verschleiern. Wenn der Kriminelle doch die Kiste entdeckt, hat der Aufwand nichts gebracht.
  • Risikoakzeptanz: Wenn für eine Schwachstelle kein Patch verfügbar ist, dann kann ein Vorgesetzter bzw. die Geschäftsleitung das Risiko eines Angriffs übernehmen. Das löst das Problem nicht, aber das Thema ist vom Tisch.
  • Vom Netz trennen: Die Software könnte weiterlaufen, wenn Du das Gerät physisch vom Unternehmensnetzwerk / Internet trennst. Die direkte Gefahr ist gebannt. Was passiert, wenn der Hacker schon im Netz ist?

Muss ich patchen?

Das Patching ist generell empfohlen.

Eine Software mit bekannten Lücken ist immer eine Gefahr. Das Patching kostet Zeit und kann auch zu unerwarteten Fehlern führen. Bereite den Patch vor, bevor Du den Patch auf die Produktivsysteme einspielst.

Wann sollte man nicht patchen?

Besonders kritische Systeme wie ein Core-Router solltest Du nicht zum Peak-Load patchen.

Ein ungetesteter Patch kann zu mehr Problemen führen, als das Risiko zu akzeptieren. Plane deshalb schon bei der Architektur von Netzwerken und Systemen eine Redundanz ein. Software Systeme wie Kubernetes erlauben das fliegende Wechseln von Hardware und Software Systeme, ohne das der Nutzer eine Ausfallzeit erleiden muss.

Kann man Patching automatisieren?

Heutzutage kannst Du viele Software im laufenden Betrieb wechseln.

Ein Kernel-Live-Patching ermöglicht das Austauschen von zentralen Software-Komponenten, ohne den Computer neu zu starten. Noch besser sind verteilte Systeme, dessen Teilsysteme (einzelne Computer oder Docker-Container) auf unterschiedlichen Versionsständen betrieben werden. Falls ein Patch Probleme verursacht, können die anderen Systeme das kaputte System ersetzen. Auf der andern Seite kann eine aktualisierte Instanz zeigen, dass der Patch funktioniert.

Bedenke:

  • Lastverteilung: Wenn eine Hardware oder Softwareinstanz nicht funktioniert, dann muss eine Lasterverteiler (Loadbalancer) die Inhalte umlenken. Selbst ein Lastverteiler kann ausfallen, deshalb sollten diese redundant vorkommen.
  • Erwarte Fehler: Software und Hardware ist nicht perfekt, weil Menschen die geschaffen haben. Selbst Ingenieure können die Maschinen sind nicht perfekt planen, umsetzen und in Produkt setzen. Deshalb muss der Architekt bei vielen Entscheidungen für die Software und Hardware von häufigen Fehlerfällen ausgehen. Was macht das Gesamtsystem, wenn ein Teil ausfallen? Es ist nicht mehr das Hauptziel mehr, dass z. B. die CPU 10 Jahre Dauerbetrieb überstehen kann. Wichtig ist, dass bei Vorboten eines Fehlerfalls eine Übergabe geschmeidig stattfindet.
  • Falle weich: Wenn es zu einem Fehlerfall kommt, sollte das System nicht in Panik verfallen oder gar einfrieren. Bei Anzeichen eines Fehlers oder bei einer längeren Wartezeit soll der Loadbalancer die Anfragen zu einer anderen Instanz sofort umleiten.

Wie kann man Schwachstellen in Software reduzieren?

Menschen machen Fehler.

Fehler sind Bugs in Software.

… und manche Bugs sind Schwachstellen.

Dein Team kann die Anzahl der Bugs drastisch reduzieren, wenn die Code-Änderungen ein zweiter oder dritter Entwickler diese überprüft. Des Weiteren gibt es Compiler und Scanner, welche häufige Vulnerabilitäten erkennen. Bei der Wahl der Programmiersprache ist eine Programmiersprache vom Vorteil, welche keine Buffer-Overflows erlaubt oder Null-Pointer-Exceptions wirft.

Wie kann ich das Patching in meinem Unternehmen reduzieren?

  • Mehr automatisieren (Auto-Patching, Hot-Code-Replace)
  • Weniger Software nutzen – die ganze unbenutzte Software herauswerfen
  • Eine Software nach Patchbarkeit auswählen und eine Strategie vor der Installation des Systems überlegen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert


Jeden Monat teile ich mit Mitgliedern
4 neue praxisnahe Tutorials (je 1000+ Wörter).


Trage Deine Mail, damit Du
Deine Coding + Hacking Skills erweitern kannst!