DFIR-Timeline-Befehle¶
Scan-Assistent¶
Die Befehle csv-timeline und json-timeline verfügen jetzt standardmäßig über einen aktivierten Scan-Assistenten.
Dieser soll Benutzern helfen, je nach ihren Bedürfnissen und Vorlieben einfach auszuwählen, welche Erkennungsregeln sie aktivieren möchten.
Die zu ladenden Sätze von Erkennungsregeln basieren auf den offiziellen Listen im Sigma-Projekt.
Details werden in diesem Blogbeitrag erläutert.
Sie können den Assistenten einfach ausschalten und Hayabusa auf herkömmliche Weise verwenden, indem Sie die Option -w, --no-wizard hinzufügen.
Core-Regeln¶
Der Regelsatz core aktiviert Regeln mit dem Status test oder stable und einem Level von high oder critical.
Dies sind qualitativ hochwertige Regeln mit hoher Zuverlässigkeit und Relevanz, die nicht viele Fehlalarme erzeugen sollten.
Der Regelstatus ist test oder stable, was bedeutet, dass über 6 Monate lang keine Fehlalarme gemeldet wurden.
Regeln passen auf Angreifertechniken, allgemein verdächtige Aktivitäten oder bösartiges Verhalten.
Es entspricht der Verwendung der Optionen --exclude-status deprecated,unsupported,experimental --min-level high.
Core+-Regeln¶
Der Regelsatz core+ aktiviert Regeln mit dem Status test oder stable und einem Level von medium oder höher.
medium-Regeln benötigen meist eine zusätzliche Feinabstimmung, da bestimmte Anwendungen, legitimes Benutzerverhalten oder Skripte einer Organisation übereinstimmen könnten.
Es entspricht der Verwendung der Optionen --exclude-status deprecated,unsupported,experimental --min-level medium.
Core++-Regeln¶
Der Regelsatz core++ aktiviert Regeln mit dem Status experimental, test oder stable und einem Level von medium oder höher.
Diese Regeln sind topaktuell.
Sie werden gegen die im SigmaHQ-Projekt verfügbaren Basis-Evtx-Dateien validiert und von mehreren Detection Engineers überprüft.
Abgesehen davon sind sie zunächst weitgehend ungetestet.
Verwenden Sie diese, wenn Sie Bedrohungen so früh wie möglich erkennen möchten, allerdings um den Preis, eine höhere Schwelle an Fehlalarmen zu verwalten.
Es entspricht der Verwendung der Optionen --exclude-status deprecated,unsupported --min-level medium.
Emerging Threats (ET) Add-On-Regeln¶
Der Regelsatz Emerging Threats (ET) aktiviert Regeln mit dem Tag detection.emerging_threats.
Diese Regeln zielen auf bestimmte Bedrohungen ab und sind besonders nützlich bei aktuellen Bedrohungen, zu denen noch nicht viele Informationen verfügbar sind.
Diese Regeln sollten nicht viele Fehlalarme erzeugen, werden aber mit der Zeit an Relevanz verlieren.
Wenn diese Regeln nicht aktiviert sind, entspricht dies der Verwendung der Option --exclude-tag detection.emerging_threats.
Wenn Sie Hayabusa herkömmlich ohne den Assistenten ausführen, werden diese Regeln standardmäßig einbezogen.
Threat Hunting (TH) Add-On-Regeln¶
Der Regelsatz Threat Hunting (TH) aktiviert Regeln mit dem Tag detection.threat_hunting.
Diese Regeln können unbekannte bösartige Aktivitäten erkennen, weisen jedoch typischerweise mehr Fehlalarme auf.
Wenn diese Regeln nicht aktiviert sind, entspricht dies der Verwendung der Option --exclude-tag detection.threat_hunting.
Wenn Sie Hayabusa herkömmlich ohne den Assistenten ausführen, werden diese Regeln standardmäßig einbezogen.
Channel-basierte Filterung von Ereignisprotokollen und Regeln¶
Seit Hayabusa v2.16.0 aktivieren wir einen Channel-basierten Filter beim Laden von .evtx-Dateien und .yml-Regeln.
Der Zweck besteht darin, das Scannen so effizient wie möglich zu gestalten, indem nur das geladen wird, was notwendig ist.
Es ist zwar möglich, dass es mehrere Provider in einem einzigen Ereignisprotokoll gibt, aber es ist nicht üblich, mehrere Channels innerhalb einer einzigen evtx-Datei zu haben.
(Das einzige Mal, dass wir dies gesehen haben, war, als jemand zwei verschiedene evtx-Dateien für das sample-evtx-Projekt künstlich zusammengeführt hat.)
Wir können uns dies zunutze machen, indem wir zuerst das Channel-Feld im ersten Datensatz jeder zum Scannen angegebenen .evtx-Datei überprüfen.
Wir prüfen außerdem, welche .yml-Regeln welche im Channel-Feld der Regel angegebenen Channels verwenden.
Mit diesen beiden Listen laden wir nur Regeln, die Channels verwenden, die tatsächlich in den .evtx-Dateien vorhanden sind.
Wenn ein Benutzer beispielsweise Security.evtx scannen möchte, werden nur Regeln verwendet, die Channel: Security angeben.
Es hat keinen Sinn, andere Erkennungsregeln zu laden, zum Beispiel Regeln, die nur nach Ereignissen im Application-Protokoll suchen usw.
Beachten Sie, dass Channel-Felder (z. B. Channel: Security) nicht explizit in den originalen Sigma-Regeln definiert sind.
Bei Sigma-Regeln werden die Channel- und Event-ID-Felder implizit mit den Feldern service und category unter logsource definiert. (z. B. service: security)
Bei der Kuratierung von Sigma-Regeln im hayabusa-rules-Repository entabstrahieren wir das logsource-Feld und definieren die Channel- und Event-ID-Felder explizit.
Wie und warum wir das tun, erklären wir ausführlich hier.
Derzeit gibt es nur zwei Erkennungsregeln, bei denen kein Channel definiert ist und die alle .evtx-Dateien scannen sollen, nämlich die folgenden:
Wenn Sie diese beiden Regeln verwenden und alle Regeln gegen geladene .evtx-Dateien scannen möchten, müssen Sie die Option -A, --enable-all-rules in den Befehlen csv-timeline und json-timeline hinzufügen.
In unseren Benchmarks bringt die Regelfilterung je nach gescannten Dateien in der Regel eine Geschwindigkeitsverbesserung von 20 % bis zum 10-Fachen und verbraucht natürlich weniger Speicher.
Die Channel-Filterung wird auch beim Laden von .evtx-Dateien verwendet.
Wenn Sie beispielsweise eine Regel angeben, die nach Ereignissen mit einem Channel von Security sucht, dann hat es keinen Sinn, .evtx-Dateien zu laden, die nicht aus dem Security-Protokoll stammen.
In unseren Benchmarks bringt dies bei normalen Scans einen Geschwindigkeitsvorteil von etwa 10 % und bei Scans mit einer einzigen Regel eine Leistungssteigerung von bis zu über 60 %.
Wenn Sie sicher sind, dass innerhalb einer einzigen .evtx-Datei mehrere Channels verwendet werden, zum Beispiel weil jemand ein Tool verwendet hat, um mehrere .evtx-Dateien zusammenzuführen, dann deaktivieren Sie diese Filterung mit der Option -a, --scan-all-evtx-files in den Befehlen csv-timeline und json-timeline.
Hinweis: Die Channel-Filterung funktioniert nur mit
.evtx-Dateien und Sie erhalten einen Fehler, wenn Sie versuchen, Ereignisprotokolle aus einer JSON-Datei mit-J, --json-inputzu laden und gleichzeitig-Aoder-aangeben.
csv-timeline-Befehl¶
Der Befehl csv-timeline erstellt eine forensische Zeitleiste von Ereignissen im CSV-Format.
Usage: csv-timeline <INPUT> [OPTIONS]
Input:
-d, --directory <DIR> Directory of multiple .evtx files
-f, --file <FILE> File path to one .evtx file
-l, --live-analysis Analyze the local C:\Windows\System32\winevt\Logs folder
General Options:
-C, --clobber Overwrite files when saving
-h, --help Show the help menu
-J, --JSON-input Scan JSON formatted logs instead of .evtx (.json or .jsonl)
-w, --no-wizard Do not ask questions. Scan for all events and alerts
-Q, --quiet-errors Quiet errors mode: do not save error logs
-x, --recover-records Carve evtx records from slack space (default: disabled)
-r, --rules <DIR/FILE> Specify a custom rule directory or file (default: ./rules)
-c, --rules-config <DIR> Specify custom rule config directory (default: ./rules/config)
-s, --sort Sort events before saving the file. (warning: this uses much more memory!)
-t, --threads <NUMBER> Number of threads (default: optimal number for performance)
--target-file-ext <FILE-EXT...> Specify additional evtx file extensions (ex: evtx_data)
Filtering:
-E, --EID-filter Scan only common EIDs for faster speed (./rules/config/target_event_IDs.txt)
-A, --enable-all-rules Enable all rules regardless of loaded evtx files (disable channel filter for rules)
-D, --enable-deprecated-rules Enable rules with a status of deprecated
-n, --enable-noisy-rules Enable rules set to noisy (./rules/config/noisy_rules.txt)
-u, --enable-unsupported-rules Enable rules with a status of unsupported
-e, --exact-level <LEVEL> Only load rules with a specific level (informational, low, medium, high, critical)
--exclude-category <CATEGORY...> Do not load rules with specified logsource categories (ex: process_creation,pipe_created)
--exclude-computer <COMPUTER...> Do not scan specified computer names (ex: ComputerA) (ex: ComputerA,ComputerB)
--exclude-eid <EID...> Do not scan specific EIDs for faster speed (ex: 1) (ex: 1,4688)
--exclude-status <STATUS...> Do not load rules according to status (ex: experimental) (ex: stable,test)
--exclude-tag <TAG...> Do not load rules with specific tags (ex: sysmon)
--include-category <CATEGORY...> Only load rules with specified logsource categories (ex: process_creation,pipe_created)
--include-computer <COMPUTER...> Scan only specified computer names (ex: ComputerA) (ex: ComputerA,ComputerB)
--include-eid <EID...> Scan only specified EIDs for faster speed (ex: 1) (ex: 1,4688)
--include-status <STATUS...> Only load rules with specific status (ex: experimental) (ex: stable,test)
--include-tag <TAG...> Only load rules with specific tags (ex: attack.execution,attack.discovery)
-m, --min-level <LEVEL> Minimum level for rules to load (default: informational)
-P, --proven-rules Scan with only proven rules for faster speed (./rules/config/proven_rules.txt)
-a, --scan-all-evtx-files Scan all evtx files regardless of loaded rules (disable channel filter for evtx files)
--time-offset <OFFSET> Scan recent events based on an offset (ex: 1y, 3M, 30d, 24h, 30m)
--timeline-end <DATE> End time of the event logs to load (ex: "2022-02-22 23:59:59 +09:00")
--timeline-start <DATE> Start time of the event logs to load (ex: "2020-02-22 00:00:00 +09:00")
Output:
-b, --disable-abbreviations Disable abbreviations
-G, --GeoIP <MAXMIND-DB-DIR> Add GeoIP (ASN, city, country) info to IP addresses
-H, --HTML-report <FILE> Save Results Summary details to an HTML report (ex: results.html)
-M, --multiline Output event field information in multiple rows
-F, --no-field-data-mapping Disable field data mapping
--no-pwsh-field-extraction Disable field extraction of PowerShell classic logs
-o, --output <FILE> Save the timeline in CSV format (ex: results.csv)
-p, --profile <PROFILE> Specify output profile
-R, --remove-duplicate-data Duplicate field data will be replaced with "DUP"
-X, --remove-duplicate-detections Remove duplicate detections (default: disabled)
-S, --tab-separator Separate event field information by tabs
Display Settings:
-K, --no-color Disable color output
-N, --no-summary Do not display Results Summary for faster speed
-q, --quiet Quiet mode: do not display the launch banner
-v, --verbose Output verbose information
-T, --visualize-timeline Output event frequency timeline (terminal needs to support unicode)
Time Format:
--European-time Output timestamp in European time format (ex: 22-02-2022 22:00:00.123 +02:00)
-O, --ISO-8601 Output timestamp in original ISO-8601 format (ex: 2022-02-22T10:10:10.1234567Z) (Always UTC)
--RFC-2822 Output timestamp in RFC 2822 format (ex: Fri, 22 Feb 2022 22:00:00 -0600)
--RFC-3339 Output timestamp in RFC 3339 format (ex: 2022-02-22 22:00:00.123456-06:00)
--US-military-time Output timestamp in US military time format (ex: 02-22-2022 22:00:00.123 -06:00)
--US-time Output timestamp in US time format (ex: 02-22-2022 10:00:00.123 PM -06:00)
-U, --UTC Output time in UTC format (default: local time)
csv-timeline-Befehlsbeispiele¶
- Hayabusa gegen eine einzelne Windows-Ereignisprotokolldatei mit dem standardmäßigen
standard-Profil ausführen:
- Hayabusa gegen das sample-evtx-Verzeichnis mit mehreren Windows-Ereignisprotokolldateien mit dem verbose-Profil ausführen:
- In eine einzige CSV-Datei zur weiteren Analyse mit LibreOffice, Timeline Explorer, Elastic Stack usw. exportieren und alle Feldinformationen einbeziehen (Warnung: Ihre Ausgabedateigröße wird mit dem
super-verbose-Profil deutlich größer!):
- Den EID-Filter (Event ID) aktivieren:
Hinweis: Das Aktivieren des EID-Filters beschleunigt die Analyse in unseren Tests um etwa 10-15 %, aber es besteht die Möglichkeit, dass Alarme übersehen werden.
- Nur Hayabusa-Regeln ausführen (standardmäßig werden alle Regeln in
-r .\rulesausgeführt):
- Nur Hayabusa-Regeln für Protokolle ausführen, die unter Windows standardmäßig aktiviert sind:
- Nur Hayabusa-Regeln für Sysmon-Protokolle ausführen:
- Nur Sigma-Regeln ausführen:
- Veraltete Regeln (solche mit
statusalsdeprecatedmarkiert) und laute Regeln (solche, deren Regel-ID in.\rules\config\noisy_rules.txtaufgeführt ist) aktivieren:
Hinweis: Seit kurzem befinden sich veraltete Regeln in einem separaten Verzeichnis im Sigma-Repository und sind daher nicht mehr standardmäßig in Hayabusa enthalten. Daher haben Sie wahrscheinlich keinen Grund, veraltete Regeln zu aktivieren.
hayabusa.exe csv-timeline -d .\hayabusa-sample-evtx --enable-noisy-rules --enable-deprecated-rules -o results.csv -w
- Nur Regeln zur Analyse von Anmeldungen ausführen und in der UTC-Zeitzone ausgeben:
hayabusa.exe csv-timeline -d .\hayabusa-sample-evtx -r .\rules\hayabusa\builtin\Security\LogonLogoff\Logon -U -o results.csv -w
- Auf einem Live-Windows-Computer ausführen (erfordert Administratorrechte) und nur Alarme (potenziell bösartiges Verhalten) erkennen:
- Ausführliche Informationen ausgeben (nützlich, um zu ermitteln, welche Dateien lange zur Verarbeitung benötigen, Parsing-Fehler usw.):
- Beispiel für ausführliche Ausgabe:
Laden von Regeln:
Loaded rule: rules/sigma/builtin/deprecated/proc_creation_win_susp_run_folder.yml
Loaded rule: rules/sigma/builtin/deprecated/proc_creation_win_execution_mssql_xp_cmdshell_stored_procedure.yml
Loaded rule: rules/sigma/builtin/deprecated/proc_creation_win_susp_squirrel_lolbin.yml
Loaded rule: rules/sigma/builtin/win_alert_mimikatz_keywords.yml
Fehler während des Scans:
[ERROR] Failed to parse event file.
EventFile: ../logs/Microsoft-Rdms-UI%4Operational.evtx
Error: Failed to parse record number 58471
[ERROR] Failed to parse event file.
EventFile: ../logs/Microsoft-Rdms-UI%4Operational.evtx
Error: Failed to parse record number 58470
[ERROR] Failed to parse event file.
EventFile: ../logs/Microsoft-Windows-AppxPackaging%4Operational.evtx
Error: An error occurred while trying to serialize binary xml to output.
- In ein CSV-Format ausgeben, das zum Import in Timesketch kompatibel ist:
hayabusa.exe csv-timeline -d ../hayabusa-sample-evtx --RFC-3339 -o timesketch-import.csv -p timesketch -U
- Stiller Fehlermodus:
Standardmäßig speichert Hayabusa Fehlermeldungen in Fehlerprotokolldateien.
Wenn Sie keine Fehlermeldungen speichern möchten, fügen Sie bitte
-Qhinzu.
Erweitert - GeoIP-Protokollanreicherung¶
Sie können GeoIP-Informationen (ASN-Organisation, Stadt und Land) zu SrcIP-Feldern (Quell-IP) und TgtIP-Feldern (Ziel-IP) mit den kostenlosen GeoLite2-Geolokalisierungsdaten hinzufügen.
Schritte:
- Melden Sie sich zuerst hier für ein MaxMind-Konto an.
- Laden Sie die drei
.mmdb-Dateien von der Download-Seite herunter und speichern Sie sie in einem Verzeichnis. Die Dateinamen solltenGeoLite2-ASN.mmdb,GeoLite2-City.mmdbundGeoLite2-Country.mmdbheißen. -
Fügen Sie beim Ausführen der Befehle
csv-timelineoderjson-timelinedie Option-Ggefolgt vom Verzeichnis mit den MaxMind-Datenbanken hinzu. -
Wenn
csv-timelineverwendet wird, werden die folgenden 6 Spalten zusätzlich ausgegeben:SrcASN,SrcCity,SrcCountry,TgtASN,TgtCity,TgtCountry. -
Wenn
json-timelineverwendet wird, werden dieselben FelderSrcASN,SrcCity,SrcCountry,TgtASN,TgtCity,TgtCountryzumDetails-Objekt hinzugefügt, aber nur, wenn sie Informationen enthalten. -
Wenn
SrcIPoderTgtIPlocalhost ist (127.0.0.1,::1usw.), wirdSrcASNoderTgtASNalsLocalausgegeben. - Wenn
SrcIPoderTgtIPeine private IP-Adresse ist (10.0.0.0/8,fe80::/10usw.), wirdSrcASNoderTgtASNalsPrivateausgegeben.
GeoIP-Konfigurationsdatei¶
Die Feldnamen, die Quell- und Ziel-IP-Adressen enthalten, die in den GeoIP-Datenbanken nachgeschlagen werden, sind in rules/config/geoip_field_mapping.yaml definiert.
Sie können diese Liste bei Bedarf erweitern.
Es gibt in dieser Datei auch einen Filterabschnitt, der bestimmt, aus welchen Ereignissen IP-Adressinformationen extrahiert werden.
Automatische Aktualisierungen der GeoIP-Datenbanken¶
MaxMind-GeoIP-Datenbanken werden alle 2 Wochen aktualisiert.
Sie können das MaxMind-Tool geoipupdate hier installieren, um diese Datenbanken automatisch zu aktualisieren.
Schritte unter macOS:
brew install geoipupdate- Bearbeiten Sie
/usr/local/etc/GeoIP.confoder/opt/homebrew/etc/GeoIP.conf: Tragen Sie IhreAccountIDund IhrenLicenseKeyein, die Sie nach dem Anmelden auf der MaxMind-Website erstellen. Stellen Sie sicher, dass dieEditionIDs-ZeileEditionIDs GeoLite2-ASN GeoLite2-City GeoLite2-Countrylautet. - Führen Sie
geoipupdateaus. - Fügen Sie
-G /usr/local/var/GeoIPoder-G /opt/homebrew/var/GeoIPhinzu, wenn Sie GeoIP-Informationen hinzufügen möchten.
Schritte unter Windows:
- Laden Sie die neueste Windows-Binärdatei (z. B.
geoipupdate_4.10.0_windows_amd64.zip) von der Releases-Seite herunter. - Bearbeiten Sie
\ProgramData\MaxMind/GeoIPUpdate\GeoIP.conf: Tragen Sie IhreAccountIDund IhrenLicenseKeyein, die Sie nach dem Anmelden auf der MaxMind-Website erstellen. Stellen Sie sicher, dass dieEditionIDs-ZeileEditionIDs GeoLite2-ASN GeoLite2-City GeoLite2-Countrylautet. - Führen Sie die ausführbare Datei
geoipupdateaus.
csv-timeline-Befehlskonfigurationsdateien¶
./rules/config/channel_abbreviations.txt: Zuordnungen von Channel-Namen und ihren Abkürzungen.
./rules/config/default_details.txt: Die Konfigurationsdatei dafür, welche Standard-Feldinformationen (%Details%-Feld) ausgegeben werden sollen, wenn keine details:-Zeile in einer Regel angegeben ist.
Dies basiert auf dem Provider-Namen und den Event-IDs.
./rules/config/eventkey_alias.txt: Diese Datei enthält die Zuordnungen von Kurznamen-Aliassen für Felder und ihren ursprünglichen längeren Feldnamen.
Beispiel:
InstanceID,Event.UserData.UMDFHostDeviceArrivalBegin.InstanceId
IntegrityLevel,Event.EventData.IntegrityLevel
IpAddress,Event.EventData.IpAddress
Wenn ein Feld hier nicht definiert ist, prüft Hayabusa automatisch unter Event.EventData nach dem Feld.
./rules/config/exclude_rules.txt: Diese Datei enthält eine Liste von Regel-IDs, die von der Verwendung ausgeschlossen werden.
Normalerweise liegt dies daran, dass eine Regel eine andere ersetzt hat oder die Regel von vornherein nicht verwendet werden kann.
Wie Firewalls und IDSe erfordert jedes signaturbasierte Tool eine gewisse Feinabstimmung, um zu Ihrer Umgebung zu passen, sodass Sie bestimmte Regeln möglicherweise dauerhaft oder vorübergehend ausschließen müssen.
Sie können eine Regel-ID (Beispiel: 4fe151c2-ecf9-4fae-95ae-b88ec9c2fca6) zu ./rules/config/exclude_rules.txt hinzufügen, um jede Regel zu ignorieren, die Sie nicht benötigen oder die nicht verwendet werden kann.
./rules/config/noisy_rules.txt: Diese Datei enthält eine Liste von Regel-IDs, die standardmäßig deaktiviert sind, aber durch das Aktivieren lauter Regeln mit der Option -n, --enable-noisy-rules aktiviert werden können.
Diese Regeln sind in der Regel von Natur aus oder aufgrund von Fehlalarmen laut.
./rules/config/target_event_IDs.txt: Nur die in dieser Datei angegebenen Event-IDs werden gescannt, wenn der EID-Filter aktiviert ist.
Standardmäßig scannt Hayabusa alle Ereignisse, aber wenn Sie die Leistung verbessern möchten, verwenden Sie bitte die Option -E, --EID-filter.
Dies führt in der Regel zu einer Geschwindigkeitsverbesserung von 10~25 %.
json-timeline-Befehl¶
Der Befehl json-timeline erstellt eine forensische Zeitleiste von Ereignissen im JSON- oder JSONL-Format.
Die Ausgabe in JSONL ist schneller und die Dateigröße ist kleiner als bei JSON, daher ist sie gut, wenn Sie die Ergebnisse einfach in ein anderes Tool wie Elastic Stack importieren möchten.
JSON ist besser, wenn Sie die Ergebnisse manuell mit einem Texteditor analysieren möchten.
CSV-Ausgabe eignet sich gut zum Importieren kleinerer Zeitleisten (in der Regel weniger als 2 GB) in Tools wie LibreOffice oder Timeline Explorer.
JSON eignet sich am besten für eine detailliertere Analyse von Daten (einschließlich großer Ergebnisdateien) mit Tools wie jq, da die Details-Felder zur einfacheren Analyse getrennt sind.
(In der CSV-Ausgabe befinden sich alle Ereignisprotokollfelder in einer großen Details-Spalte, was das Sortieren von Daten usw. erschwert.)
Usage: json-timeline <INPUT> [OPTIONS]
Input:
-d, --directory <DIR> Directory of multiple .evtx files
-f, --file <FILE> File path to one .evtx file
-l, --live-analysis Analyze the local C:\Windows\System32\winevt\Logs folder
General Options:
-C, --clobber Overwrite files when saving
-h, --help Show the help menu
-J, --JSON-input Scan JSON formatted logs instead of .evtx (.json or .jsonl)
-w, --no-wizard Do not ask questions. Scan for all events and alerts
-Q, --quiet-errors Quiet errors mode: do not save error logs
-x, --recover-records Carve evtx records from slack space (default: disabled)
-r, --rules <DIR/FILE> Specify a custom rule directory or file (default: ./rules)
-c, --rules-config <DIR> Specify custom rule config directory (default: ./rules/config)
-s, --sort Sort events before saving the file. (warning: this uses much more memory!)
-t, --threads <NUMBER> Number of threads (default: optimal number for performance)
--target-file-ext <FILE-EXT...> Specify additional evtx file extensions (ex: evtx_data)
Filtering:
-E, --EID-filter Scan only common EIDs for faster speed (./rules/config/target_event_IDs.txt)
-A, --enable-all-rules Enable all rules regardless of loaded evtx files (disable channel filter for rules)
-D, --enable-deprecated-rules Enable rules with a status of deprecated
-n, --enable-noisy-rules Enable rules set to noisy (./rules/config/noisy_rules.txt)
-u, --enable-unsupported-rules Enable rules with a status of unsupported
-e, --exact-level <LEVEL> Only load rules with a specific level (informational, low, medium, high, critical)
--exclude-category <CATEGORY...> Do not load rules with specified logsource categories (ex: process_creation,pipe_created)
--exclude-computer <COMPUTER...> Do not scan specified computer names (ex: ComputerA) (ex: ComputerA,ComputerB)
--exclude-eid <EID...> Do not scan specific EIDs for faster speed (ex: 1) (ex: 1,4688)
--exclude-status <STATUS...> Do not load rules according to status (ex: experimental) (ex: stable,test)
--exclude-tag <TAG...> Do not load rules with specific tags (ex: sysmon)
--include-category <CATEGORY...> Only load rules with specified logsource categories (ex: process_creation,pipe_created)
--include-computer <COMPUTER...> Scan only specified computer names (ex: ComputerA) (ex: ComputerA,ComputerB)
--include-eid <EID...> Scan only specified EIDs for faster speed (ex: 1) (ex: 1,4688)
--include-status <STATUS...> Only load rules with specific status (ex: experimental) (ex: stable,test)
--include-tag <TAG...> Only load rules with specific tags (ex: attack.execution,attack.discovery)
-m, --min-level <LEVEL> Minimum level for rules to load (default: informational)
-P, --proven-rules Scan with only proven rules for faster speed (./rules/config/proven_rules.txt)
-a, --scan-all-evtx-files Scan all evtx files regardless of loaded rules (disable channel filter for evtx files)
--time-offset <OFFSET> Scan recent events based on an offset (ex: 1y, 3M, 30d, 24h, 30m)
--timeline-end <DATE> End time of the event logs to load (ex: "2022-02-22 23:59:59 +09:00")
--timeline-start <DATE> Start time of the event logs to load (ex: "2020-02-22 00:00:00 +09:00")
Output:
-b, --disable-abbreviations Disable abbreviations
-G, --GeoIP <MAXMIND-DB-DIR> Add GeoIP (ASN, city, country) info to IP addresses
-H, --HTML-report <FILE> Save Results Summary details to an HTML report (ex: results.html)
-L, --JSONL-output Save the timeline in JSONL format (ex: -L -o results.jsonl)
-F, --no-field-data-mapping Disable field data mapping
--no-pwsh-field-extraction Disable field extraction of PowerShell classic logs
-o, --output <FILE> Save the timeline in JSON format (ex: results.json)
-p, --profile <PROFILE> Specify output profile
-R, --remove-duplicate-data Duplicate field data will be replaced with "DUP"
-X, --remove-duplicate-detections Remove duplicate detections (default: disabled)
Display Settings:
-K, --no-color Disable color output
-N, --no-summary Do not display Results Summary for faster speed
-q, --quiet Quiet mode: do not display the launch banner
-v, --verbose Output verbose information
-T, --visualize-timeline Output event frequency timeline (terminal needs to support unicode)
Time Format:
--European-time Output timestamp in European time format (ex: 22-02-2022 22:00:00.123 +02:00)
-O, --ISO-8601 Output timestamp in original ISO-8601 format (ex: 2022-02-22T10:10:10.1234567Z) (Always UTC)
--RFC-2822 Output timestamp in RFC 2822 format (ex: Fri, 22 Feb 2022 22:00:00 -0600)
--RFC-3339 Output timestamp in RFC 3339 format (ex: 2022-02-22 22:00:00.123456-06:00)
--US-military-time Output timestamp in US military time format (ex: 02-22-2022 22:00:00.123 -06:00)
--US-time Output timestamp in US time format (ex: 02-22-2022 10:00:00.123 PM -06:00)
-U, --UTC Output time in UTC format (default: local time)
json-timeline-Befehlsbeispiele und Konfigurationsdateien¶
Die Optionen und Konfigurationsdateien für json-timeline sind dieselben wie bei csv-timeline, jedoch mit einer zusätzlichen Option -L, --JSONL-output für die Ausgabe im JSONL-Format.
level-tuning-Befehl¶
Mit dem Befehl level-tuning können Sie die Alarmlevel für Regeln feinabstimmen und das Risikolevel nach Belieben anheben oder senken.
Dieser Befehl verwendet eine Konfigurationsdatei, um die Risikolevel (das level-Feld) der Regeln im Ordner rules zu überschreiben.
Warnung: Jedes Mal, wenn Sie den Befehl
update-rulesausführen, wird das Risikolevel auf den ursprünglichen Wert zurückgesetzt, sodass Sie den Befehllevel-tuningdanach erneut ausführen müssen.
Usage: level-tuning [OPTIONS]
Display Settings:
-K, --no-color Disable color output
-q, --quiet Quiet mode: do not display the launch banner
General Options:
-f, --file <FILE> Tune alert levels (default: ./rules/config/level_tuning.txt)
-h, --help Show the help menu
level-tuning-Befehlsbeispiele¶
- Normale Verwendung:
hayabusa.exe level-tuning - Regel-Alarmlevel basierend auf Ihrer benutzerdefinierten Konfigurationsdatei feinabstimmen:
hayabusa.exe level-tuning -f ./config/level_tuning.txt
level-tuning-Konfigurationsdatei¶
Hayabusa- und Sigma-Regelautoren schätzen beim Schreiben ihrer Regeln das angemessene Risikolevel des Alarms ein.
Allerdings sind die Risikolevel manchmal nicht konsistent und das tatsächliche Risikolevel kann sich je nach Ihrer Umgebung unterscheiden.
Yamato Security stellt eine Konfigurationsdatei unter ./rules/config/level_tuning.txt bereit und pflegt sie, die Sie ebenfalls zur Feinabstimmung Ihrer Regeln verwenden können.
./rules/config/level_tuning.txt-Beispiel:
id,new_level
570ae5ec-33dc-427c-b815-db86228ad43e,informational # 'Application Uninstalled' - Originally low.
b6ce0b2f-593b-5e1c-e137-d30b2974e30e,high # 'Suspicious Double Extension File Execution' - Sysmon 1 - Originally critical
452b2159-5e6e-c494-63b9-b385d6195f58,high # 'Suspicious Double Extension File Execution' - Security 4688 - Originally critical
51ba8477-86a4-6ff0-35fa-7b7f1b1e3f83,high # 'CobaltStrike Service Installations - System' - System 7045 - Originally critical
daad2203-665f-294c-6d2f-f9272c3214f2,critical # 'Mimikatz DC Sync' - Security 4662 - Originally high
8b061ac2-31c7-659d-aa1b-36ceed1b03f1,high # 'HackTool - Rubeus Execution' - Sysmon 1 - Originally critical
be670d5c-31eb-7391-4d2e-d122c89cd5bb,high # 'HackTool - Rubeus Execution' - Security 4688 - Originally critical
In diesem Fall wird das Risikolevel der Regel mit einer id von 570ae5ec-33dc-427c-b815-db86228ad43e im Regelverzeichnis sein level auf informational umgeschrieben bekommen.
Die möglichen einzustellenden Level sind critical, high, medium, low und informational.
Warnung: Die Konfigurationsdatei
./rules/config/level_tuning.txtwird ebenfalls jedes Mal, wenn Sieupdate-rulesausführen, auf die neueste Version im hayabusa-rules-Repository aktualisiert. Wenn Sie also Änderungen an dieser Datei vornehmen, gehen diese Änderungen verloren! Wenn Sie eine Konfigurationsdatei für sich behalten möchten, dann erstellen Sie eine Konfigurationsdatei in./config/level_tuning.txtund führen Siehayabusa.exe level-tuning -f ./config/level_tuning.txtaus. Sie können auch zuerst die Feinabstimmung mit der von Yamato Security bereitgestellten Konfigurationsdatei durchführen und dann mit Ihrer eigenen Konfigurationsdatei weiter feinabstimmen.
list-profiles-Befehl¶
Usage: list-profiles [OPTIONS]
Display Settings:
-K, --no-color Disable color output
-q, --quiet Quiet mode: do not display the launch banner
General Options:
-h, --help Show the help menu
set-default-profile-Befehl¶
Usage: set-default-profile [OPTIONS]
Display Settings:
-K, --no-color Disable color output
-q, --quiet Quiet mode: do not display the launch banner
General Options:
-h, --help Show the help menu
-p, --profile <PROFILE> Specify output profile
set-default-profile-Befehlsbeispiele¶
- Das Standardprofil auf
minimalsetzen:hayabusa.exe set-default-profile minimal - Das Standardprofil auf
super-verbosesetzen:hayabusa.exe set-default-profile super-verbose
update-rules-Befehl¶
Der Befehl update-rules synchronisiert den Ordner rules mit dem Hayabusa-rules-GitHub-Repository und aktualisiert die Regeln und Konfigurationsdateien.
Usage: update-rules [OPTIONS]
Display Settings:
-K, --no-color Disable color output
-q, --quiet Quiet mode: do not display the launch banner
General Options:
-h, --help Show the help menu
-r, --rules <DIR/FILE> Specify a custom rule directory or file (default: ./rules)
update-rules-Befehlsbeispiel¶
Normalerweise führen Sie einfach dies aus: hayabusa.exe update-rules