Freigeben über


Sysmon v15.15

Von Mark Russinovich und Thomas Garnier

Veröffentlicht am: 23. Juli 2024

Download 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

EventViewer

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>

Download Sysmon herunterladen (4,6 MB)

Läuft auf:

  • Client: Windows 10 und höher.
  • Server: Windows Server 2016 und höher.