„PrintNightmare“ abwehren

Die Druckerschwachstelle "PrintNightmare" ist ein besonders tückischer Zero-Day-Exploit. Wie Sicherheitsverantwortliche das Problem in den Griff bekommen, schildert Bhabesh Raj, Associate Security Analytics Engineer, LogPoint, in einem Gastbeitrag.

Am Microsoft Patchday im Juni 2021 wurde die Druckspooler-Schwachstelle CVE-2021-1675 auf Windows-Systemen behoben. Gleichzeitig wurde jedoch die weitere Schwachstelle CVE-2021-34527 entdeckt, die unter dem Namen „PrintNightmare“ durch die Medien ging. Bekannt werden konnte die Schwachstelle erst durch ein Forscherteam, das einen Proof-of-Concept (PoC) zur Schwachstelle veröffentlichte, nachdem es bei dieser fälschlicherweise annahm, es handele sich hierbei um die bereits gepatchte Druckspooler-Schwachstelle CVE-2021-1675. Aufgrund dieser Verwechslung wurde PrintNightmare zu einem Zero-Day-Exploit. Schnell waren eine Reihe von PrintNightmare PoC-Exploits im Umlauf, mit denen jeder authentifizierte Benutzer SYSTEM-Rechte für Systeme erhalten konnte, auf denen der Druckspooler-Dienst ausgeführt wird.

Zunächst wies Microsoft der Schwachstelle CVE-2021-1675 einen geringen Schweregrad zu, erhöhte diesen jedoch später auf „kritisch“. Die Schwachstelle ermöglichte nämlich Remote-Code-Ausführungen (RCE: Remote Code Execution) – zufälligerweise ist dies auch bei PrintNightmare der Fall, weshalb CVE-2021-1675 und PrintNightmare verwechselt wurden.

Da der Druckspooler-Dienst – mit Ausnahme von „Server Core“ – standardmäßig aktiviert ist, stellen die Schwachstellen ein schwerwiegendes Problem dar. Sie entsteht dadurch, dass jeder authentifizierte Nutzer einen neuen Druckertreiber installieren kann, mit einer Treiberdatei, die auf einem unternehmensinternen Server gespeichert ist. Der Druckspooler-Dienst führt auf diese Weise Code mit SYSTEM-Rechten aus. Die öffentliche Verfügbarkeit mehrerer PoCs öffnet kriminellen Akteuren hier die Tür – dass die Schwachstellen CVE-2021-1675 und PrintNightmare miteinander verwechselt werden, verschlimmert die Situation zusätzlich.

Für eine Überbrückung der Zeit bis zu einem Patch empfahl Microsoft für eine erste Problemumgehung von PrintNightmare, den Print Spooler-Dienst auf nicht benötigten Rechnern zu deaktivieren. Nutzer sollten dafür am besten über die Einstellungen für die Gruppenrichtlinien (GPP: Group Policy Preferences) den Druckspooler ganzer Domänen deaktivieren, was jedoch für einige Unternehmen nicht besonders praktikabel ist.

Mit dem Microsoft-Sicherheitsupdate vom 10. August gab es einen Patch für PrintNightmare: Durch Nachforschungen hatte Microsoft erkannt, dass die Default-Einstellung von Point and Print die Nutzer nicht gegen potenzielle Angriffe schützen kann. Es lassen sich nun mit dem Patch nicht länger beliebig Dateien über Point and Print installieren. Vielmehr werden ab sofort Admin-Rechte erforderlich, um Point and Print über einen Remote-Server auszuführen. Dadurch können zwar einige Nutzer nicht mehr auf Point and Print zugreifen, jedoch rechtfertige das ansonsten bestehende Sicherheitsrisiko laut Microsoft diese Einschränkung.

Allerdings ist die Sicherheitslücke damit nicht vollständig behoben. Am 11. August wurde ein weiterer Zero-Day in der Windows-Druckspooler bekannt, den Microsoft nun unter der Kennung CVE-2021-36958 führt. Zwar können seit dem Patch vom 10. August nur noch Nutzer mit Administratorrechten neue Druckertreiber installieren. Ist der Treiber jedoch bereits installiert, dann können sich weiterhin Nutzer ohne höhere Rechte mit diesem verbinden und mit der CopyFile-Methode schädliche DLLs einschleusen. Microsoft empfiehlt daher aktuell, als vorläufigen Fix den Druckspooler zu deaktivieren, bis ein erneuter Patch verfügbar ist.

Vorbereitung der Logdaten-Quellen

Einen stichhaltigen Beweis für die Ausnutzung der Schwachstelle liefern Events in den Protokollen „Microsoft-Windows-PrintServer/Admin“ und „Microsoft-Windows-PrintServer/Operational“. Letztere müssen Sie manuell aktivieren. Bereiten Sie zunächst Pläne mit den Administratoren vor, um mit der Weiterleitung der Logdaten aus den angeführten Quellen an LogPoint zu beginnen. Sollten Sie zudem Sysmon in Ihrer IT-Umgebung einsetzen, empfehlen wir Administratoren, die Konfiguration zu aktualisieren, um sicherzustellen, dass Sysmon die Artefakte von PrintNightmare erkennen kann. Letztlich können Sie auch IDS/IPS-Events nutzen, um die von PrintNightmare hinterlassenen Netzwerk-Artefakte zu erfassen.

Erkennung von Exploit-Artefakten mit LogPoint

Sie können PrintNightmare-Artefakte entweder anhand von Endpunkt-Events oder Netzwerk-Events erkennen. Die zuverlässigste Methode zur Erkennung eines Exploits ist die Suche nach Event-IDs wie 808 und 316. Bei beiden Events können Sie den Namen der schadhaften DLL sehen, die von dem Print-Spooler-Dienst geladen wird. In unseren Tests wurde die Event-ID 808 nicht immer erzeugt. Aber wenn sie erzeugt wurde, wurde die schadhafte DLL erfolgreich geladen.

Mithilfe der Sysmon-Events für die Dateierzeugung können Sie nach DLL-Drops im Treiberverzeichnis des Print-Spoolers suchen. Die abgelegten DLLs werden anschließend vom Print-Spooler-Prozess (spoolsv.exe) geladen, wie aus den Image-Load-Events von Sysmon hervorgeht.

Die geladenen DLLs erscheinen auch in den Registrierungspfaden des Druckerspoolers, wie aus den Registrierungsereignissen von Sysmon ersichtlich.

Während die neue Sysmon-Konfiguration in die Umgebung übertragen wird, können Sie auch native Windows-Events nutzen, um nach einem möglichen Exploit zu suchen. Sie können entweder nach der Verbreitung von WerFault.exe durch den Print-Spooler-Dienst oder nach dem unerwarteten Beenden des Print-Spooler-Dienstes suchen. Die nativen Windows-Events können Sie verwenden, da der Print-Spooler-Dienst während des Ladens der Payload-DLL einen Fehler generiert. Dabei sollten Sie jedoch beachten, dass ein Side-Loading der DLL dieses Verhalten erfolgreich umgehen kann.

Alternativ können Sie auch eine generische Exploit-Erkennung nutzen, indem Sie nach der Verbreitung verdächtiger Prozesse durch den Print-Spooler-Dienst suchen.

norm_id=WindowsSysmon label=“Process“ label=Create
parent_image=“*\spoolsv.exe“ image IN [„*\cmd.exe“, „*\powershell.exe“, „*\rundll32.exe“]

Auf Netzwerkseite müssen Sie nach der Übertragung der Payload-DLL via SMB suchen. Falls Sie eine IDS-/IPS-Lösung wie Snort und Zeek (Bro) in Ihrer IT-Umgebung einsetzen, ist das ganz einfach.

Sie können die beiden oben stehenden Abfragen weiter eingrenzen, indem Sie konkret nach Domain-Controllern als Ziel suchen, aber das ist möglicherweise nicht immer der Fall.

Wir sollten daran denken, dass PrintNightmare auch für die lokale Rechteausweitung (LPE) verwendet werden kann, z.B. Administratoren wird empfohlen, nach neuen lokalen Benutzerkreationen Ausschau zu halten, nachdem eines der PrintNightmare-Artefakte wie unten gezeigt generiert wurde.

Die Sysmon-Konfiguration ist der Schlüssel zur Erkennung eines Exploits

Wie Sie sehen Sie können, haben wir Sysmon genutzt, um die verschiedenen, von PrintNightmare erzeugten Artefakte zu erkennen. Sie sollten die Bedeutung von Sysmon in der heutigen Bedrohungslandschaft nicht außer Acht lassen. Sie können Sysmon nutzen, um die grundlegenden Windows-Event-Logs anzureichern, indem Sie bestehende Quellen wie die Logdaten zur Prozesserzeugung ergänzen sowie Unterstützung für neue Datenquellen wie die Erstellung von Pipes hinzufügen, die für die Erkennung von Bedrohungen unerlässlich sind. Die Konfiguration von Sysmon ist und bleibt jedoch ein heikler Balanceakt zwischen der Erkennung einer Vielzahl von relevanten Events und der Vermeidung von Log-Flooding – einer Überflutung von Logdaten. Letztlich läuft es darauf hinaus, die Richtlinien und Regeln in Sysmon passend zu konfigurieren – maßgeschneidert für die IT-Umgebung, in der Sie das Tool einsetzen.

Die Sysmon-Konfiguration von SwiftOnSecurity ist nach wie vor einer der besten Ausgangspunkte, um mit einer Konfiguration von Sysmon zu beginnen, die auf Ihre IT-Umgebung zugeschnitten ist. Die Sysmon-Konfiguration muss Regeln für die Erkennung wichtiger Events wie DLL-Droppings und EXE-Droppings umfassen. Gleichzeitig muss ein Ausschluss für zulässige, aber ressourcenintensive Anwendungen bedacht werden. Hierzu zählen integrierte Systemprozesse wie svchost, AVs, EDRs, Schwachstellen-Scanner und Datenbanken wie MSSQL. Beginnen Sie mit dem Einsatz der Basiskonfiguration auf ausgewählten Systemen und überwachen Sie das Logdaten-Volumen. Fahren Sie dann mit der Konfiguration fort und schließen Sie störende Events aus. Wiederholen Sie diesen Prozess so lange, bis der SIEM-Speicher das Logdaten-Volumen bewältigen kann, wenn das Tool auf allen Systemen in Ihrer IT-Umgebung eingesetzt wird.

Neue Sysmon-Versionen führen auch neue Events ein. Stellen Sie daher sicher, dass Sie eine Version von Sysmon einsetzen, die alle erforderlichen und für Sie relevanten Events erzeugen kann. Bevor Sie eine Erkennungstechnologie, die auf Sysmon basiert, einsetzen, sollten Sie prüfen, ob die bereitgestellte Konfiguration die für die Erkennung benötigten Events generieren kann. Blinde Flecken in einer Sysmon-Konfiguration können durchaus auftreten. Mit gründlichen Tests lässt sich dies vermeiden – noch vor einem umfassenden Einsatz in Ihrer IT-Umgebung.

Themenseiten: LogPoint, Zero-Day

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

1 Kommentar zu „PrintNightmare“ abwehren

Kommentar hinzufügen

Schreibe einen Kommentar

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