Zero Day Patching – Aber wie?

Man kennt es: Für eine der Anwendungen, die im Unternehmen verwendet werden, wurde eine Sicherheitslücke (CVE = Common Vulnerabilities and Exposures) gemeldet. Der erste Impuls ist für gewöhnlich auf der Website des Herstellers nachzusehen, ob dieser bereits einen Patch zur Verfügung gestellt hat. Doch manchmal ist keiner vorhanden. Dann stellt sich die Frage: Was jetzt?

In diesem Zusammenhang ergeben sich weitere Fragen: Wie kann ich meine Anwendung schützen, wenn noch keinen Hersteller-Patch zur Verfügung steht? Die drastischste Methode bestünde darin, die Anwendung „offline“ zu nehmen. Doch auch dies würde Folgen nach sich ziehen: sowohl unzufriedene Kunden als auch eine verärgerte Geschäftsführung. Dies gilt es in jedem Fall zu verhindern. Dafür stehen verschiedene Alternativen zur Verfügung.

ADC – Was ist ein Application Delivery Controller?

Zwischen Benutzer und Anwendung kommt in den meisten Fällen ein Application Delivery Controller zum Einsatz. Ein ADC ist ein Load Balancer und bietet neben klassischen Load Balancing Funktion meist auch einen erweiterten Funktionenumfang. Diese können beispielsweise aus einer integrierten Web Application Firewall oder aus einem Skript-Modul bestehen, wodurch die Möglichkeit geschaffen wird, den ADC in seinem Funktionsumfang individuell zu erweitern.

Mittels Skript-Modul und passendem Skript kann Ihnen die SVA dabei helfen, das Verhalten des Load Balancers Ihren individuellen Bedürfnissen anzupassen. Als Skriptsprache kommen dabei z.B. TCL oder LUA zum Einsatz. Diese sind von einem neuen Anwender mit wenig Aufwand zu verstehen und zu erlernen.

Sicherheitslücke per Patchskript einschränken

Wenn die passende Voraussetzung in der Infrastruktur gegeben sind, lässt sich in der Regel mit ein paar Zeilen Code die Umsetzung eines eigenen Patches auf dem ADC durchführen. Hierbei gilt es im Vorfeld zu analysieren, wie genau die Ausnutzung einer Sicherheitslücke (Attacke) im Detail aussieht. Im Anschluss werden die notwendigen Kriterien für den Patch festgelegt und umgesetzt.

Im Folgenden wird beispielhaft kurz erläutert, wie sich eine Sicherheitslücke per Skript reduzieren lässt. In diesem Beispiel handelt es sich um eine Sicherheitslücke innerhalb von MS Exchange.

Als kleine Hilfestellung dient die nachstehende Abbildung, denn in der Regel ist es hilfreich, sich die notwendigen Schritte zuerst einmal vor Augen zu führen:

Innerhalb der Schritte müssen folgende Fragen gerklärt werden:

  1. Handelt es sich bei dem Client um einen internen Client? In diesem Beispiel möchten wir erreichen, dass externe Clients das anfällige System nicht nutzen können.
  2. Ist die HTTP-Methode ein „POST“ und richtet sich gegen PFAD „/ews/exchange.asmx“?
  3. Beinhaltet der „BODY“ den String „PushSubscriptionRequest“?

Sind diese Fragen geklärt, erfolgt die Umsetzung des Skiptes*:
[javascript]
client_ip = avi.vs.client_ip()
if avi.ipgroup.contains(„Internal“, client_ip) == false then
if avi.http.method() == „POST“ and string.beginswith(string.lower(avi.http.get_path()), „/ews/exchange.asmx“) then
body = avi.http.get_req_body(100)
if string.match(string.lower(body), „pushsubscriptionrequest“) then
avi.http.response(403, {content_type=“text/html“},“Access Denied! PushSubscriptionRequest.“)
end
end
end
[/javascript]
*Das Beispiel-Skript ist für die „AVI Vantage Plattform“ konzipiert.

Das Resultat

In diesem Beispiel steht die MS Exchange Anwendung sowohl den internen Anwendern, als auch den externen Anwendern weiterhin ohne Einschränkung zur Verfügung (OWA, Active Sync, etc.). Lediglich ein kleiner Teil der zur Verfügung stehenden Dienste wurde in ihrem Funktionsumfang limitiert. Die Nutzung des „Exchange Web Service“ (EWS) ist bis auf „Push Subscription Request“ weiterhin möglich.

Hinweis

Es empfiehlt sich die Skripte zunächst in einer Test- oder Staging-Umgebung zu testen und anschließend auf den Produktivsystemen auszurollen. Dabei bitte beachten, dass mittels Patchskript nur die Ausnutzung der Sicherheitslücke verhindert oder reduziert werden kann, nicht aber die Sicherheitslücke selbst innerhalb der Anwendung behoben wird. Das Patchen der Anwendung sollte weiterhin angestrebt, eingeplant und durchgeführt werden.

Fazit

Das Zero Day Patching per Application Delivery Controller ist nur eine von vielen denkbaren Möglichkeiten eine Sicherheitslücke zu schließen bzw. einzugrenzen. Erfahrungsgemäß ist das Verhältnis zwischen Aufwand und Nutzen als sehr positiv zu bewerten, denn mit wenigen Handgriffen kann das Sicherheitsrisiko um ein Vielfaches reduziert werden, ohne dabei das „Daily Business“ zu stören. Die Kundenzufriedenheit kann also beibehalten werden. In jedem Szenario gilt es jedoch die notwendigen Faktoren sorgfältig abzuwägen und auf die Gegebenheiten anzupassen, da es selten eine Universallösung gibt.