
Ein Repository von Sysmon-Konfigurationsmodulen
Dies ist ein Konfigurations-Repository für Microsoft Sysinternals Sysmon Download hier, das modular aufgebaut ist, um die Wartung und Generierung spezifischer Konfigurationen zu erleichtern.
Bitte beachten Sie, dass jede dieser Konfigurationen als Ausgangspunkt betrachtet werden sollte; ein Tuning pro Umgebung wird dringend empfohlen.
Hinweis: Um noch mehr Nutzen aus dem FileExecutable-Ereignis zu ziehen, sollten Sie erwägen, die aktuellste Version der LOLdrivers-Konfiguration ebenfalls in die Konfiguration zu integrieren. Das geht ganz einfach, indem Sie die Datei holen, sie im Ordner 29_file_execute_detected ablegen und eine neue Konfiguration generieren.
Die sysmonconfig.xml im Repository wird nach einem erfolgreichen Merge durch das PowerShell-Skript und einem erfolgreichen Ladevorgang durch Sysmon in einem Azure-Pipeline-Lauf automatisch generiert. Weitere Informationen zum Generieren einer benutzerdefinierten Konfiguration mit eigenen Modulen finden Sie hier
Zusätzlich zur Dokumentation unten gibt es auch ein Video zur Verwendung dieses Projekts.
Ältere Versionen sind weiterhin in den Branches verfügbar, aber nicht so vollständig wie der aktuelle Branch.
Um die in den Versionen hinzugefügten Funktionen zu verstehen, werfen Sie einen Blick auf meinen kleinen Blogbeitrag und neuere Artikel oder schauen Sie sich meinen DerbyCon-Vortrag an.
Hinweis: Ich empfehle, in Ihrer Umgebung nur eine minimale Anzahl von Konfigurationen zu verwenden, und zwar aus mehreren offensichtlichen Gründen wie Wartung, Ausgabegleichheit, Verwaltbarkeit usw. Aber erstellen Sie maßgeschneiderte Konfigurationen für Domain-Controller, Server und Workstations.
Ich empfehle dringend, sich die Konfigurationen anzusehen, bevor Sie sie in Ihrer Produktionsumgebung einsetzen. So erreichen Sie eine möglichst aussagekräftige Protokollierung mit möglichst wenig Rauschen.
Sie müssen die Konfiguration in Ihrer eigenen Umgebung installieren und die Ergebnisse beobachten, bevor Sie sie breit ausrollen. Beispielsweise müssen Sie Aktionen Ihres Antivirenprogramms ausschließen, da diese andernfalls Ihre Protokolle wahrscheinlich mit nutzlosen Informationen füllen.
$> git clone https://github.com/olafhartong/sysmon-modular.git
$> cd sysmon modular
$> . .\Merge-SysmonXml.ps1
$> Merge-AllSysmonXml -Path ( Get-ChildItem '[0-9]*\*.xml') -AsString | Out-File sysmonconfig.xml
Die folgenden Funktionen mit großem Dank an mbmy
Neue Funktion:
Find-RulesInBasePath - nimmt einen Basispfad (z. B. C:\folder\sysmon-modular) entgegen und findet alle in Frage kommenden XML-Regeldateien anhand eines Regex-Musters.
Beispiel:
PS C:\Users\sysmon\sysmon-modular> Find-RulesInBasePath -BasePath C:\users\sysmon\sysmon-modular\ -OutputRules | Out-File available_rules.txt
Merge-AllSysmonXml Neue Parameter:
-BasePath – findet alle in Frage kommenden XML-Regeldateien aus einem angegebenen Pfad anhand eines Regex-Musters und führt sie zusammen.
Beispiel:
PS C:\Users\sysmon\sysmon-modular> Merge-AllSysmonXml -AsString -BasePath C:\Users\sysmon\sysmon-modular\
-ExcludeList – In Kombination mit -BasePath wird eine Liste von Regeln übernommen und vor dem Merge aus den gefundenen Regeln ausgeschlossen.
Beispiel:
PS C:\Users\sysmon\sysmon-modular> Merge-AllSysmonXml -AsString -BasePath C:\Users\sysmon\sysmon-modular\ -ExcludeList C:\users\sysmon\sysmon-modular\exclude_rules.txt
-IncludeList – In Kombination mit -BasePath werden alle verfügbaren Regeln vom Basispfad gefunden, aber nur die in einer Liste definierten werden zusammengeführt.
Beispiel:
PS C:\Users\sysmon\sysmon-modular> Merge-AllSysmonXml -AsString -BasePath C:\Users\sysmon\sysmon-modular\ -IncludeList C:\users\sysmon\sysmon-modular\include_rules.txt
HINWEIS Der BasePath muss der vollständige Pfad zu den sysmon-modular-Dateien sein (z. B. c:\tools\sysmon-modular), andernfalls kann PowerShell diese nicht finden, was zu einer Standardkonfiguration führt.
Beispiel für das Format der Include/Exclude-Liste:
3_network_connection_initiated\include_native_windows_tools.xml
12_13_14_registry_event\exclude_internet_explorer_settings.xml
12_13_14_registry_event\exclude_webroot.xml
17_18_pipe_event\include_winreg.xml
19_20_21_wmi_event\include_wmi_create.xml
2_file_create_time\exclude_chrome.xml
3_network_connection_initiated\include_native_windows_tools.xml
3_network_connection_initiated\include_ports_proxies.xml
8_create_remote_thread\include_general_commment.xml
8_create_remote_thread\include_psinject.xml
9_raw_access_read\include_general_commment.xml
Erstellen einer Konfiguration mit allen sysmon-modular-Regeln für bestimmte Ereignis-IDs (ganzes Verzeichnis einbeziehen) und anschließendes Deaktivieren aller Ereignis-IDs ohne importierte Regeln
Beispiel:
# generate the config
$sysmonconfig = Merge-AllSysmonXml -BasePath . -IncludeList $workingFolder\include.txt -VerboseLogging -PreserveComments
# flip off any rule groups where rules were not imported
foreach($rg in $sysmonconfig.SelectNodes("/Sysmon/EventFiltering/RuleGroup [*/@onmatch]"))
{
$ruleNodes = $rg.SelectNodes("./* [@onmatch]")
if( $ruleNodes -eq $null `
-or $ruleNodes.ChildNodes.count -gt 0)
{
# no rule nodes found (unlikely) or more than one rule found
continue
}
# RuleGroup with only one rule node
$ruleNode = $ruleNodes[0]
if($ruleNode.onmatch -eq "exclude" -and $ruleNode.ChildNodes.count -eq 0 )
{
$message = "{0} {1} has no matching conditions. Toggled to 'include' to limit output" -f $ruleNode.Name,$rg.Name
Write-Warning $message
$ruleNode.onmatch = "include"
$comment = $sysmonconfig.CreateComment($message)
$rg.AppendChild($comment) | Out-Null
}
}
Beispiel für das Format der Include/Exclude-Liste (für gesamte Regel-/Ereignisfamilien):
1_process_creation
5_process_ended
11_file_create
23_file_delete
7_image_load
17_18_pipe_event
Mit Administratorrechten ausführen
sysmon.exe -accepteula -i sysmonconfig.xml
Mit Administratorrechten ausführen
sysmon.exe -c sysmonconfig.xml
Dies ist eine neue Funktion, erstellt von cnnrshd
Mit diesem Skript generierte Konfigurationen behalten Kommentare bei, und eine korrekte XML-Einrückung wird erzwungen, was die Lesbarkeit erhöht und das Querverweisen von Regeldateien erleichtert.
Beispielaufruf
python merge_sysmon_configs.py config_lists/default_list/default_list.csv -f csv -b templates/sysmon_template.xml -o test.xml
** Diese Art der Inhaltsgenerierung ist noch neu und experimentell. Es gibt noch keine Unterstützung für die benutzerdefinierten Versionen wie MDE-Augment- und Nur-Ausschluss-Versionen.
Es gibt drei große Sysmon-Konfigurationen:
@SwiftOnSecurity: großartige einführende Erläuterung vieler Einstellungen. Los geht's mit 1 Befehl https://github.com/SwiftOnSecurity/sysmon-config/.
@cyb3rops: Ein Fork von SwiftOnSecurity, hochmodern und proaktiv. **https://github.com/Neo23x0/sysmon-config
@olafhartong: Dieses Repository, das sich auf eine sehr gute Wartbarkeit mit detaillierten Regelanmerkungen für geführte Reaktion und SIEM konzentriert.
Ein hervorragender Community-Leitfaden von @Carlos_Perez: https://github.com/trustedsec/SysmonCommunityGuide
Pull Requests / Issue-Tickets und neue Ergänzungen werden sehr geschätzt!
Ich habe eine Reihe von Blogbeiträgen zu diesem Repository gestartet;
Endpoint-Erkennungs-Superkräfte für wenig Geld – Teil 2 – Bereitstellung und Wartung
Endpoint-Erkennungs-Superkräfte für wenig Geld – Teil 3 – Sysmon-Manipulation
Ein Vergleich zwischen Sysmon und Microsoft Defender for Endpoint
Ich bemühe mich, alle Konfigurationen dem ATT&CK-Framework zuzuordnen, wann immer Sysmon in der Lage ist, dies zu erkennen. Bitte beachten Sie, dass dies ein möglicher Protokolleintrag ist, der zu einer Erkennung führen kann; in nicht allen Fällen ist dies die einzige Telemetrie für diese Technik. Darüber hinaus kann es weitere Techniken geben, die mit dieser Regel zusammenhängen; die zugeordnete ist die, die ich für am wahrscheinlichsten halte.
| Typ | Konfiguration | Beschreibung |
|---|
| default | sysmonconfig.xml | Dies ist die ausgewogene Konfiguration, die am häufigsten verwendet wird, weitere Informationen hier |
| default+ | sysmonconfig-with-filedelete.xml | Dies ist die ausgewogene Konfiguration, die am häufigsten verwendet wird, weitere Informationen einschließlich FileDelete-Dateispeicherungen |
| verbose | sysmonconfig-excludes-only.xml | Dies ist die sehr ausführliche Konfiguration, alle Ereignisse sind enthalten, nur die Ausschlussmodule werden angewendet. Diese sollte ohne Validierung nicht in der Produktion eingesetzt werden, da sie eine erhebliche Datenmenge erzeugt und die Leistung beeinträchtigen kann. Weitere Informationen hier |
| super verbose | sysmonconfig-research.xml | Eine Konfiguration mit extremer Ausführlichkeit. Das zu erwartende Logvolumen dieser Datei ist erheblich, wirklich NICHT IN DER PRODUKTION VERWENDEN! Diese Konfiguration ist nur für Forschungszwecke gedacht, sie verbraucht wesentlich mehr CPU/Speicher. Aktivieren Sie sie nur vor der Ausführung der zu untersuchenden Technik und laden Sie danach eine schlankere Konfiguration. |
| MDE augment | sysmonconfig-mde-augmentation.xml | Eine Konfiguration zur Ergänzung von Defender for Endpoint, die darauf abzielt, die Informationen zu ergänzen und so wenig Überschneidungen wie möglich zu haben. Sie basiert auf der Standard-/Balanced-Konfiguration und wird nicht alle Ereignisse für Sysmon erzeugen, es gibt Kommentare in der Konfiguration. Für die Vorteile der Incident Response (IR) sollten Sie erwägen, die Nur-Ausschluss-Konfiguration zu verwenden und nur die anreichernden Ereignisse aufzunehmen. (Blog mit mehr Begründung folgt in Kürze) |