Sysmon v15.15
Von Mark Russinovich und Thomas Garnier
Veröffentlicht am: 23. Juli 2024
Sysmon herunterladen (4,6 MB)
Sysmon für Linux herunterladen (GitHub)
Einführung
Systemmonitor (Sysmon) ist ein Windows-Systemdienst und -Gerätetreiber zum Überwachen und Protokollieren von Systemaktivitäten im Windows-Ereignisprotokoll, der nach seiner erstmaligen Installation in einem System selbst bei Systemneustarts aktiv bleibt. Er enthält ausführliche Informationen zu Prozesserstellungen, Netzwerkverbindungen und Änderungen an der Dateierstellungszeit. Durch das Erfassen der Ereignisse generiert er mithilfe von Agents für die Windows-Ereignissammlung oder SIEM-Agents Protokolle und analysiert sie anschließend. Auf diese Weise können Sie schädliche oder anomale Aktivitäten erkennen und verstehen, wie Angreifer und Schadsoftware in Ihrem Netzwerk agieren. Der Dienst wird als geschützter Prozess ausgeführt, wodurch eine breite Palette von Benutzermodusinteraktionen deaktiviert wird.
Beachten Sie, dass Sysmon weder eine Analyse der generierten Ereignisse bereitstellt noch versucht, sich vor Angreifern zu verbergen.
Übersicht über Sysmon-Funktionen
Sysmon umfasst die folgenden Funktionen:
- Protokolliert die Prozesserstellung mit der vollständigen Befehlszeile sowohl für aktuelle als auch für übergeordnete Prozesse.
- Zeichnet den Hash von Prozessimagedateien mithilfe von SHA1 (dem Standard), MD5, SHA256 oder IMPHASH auf.
- Mehrere Hashes können gleichzeitig verwendet werden.
- Enthält eine Prozess-GUID in Ereignissen vom Typ „Prozesserstellung“, um die Korrelation von Ereignissen selbst dann zu ermöglichen, wenn Windows Prozess-IDs wiederverwendet.
- Enthält eine Sitzungs-GUID in jedem Ereignis, um die Korrelation von Ereignissen in derselben Anmeldesitzung zu ermöglichen.
- Protokolliert das Laden von Treibern oder DLLs mit deren Signaturen und Hashes.
- Protokolliert das Öffnen für den rohen Lesezugriff von Datenträgern und Volumes.
- Protokolliert optional Netzwerkverbindungen – einschließlich des Quellprozesses für die einzelnen Verbindungen, IP-Adressen, Portnummern, Hostnamen und Portnamen.
- Erkennt an der Dateierstellungszeit vorgenommene Änderungen, um zu verstehen, wann eine Datei tatsächlich erstellt wurde. Die Änderung von Zeitstempeln für die Erstellung von Dateien ist eine Technik, mit deren Hilfe Schadsoftware häufig ihre Spuren verdeckt.
- Lädt die Konfiguration automatisch neu, wenn sie in der Registrierung geändert wurde.
- Regelfilterung, um bestimmte Ereignisse dynamisch einzubeziehen (include) oder auszuschließen (exclude).
- Generiert Ereignisse ab einem frühen Zeitpunkt im Startvorgang zum Erfassen von Aktivitäten, die von sogar anspruchsvoller Kernelmodus-Schadsoftware verursacht werden.
Screenshots
Verwendung
Häufige Verwendung bei einfachen Befehlszeilenoptionen zum Installieren und Deinstallieren von Sysmon sowie zum Überprüfen und Ändern von dessen Konfiguration:
Installieren: sysmon64 -i [<configfile>]
Konfiguration aktualisieren: sysmon64 -c [<configfile>]
Ereignismanifest installieren: sysmon64 -m
Schema drucken: sysmon64 -s
Deinstallieren: sysmon64 -u [force]
Parameter | BESCHREIBUNG |
---|---|
-i | Installieren Sie den Dienst und Treiber. Verwenden Sie optional eine Konfigurationsdatei. |
-c | Aktualisieren Sie die Konfiguration eines installierten Sysmon-Treibers, oder sichern Sie das Abbild der aktuellen Konfiguration, wenn kein anderes Argument angegeben wird. Verwenden Sie optional eine Konfigurationsdatei. |
-m | Installieren Sie das Ereignismanifest (erfolgt implizit auch bei der Dienstinstallation). |
-s | Drucken Sie die Definition des Konfigurationsschemas. |
-u | Deinstallieren Sie den Dienst und Treiber. Die Verwendung von -u force bewirkt, dass die Deinstallation sogar dann fortgesetzt wird, wenn einige Komponenten nicht installiert sind. |
Der Dienst protokolliert Ereignisse sofort, und der Treiber wird als Starttreiber installiert, um Aktivitäten ab einem frühen Zeitpunkt im Startvorgang zu erfassen, die der Dienst beim Starten in das Ereignisprotokoll schreibt.
Unter Vista und höher werden Ereignisse in Applications and Services Logs/Microsoft/Windows/Sysmon/Operational
gespeichert.
Auf älteren Systemen werden Ereignisse in das Ereignisprotokoll System
geschrieben.
Wenn Sie weitere Informationen zu Konfigurationsdateien benötigen, verwenden Sie den Befehl -? config
.
Geben Sie -accepteula
an, damit der Endbenutzer-Lizenzvertrag (End User License Agreement, EULA) bei der Installation automatisch akzeptiert wird. Andernfalls werden Sie interaktiv aufgefordert, ihn zu akzeptieren.
Weder die Installation noch die Deinstallation erfordert einen Neustart.
Beispiele
Installieren mit Standardeinstellungen (Prozessimages mit SHA1 und keine Netzwerküberwachung)
sysmon -accepteula -i
Installieren von Sysmon mit einer Konfigurationsdatei (wie unten beschrieben)
sysmon -accepteula -i c:\windows\config.xml
Deinstallieren
sysmon -u
Sichern der aktuellen Konfiguration
sysmon -c
Neukonfigurieren eines aktiven Sysmon mit einer Konfigurationsdatei (wie unten beschrieben)
sysmon -c c:\windows\config.xml
Ändern der Konfiguration auf die Standardeinstellungen
sysmon -c --
Anzeigen des Konfigurationsschemas
sysmon -s
Ereignisse
Unter Vista und höher werden Ereignisse in Applications and Services Logs/Microsoft/Windows/Sysmon/Operational
gespeichert, und auf älteren Systemen werden sie in das Ereignisprotokoll System
geschrieben.
Ereigniszeitstempel werden in der UTC-Standardzeit angegeben.
Nachstehend sind Beispiele für jeden von Sysmon generierten Ereignistyp aufgeführt.
Ereignis-ID 1: Prozesserstellung
Das Ereignis „Prozesserstellung“ liefert erweiterte Informationen zu einem neu erstellten Prozess. Die vollständige Befehlszeile liefert Kontext zur Prozessausführung. Das Feld ProcessGUID
ist ein eindeutiger Wert für diesen Prozess in einer Domäne, um die Ereigniskorrelation zu vereinfachen. Der Hash ist ein vollständiger Hash der Datei mit den Algorithmen im Feld HashType
.
Ereignis-ID 2: Ein Prozess hat den Erstellungszeitpunkt einer Datei geändert
Das Ereignis „Änderung des Erstellungszeitpunkts einer Datei“ wird registriert, wenn dieser Zeitpunkt durch einen Prozess explizit geändert wird. Dieses Ereignis hilft beim Nachverfolgen des tatsächlichen Erstellungszeitpunkts einer Datei. Angreifer können den Erstellungszeitpunkt einer Datei bei einer Hintertür ändern, damit sie aussieht, als ob sie zusammen mit dem Betriebssystem installiert wurde. Beachten Sie, dass viele Prozesse den Erstellungszeitpunkt einer Datei legitim ändern. Dies weist nicht unbedingt auf schädliche Aktivitäten hin.
Ereignis-ID 3: Netzwerkverbindung
Das Ereignis „Netzwerkverbindung“ protokolliert TCP/UDP-Verbindungen auf dem Computer. Diese Einstellung ist standardmäßig deaktiviert. Jede Verbindung ist über die Felder ProcessId
und ProcessGuid
mit einem Prozess verknüpft. Das Ereignis enthält auch die IP-Adressen, Portnummern und den IPv6-Status des Quell- und Zielhostnamens.
Ereignis-ID 4: Sysmon-Dienststatus wurde geändert
Das Ereignis „Änderung des Dienststatus“ meldet den Status des Sysmon-Diensts (wurde gestartet oder beendet).
Ereignis-ID 5: Prozess wurde beendet
Das Ereignis „Prozessbeendigung“ meldet, wenn ein Prozess beendet wird. Es stellt die Werte UtcTime
, ProcessGuid
und ProcessId
des Prozesses bereit.
Ereignis-ID 6: Treiber wurde geladen
Das Ereignis „Treiber wurde geladen“ liefert Informationen zu einem Treiber, der gerade in das System geladen wird. Die konfigurierten Hashes sowie Signaturinformationen werden bereitgestellt. Die Signatur wird aus Leistungsgründen asynchron erstellt und gibt an, ob die Datei nach dem Laden entfernt wurde.
Ereignis-ID 7: Image wurde geladen
Das Ereignis „Image wurde geladen“ protokolliert, wenn ein Modul in einem bestimmten Prozess geladen wird. Dieses Ereignis ist standardmäßig deaktiviert und muss mit der Option „–l
“ konfiguriert werden. Es gibt den Prozess, in dem das Modul geladen wird, sowie Hashes und Signaturinformationen an. Die Signatur wird aus Leistungsgründen asynchron erstellt und gibt an, ob die Datei nach dem Laden entfernt wurde. Dieses Ereignis sollte sorgfältig konfiguriert werden, da die Überwachung aller Ereignisse des Typs „Image wurde geladen“ eine erhebliche Menge an Protokollierung generiert.
Ereignis-ID 8: CreateRemoteThread
Das Ereignis CreateRemoteThread
erkennt, wenn ein Prozess einen Thread in einem anderen Prozess erstellt. Diese Technik wird von Schadsoftware genutzt, um Code einzuschleusen und in anderen Prozessen auszublenden. Das Ereignis gibt den Quell- und Zielprozess an. Es liefert Informationen zu dem Code, der im neuen Thread ausgeführt wird: StartAddress
, StartModule
und StartFunction
. Beachten Sie, dass die Felder StartModule
und StartFunction
abgeleitet werden. Sie könnten leer sein, wenn sich die Startadresse außerhalb von geladenen Modulen oder bekannten exportierten Funktionen befindet.
Ereignis-ID 9: RawAccessRead
Das Ereignis RawAccessRead
erkennt, wenn ein Prozess Lesevorgänge vom Laufwerk mithilfe der Bezeichnung \\.\
durchführt. Diese Technik wird oft von Schadsoftware genutzt: für die Datenexfiltration von Dateien, die zum Lesen gesperrt sind, sowie zur Vermeidung von Tools zur Dateizugriffsüberwachung. Das Ereignis gibt den Quellprozess und das Zielgerät an.
Ereignis-ID 10: ProcessAccess
Das Ereignis vom Typ „Auf den Prozess wurde zugegriffen“ meldet, wenn ein Prozess einen anderen Prozess öffnet. Dies ist ein Vorgang, auf den oft Informationsabfragen oder das Lesen und Schreiben des Adressraums für den Zielprozess folgen. Er ermöglicht die Erkennung von Hackertools, die die Speicherinhalte von Prozessen wie „Lokale Sicherheitsautorität“ (Local Security Authority, Lsass.exe) lesen, um Anmeldeinformationen für die Verwendung bei Pass-the-Hash-Angriffen zu stehlen. Seine Aktivierung kann erhebliche Mengen an Protokollierung generieren, wenn Diagnoseprogramme aktiv sind, die Prozesse wiederholt öffnen, um deren Zustand abzufragen. Daher sollte dieser Vorgang normalerweise nur mit Filtern durchgeführt werden, die erwartete Zugriffe entfernen.
Ereignis-ID 11: FileCreate
Dateierstellungsvorgänge werden protokolliert, wenn eine Datei erstellt oder überschrieben wird. Dieses Ereignis ist nützlich für die Überwachung von Autostart-Speicherorten, z. B. dem Ordner „Startup“, sowie von temporären Verzeichnissen und Downloadverzeichnissen, die häufige Orte für Schadsoftware-Drops während der Erstinfektion sind.
Ereignis-ID 12: RegistryEvent (Objekt erstellen und löschen)
Erstellungs- und Löschvorgänge für Registrierungsschlüssel und Werte sind diesem Ereignistyp zugeordnet, der für die Überwachung von Änderungen an Autostart-Speicherorten der Registrierung oder von bestimmten Änderungen an der Schadsoftwareregistrierung nützlich sein kann.
Sysmon verwendet abgekürzte Versionen von Namen des Registrierungsstammschlüssels mit den folgenden Zuordnungen:
Schlüsselname | Abkürzung |
---|---|
HKEY_LOCAL_MACHINE |
HKLM |
HKEY_USERS |
HKU |
HKEY_LOCAL_MACHINE\System\ControlSet00x |
HKLM\System\CurrentControlSet |
HKEY_LOCAL_MACHINE\Classes |
HKCR |
Ereignis-ID 13: RegistryEvent (Wert wurde festgelegt)
Dieser Typ von Registrierungsereignis identifiziert Änderungen des Registrierungswerts. Das -Ereignis zeichnet den Wert auf, der für Registrierungswerte des Typs DWORD
und QWORD
geschrieben wurde.
Ereignis-ID 14: RegistryEvent (Umbenennung von Schlüssel und Wert)
Umbenennungsvorgänge für Registrierungsschlüssel und Werte sind diesem Ereignistyp zugeordnet, wobei der neue Name des umbenannten Schlüssels oder Werts aufgezeichnet wird.
Ereignis-ID 15: FileCreateStreamHash
Dieses Ereignis protokolliert, wenn ein benannter Dateidatenstrom erstellt wird, und es generiert Ereignisse, die den Hash des Inhalts der Datei, der der Datenstrom zugewiesen ist (der unbenannte Datenstrom), sowie den Inhalt des benannten Datenstroms protokollieren. Es gibt Schadsoftwarevarianten, die ihre ausführbaren Dateien oder Konfigurationseinstellungen über Browserdownloads ablegen. Dieses Ereignis zielt darauf ab, dasjenige basierend auf dem Browser zu erfassen, das einen „Mark of the Web“-Datenstrom des Typs Zone.Identifier
anfügt.
Ereignis-ID 16: ServiceConfigurationChange
Dieses Ereignis protokolliert Änderungen an der Sysmon-Konfiguration – beispielsweise, wenn die Filterregeln aktualisiert werden.
Ereignis-ID 17: PipeEvent (Pipe wurde erstellt)
Dieses Ereignis wird generiert, wenn eine benannte Pipe erstellt wird. Schadsoftware verwendet oft benannte Pipes für die prozessübergreifende Kommunikation.
Ereignis-ID 18: PipeEvent (Pipe wurde verbunden)
Dieses Ereignis protokolliert, wenn eine benannte Pipeverbindung zwischen einem Client und einem Server hergestellt wird.
Ereignis-ID 19: WmiEvent (Aktivität „WmiEventFilter“ wurde erkannt)
Wenn ein WMI-Ereignisfilter registriert wird (eine Methode, die von Schadsoftware ausgeführt wird), protokolliert dieses Ereignis den WMI-Namespace, den Filternamen und den Filterausdruck.
Ereignis-ID 20: WmiEvent (Aktivität „WmiEventConsumer“ wurde erkannt)
Dieses Ereignis protokolliert die Registrierung von WMI-Consumern und zeichnet dabei den Consumernamen, das Protokoll sowie das Ziel auf.
Ereignis-ID 21: WmiEvent (Aktivität „WmiEventConsumerToFilter“ wurde erkannt)
Wenn ein Consumer an einen Filter gebunden wird, protokolliert dieses Ereignis den Consumernamen und den Filterpfad.
Ereignis-ID 22: DNSEvent (DNS-Abfrage)
Dieses Ereignis wird generiert, wenn ein Prozess eine DNS-Abfrage durchführt – unabhängig davon, ob das Ergebnis erfolgreich oder fehlerhaft ist, zwischengespeichert wurde oder nicht. Weil die Telemetriedaten für dieses Ereignis für Windows 8.1 hinzugefügt wurden, sind sie unter Windows 7 und früher nicht verfügbar.
Ereignis-ID 23: FileDelete („Datei löschen“ wurde archiviert)
Eine Datei wurde gelöscht. Zusätzlich zur Protokollierung des Ereignisses wird die gelöschte Datei auch im ArchiveDirectory
gespeichert (dies ist standardmäßig C:\Sysmon
). Unter normalen Betriebsbedingungen könnte dieses Verzeichnis auf eine unangemessene Größe anwachsen – siehe Ereignis-ID 26: FileDeleteDetected
für ein ähnliches Verhalten, aber ohne das Speichern der gelöschten Dateien.
Ereignis-ID 24: ClipboardChange (Neuer Inhalt in der Zwischenablage)
Dieses Ereignis wird generiert, wenn sich der Inhalt der Systemablage ändert.
Ereignis-ID 25: ProcessTampering (Imageänderung verarbeiten)
Dieses Ereignis wird generiert, wenn Techniken zum Ausblenden von Prozessen wie „hollow“ oder „herpaderp“ erkannt werden.
Ereignis-ID 26: FileDeleteDetected (Dateilöschung wurde protokolliert)
Eine Datei wurde gelöscht.
Ereignis-ID 27: FileBlockExecutable
Dieses Ereignis wird generiert, wenn Sysmon die Erstellung von ausführbaren Dateien (PE-Format) erkennt und blockiert.
Ereignis-ID 28: FileBlockShredding
Dieses Ereignis wird generiert, wenn Sysmon das Vernichten (Shredding) von Dateien aus Tools wie SDelete erkennt und blockiert.
Ereignis-ID 29: FileExecutableDetected
Dieses Ereignis wird generiert, wenn Sysmon die Erstellung einer neuen ausführbaren Datei (PE-Format) erkennt.
Ereignis-ID 255: Fehler
Dieses Ereignis wird generiert, wenn in Sysmon ein Fehler aufgetreten ist. Dies kann geschehen, wenn das System stark ausgelastet ist und bestimmte Aufgaben nicht ausgeführt werden konnten, ein Fehler im Sysmon-Dienst vorliegt oder wenn bestimmte Sicherheits- und Integritätsbedingungen nicht erfüllt werden. Sie können Fehler im Sysinternals-Forum oder über Twitter (@markrussinovich) melden.
Konfigurationsdateien
Konfigurationsdateien können nach den Konfigurationsswitches -i (Installation) oder -c (Konfiguration) angegeben werden. Sie erleichtern die Bereitstellung einer voreingestellten Konfiguration und das Filtern erfasster Ereignisse.
Eine einfache XML-Konfigurationsdatei sieht so aus:
<Sysmon schemaversion="4.82">
<!-- Capture all hashes -->
<HashAlgorithms>*</HashAlgorithms>
<EventFiltering>
<!-- Log all drivers except if the signature -->
<!-- contains Microsoft or Windows -->
<DriverLoad onmatch="exclude">
<Signature condition="contains">microsoft</Signature>
<Signature condition="contains">windows</Signature>
</DriverLoad>
<!-- Do not log process termination -->
<ProcessTerminate onmatch="include" />
<!-- Log network connection if the destination port equal 443 -->
<!-- or 80, and process isn't InternetExplorer -->
<NetworkConnect onmatch="include">
<DestinationPort>443</DestinationPort>
<DestinationPort>80</DestinationPort>
</NetworkConnect>
<NetworkConnect onmatch="exclude">
<Image condition="end with">iexplore.exe</Image>
</NetworkConnect>
</EventFiltering>
</Sysmon>
Die Konfigurationsdatei enthält ein „schemaversion“-Attribut für das Tag „Sysmon“. Diese Version ist unabhängig von der Sysmon-Binärversion und ermöglicht die Analyse von älteren Konfigurationsdateien. Sie können die aktuelle Schemaversion mithilfe der Befehlszeile „-? config
“ abrufen. Konfigurationseinträge befinden sich direkt unter dem Tag Sysmon
, und Filter befinden sich unter dem Tag EventFiltering
.
Konfigurationseinträge
Konfigurationseinträge sind ähnlich wie Befehlszeilenschalter und enthalten Folgendes:
Konfigurationseinträge enthalten Folgendes:
Eingabe | Wert | Beschreibung |
---|---|---|
ArchiveDirectory | String | Name von Verzeichnissen in Volumenstämmen, in die beim Löschen kopierte (copy-on-delete) Dateien verschoben werden. Das Verzeichnis wird mit einer System-ACL geschützt (Sie können PsExec aus Sysinternals verwenden, um mithilfe von psexec -sid cmd auf das Verzeichnis zuzugreifen). Standard: Sysmon |
CheckRevocation | Boolean | Steuert Überprüfungen auf Signatursperrung. Standard: True |
CopyOnDeletePE | Boolean | Behält gelöschte ausführbare Imagedateien bei. Standard: False |
CopyOnDeleteSIDs | Zeichenfolgen | Durch Trennzeichen getrennte Liste der Konto-SIDs, bei denen Dateilöschungen beibehalten werden. |
CopyOnDeleteExtensions | Zeichenfolgen | Erweiterungen für Dateien, die beim Löschen beibehalten werden. |
CopyOnDeleteProcesses | Zeichenfolgen | Prozessname(n), für den/die Dateilöschungen beibehalten werden. |
DnsLookup | Boolean | Steuert das Reverse-DNS-Lookup. Standard: True |
DriverName | String | Verwendet den angegebenen Namen für Treiber- und Dienstimages. |
HashAlgorithms | Zeichenfolgen | Hashalgorithmen, die beim Hashing angewendet werden sollen. Unterstützte Algorithmen sind „MD5“, „SHA1“, „SHA256“, „IMPHASH“ und „* (alle)“. Standard: None |
Für Befehlszeilenschalter gibt es einen Konfigurationseintrag, der in der Sysmon-Verwendungsausgabe beschrieben wird. Parameter sind optional und basieren auf dem Tag. Wenn ein Befehlszeilenschalter auch ein Ereignis aktiviert, muss es über sein Filtertag konfiguriert werden. Sie können den Schalter -s
angeben, damit Sysmon das vollständige Konfigurationsschema ausgibt – einschließlich Ereignistags sowie der Feldnamen und -typen für jedes Ereignis. Hier ist beispielsweise das Schema für den Ereignistyp RawAccessRead
:
<event name="SYSMON_RAWACCESS_READ" value="9" level="Informational "template="RawAccessRead detected" rulename="RawAccessRead" version="2">
<data name="UtcTime" inType="win:UnicodeString" outType="xs:string"/>
<data name="ProcessGuid" inType="win:GUID"/>
<data name="ProcessId" inType="win:UInt32" outType="win:PID"/>
<data name="Image" inType="win:UnicodeString" outType="xs:string"/>
<data name="Device" inType="win:UnicodeString" outType="xs:string"/>
</event>
Einträge für Ereignisfilterung
Mithilfe der Ereignisfilterung können Sie generierte Ereignisse filtern. In vielen Fällen können Ereignisse umfangreich sein, und es ist nicht möglich, alles zu sammeln. So könnten Sie beispielsweise an Netzwerkverbindungen nur für einen bestimmten Prozess interessiert sein, aber nicht für alle. Sie können die Ausgabe auf dem Host filtern, indem Sie die zu erfassenden Daten reduzieren.
In einer Konfigurationsdatei hat jedes Ereignis ein eigenes Filtertag unter dem Knoten „EventFiltering“:
ID | Tag | Ereignis |
---|---|---|
1 | ProcessCreate | Prozesserstellung |
2 | FileCreateTime | Zeitpunkt der Dateierstellung |
3 | NetworkConnect | Netzwerkverbindung wurde erkannt |
4 | – | Änderung des Sysmon-Dienststatus (kann nicht gefiltert werden) |
5 | ProcessTerminate | Prozess wurde beendet |
6 | DriverLoad | Treiber wurde geladen |
7 | ImageLoad | Image wurde geladen |
8 | CreateRemoteThread | „CreateRemoteThread“ wurde erkannt |
9 | RawAccessRead | „RawAccessRead“ wurde erkannt |
10 | ProcessAccess | Auf den Prozess wurde zugegriffen |
11 | FileCreate | Datei wurde erstellt |
12 | RegistryEvent | Registrierungsobjekt wurde hinzugefügt oder gelöscht |
13 | RegistryEvent | Registrierungswert wurde festgelegt |
14 | RegistryEvent | Registrierungsobjekt wurde umbenannt |
15 | FileCreateStreamHash | Dateidatenstrom wurde erstellt |
16 | – | Sysmon-Konfigurationsänderung (kann nicht gefiltert werden) |
17 | PipeEvent | Benannte Pipe wurde erstellt |
18 | PipeEvent | Benannte Pipe wurde verbunden |
19 | WmiEvent | WMI-Filter |
20 | WmiEvent | WMI-Consumer |
21 | WmiEvent | WMI-Consumerfilter |
22 | DnsQuery | DNS-Abfrage |
23 | FileDelete | „Datei löschen“ wurde archiviert |
24 | ClipboardChange | Neuer Inhalt in der Zwischenablage |
25 | ProcessTampering | Änderung des Prozessimages |
26 | FileDeleteDetected | „Datei löschen“ wurde protokolliert |
27 | FileBlockExecutable | Ausführbarer Dateiblock |
28 | FileBlockShredding | Vernichten (Shredding) von Dateiblöcken |
29 | FileExecutableDetected | Ausführbare Datei wurde erkannt |
Sie können diese Tags auch in der Ereignisanzeige unter dem Aufgabennamen finden.
Der Filter onmatch
wird angewendet, wenn Ereignisse übereinstimmen. Er kann mit dem Attribut onmatch
für das Filtertag geändert werden. Wenn der Wert "include"
lautet, bedeutet dies, dass nur übereinstimmende Ereignisse einbezogen werden. Wenn er auf "exclude"
festgelegt wird, wird das Ereignis einbezogen – außer wenn eine Regel übereinstimmt. Sie können sowohl einen „include“- als auch einen „exclude“-Filtersatz für jede Ereignis-ID angeben, wobei „exclude“-Übereinstimmungen Vorrang haben.
Jeder Filter kann null oder mehr Regeln enthalten. Jedes Tag unter dem Filtertag ist ein Feldname aus dem Ereignis. Regeln, die eine Bedingung für denselben Feldnamen angeben, verhalten sich als „OR“-Bedingungen, und Regeln, die einen anderen Feldnamen angeben, verhalten sich als „AND“-Bedingungen. Feldregeln können auch Bedingungen verwenden, damit sie einem Wert entsprechen. Die Bedingungen lauten wie folgt (bei allen wird die Groß-/Kleinschreibung nicht beachtet):
Condition | Beschreibung |
---|---|
is | Standardwert, Werte sind gleich |
is any | Das Feld ist einer der durch das Trennzeichen ; getrennten Werte |
is not | Die Werte sind unterschiedlich |
contains | Das Feld enthält diesen Wert |
contains any | Das Feld enthält einen beliebigen der durch das Trennzeichen ; getrennten Werte |
contains all | Das Feld enthält alle durch das Trennzeichen ; getrennten Werte |
excludes | Das Feld enthält diesen Wert nicht |
excludes any | Das Feld enthält keinen einzigen der durch das Trennzeichen ; getrennten Werte |
excludes all | Das Feld enthält keinen der durch das Trennzeichen ; getrennten Werte |
begin with | Das Feld beginnt mit diesem Wert |
end with | Das Feld endet mit diesem Wert |
not begin with | Das Feld beginnt nicht mit diesem Wert |
not end with | Das Feld endet nicht mit diesem Wert |
less than | Der lexikografische Vergleich ist kleiner als null |
more than | Der lexikografische Vergleich ist größer als null |
Abbildung | Übereinstimmung mit einem Imagepfad (vollständiger Pfad oder nur Imagename). Beispiel: lsass.exe stimmt überein mit c:\windows\system32\lsass.exe |
Sie können eine andere Bedingung verwenden, indem Sie sie als ein Attribut angeben. Dadurch wird die Netzwerkaktivität aus Prozessen mit „iexplore.exe“ in deren Pfad ausgeschlossen:
<NetworkConnect onmatch="exclude">
<Image condition="contains">iexplore.exe</Image>
</NetworkConnect>
Damit Sysmon meldet, welcher Regelabgleich zum Protokollieren eines Ereignisses geführt hat, fügen Sie Regeln Namen hinzu:
<NetworkConnect onmatch="exclude">
<Image name="network iexplore" condition="contains">iexplore.exe</Image>
</NetworkConnect>
Sie können sowohl „include“- als auch „exclude“-Regeln für dasselbe Tag verwenden, wobei „exclude“-Regeln „include“-Regeln außer Kraft setzen. Innerhalb einer Regel haben Filterbedingungen das „OR“-Verhalten.
In der weiter oben gezeigten Beispielkonfiguration verwendet der Netzwerkfilter sowohl eine „include“- als auch eine „exclude“-Regel zum Erfassen von Aktivitäten an Port 80 und 443 durch alle Prozesse – mit Ausnahme derjenigen Prozesse, in deren Name iexplore.exe
enthalten ist.
Es ist auch möglich, die Art und Weise, in der Regeln kombiniert werden, außer Kraft zu setzen. Dazu wird eine Regelgruppe verwendet, die es ermöglicht, den Regelkombinationstyp für ein oder mehrere Ereignisse explizit auf „AND“ oder „OR“ festzulegen.
Im folgenden Beispiel wird diese Verwendung veranschaulicht. In der ersten Regelgruppe wird ein Ereignis vom Typ „Prozesserstellung“ generiert, wenn timeout.exe
nur mit dem Befehlszeilenargument 100
ausgeführt wird, aber für die Beendigung von ping.exe
und timeout.exe
wird ein Ereignis vom Typ „Prozessbeendigung“ generiert.
<EventFiltering>
<RuleGroup name="group 1" groupRelation="and">
<ProcessCreate onmatch="include">
<Image condition="contains">timeout.exe</Image>
<CommandLine condition="contains">100</CommandLine>
</ProcessCreate>
</RuleGroup>
<RuleGroup groupRelation="or">
<ProcessTerminate onmatch="include">
<Image condition="contains">timeout.exe</Image>
<Image condition="contains">ping.exe</Image>
</ProcessTerminate>
</RuleGroup>
<ImageLoad onmatch="include"/>
</EventFiltering>
Sysmon herunterladen (4,6 MB)
Läuft auf:
- Client: Windows 10 und höher.
- Server: Windows Server 2016 und höher.