Die Windows-Registrierungsdatenbank, meist nur Registry genannt, ist eine der leistungsfähigsten Funktionen des Windows-Betriebssystems. Mit ihr lassen sich Windows-Richtlinien und detaillierte Konfigurationseinstellungen optimieren oder ändern. Diesen Umstand machen sich die meisten Malware-Angriffe zunutze: Angreifer verwenden die hierarchische Datenbank nämlich für die Durchführung böswilliger Aufgaben auf einem Ziel-Host oder in einer Ziel-Umgebung. In den letzten zwei Jahren hat das Splunk Threat Research Team einige der am weitesten verbreiteten und erfolgreichsten Malware-Familien analysiert und durch Reverse Engineering in ihre Bestandteile zerlegt. Dabei haben wir die zahlreichen Möglichkeiten kennengelernt, wie die Registry für böswillige Zwecke missbraucht werden kann.
Die erfolgreiche Erkennung von Malware ist nach wie vor eine schwierige Herausforderung für Security-Teams. Cyberkriminelle umgehen Signaturen und Heuristiken in einem ständigen Katz-und-Maus-Spiel. Das Splunk Threat Research Team empfiehlt, Malware-Schutzmaßnahmen mit einem Ansatz zur Malware-Erkennung zu ergänzen, damit eure Netzwerke sauber bleiben. Wie wir in diesem Blog-Beitrag ausführen, missbrauchen Malware-Autoren häufig die Windows-Registry – den Verteidigern bietet das eine hervorragende Erkennungschance, gegen die Angreifer nur schwer ankommen. Zur Cyber-Verteidigung müssen daher wirksame Monitoring-Möglichkeiten entwickelt und bereitgestellt werden, die die Erkennung verdächtiger Erstellungs-, Änderungs- und Löschvorgänge rund um die Registry und eine Reaktion darauf ermöglichen.
Die Windows-Registry enthält zwei grundlegende Elemente: Schlüssel und Werte. Registrierungsschlüssel sind Container, ähnlich wie Objektcontainer oder -ordner, die Unterschlüssel und Werte enthalten können, während die Registrierungswerte mit Dateien vergleichbar sind. Der folgende Screenshot zeigt die Struktur der Registry. Wer mit dieser Struktur vertraut ist, erkennt leichter, welche Änderungen an der Registry vorgenommen wurden und wie sie sich auswirken könnten.
In der Registry können wertvolle Informationen über das Betriebssystem, bestimmte Anwendungen oder Einstellungen gespeichert sein, die von Angreifern für zukünftige Operationen genutzt werden können. In der Regel sind Host-Informationen in der Struktur HKEY_LOCAL_MACHINE gespeichert. In dieser Struktur kann man die gesamte installierte Software und alle aktivierten Betriebssystemfunktionen identifizieren. Beispielsweise werden viele Objekte, die über die Windows-Gruppenrichtlinie aktiviert werden können, unter anderem innerhalb dieser Struktur aktiviert und deaktiviert. Außer Host- und Softwareinformationen enthält diese Struktur zudem die SAM- und Sicherheitsschlüssel, die sich auf den Zugriff mit Anmeldeinformationen beziehen (mehr dazu später). Wenn ihr böswillige Aktivitäten simulieren möchtet, könnt ihr Atomic Red Team T1012 dazu verwenden. Darin sind die zahlreichen Methoden für die Erfassung von Host- und Softwareinformationen aus der Registry beschrieben.
Ende letzten Jahres haben wir einen Blog-Beitrag über Remcos RAT veröffentlicht, einen verbreiteten Remote-Zugriffs-Trojaner mit vielen integrierten Funktionen für Angreifer. Remcos wurde damals von der Hackergruppe FIN7 eingesetzt, um ihren Zugriff aufrechtzuerhalten. Dabei nutzten der Angreifer die Registry, um Produktinformationen zu ermitteln (siehe Abbildung 1).
Abbildung 1
Eine ähnliche Analyse führten wir Mitte 2021 für Trickbot durch. Trickbot ist ein beliebter Crimeware-Überträger, der es böswilligen Akteuren ermöglicht, mehrere Arten von Nutzlasten zu übertragen. Abbildung 2 zeigt, wie das Modul „Systeminfo64.dll“ der Trickbot-Malware alle installierten Anwendungen auf dem kompromittierten Host erfasst, indem es die „Uninstall“-Registry abfragt.
Abbildung 2
Die Registry ist eine Goldgrube für Angreifer, die Host-Informationen, aus der ein Angreifer Daten daraus erfassen und analysieren kannkönnen. Trickbot, Remcos und viele andere verfügen über integrierte Ausspähtechniken, die dem Angreifer helfen, die nächsten Schritte festzulegen. Dem Angreifer wird damit praktisch ermöglicht, sich zurückzuziehen und seinen nächsten Schritt für die nächste Phase zu planen.
Nach dem Ausführen von Ausspähtechniken versucht ein Angreifer in der Regel, sich dauerhaft Berechtigungen zu verschaffen (Persistenz) oder Rechte auszuweiten. Dafür gibt es zahlreiche Möglichkeiten, doch die Registry enthält jede Menge Registrierungsschlüssel, mit denen sich Rechte gewähren oder erweitern lassen.
Es gibt viele allgemein bekannte Werte, die einem Angreifer ermöglichen, seine Nutzlast beim Systemstart auszuführen. Die folgende Abfrage sucht nach vielen dieser Werte:
| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime FROM datamodel=Endpoint.Registry where (Registry.registry_path=*\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnce OR Registry.registry_path=*\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\StartupApproved\\Run OR Registry.registry_path=*\\currentversion\\run* OR Registry.registry_path=*\\currentVersion\\Windows\\Appinit_Dlls* OR Registry.registry_path=*\\CurrentVersion\\Winlogon\\Shell* OR Registry.registry_path=*\\CurrentVersion\\Winlogon\\Notify* OR Registry.registry_path=*\\CurrentVersion\\Winlogon\\Userinit* OR Registry.registry_path=*\\CurrentVersion\\Winlogon\\VmApplet* OR Registry.registry_path=*\\currentversion\\policies\\explorer\\run* OR Registry.registry_path=*\\currentversion\\runservices* OR Registry.registry_path=HKLM\\SOFTWARE\\Microsoft\\Netsh\\* OR (Registry.registry_path="*Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options*" AND Registry.registry_key_name=Debugger) OR (Registry.registry_path="*\\CurrentControlSet\\Control\\Lsa" AND Registry.registry_key_name="Security Packages") OR (Registry.registry_path="*\\CurrentControlSet\\Control\\Lsa\\OSConfig" AND Registry.registry_key_name="Security Packages") OR (Registry.registry_path="*\\Microsoft\\Windows NT\\CurrentVersion\\SilentProcessExit\\*") OR (Registry.registry_path="*currentVersion\\Windows" AND Registry.registry_key_name="Load") OR (Registry.registry_path="*\\CurrentVersion" AND Registry.registry_key_name="Svchost") OR (Registry.registry_path="*\\CurrentControlSet\Control\Session Manager"AND Registry.registry_key_name="BootExecute") OR (Registry.registry_path="*\\Software\\Run" AND Registry.registry_key_name="auto_update")) by Registry.dest Registry.user Registry.registry_path Registry.registry_value_name Registry.registry_value_data Registry.process_guid Registry.registry_key_name | `drop_dm_object_name(Registry)` | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`
Nicht bösartige Software verwendet diese Schlüssel möglicherweise für den normalen Betrieb, ein neuer Wert sollte jedoch auf der Grundlage von Kriterien wie Prävalenz, Prozess und Account, der das festgestellte Verhalten zeigt, geprüft werden.
Ein beliebter Registrierungsschlüssel, der für Persistenz-Zwecke ausgenutzt wird, ist der Registry-Eintrag „Run“. Er kann missbraucht werden, um bösartige Dateien beim Neustart des infizierten Systems automatisch auszuführen. Die nachfolgende Abbildung 3 zeigt, wie „malicious.exe“ einen „Run“-Eintrag erstellt, um dauerhaft auf dem Ziel-Host Fuß zu fassen.
Abbildung 3
Ein weiteres gängiges Verfahren besteht darin, neue Services zu erstellen bzw.oder bestehende Services zu ändern, um die Persistenz oder eine Rechteausweitung zu erreichen. Abbildung 3.1 zeigt die Simulation eines entsprechenden Events mit der Atomic Red Team-Technik T1574.011: Hier wird simuliert, dass ein Bedrohungsakteur nach Services mit schwachen Berechtigungen in der Windows -Registry sucht. Gibt es solche Services, kann der Angreifer den Dateipfad so abändern, dass er auf eine böswillige Binärdatei verweist, sodass beim. Beim nächsten Start des Service wird dann böswilliger Code ausgeführt wird. Hier seht ihr ein Beispiel dafür:
Abbildung 3.1
Integrierte lokale Administratorkonten
Eine weitere Technik, die Angreifer zum Erreichen von Persistenz missbrauchen, ist die Aktivierung des integrierten lokalen Administratorkontos, das standardmäßig deaktiviert ist. Diese Technik wurde bei der Ransomware BlackMatter eingesetzt (mehr dazu im Referenz-Blog von Trend Micro), um die automatische Anmeldung beim kompromittierten Host durchzuführen, nachdem ein Systemstart im abgesicherten Modus ausgelöst wurde. Nachfolgend findet ihr das kurze Batch-Skript zum Simulieren dieser Technik. Atomic Red Team T1562.001 verfügt ebenfalls über verschiedene Simulationsmethoden.
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AutoAdminLogon /t REG_SZ /d 1 reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultUserName /t REG_SZ /d administrator /f
Darüber hinaus verwenden Angreifer Anwendungs-Shims, die Printer-Registry, Safeboot-Registry, Active Setup, Logon-Skripts und vieles mehr. Die folgende Tabelle enthält eine Liste vom STRT entwickelter Analysen für das gesamte Missbrauchsspektrum in den Bereichen Persistenz und Rechteausweitung in der Windows-Registry.
Um die Erkennung zu vermeiden sowie Persistenz und Rechteausweitung zu erreichen, müssen Angreifer im Endeffekt noch andere vorhandene Kontrollen umgehen. Die Windows-Registry spielt hier eine Rolle, da die meisten Sicherheitsprodukte und -anwendungen bei ihrer Installation einen Eintrag in der Registry erstellen. Windows selbst ist mit verschiedenen Einträgen übersäht, die von Angreifern missbraucht werden, um Erkennungsanalysen auszutricksen, die Benutzerkontensteuerung zu umgehen und Sicherheitsprodukte auszuhebeln.
Umgehen der Benutzerkontensteuerung
Ein Beispiel ist hier das Umgehen der Benutzerkontensteuerung zur Ausweitung von Prozessberechtigungen oder zur Ausführung ausgeweiteter COM-Objekte, ohne dass der Benutzer über die Benachrichtigungsmeldung der Benutzerkontensteuerung eine Eingabeaufforderung erhält. Der Codeausschnitt in Abbildung 4 zeigt, wie Remcos RAT versucht, die Benutzerkontensteuerung über die Registry zu deaktivieren, indem der Wert „EnableLUA“ geprüft und deaktiviert wird.
Abbildung 4
Zur Umgehung der Benutzerkontensteuerung können böswillige Akteure auch einen Eintrag zu den Registrierungsschlüsseln eventvwr.exe und fodhelper.exe hinzufügen. Diese beiden Windows-Anwendungen verfügen über einen Prozess mit hoher Integritätsebene (Administratorrechte), bei dem die Benutzerkontensteuerung ignoriert werden kann. Die Abbildungen 5.1 und 5.2 zeigen, wie die Malware IcedID die Benutzerkontensteuerung mithilfe dieser Technik umgeht. Durch Überschreiben des Pfads zur ausführbaren Datei in den Registry-Werten dieser beiden Registrierungsschlüssel kann böswilliger Code die Benutzerkontensteuerung umgehen und mit hoher Integrität ausgeführt werden. Eine Simulation dieser Technik steht in Atomic Red Team T1548.002 zur Verfügung.
Abbildung 5.1
Abbildung 5.2
Neben der Umgehung der Benutzerkontensteuerung wird bei Malware-Angriffen üblicherweise auch versucht, Sicherheitstools wie ETW, Windows-Sicherheitsereignisprotokolle und Windows Defender Antivirus zu deaktivieren. Der Screenshot in Abbildung 6 zeigt das Batch-Skript, das Remcos-Loader nutzen, um Funktionen von Windows Defender Antivirus zu umgehen oder zu deaktivieren sowie den Systemwiederherstellungspunkt und viele andere Registry-Werte zu deaktivieren.
Abbildung 6
Angreifer können sich auch den Umstand zunutze machen, dass in der Registry Gruppenrichtlinienfunktionen und Windows-Benachrichtigungen deaktiviert oder geändert und sogar gängige Windows-Anwendungen wie cmd.exe, Task-Manager und Regedit deaktiviert werden können. So machen sie es Analysten und digitalen Forensikern schwer, auf den Angriff zu reagieren. Das folgende einfache Batch-Skript deaktiviert cmd, TaskMgr und Registry-Tools.
reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\policies\system /v DisableRegistryTools /t REG_DWORD /d 1 /f reg add "HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\System" /v "DisableCMD" /t REG_DWORD /d "1" /f reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System" /v DisableTaskmgr /t REG_DWORD /d 1 /f
Zu weiteren Techniken, mit denen Angreifer Abwehrmaßnahmen umgehen können, gehört die Deaktivierung einer Vielzahl von Sicherheitskontrollen, auf die sich Sicherheitsteams verlassen, wie etwa AMSI, bestimmte Windows Defender-Funktionen, SystemRestore und viele andere. Die folgende Tabelle enthält eine Liste der vom STRT entwickelten Analysen für das gesamte Spektrum von Techniken zur Umgehung von Abwehrmaßnahmen, bei denen die Windows-Registry missbraucht wird.
Die Registry bietet außerdem die Möglichkeit, Beschränkungen zu umgehen. Zum Beispiel in PowerShell: Um die Ausführung von Skripts auf einem Host zu erlauben, kann ein Angreifer die Ausführungsrichtlinie von PowerShell umgehen, indem er in der Registry einen Eintrag für die PowerShell-Ausführungsrichtlinie ändert oder hinzufügt. Dazu nutzt er einen einfachen Befehl, ähnlich diesem:
reg add HKEY_CURRENT_USER\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell /v ExecutionPolicy /d Unrestricted /f reg add HKEY_CURRENT_USER\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell /v ExecutionPolicy /d Bypass /f
Das Kapern des Registry-Eintrags für die IFEO-Debugger (Image File Execution Options) ist ein weiteres Beispiel für den Missbrauch der Registry durch Bedrohungsakteure. Unter „Image File Execution Options“ kann ein Entwickler einen Debugger an eine Anwendung anhängen. Beim Erstellen eines Zielprozesses wird dann auch ein im IFEO-Registrierungsschlüssel angegebener Debugger gestartet.
Dies ist ein einfacher Befehl zur Umsetzung dieser Technik:
REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\C:\Windows\System32\calc.exe" /v Debugger /d "C:\windows\system32\cmd.exe"
Als dateilose Malware bezeichnet man in der Regel eine Bedrohung, deren Durchführung nicht auf Dateien basiert. Dies kann etwa eine Backdoor sein, die sich nur im Speicher befindet. Angreifer können die Windows-Registry missbrauchen, um dateilose Malware auf den Ziel-Systemen zu installieren. Ein Beispiel hierfür ist die Ausführung eines böswilligen Skripts durch die Malware Kovter, bei der Registry-Einträge genutzt wurden. Bei diesem Verfahren versuchen Angreifer, mit ihrem böswilligen Code gängige Sicherheitsmaßnahmen wie etwa Malwareschutz-Tools zu umgehen.
Dies ist ein Bespiel für eine .reg-Datei, die ein JavaScript-Skript ausführt:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run] "atomic"="\"mshta\" \"javascript:a=new ActiveXObject(\"WScript.Shell\");a.Run(\"calc.exe\",0,true);close();\""
Name | Technik-ID | Taktik |
---|---|---|
windows_mshta_execution_in_registry.yml | T1218.005 | Umgehung von Abwehrmaßnahmen |
Detect mshta inline hta execution | T1218.005 | Umgehung von Abwehrmaßnahmen |
Set Default PowerShell Execution Policy To Unrestricted or Bypass | T1059.001 | Ausführung |
Die Windows-Registry kann von Angreifern auch bei Seitwärtsbewegungen als Vektor missbraucht werden. Verschiedene Angriffswellen, die wir im Lauf des Jahres analysiert haben, missbrauchen die Registry beispielsweise zum Ändern der Ports für eingehenden Traffic oder zum Aktivieren von Terminaldiensten. Der Blog DFIR Report beschreibt, wie die Malware Xmrig Coinminer die vom Remotedesktopprotokoll verwendete Portnummer ändert, um Angreifern möglichst unauffällige Seitwärtsbewegungen bei normalem RDP-Port-Monitoring (Standardport 3389) zu ermöglichen. Mit dem nachfolgenden einfachen PowerShell-Befehl kann diese Technik simuliert werden; er steht auch in Atomic Red Team T1021.001 zur Verfügung.
$portvalue = 3390 Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -name "PortNumber" -Value $portvalue
Name | Technik-ID | Taktik |
---|---|---|
Enable RDP In Other Port Number | T1021.001 | Seitwärtsbewegung |
Allow Inbound Traffic By Firewall Rule Registry | T1021.001 | Seitwärtsbewegung |
Die Registry kann zudem eine Quelle für sensible Daten sein, die von Bedrohungsakteuren erfasst und exfiltriert oder zur Fortsetzung einer langfristigen Operation gegen das Unternehmen genutzt werden können. Bei der Analyse verschiedener IcedID-Varianten haben wir die unten stehende Liste mit Schlüsseln zusammengestellt, die Outlook-Informationen wie Benutzerprofil, E-Mail-Signaturen und Passwortspeicherung im Browser umfassten. Diese Informationen können Bedrohungsakteure oder Angreifer in Phishing-Kampagnen nutzen, um spezielle Ziele oder Netzwerke zu kompromittieren.
Da sich so ziemlich alles in der Registry befindet, enthält sie natürlich auch Anmeldeinformationen. Ein Angreifer könnte daher bestimmte Schlüssel zur Rechteausweitung auf einem Endpunkt speichern. Ein Beispiel ist die Datenbank der Sicherheitskontenverwaltung, die lokale Konten für den Host enthält. Wenn diese Datenbank Bedrohungsakteuren in die Hände fällt, können sie Passwort-Hashes für Benutzer mit umfangreichen Rechten extrahieren und sie offline zu knacken versuchen. Nachfolgend findet ihr ein Skript, das dieses Verhalten simuliert. Zum Testen dieser Angriffstechnik empfehlen wir zudem Atomic Red Team T1003.002.
C:\Windows\system32\cmd.exe /c "reg save HKLM\sam %%temp%%\sam & reg save HKLM\system %%temp%%\system & reg save HKLM\security %%temp%%\security"
Name | Technik-ID | Taktik |
---|---|---|
Attempted Credential Dump From Registry via Reg exe | T1003.002 | Zugriff mit Anmeldeinformationen |
Enable WDigest UseLogonCredential Registry | T1003 | Zugriff mit Anmeldeinformationen |
Eine Gemeinsamkeit, die sich bei den Analysen über die letzten zwei Jahre hinweg gezeigt hat, sind Registrierungsschlüssel, die von Ransomware-Betreibern verwendet werden können, um das Hintergrundbild zu ändern oder Crash-Dumps zu deaktivieren. Angreifer nutzen diese Möglichkeit, um den Endbenutzer über die Installation von Ransomware zu informieren. Abbildung 7 zeigt, wie solche Techniken bei der Ransomware-Kampagne REvil genutzt wurden.
Abbildung 7
Weitere Techniken, die Angreifer zur Umsetzung dieser Taktik einsetzen, umfassen das Stoppen von Diensten, das Auslösen des Herunterfahrens bzw. Neustarts des Systems, das Löschen von Registry-Strukturen oder das Deaktivieren von Absturz-Dumps wie bei der Malware HermeticWiper.
Name | Technik-ID | Taktik |
---|---|---|
Modification Of Wallpaper | T1491 | Direkter Eingriff |
Windows Disable Memory Crash Dump | T1485 | Direkter Eingriff |
Windows Defacement Modify Transcodedwallpaper File | T1491 | Direkter Eingriff |
Alle oben aufgeführten Erkennungsanalysen erstellen standardmäßig Einträge im Risikoindex von Splunk Enterprise Security und können nahtlos mit priorisierten Risikomerkmalen (Risk Notables) und dem Risk Notable Playbook Pack genutzt werden. Außerdem können zusammen mit einigen der zuvor beschriebenen Analysen auch die folgenden Splunk SOAR-Playbooks der Community verwendet werden:
Playbook | Beschreibung |
---|---|
Internal Host WinRM Investigate | Dieses Playbook führt eine allgemeine Untersuchung wichtiger Aspekte eines Windows-Geräts mit der Windows-Remoteverwaltung durch. Dabei werden wichtige Dateien, die mit dem Endpunkt zusammenhängen, generiert, in einer ZIP-Datei gebündelt und in den Container-Tresor kopiert. |
Active Directory Reset Password | Dieses Playbook setzt das Passwort eines potenziell kompromittierten Benutzerkontos zurück. Zuerst wird ein Analyst gebeten, die Situation zu bewerten und zu entscheiden, ob das Konto zurückgesetzt werden soll. Stimmt der Analyst zu, wird danach ein sicheres Passwort generiert und das Passwort zurückgesetzt. |
Die neuesten Inhalte zu Sicherheitsanalysen findet ihr auf GitHub und in Splunkbase. Außerdem stehen alle diese Erkennungsanalysen per Push-Update in Splunk Security Essentials zur Verfügung.
Eine vollständige Liste der Inhalte zum Thema Security findet ihr in den Release Notes auf Splunk Docs.
Habt ihr Feedback oder Wünsche? Bitte erstellt dazu einen Issue-Eintrag in GitHub, damit wir dem nachgehen können. Alternativ könnt ihr auch den Slack-Channel #security-research verwenden. Folgt einfach dieser Anleitung, wenn ihr eine Einladung zu unseren Splunk-Benutzergruppen in Slack benötigt.
Wir möchten uns bei folgenden Personen für ihre Mitwirkung bei diesem Blog bedanken: Teoderick Contrera, Michael Haag, Mauricio Velazco, Rod Soto, Jose Hernandez, Patrick Barreiss, Lou Stella, Bhavin Patel und Eric McGinnis.
*Dieser Artikel wurde aus dem Englischen übersetzt und editiert. Den Originalblogpost findet ihr hier.
Die Splunk-Plattform beseitigt die Hürden zwischen Daten und Handlungen, damit Observability-, IT- und Security-Teams in ihren Unternehmen für Sicherheit, Resilienz und Innovation sorgen können.
Splunk wurde 2003 gegründet und ist ein globales Unternehmen – mit mehr als 7.500 Mitarbeitern, derzeit über 1.020 Patenten und einer Verfügbarkeit in 21 Regionen rund um den Globus. Mit seiner offenen, erweiterbaren Datenplattform, die die gemeinsame Nutzung von Daten in beliebigen Umgebungen unterstützt, bietet Splunk allen Teams im Unternehmen für jede Interaktion und jeden Geschäftsprozess End-to-End-Transparenz mit Kontext. Bauen auch Sie eine starke Datenbasis auf – mit Splunk.