Die vielen Gesichter des Patchings
Um Ihre Systeme auf dem neuesten Stand zu halten, gibt es viele verschiedene Möglichkeiten, die jeweils ihre Vor- und Nachteile haben. Einige so genannte "Patching"-Methoden sind gar kein Patching. Hier finden Sie einen Leitfaden, der Ihnen hilft, sich mit den verschiedenen Patching-Angeboten vertraut zu machen.
Patching ist sowohl ein IT-Prozess als auch eine grundlegende Sicherheitspraxis. Es wird im Allgemeinen als der Prozess beschrieben, bei dem Probleme behoben oder Funktionen zu einem bestimmten System hinzugefügt werden, indem vorhandene Komponenten durch aktualisierte Komponenten ersetzt werden. Dies kann auf vielen verschiedenen Ebenen geschehen, z. B. durch die Aktualisierung von Code auf der Ebene von Subsystemen, Abhängigkeiten oder Kernfunktionen. Ebenso können Sie bestimmte Anwendungen, Betriebssysteme, Treiber oder jede andere Komponente patchen.
Das Ziel ist zwar immer, eine aktuellere Version der gepatchten Software zu haben, aber die Art und Weise, wie Sie dies erreichen, ist der Unterschied zwischen den verschiedenen Patching-Ansätzen.
Wie andere Begriffe in der IT-Branche, z. B. Debugging, geht auch Patching auf einen physikalischen Prozess zurück. Es bezog sich auf das tatsächliche Abdecken von Löchern in Lochkarten, d. h., man "flickte" einen Abschnitt des Codes. Dies scheint aus der Mode gekommen zu sein, daher werden wir stattdessen die moderneren Ansätze behandeln.
Traditionelles Patching
Dies ist den meisten Menschen als Patching bekannt. Es besteht darin, aktualisierte Versionen einer bestimmten Software herunterzuladen und dann die entsprechenden Dateien auf der Festplatte durch die neuen Versionen zu ersetzen.
Es ist relativ einfach zu implementieren und leicht zu verstehen: Sie haben eine alte Version einer bestimmten Software, die durch eine neue Version ersetzt wird, entweder ganz oder teilweise. Sie müssen die Anwendung neu starten oder das System neu starten, um die neue Version zu übernehmen, aber es gibt keine anderen beweglichen Teile. Darin liegt natürlich auch der größte Nachteil: Der Neustart von Anwendungen oder der Neustart ganzer Systeme ist ein langsamer Vorgang, der eine erhebliche Unterbrechung der laufenden Arbeitslast verursacht. Aus diesem Grund kann dies nicht ad hoc erfolgen, sondern findet in der Regel in einem so genannten "Wartungsfenster" statt, d. h. in einem vorab genehmigten Zeitraum, in dem mit Verfügbarkeits- oder Leistungsproblemen zu rechnen ist.
Auch hier ist die Einrichtung langwierig, und im Falle von Problemen kann es zu einer Überschreitung der veranschlagten Zeit kommen.
Virtuelles Patchen
Dies ist etwas, das "Patching" im Namen trägt und auf den ersten Blick Patching-Ergebnisse zu liefern scheint, aber in Wirklichkeit auf einer völlig anderen Ebene arbeitet. Es findet keine tatsächliche Code-Ersetzung oder -Korrektur statt mit virtuellem Ausbessern. Es besteht darin, die Erkennung von Bedrohungen auf der Firewall-Ebene zu implementieren und bekannte Angriffsmuster zu blockieren. Aus der Sicht eines Angreifers schlägt der Angriff fehl, so dass der Angreifer davon ausgehen kann, dass das System gepatcht ist, obwohl dies in Wirklichkeit nicht der Fall ist.
Diese Methode des "Patchens" hat mehrere Nachteile: Man erhält davon zu keinem Zeitpunkt tatsächlich korrigierten Code in die Systeme, da der Schutz nur bekannte Angriffsmuster abdeckt - was rein lokale Probleme sofort ignoriert und durch Änderungen im Netzwerkverkehr, die einer bestimmten Bedrohung entsprechen, überlistet werden kann.
Wenn die Nachteile diese "Patching"-Methode nicht sofort disqualifizieren, dann gehören zu den Vorteilen, dass es keine Unterbrechungen gibt (da nichts innerhalb eines Systems geschieht), dass eine einzige Bereitstellung mehrere Systeme abdecken kann (es handelt sich eigentlich um einen modifizierten Anwendungs-Firewall-Prozess) und dass, wenn neue reine Remote-Bedrohungen hinzukommen, die Systeme dahinter sofort geschützt werden.
Firmware-Patching
Die Firmware-Aktualisierung ist ein Sonderfall des herkömmlichen Patchings, mit dem zusätzlichen Vorbehalt, dass Sie Code patchen, der auf normalerweise schwer zu aktualisierenden Speichermedien enthalten ist - direkt in EPROM (erasable programmable read-only memory) Chips. Dies war früher die Norm für frühe intelligente Geräte und IoT-Geräte der ersten Generation. Die Software wurde im Werk geladen und erhielt nur selten - wenn überhaupt - Aktualisierungen. Das lag zum Teil daran, dass Aktualisierungen und Sicherheit nicht so wichtig waren wie heute, aber auch daran, dass die Art und Weise, wie die Software gespeichert wurde, die Aktualisierung erschwerte. Bei neueren Geräten ist der Code ganz oder teilweise auf Standardmedien wie SSDs, SD-Karten o. Ä. gespeichert, die viel einfacher zu ändern sind.
Wenn der Code auf Chips lief, die mit spezieller Schreibhardware mit eigenen Softwareanforderungen und Kabeln verbunden werden mussten, kam eine zusätzliche Ebene der Komplexität hinzu, die den gesamten Prozess für die meisten IT-Teams sehr unattraktiv machte. Infolgedessen wurden diese Geräte während ihrer gesamten Nutzungsdauer einfach nie aktualisiert. Leider gibt es immer noch viele davon: Druckserver, IP-Kameras und Sensoren in Rechenzentren sind gute Beispiele für Geräte, die auf diese Weise funktionieren.
Live-Patching
Beim Live-Patching wird laufender Code geändert und bekannte fehlerhafte Abschnitte oder Funktionen werden durch korrigierte Versionen derselben Abschnitte ersetzt. Dies geschieht vollständig im Arbeitsspeicher und erfordert keinen Neustart der Anwendung, damit die neuen Änderungen übernommen werden. In einem Moment enthält die Software einen Fehler in einer Funktion und im nächsten Moment wird stattdessen eine korrigierte Version dieser Funktion verwendet.
Es gibt keine Neustarts, keine Reboots und keine Unterbrechungen. Aus diesem Grund können Patches sofort bereitgestellt werden, da der Vorgang kein Wartungsfenster benötigt, um durchgeführt zu werden, was eine schnellere Reaktion auf neue Bedrohungen ermöglicht. Anstatt wie beim herkömmlichen Patching wochen- oder monatelang zu warten, bis ein Patch bereitgestellt wird, kann dies nun innerhalb von Stunden oder sogar Minuten nach Verfügbarkeit eines Patches geschehen.
Die zusätzliche Komplexität des Live-Patching entsteht bei der Erstellung des Patches. Der Patch muss so erstellt werden, dass er in den richtigen Speicherbereich geladen werden kann, wobei dieselben Variablengrößen und Ausrichtungen wie beim ursprünglichen Code verwendet werden. Diese Komplexität bleibt den Benutzern einer Live-Patching-Lösung verborgen, da sie nur für den Live-Patch-Anbieter sichtbar ist.
Ein Live-Patching-Subsystem ist seit über 10 Jahren in der Lage, Patches im Linux-Kernel zu verteilen, und es wurden mehrere verschiedene Lösungen entwickelt. KernelCare Enterprise ist ein Beispiel für eine solche Lösung und kann den Linux-Kernel, kritische Systembibliotheken, Datenbanken und sogar Hypervisoren live patchen.
Es gibt viele Varianten von Live-Patching, darunter temporäre und permanente. Dies bezieht sich auf die Art und Weise, wie das Live-Patching-Verfahren implementiert wird - entweder als Übergangslösung oder als dauerhafte Alternative zum herkömmlichen Patching.
Schlussfolgerung
Sie finden Informationen zum Vergleich von Live-Patching vs. virtuelles Patching hierund den Unterschied zwischen permanentem und temporärem Live-Patching hier.
Es gibt viele Möglichkeiten, das Patching anzugehen. Für jede Organisation, die sich auch nur im Geringsten um die Sicherheit ihrer Systeme, Daten und Benutzer kümmert, ist das Patchen eines der grundlegenden Probleme, das auf strategischer und operativer Ebene angegangen werden muss. Jede Umgebung hat ihre eigenen Besonderheiten, daher sollten Sie den richtigen Prozess für Ihre spezifische Situation wählen.


