Zum Hauptinhalt springen
Tanium Blog

Wurde über Nacht auf Twitter erneut über eine Persistenzmethode berichtet? Wie Tanium Ihnen helfen kann

Wurde über Nacht auf Twitter erneut über eine Persistenzmethode berichtet? Wie Tanium Ihnen helfen kann

Registrierungskonfigurationen, die ursprünglich für die Fehlerbehebung und Entwicklung vorgesehen waren, dienen mittlerweile als Mittel zur verdeckten Persistenz, da sie von Sicherheitstools wie Autoruns nicht erkannt werden. An dieser Stelle stellen wir drei wesentliche Möglichkeiten vor, wie Tanium-Module – darunter „Trace“ und „Detect“ – eingesetzt werden können, um das Vorhandensein dieses relativ unbekannten Persistenzmechanismus rasch festzustellen.

Blaue Illustration des weltweiten IT-Betriebs mit Globus und Tastatur

(Bild: Bruno Glätsch / Pixabay)

Was tun Sie, wenn Sie über Nacht auf Twitter von einer neuen Persistenzmethode erfahren? Ein Vorschlag: Nutzen Sie Tanium, um aktuelle Aktivitäten schnell zu überprüfen und eine sofortige Benachrichtigung einzurichten, sobald diese auftreten. Und das alles noch vor dem Frühstück.

Am 10. April veröffentlichte Oddvar Moe (@oddvarmoe) auf Twitter einen Link zu seinem Blogbeitrag „ “ () sowie „Persistence Using Globalflags in Image File Execution Options – Hidden from autoruns.exe“ (), in dem ein Persistenzmechanismus über die Registrierungskonfiguration erläutert wird, der nach dem Beenden eines anderen „überwachten“ Prozesses im Hintergrund einen weiteren Prozess ausführt. Diese Methode ist derzeit nicht in den von Sysinternals Autoruns von Microsoft aufgeführten Speicherorten enthalten.

Die Verwendung von Global Flags bietet Entwicklern die Möglichkeit, einen Prozess zu starten, nachdem ein anderer Prozess beendet wurde. Dies stellt derzeit einen blinden Fleck dar, da Autoruns diese Konfigurationen nicht auflistet. Sie werden entweder mithilfe der Datei „gflag.exe“ – einem Dienstprogramm, das in den Entwicklertools von Microsoft enthalten ist – festgelegt oder können durch Änderungen an der Registrierungsdatenbank unter einem Administratorkonto vorgenommen werden.

Sofern ein Rechner nicht zur Fehlerbehebung oder für Entwicklungsarbeiten genutzt wird, ist das Vorhandensein dieser Registrierungs-Konfigurationen höchst verdächtig und sollte untersucht werden. Dies wird im Folgenden erläutert und dient als Beispielszenario, das veranschaulicht, wie schnell Sie neu bekannt gewordene Details nutzen und Ihre eigene Umgebung bewerten können.

An dieser Stelle möchten wir aufzeigen, wie Tanium-Module – darunter „Trace“ und „Signals“ – genutzt werden können, um das Vorhandensein dieses relativ unbekannten Persistenzmechanismus auf drei wesentliche Arten rasch festzustellen:

  • Durch die Betrachtung des aktuellen Zustands der Registrierungseinstellungen;
  • durch die Untersuchung des Verlaufs von Registrierungsänderungen mit Trace; und
  • Indem Sie künftig Echtzeit-Benachrichtigungen bei Änderungen an diesen Registrierungs-Einstellungen einrichten.

Über das Thema

In Moes Blogbeitrag werden drei Registrierungsänderungen aufgezeigt, die einen Auslösemechanismus festlegen, der einen Prozess startet, sobald ein überwachter Prozess beendet wird. Darüber hinaus wird der zweite Prozess im Hintergrund gestartet, sobald der überwachte Prozess beendet wird. Das bedeutet, dass eine etwaige grafische Benutzeroberfläche im Hintergrund gestartet wird. Angreifer können diese Funktion nutzen, um Persistenz zu gewährleisten; ihr Code wird nach dem Beenden eines Prozesses ihrer Wahl weiterhin ausgeführt, bis die Registrierungsschlüssel entfernt werden.

Einzelheiten zu dieser Windows-Funktion sind von Microsoft unter , sowie hier unter dokumentiert.

Zu Testzwecken nimmt das nachstehende Skript Änderungen an der Registrierung vor, die dazu führen, dass „evil.exe“ jedes Mal ausgeführt wird, wenn „notepad.exe“ beendet wird.

reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe” /v GlobalFlag /t REG_DWORD /d 512 reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\notepad.exe“ /v ReportingMode /t REG_DWORD /d 1 reg add „HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\notepad.exe“ /v MonitorProcess /d „C:\temp\evil.exe“

Aktuelle Aktivitäten

Mit Tanium lässt sich feststellen, ob diese Technik bereits unternehmensweit zum Einsatz kommt.

In manchen Umgebungen kann es legitime Anwendungsfälle für diese Technik geben; daher sollte eine sorgfältige Überprüfung erfolgen, um festzustellen, ob bestehende Konfigurationen böswillig oder harmlos sind. Ein Ansatzpunkt ist die Suche nach dem Registrierungszweig „SilentProcessExit“. In den meisten Umgebungen sollte dies ein leerer oder nicht vorhandener Schlüssel sein. Für diese Untersuchung werden drei Sensoren verwendet:

  1. Registry-Schlüssel-Unterschlüssel – Hier werden alle Prozesse angezeigt, die bei ihrer Beendigung die Ausführung eines Vorgangs auslösen. Abbildung 1 unten zeigt „notepad.exe“ als einzigen Unterschlüssel unter „SilentProcessExit“.
  2. Namen der Registrierungsschlüsselwerte – Hier wird angezeigt, welche Unterschlüssel vorhanden sind. Abbildung 1 zeigt „MonitorProcess“ und „ReportingMode“ als die beiden Einträge für Registrierungswertnamen.
  3. Daten des Registrierungswerts – Diese Daten geben den Prozess an, der so konfiguriert ist, dass er gestartet wird, wenn der überwachte Prozess beendet wird. Abbildung 1 zeigt die Daten für die beiden Einträge.
Screenshot des Windows-Registrierungseditors, der die Registrierungseinträge von Notepad++ zeigt

Abbildung 1: Beispiel für einen Eintrag, der in diesem Artikel zu Testzwecken verwendet wurde.

In Abbildung 2 unten zeigt der Sensor „Tanium Registry Key Subkeys“ den Untereintrag „notepad.exe“ unter dem Schlüssel „SilentProcessExit“ an.

Screenshot der Registrierungsschlüsselwerte, der Informationen zum Registrierungspfad von Notepad++ zeigt

Abbildung 2: Suche nach „SilentProcessExit“ mithilfe des Sensors „Registry Key Subkeys“.

Sensor: Untereinträge des Registrierungsschlüssels „ “ Untereinträge des Registrierungsschlüssels [HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit] auf allen Rechnern

Für alle vom Sensor „Registry Key Subkeys“ zurückgegebenen Unterschlüssel sollten die Ermittler den Wert „KeyPath“ kopieren und diesen als Parameter für den Sensor „Registry Key Value Names“ verwenden, um zu überprüfen, ob ein Eintrag für „MonitorProcess“ vorhanden ist (siehe Abbildung 3). Sofern ein „MonitorProcess“-Eintrag vorhanden ist, sollte auch der Eintrag „ReportingMode“ vorhanden sein.

Screenshot der Unterschlüssel des Registrierungsschlüssels, der den Dateipfad von Notepad++ zeigt

Abbildung 3: Der Registrierungsschlüsselwert „Name sensor“ dient zur Ermittlung von Unterschlüsseln.

Sensor: Namen der Registrierungsschlüsselwerte Namen der Registrierungsschlüsselwerte [HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\notepad.exe] von allen Computern

Um festzustellen, welcher Prozess für einen bestimmten „MonitorProcess“-Eintrag ausgeführt wird, sollten sowohl der Wert „KeyPath“ aus der Ausgabe des Sensors „Registry Key Subkeys“ als auch der Wertname aus der Ausgabe des Sensors „Registry Key Value Names“ als Parameter an den Sensor „Registry Value Data“ übergeben werden (siehe Abbildung 4).

Screenshot der Registrierungswertdaten, der die Werte von Notepad++ zeigt

Abbildung 4: Ausgabe des Sensors „Registry Value Data“.

Sensor: Registrierungswertdaten Registrierungswertdaten [HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\notepad.exe,MonitorProcess] von allen Computern

Wenn wir den „KeyPath“ und den „Value Name“ aus der Sensorausgabe als Parameter für den Sensor „Registry Value Data“ verwenden, sehen wir in Abbildung 4 den Dateneintrag für diesen „MonitorProcess“, einschließlich des Pfads, unter dem der Prozess auf der Festplatte gespeichert ist.

In Abbildung 4 sehen wir zudem ein Beispiel dafür, wie eine Prozess-Binärdatei in einem alternativen Datenstrom (ADS) versteckt wird. ADS ist eine Funktion des NTFS-Dateisystems, die Angreifer nutzen können, um Binärdateien so einzubetten, dass diese weder im Windows Explorer noch in normalen Verzeichnisauflistungen über cmd.exe und PowerShell.exe sichtbar sind. Beachten Sie das „:“ im Namen der Prozess-Binärdatei.

Unsere versteckte ausführbare Datei ist in den Ordner bzw. den NTFS-Verzeichniseintrag „C:\Windows“ eingebettet und wurde „cmd.exe“ genannt.

Bisherige Aktivitäten

Mit Tanium-Sensoren ist es möglich, diese spezifischen Registrierungsstellen auf Hunderttausenden von Endgeräten innerhalb von Sekunden zu durchsuchen.

Was wäre jedoch, wenn die Registrierungseinträge nach der ursprünglichen Aktivität entfernt worden wären? Die oben abgebildeten „Aktueller-Zustand“-Sensoren werden nicht angezeigt. Um unternehmensweit nach historischen Daten zu suchen, werden wir uns die Registrierungsdatenbank anhand der Tanium-Trace-Daten ansehen.

Zunächst überprüfen wir den Registrierungsschlüssel „SilentProcessExit“, um festzustellen, ob „SetRegistryKey“-Ereignisse protokolliert wurden (siehe Abbildung 5).

Tanium Trace-Registrierungsschlüssel, der die Erkennung einer Kompromittierung der Lieferkette von Notepad++ anzeigt

Abbildung 5: Registrierung der Registrierungsschlüssel der Sensorausgabe „Werte“.

Sensor: Trace-Registrierungsschlüssel oder -Werte Abrufen von Trace-Registrierungsschlüsseln oder -Werten [unbegrenzt, 1523639748493|1523643347493, 0, 0, 10, 0, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit, , SetValueKey, , , ] von allen Computern

Die Spalte „Schlüssel“ enthält einen Eintrag für die ausführbare Datei, deren Beendigung den Start der ausführbaren Datei „MonitorProcess“ auslöst. Die erweiterten Daten der Schlüssel-Spalte lauten wie folgt: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\notepad.exe

Da „Trace“ keine Wertdaten aufzeichnet, wissen wir zu diesem Zeitpunkt zwar, dass ein Prozess so konfiguriert wurde, dass er einen anderen Prozess auslöst, jedoch nicht, wo sich dieser Prozess befindet. Wir können jedoch über „Trace“ eine Live-Verbindung herstellen und uns die Situation ansehen.

Alarmierung

Ein Tanium Detect Signal kann nicht nur den aktuellen Status und historische Daten des Unternehmens abfragen, sondern auch Echtzeit-Warnmeldungen ausgeben, wenn diese Registrierungsschlüssel wie oben beschrieben konfiguriert sind.

group(Registry.key_path enthält '\\SilentProcessExit\\' UND Registry.value_name enthält 'MonitorProcess’)

Sobald dieses Signal implementiert ist, wird jedes Mal, wenn ein Prozess durch das Anlegen eines „MonitorProcess“-Eintrags unter dem Schlüssel „SilentProcessExit“ eine Persistenz herstellt, eine Echtzeitwarnung in der Tanium Detect-Oberfläche ausgelöst; diese Warnungen können an SIEM- oder Benachrichtigungssysteme weitergeleitet werden.

Wie bei jeder Tanium Detect-Warnmeldung können Sie die Warnmeldung auswählen und zu einer „Trace Live Connection“ wechseln, um die Aktivität genauer zu untersuchen (siehe Abbildung 6). Hier sehen wir den Prozessablauf im Detail. In diesem Fall ist unser schädlicher Prozess erneut als ADS eingebettet, diesmal jedoch in einem Verzeichniseintrag unter „C:\System“.

Tanium Signals-Warnmeldung zur Erkennung einer „Ghost“-Konfiguration eines Prozesses

Abbildung 6: Signale, Warnmeldungen und die Option, eine Live-Verbindung mit Trace herzustellen.

Als Nächstes sehen wir die Prozessbaumansicht in Trace (siehe Abbildung 7). Bemerkenswert ist, dass der übergeordnete Prozess des schädlichen Prozesses „WerFault.exe“ ist, also der Windows-Fehlerberichtsdienst. Beachten Sie außerdem, dass der schädliche Prozess im Kontext desselben Benutzerkontos und nicht als SYSTEM gestartet wird.

Antwort von Tanium Ask mit Details zur Ausführung von Windows-Befehlen

Abbildung 7: Prozessvisualisierung in Trace.

Der Prozess-Hash ist rot hervorgehoben, was darauf hinweist, dass der Tanium Reputation-Dienst diese Datei als schädlich eingestuft hat.

Nun können wir den Hash und die Dateidetails übernehmen und zu Tanium Protect wechseln, um die zukünftige Ausführung dieses Prozesses zu blockieren. Außerdem können wir die Registrierungsdatenbank bereinigen und alle laufenden Prozesse mithilfe der Standardaktionen von Tanium beenden.

Beispielsignale

Im Folgenden sehen wir „Tanium Detect Signal“-Warnmeldungen, die verschiedenen Methoden zur Aktivierung dieses Persistenzmechanismus entsprechen (siehe Abbildungen 8-13).

Tanium Signals zeigt die Erkennung eines Persistenzmechanismus in PowerShell an

Abbildung 8: Signalmeldung beim Hinzufügen des Eintrags „MonitorProcess“ über eine Batch-Datei.

Tanium Trace demonstriert eine Technik zur Zusammenführung von Registrierungsstrukturen zur Gewährleistung der Persistenz

Abbildung 9: Warnmeldung beim Hinzufügen des GlobalFlag-Eintrags mithilfe einer Batch-Datei.

Tanium Signals-Warnmeldung bezüglich einer Phantomkonfiguration des Prozesses über regedit

Abbildung 10: Warnmeldung beim manuellen Hinzufügen des Eintrags „MonitorProcess“ über die Benutzeroberfläche von „Regedit.exe“.

Tanium-Meldungen, die anzeigen, dass PowerShell vom Explorer aus als Administrator gestartet wird

Abbildung 11: Warnmeldung bei der Änderung der Registrierung mithilfe von PowerShell.

Der Windows-Registrierungseditor zeigt den Erstellungsprozess einer Registrierungszusammenführungsdatei an

Abbildung 12: Registrierungsdatei mit Konfigurationsänderungen.

Tanium Signals zeigt die Zusammenführung von Registrierungsdateien im Windows Explorer an

Abbildung 13: Durch das Einfügen der Registrierungsdatei aus Abbildung 12 wurde diese Warnmeldung ausgelöst.

Noch eine Anmerkung. Bei einer IOC-Warnmeldung wird der ADS in der Detailansicht angezeigt, einschließlich der farblichen Hervorhebung der Hash-Werte, wie in Abbildung 14 dargestellt.

Tanium Trace zeigt Details zu „cmd.exe“ und dem „ProcessHacker“-Prozess an

Abbildung 14: Ein IOC-Scan-Treffer für die Binärdatei auf der Grundlage des Hashwerts.

Zusammenfassung

Der in diesem Artikel beschriebene Prozess zeigt, wie Tanium das Vorhandensein eines relativ unbekannten Persistenzmechanismus schnell feststellen kann, indem es den aktuellen Status der Registrierungs-Einstellungen überprüft, den Verlauf der Registrierungsänderungen mit „Trace“ analysiert und schließlich eine Echtzeit-Warnmeldung für künftige Änderungen an diesen Registrierungs-Einstellungen einrichtet. Wenn Sie mehr erfahren möchten, besuchen Sie mich doch im „ “ (), in der Tanium-Anwendergemeinschaft () sowie auf  – dort können wir uns gerne darüber austauschen.

Möchten Sie Tanium in Aktion erleben? Vereinbaren Sie unter eine individuelle Vorführung oder nehmen Sie an unserem wöchentlichen Webinar teil. Sprechen Sie mit unseren Tanium-Experten bei unseren bevorstehenden Veranstaltungen im Rahmen der „ “ unter.

Über den Autor „“: Scott Langendorf ist Director im Tanium-EDR-Team. Er trat im Herbst 2015 bei Tanium ein, nachdem er zuvor als Senior Manager bei einem globalen Ingenieurunternehmen tätig gewesen war, das Angriffen durch staatlich gestützte Gruppen ausgesetzt war. Mit acht Jahren Erfahrung im Bereich Cybersicherheit trat Scott bei Tanium ein, um zur Weiterentwicklung von Sicherheitsprodukten beizutragen, da er erkannte, wie wichtig eine schnelle Transparenz der Endgeräte, Warnmeldungen und Datenagilität für Verteidigungs- und Jagdteams sind. Er war außerdem bei der NASA am Stromversorgungssystem der Raumstation beteiligt und arbeitete als IT-Manager im Energiesektor, als APT1 gerade erst entdeckt wurde.