diff --git a/Cargo.lock b/Cargo.lock index 0fe9eb6a..5edd49e2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -169,7 +169,7 @@ checksum = "4acbb09d9ee8e23699b9634375c72795d095bf268439da88562cf9b501f181fa" dependencies = [ "camino", "cargo-platform", - "semver 1.0.10", + "semver 1.0.11", "serde", "serde_json", ] @@ -397,9 +397,9 @@ checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" [[package]] name = "either" -version = "1.6.1" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" +checksum = "3f107b87b6afc2a64fd13cac55fe06d6c8859f12d4b14cbcdd2c67d0976781be" [[package]] name = "encode_unicode" @@ -1476,9 +1476,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a41d061efea015927ac527063765e73601444cdc344ba855bc7bd44578b25e1c" +checksum = "3d92beeab217753479be2f74e54187a6aed4c125ff0703a866c3147a02f0c6dd" dependencies = [ "serde", ] @@ -1511,9 +1511,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.81" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b7ce2b32a1aed03c558dc61a5cd328f15aff2dbc17daad8fb8af04d2100e15c" +checksum = "82c2c1fdcd807d1098552c5b9a36e425e42e9fbd7c6a37a8425f390f781f7fa7" dependencies = [ "itoa 1.0.2", "ryu", @@ -1572,9 +1572,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.8.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc88c725d61fc6c3132893370cac4a0200e3fedf5da8331c570664b1987f5ca2" +checksum = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1" [[package]] name = "socket2" @@ -2141,6 +2141,6 @@ dependencies = [ [[package]] name = "zeroize" -version = "1.5.5" +version = "1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94693807d016b2f2d2e14420eb3bfcca689311ff775dcf113d74ea624b7cdf07" +checksum = "20b578acffd8516a6c3f2a1bdefc1ec37e547bb4e0fb8b6b01a4cafc886b4442" diff --git a/Cargo.toml b/Cargo.toml index e24717af..6134b603 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "hayabusa" -version = "1.4.1-dev" +version = "1.4.1" authors = ["Yamato Security @SecurityYamato"] edition = "2021" diff --git a/README-1.4.0-Japanese.pdf b/README-1.4.0-Japanese.pdf deleted file mode 100644 index 45be0155..00000000 Binary files a/README-1.4.0-Japanese.pdf and /dev/null differ diff --git a/README-1.4.1-Japanese.pdf b/README-1.4.1-Japanese.pdf new file mode 100644 index 00000000..e13ba510 Binary files /dev/null and b/README-1.4.1-Japanese.pdf differ diff --git a/README-1.4.0.pdf b/README-1.4.1.pdf similarity index 93% rename from README-1.4.0.pdf rename to README-1.4.1.pdf index 44179fdc..3c710880 100644 Binary files a/README-1.4.0.pdf and b/README-1.4.1.pdf differ diff --git a/README-Japanese.md b/README-Japanese.md index 68e27cb4..c31ddb45 100644 --- a/README-Japanese.md +++ b/README-Japanese.md @@ -182,7 +182,7 @@ git clone https://github.com/Yamato-Security/hayabusa.git --recursive `git pull --recurse-submodules`コマンド、もしくは以下のコマンドで`rules`フォルダを同期し、Hayabusaの最新のルールを更新することができます: ```bash -hayabusa-1.4.0-win-x64.exe -u +hayabusa-1.4.1-win-x64.exe -u ``` アップデートが失敗した場合は、`rules`フォルダの名前を変更してから、もう一回アップデートしてみて下さい。 @@ -264,20 +264,20 @@ Hayabusa実行する際や、`.yml`ルールのダウンロードや実行時に ## Windows コマンドプロンプトやWindows Terminalから32ビットもしくは64ビットのWindowsバイナリをHayabusaのルートディレクトリから実行します。 -例: `hayabusa-1.4.0-windows-x64.exe` +例: `hayabusa-1.4.1-windows-x64.exe` ## Linux まず、バイナリに実行権限を与える必要があります。 ```bash -chmod +x ./hayabusa-1.4.0-linux-x64-gnu +chmod +x ./hayabusa-1.4.1-linux-x64-gnu ``` 次に、Hayabusaのルートディレクトリから実行します: ```bash -./hayabusa-1.4.0-linux-x64-gnu +./hayabusa-1.4.1-linux-x64-gnu ``` ## macOS @@ -285,13 +285,13 @@ chmod +x ./hayabusa-1.4.0-linux-x64-gnu まず、ターミナルやiTerm2からバイナリに実行権限を与える必要があります。 ```bash -chmod +x ./hayabusa-1.4.0-mac-intel +chmod +x ./hayabusa-1.4.1-mac-intel ``` 次に、Hayabusaのルートディレクトリから実行してみてください: ```bash -./hayabusa-1.4.0-mac-intel +./hayabusa-1.4.1-mac-intel ``` macOSの最新版では、以下のセキュリティ警告が出る可能性があります: @@ -305,7 +305,7 @@ macOSの環境設定から「セキュリティとプライバシー」を開き その後、ターミナルからもう一回実行してみてください: ```bash -./hayabusa-1.4.0-mac-intel +./hayabusa-1.4.1-mac-intel ``` 以下の警告が出るので、「開く」をクリックしてください。 @@ -367,79 +367,79 @@ OPTIONS: * 1つのWindowsイベントログファイルに対してHayabusaを実行します: ```bash -hayabusa-1.4.0-win-x64.exe -f eventlog.evtx +hayabusa-1.4.1-win-x64.exe -f eventlog.evtx ``` * 複数のWindowsイベントログファイルのあるsample-evtxディレクトリに対して、Hayabusaを実行します: ```bash -hayabusa-1.4.0-win-x64.exe -d .\hayabusa-sample-evtx +hayabusa-1.4.1-win-x64.exe -d .\hayabusa-sample-evtx ``` * 全てのフィールド情報も含めて1つのCSVファイルにエクスポートして、Excel、Timeline Explorer、Elastic Stack等でさらに分析することができます(注意: `-F`を有効にすると、出力するファイルのサイズがとても大きくなります!): ```bash -hayabusa-1.4.0-win-x64.exe -d .\hayabusa-sample-evtx -o results.csv -F +hayabusa-1.4.1-win-x64.exe -d .\hayabusa-sample-evtx -o results.csv -F ``` * Hayabusaルールのみを実行します(デフォルトでは `-r .\rules` にあるすべてのルールが利用されます): ```bash -hayabusa-1.4.0-win-x64.exe -d .\hayabusa-sample-evtx -r .\rules\hayabusa -o results.csv +hayabusa-1.4.1-win-x64.exe -d .\hayabusa-sample-evtx -r .\rules\hayabusa -o results.csv ``` * Windowsでデフォルトで有効になっているログに対してのみ、Hayabusaルールを実行します: ```bash -hayabusa-1.4.0-win-x64.exe -d .\hayabusa-sample-evtx -r .\rules\hayabusa\default -o results.csv +hayabusa-1.4.1-win-x64.exe -d .\hayabusa-sample-evtx -r .\rules\hayabusa\default -o results.csv ``` * Sysmonログに対してのみHayabusaルールを実行します: ```bash -hayabusa-1.4.0-win-x64.exe -d .\hayabusa-sample-evtx -r .\rules\hayabusa\sysmon -o results.csv +hayabusa-1.4.1-win-x64.exe -d .\hayabusa-sample-evtx -r .\rules\hayabusa\sysmon -o results.csv ``` * Sigmaルールのみを実行します: ```bash -hayabusa-1.4.0-win-x64.exe -d .\hayabusa-sample-evtx -r .\rules\sigma -o results.csv +hayabusa-1.4.1-win-x64.exe -d .\hayabusa-sample-evtx -r .\rules\sigma -o results.csv ``` * 廃棄(deprecated)されたルール(`status`が`deprecated`になっているルール)とノイジールール(`.\rules\config\noisy_rules.txt`にルールIDが書かれているルール)を有効にします: ```bash -hayabusa-1.4.0-win-x64.exe -d .\hayabusa-sample-evtx --enable-deprecated-rules --enable-noisy-rules -o results.csv +hayabusa-1.4.1-win-x64.exe -d .\hayabusa-sample-evtx --enable-deprecated-rules --enable-noisy-rules -o results.csv ``` * ログオン情報を分析するルールのみを実行し、UTCタイムゾーンで出力します: ```bash -hayabusa-1.4.0-win-x64.exe -d .\hayabusa-sample-evtx -r .\rules\hayabusa\default\events\Security\Logons -U -o results.csv +hayabusa-1.4.1-win-x64.exe -d .\hayabusa-sample-evtx -r .\rules\hayabusa\default\events\Security\Logons -U -o results.csv ``` * 起動中のWindows端末上で実行し(Administrator権限が必要)、アラート(悪意のある可能性のある動作)のみを検知します: ```bash -hayabusa-1.4.0-win-x64.exe -l -m low +hayabusa-1.4.1-win-x64.exe -l -m low ``` -* criticalレベルのアラートからピボットキーワードの一覧を作成します(結果は結果毎に`keywords-Ip Address.txt`や`keyworss-Users.txt`等に出力されます): +* criticalレベルのアラートからピボットキーワードの一覧を作成します(結果は結果毎に`keywords-Ip Address.txt`や`keywords-Users.txt`等に出力されます): ```bash -hayabusa-1.4.0-win-x64.exe -l -m critical -p -o keywords +hayabusa-1.4.1-win-x64.exe -l -m critical -p -o keywords ``` * イベントIDの統計情報を取得します: ```bash -hayabusa-1.4.0-win-x64.exe -f Security.evtx -s +hayabusa-1.4.1-win-x64.exe -f Security.evtx -s ``` * 詳細なメッセージを出力します(処理に時間がかかるファイル、パースエラー等を特定するのに便利): ```bash -hayabusa-1.4.0-win-x64.exe -d .\hayabusa-sample-evtx -v +hayabusa-1.4.1-win-x64.exe -d .\hayabusa-sample-evtx -v ``` * Verbose出力の例: @@ -464,7 +464,7 @@ Checking target evtx FilePath: "./hayabusa-sample-evtx/YamatoSecurity/T1218.004_ ## ピボットキーワードの作成 `-p`もしくは`--pivot-keywords-list`オプションを使うことで不審なユーザやホスト名、プロセスなどを一覧で出力することができ、イベントログから素早く特定することができます。 -ピボットキーワードのカスタマイズは`config/pivot_keywords.txt`を変更することで行うことができます。以下はデフォルトの設定になります: +ピボットキーワードのカスタマイズは`./config/pivot_keywords.txt`を変更することで行うことができます。以下はデフォルトの設定になります: ``` Users.SubjectUserName @@ -506,7 +506,7 @@ Hayabusaの結果を標準出力に表示しているとき(デフォルト) * `Level`: YML検知ルールの`level`フィールドから来ています。(例:`informational`, `low`, `medium`, `high`, `critical`) デフォルトでは、すべてのレベルのアラートとイベントが出力されますが、`-m`オプションで最低のレベルを指定することができます。例えば`-m high`オプションを付けると、`high`と`critical`アラートしか出力されません。 * `Title`: YML検知ルールの`title`フィールドから来ています。 * `RecordID`: イベントレコードIDです。``フィールドから来ています。`-R`もしくは`--hide-record-id`オプションを付けると表示されません。 -* `Details`: YML検知ルールの`details`フィールドから来ていますが、このフィールドはHayabusaルールにしかありません。このフィールドはアラートとイベントに関する追加情報を提供し、ログのフィールドから有用なデータを抽出することができます。イベントキーのマッピングが間違っている場合、もしくはフィールドが存在しない場合で抽出ができなかった箇所は`n/a` (not available)と記載されます。YML検知ルールに`details`フィールドが存在しない時のdetailsのメッセージを`rules/config/default_details.txt`で設定できます。`default_details.txt`では`Provider Name`、`EventID`、`details`の組み合わせで設定することができます。default_details.txt`やYML検知ルールに対応するルールが記載されていない場合はすべてのフィールド情報を出力します。 +* `Details`: YML検知ルールの`details`フィールドから来ていますが、このフィールドはHayabusaルールにしかありません。このフィールドはアラートとイベントに関する追加情報を提供し、ログのフィールドから有用なデータを抽出することができます。イベントキーのマッピングが間違っている場合、もしくはフィールドが存在しない場合で抽出ができなかった箇所は`n/a` (not available)と記載されます。YML検知ルールに`details`フィールドが存在しない時のdetailsのメッセージを`./rules/config/default_details.txt`で設定できます。`default_details.txt`では`Provider Name`、`EventID`、`details`の組み合わせで設定することができます。default_details.txt`やYML検知ルールに対応するルールが記載されていない場合はすべてのフィールド情報を出力します。 CSVファイルとして保存する場合、以下の列が追加されます: @@ -529,7 +529,7 @@ CSVファイルとして保存する場合、以下の列が追加されます: ## MITRE ATT&CK戦術の省略 簡潔に出力するためにMITRE ATT&CKの戦術を以下のように省略しています。 -`config/output_tag.txt`の設定ファイルで自由に編集できます。 +`./config/output_tag.txt`の設定ファイルで自由に編集できます。 検知したデータの戦術を全て出力したい場合は、`--all-tags`オプションをつけてください。 * `Recon` : Reconnaissance (偵察) @@ -550,7 +550,7 @@ CSVファイルとして保存する場合、以下の列が追加されます: ## Channel情報の省略 簡潔に出力するためにChannelの表示を以下のように省略しています。 -`rules/config/channel_abbreviations.txt`の設定ファイルで自由に編集できます。 +`./rules/config/channel_abbreviations.txt`の設定ファイルで自由に編集できます。 * `App` : `Application` * `AppLocker` : `Microsoft-Windows-AppLocker/*` @@ -589,7 +589,7 @@ CSVファイルとして保存する場合、以下の列が追加されます: ## 標準出力へのカラー設定 Hayabusaの結果は`level`毎に文字色が変わります。 -`config/level_color.txt`の値を変更することで文字色を変えることができます。 +`./config/level_color.txt`の値を変更することで文字色を変えることができます。 形式は`level名,(6桁のRGBのカラーhex)`です。 カラー出力をしないようにしたい場合は`--no-color`オプションをご利用ください。 @@ -653,17 +653,17 @@ Hayabusaルールは、Windowsのイベントログ解析専用に設計され ファイアウォールやIDSと同様に、シグネチャベースのツールは、環境に合わせて調整が必要になるため、特定のルールを永続的または一時的に除外する必要がある場合があります。 -ルールID(例: `4fe151c2-ecf9-4fae-95ae-b88ec9c2fca6`) を `rules/config/exclude_rules.txt`に追加すると、不要なルールや利用できないルールを無視することができます。 +ルールID(例: `4fe151c2-ecf9-4fae-95ae-b88ec9c2fca6`) を `./rules/config/exclude_rules.txt`に追加すると、不要なルールや利用できないルールを無視することができます。 -ルールIDを `rules/config/noisy_rules.txt`に追加して、デフォルトでルールを無視することもできますが、`-n`または `--enable-noisy-rules`オプションを指定してルールを使用することもできます。 +ルールIDを `./rules/config/noisy_rules.txt`に追加して、デフォルトでルールを無視することもできますが、`-n`または `--enable-noisy-rules`オプションを指定してルールを使用することもできます。 ## 検知レベルのlevelチューニング Hayabusaルール、Sigmaルールはそれぞれの作者が検知した際のリスクレベルを決めています。 -ユーザが独自のリスクレベルに設定するには`rules/config/level_tuning.txt`に変換情報を書き、`hayabusa-1.4.0-win-x64.exe --level-tuning`を実行することでルールファイルが書き換えられます。 +ユーザが独自のリスクレベルに設定するには`./rules/config/level_tuning.txt`に変換情報を書き、`hayabusa-1.4.1-win-x64.exe --level-tuning`を実行することでルールファイルが書き換えられます。 ルールファイルが直接書き換えられることに注意して使用してください。 -`rules/config/level_tuning.txt`の例: +`./rules/config/level_tuning.txt`の例: ``` id,new_level 00000000-0000-0000-0000-000000000000,informational # sample level tuning line @@ -674,7 +674,7 @@ id,new_level ## イベントIDフィルタリング バージョン1.4.1以降では、デフォルトでパフォーマンスを上げるために、検知ルールでイベントIDが定義されていないイベントを無視しています。 -デフォルトでは`rules/config/target_event_IDs.txt`で定義されたIDがスキャンされます。 +デフォルトでは`./rules/config/target_event_IDs.txt`で定義されたIDがスキャンされます。 If you want to scan all events, please use the `-D, --deep-scan` option. すべてのイベントをスキャンしたい場合は、`-D, --deep-scan`オプションを使用してください。 diff --git a/README.md b/README.md index 437e58fa..26d47f4f 100644 --- a/README.md +++ b/README.md @@ -175,7 +175,7 @@ Note: If you forget to use --recursive option, the `rules` folder, which is mana You can sync the `rules` folder and get latest Hayabusa rules with `git pull --recurse-submodules` or use the following command: ```bash -hayabusa-1.4.0-win-x64.exe -u +hayabusa-1.4.1-win-x64.exe -u ``` If the update fails, you may need to rename the `rules` folder and try again. @@ -202,7 +202,7 @@ Be sure to periodically update Rust with: rustup update stable ``` -The compiled binary will be outputted in the `target/release` folder. +The compiled binary will be outputted in the `./target/release` folder. ## Updating Rust Packages @@ -260,20 +260,20 @@ If you are worried about malware or supply chain attacks, please check the hayab ## Windows In Command Prompt or Windows Terminal, just run the 32-bit or 64-bit Windows binary from the hayabusa root directory. -Example: `hayabusa-1.4.0-windows-x64.exe` +Example: `hayabusa-1.4.1-windows-x64.exe` ## Linux You first need to make the binary executable. ```bash -chmod +x ./hayabusa-1.4.0-linux-x64-gnu +chmod +x ./hayabusa-1.4.1-linux-x64-gnu ``` Then run it from the Hayabusa root directory: ```bash -./hayabusa-1.4.0-linux-x64-gnu +./hayabusa-1.4.1-linux-x64-gnu ``` ## macOS @@ -281,13 +281,13 @@ Then run it from the Hayabusa root directory: From Terminal or iTerm2, you first need to make the binary executable. ```bash -chmod +x ./hayabusa-1.4.0-mac-intel +chmod +x ./hayabusa-1.4.1-mac-intel ``` Then, try to run it from the Hayabusa root directory: ```bash -./hayabusa-1.4.0-mac-intel +./hayabusa-1.4.1-mac-intel ``` On the latest version of macOS, you may receive the following security error when you try to run it: @@ -301,7 +301,7 @@ Click "Cancel" and then from System Preferences, open "Security & Privacy" and f After that, try to run it again. ```bash -./hayabusa-1.4.0-mac-intel +./hayabusa-1.4.1-mac-intel ``` The following warning will pop up, so please click "Open". @@ -363,79 +363,79 @@ OPTIONS: * Run hayabusa against one Windows event log file: ```bash -hayabusa-1.4.0-win-x64.exe -f eventlog.evtx +hayabusa-1.4.1-win-x64.exe -f eventlog.evtx ``` * Run hayabusa against the sample-evtx directory with multiple Windows event log files: ```bash -hayabusa-1.4.0-win-x64.exe -d .\hayabusa-sample-evtx +hayabusa-1.4.1-win-x64.exe -d .\hayabusa-sample-evtx ``` * Export to a single CSV file for further analysis with excel, timeline explorer, elastic stack, etc... and include all field information (Warning: your file output size will become much larger with `-F` enabled!): ```bash -hayabusa-1.4.0-win-x64.exe -d .\hayabusa-sample-evtx -o results.csv -F +hayabusa-1.4.1-win-x64.exe -d .\hayabusa-sample-evtx -o results.csv -F ``` * Only run hayabusa rules (the default is to run all the rules in `-r .\rules`): ```bash -hayabusa-1.4.0-win-x64.exe -d .\hayabusa-sample-evtx -r .\rules\hayabusa -o results.csv +hayabusa-1.4.1-win-x64.exe -d .\hayabusa-sample-evtx -r .\rules\hayabusa -o results.csv ``` * Only run hayabusa rules for logs that are enabled by default on Windows: ```bash -hayabusa-1.4.0-win-x64.exe -d .\hayabusa-sample-evtx -r .\rules\hayabusa\default -o results.csv +hayabusa-1.4.1-win-x64.exe -d .\hayabusa-sample-evtx -r .\rules\hayabusa\default -o results.csv ``` * Only run hayabusa rules for sysmon logs: ```bash -hayabusa-1.4.0-win-x64.exe -d .\hayabusa-sample-evtx -r .\rules\hayabusa\sysmon -o results.csv +hayabusa-1.4.1-win-x64.exe -d .\hayabusa-sample-evtx -r .\rules\hayabusa\sysmon -o results.csv ``` * Only run sigma rules: ```bash -hayabusa-1.4.0-win-x64.exe -d .\hayabusa-sample-evtx -r .\rules\sigma -o results.csv +hayabusa-1.4.1-win-x64.exe -d .\hayabusa-sample-evtx -r .\rules\sigma -o results.csv ``` * Enable deprecated rules (those with `status` marked as `deprecated`) and noisy rules (those whose rule ID is listed in `.\rules\config\noisy_rules.txt`): ```bash -hayabusa-1.4.0-win-x64.exe -d .\hayabusa-sample-evtx --enable-noisy-rules --enable-deprecated-rules -o results.csv +hayabusa-1.4.1-win-x64.exe -d .\hayabusa-sample-evtx --enable-noisy-rules --enable-deprecated-rules -o results.csv ``` * Only run rules to analyze logons and output in the UTC timezone: ```bash -hayabusa-1.4.0-win-x64.exe -d .\hayabusa-sample-evtx -r .\rules\hayabusa\default\events\Security\Logons -U -o results.csv +hayabusa-1.4.1-win-x64.exe -d .\hayabusa-sample-evtx -r .\rules\hayabusa\default\events\Security\Logons -U -o results.csv ``` * Run on a live Windows machine (requires Administrator privileges) and only detect alerts (potentially malicious behavior): ```bash -hayabusa-1.4.0-win-x64.exe -l -m low +hayabusa-1.4.1-win-x64.exe -l -m low ``` * Create a list of pivot keywords from critical alerts and save the results. (Results will be saved to `keywords-Ip Addresses.txt`, `keywords-Users.txt`, etc...): ```bash -hayabusa-1.4.0-win-x64.exe -l -m critical -p -o keywords +hayabusa-1.4.1-win-x64.exe -l -m critical -p -o keywords ``` * Print Event ID statistics: ```bash -hayabusa-1.4.0-win-x64.exe -f Security.evtx -s +hayabusa-1.4.1-win-x64.exe -f Security.evtx -s ``` * Print verbose information (useful for determining which files take long to process, parsing errors, etc...): ```bash -hayabusa-1.4.0-win-x64.exe -d .\hayabusa-sample-evtx -v +hayabusa-1.4.1-win-x64.exe -d .\hayabusa-sample-evtx -v ``` * Verbose output example: @@ -459,7 +459,7 @@ If you do not want to save error messages, please add `-Q`. ## Pivot Keyword Generator -You can use the `-p` or `--pivot-keywords-list` option to create a list of unique pivot keywords to quickly identify abnormal users, hostnames, processes, etc... as well as correlate events. You can customize what keywords you want to search for by editing `config/pivot_keywords.txt`. +You can use the `-p` or `--pivot-keywords-list` option to create a list of unique pivot keywords to quickly identify abnormal users, hostnames, processes, etc... as well as correlate events. You can customize what keywords you want to search for by editing `./config/pivot_keywords.txt`. This is the default setting: ``` @@ -503,7 +503,7 @@ When hayabusa output is being displayed to the screen (the default), it will dis * `Level`: This comes from the `level` field in the YML detection rule. (`informational`, `low`, `medium`, `high`, `critical`) By default, all level alerts will be displayed but you can set the minimum level with `-m`. For example, you can set `-m high`) in order to only scan for and display high and critical alerts. * `RecordID`: This comes from the `` field in the event log. You can hidde this output with the `-R` or `--hide-record-id` option. * `Title`: This comes from the `title` field in the YML detection rule. -* `Details`: This comes from the `details` field in the YML detection rule, however, only hayabusa rules have this field. This field gives extra information about the alert or event and can extract useful data from the fields in event logs. For example, usernames, command line information, process information, etc... When a placeholder points to a field that does not exist or there is an incorrect alias mapping, it will be outputted as `n/a` (not available). If the `details` field is not specified (i.e. sigma rules), default `details` messages to extract fields defined in `rules/config/default_details.txt` will be outputted. You can add more default `details` messages by adding the `Provider Name`, `EventID` and `details` message you want to output in `default_details.txt`. When no description in `default_details.txt` and the YML detection rule, all fields information will be outputted. +* `Details`: This comes from the `details` field in the YML detection rule, however, only hayabusa rules have this field. This field gives extra information about the alert or event and can extract useful data from the fields in event logs. For example, usernames, command line information, process information, etc... When a placeholder points to a field that does not exist or there is an incorrect alias mapping, it will be outputted as `n/a` (not available). If the `details` field is not specified (i.e. sigma rules), default `details` messages to extract fields defined in `./rules/config/default_details.txt` will be outputted. You can add more default `details` messages by adding the `Provider Name`, `EventID` and `details` message you want to output in `default_details.txt`. When no description in `default_details.txt` and the YML detection rule, all fields information will be outputted. The following additional columns will be added to the output when saving to a CSV file: @@ -526,7 +526,7 @@ In order to save space, we use the following abbrevations when displaying the al ## MITRE ATT&CK Tactics Abbreviations In order to save space, we use the following abbreviations when displaying MITRE ATT&CK tactic tags. -You can freely edit these abbreviations in the `config/output_tag.txt` configuration file. +You can freely edit these abbreviations in the `./config/output_tag.txt` configuration file. If you want to output all the tags defined in a rule, please specify the `--all-tags` option. * `Recon` : Reconnaissance @@ -547,7 +547,7 @@ If you want to output all the tags defined in a rule, please specify the `--all- ## Channel Abbreviations In order to save space, we use the following abbreviations when displaying Channel. -You can freely edit these abbreviations in the `rules/config/channel_abbreviations.txt` configuration file. +You can freely edit these abbreviations in the `./rules/config/channel_abbreviations.txt` configuration file. * `App` : `Application` * `AppLocker` : `Microsoft-Windows-AppLocker/*` @@ -586,7 +586,7 @@ It will display in real time the number and percent of evtx files that it has fi ## Color Output The alerts will be outputted in color based on the alert `level`. -You can change the default colors in the config file at `config/level_color.txt` in the format of `level,(RGB 6-digit ColorHex)`. +You can change the default colors in the config file at `./config/level_color.txt` in the format of `level,(RGB 6-digit ColorHex)`. If you want to disable color output, you can use `--no-color` option. ## Event Fequency Timeline @@ -648,18 +648,18 @@ Hayabusa rules are designed solely for Windows event log analysis and have the f Like firewalls and IDSes, any signature-based tool will require some tuning to fit your environment so you may need to permanently or temporarily exclude certain rules. -You can add a rule ID (Example: `4fe151c2-ecf9-4fae-95ae-b88ec9c2fca6`) to `rules/config/exclude_rules.txt` in order to ignore any rule that you do not need or cannot be used. +You can add a rule ID (Example: `4fe151c2-ecf9-4fae-95ae-b88ec9c2fca6`) to `./rules/config/exclude_rules.txt` in order to ignore any rule that you do not need or cannot be used. -You can also add a rule ID to `rules/config/noisy_rules.txt` in order to ignore the rule by default but still be able to use the rule with the `-n` or `--enable-noisy-rules` option. +You can also add a rule ID to `./rules/config/noisy_rules.txt` in order to ignore the rule by default but still be able to use the rule with the `-n` or `--enable-noisy-rules` option. ## Detection Level Tuning Hayabusa and Sigma rule authors will determine the risk level of the alert when writing their rules. However, the actual risk level will differ between environments. -You can tune the risk level of the rules by adding them to `rules/config/level_tuning.txt` and executing `hayabusa-1.4.0-win-x64.exe --level-tuning` which will update the `level` line in the rule file. +You can tune the risk level of the rules by adding them to `./rules/config/level_tuning.txt` and executing `hayabusa-1.4.1-win-x64.exe --level-tuning` which will update the `level` line in the rule file. Please note that the rule file will be updated directly. -`rules/config/level_tuning.txt` sample line: +`./rules/config/level_tuning.txt` sample line: ``` id,new_level @@ -671,7 +671,7 @@ In this case, the risk level of the rule with an `id` of `00000000-0000-0000-000 ## Event ID Filtering As of version 1.4.1, by default, events are filtered by ID to improve performance by ignorning events that have no detection rules. -The IDs defined in `rules/config/target_event_IDs.txt` will be scanned by default. +The IDs defined in `./rules/config/target_event_IDs.txt` will be scanned by default. If you want to scan all events, please use the `-D, --deep-scan` option. # Other Windows Event Log Analyzers and Related Resources