Skip to content

Commit

Permalink
Merge pull request #817 from Yamato-Security/725-upgrade-to-clap-4
Browse files Browse the repository at this point in the history
Update to clap 4.x
  • Loading branch information
YamatoSecurity authored Nov 23, 2022
2 parents 02e1b05 + fbd6d4c commit 91b0ca5
Show file tree
Hide file tree
Showing 19 changed files with 449 additions and 429 deletions.
1 change: 1 addition & 0 deletions CHANGELOG-Japanese.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
**改善:**

- 実行時のメモリ利用率を表示する機能を追加した。`--debug`オプションで利用可能。 (#788) (@fukusuket)
- Clap Crateパッケージの更新。更新の関係で`--visualize-timeline` のショートオプションの`-V``-T`に変更した。 (#725) (@YamatoSecurity)

**バグ修正:**

Expand Down
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@

**Enhancements:**

- Added the ability to display memory utilization at runtime. Available with the `--debug` option. (#788) (@fukusuket)
- Added `--debug` option to display memory utilization at runtime. (#788) (@fukusuket)
- Updated clap crate package to version 4 and changed the `--visualize-timeline` short option `-V` to `-T`. (#725) (@YamatoSecurity)

**Bug Fixes:**

Expand Down
38 changes: 30 additions & 8 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ rust-version = "1.65.0"
[dependencies]
itertools = "*"
dashmap = "*"
clap = { version = "3.*", features = ["derive", "cargo"]}
clap = { version = "4.*", features = ["derive", "cargo", "color"]}
evtx = { git = "https://github.com/Yamato-Security/hayabusa-evtx.git" , features = ["fast-alloc"] , rev = "f07e263" } # 0.8.3 2022/11/20 update
quick-xml = {version = "0.25.*", features = ["serialize"] }
serde = { version = "1.*", features = ["derive"] }
Expand Down
126 changes: 65 additions & 61 deletions README-Japanese.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ Hayabusaは、日本の[Yamato Security](https://yamatosecurity.connpass.com/)
- [スクリーンショット](#スクリーンショット)
- [起動画面](#起動画面)
- [ターミナル出力画面](#ターミナル出力画面)
- [イベント頻度タイムライン出力画面 (`-V`オプション)](#イベント頻度タイムライン出力画面--vオプション)
- [イベント頻度タイムライン出力画面 (`-T`オプション)](#イベント頻度タイムライン出力画面--tオプション)
- [結果サマリ画面](#結果サマリ画面)
- [HTMLの結果サマリ (`-H`オプション)](#htmlの結果サマリ--hオプション)
- [Excelでの解析](#excelでの解析)
Expand Down Expand Up @@ -85,7 +85,7 @@ Hayabusaは、日本の[Yamato Security](https://yamatosecurity.connpass.com/)
- [プロファイルの比較](#プロファイルの比較)
- [Profile Field Aliases](#profile-field-aliases)
- [Levelの省略](#levelの省略)
- [MITRE ATT&CK戦術の省略](#mitre-attck戦術の省略)
- [MITRE ATT\&CK戦術の省略](#mitre-attck戦術の省略)
- [Channel情報の省略](#channel情報の省略)
- [その他の省略](#その他の省略)
- [プログレスバー](#プログレスバー)
Expand Down Expand Up @@ -134,7 +134,7 @@ Hayabusaは従来のWindowsイベントログ分析解析と比較して、分

![Hayabusa ターミナル出力画面](screenshots/Hayabusa-Results.png)

## イベント頻度タイムライン出力画面 (`-V`オプション)
## イベント頻度タイムライン出力画面 (`-T`オプション)

![Hayabusa イベント頻度タイムライン出力画面](screenshots/HayabusaEventFrequencyTimeline.png)

Expand Down Expand Up @@ -394,63 +394,67 @@ macOSの環境設定から「セキュリティとプライバシー」を開き
## コマンドラインオプション

```
USAGE:
hayabusa.exe <INPUT> [OTHER-ACTIONS] [OPTIONS]
INPUT:
-d, --directory <DIRECTORY> .evtxファイルを持つディレクトリのパス
-f, --file <FILE> 1つの.evtxファイルに対して解析を行う
-l, --live-analysis ローカル端末のC:\Windows\System32\winevt\Logsフォルダを解析する
ADVANCED:
-c, --rules-config <DIRECTORY> ルールフォルダのコンフィグディレクトリ (デフォルト: ./rules/config)
-Q, --quiet-errors Quiet errorsモード: エラーログを保存しない
-r, --rules <DIRECTORY/FILE> ルールファイルまたはルールファイルを持つディレクトリ (デフォルト: ./rules)
-t, --thread-number <NUMBER> スレッド数 (デフォルト: パフォーマンスに最適な数値)
--target-file-ext <EVTX_FILE_EXT>... evtx以外の拡張子を解析対象に追加する。 (例1: evtx_data 例2:evtx1 evtx2)
OUTPUT:
-H, --html-report <FILE> HTML形式で詳細な結果を出力する (例: results.html)
-j, --json タイムラインの出力をJSON形式で保存する(例: -j -o results.json)
-J, --jsonl タイムラインの出力をJSONL形式で保存する (例: -J -o results.jsonl)
-o, --output <FILE> タイムラインをCSV形式で保存する (例: results.csv)
-P, --profile <PROFILE> 利用する出力プロファイル名を指定する
DISPLAY-SETTINGS:
--debug デバッグ情報を出力する (メモリ使用量など)
--no-color カラー出力を無効にする
--no-summary 結果概要を出力しない
-q, --quiet Quietモード: 起動バナーを表示しない
-v, --verbose 詳細な情報を出力する
-V, --visualize-timeline イベント頻度タイムラインを出力する
FILTERING:
-e, --eid-filter イベントIDによるフィルタリングを行う(コンフィグファイル: ./rules/config/target_event_IDs.txt`)
--enable-deprecated-rules Deprecatedルールを有効にする
--exclude-status <STATUS>... 読み込み対象外とするルール内でのステータス (ex: experimental) (ex: stable test)
-m, --min-level <LEVEL> 結果出力をするルールの最低レベル (デフォルト: informational)
-n, --enable-noisy-rules Noisyルールを有効にする
--timeline-end <DATE> 解析対象とするイベントログの終了時刻 (例: "2022-02-22 23:59:59 +09:00")
--timeline-start <DATE> 解析対象とするイベントログの開始時刻 (例: "2020-02-22 00:00:00 +09:00")
OTHER-ACTIONS:
--contributors コントリビュータの一覧表示
-L, --logon-summary 成功と失敗したログオン情報の要約を出力する
--level-tuning [<FILE>] ルールlevelのチューニング (デフォルト: ./rules/config/level_tuning.txt)
--list-profiles 利用可能な出力プロファイル名を出力する
-M, --metrics イベントIDの統計情報を表示する
-p, --pivot-keywords-list ピボットキーワードの一覧作成
--set-default-profile <PROFILE> デフォルトの出力コンフィグを設定する
-u, --update-rules rulesフォルダをhayabusa-rulesのgithubリポジトリの最新版に更新する
TIME-FORMAT:
--European-time ヨーロッパ形式で日付と時刻を出力する (例: 22-02-2022 22:00:00.123 +02:00)
--ISO-8601 ISO-8601形式で日付と時刻を出力する (ex: 2022-02-22T10:10:10.1234567Z) (Always UTC)
--RFC-2822 RFC 2822形式で日付と時刻を出力する (例: Fri, 22 Feb 2022 22:00:00 -0600)
--RFC-3339 RFC 3339形式で日付と時刻を出力する (例: 2022-02-22 22:00:00.123456-06:00)
--US-military-time 24時間制(ミリタリータイム)のアメリカ形式で日付と時刻を出力する (例: 02-22-2022 22:00:00.123 -06:00)
--US-time アメリカ形式で日付と時刻を出力する (例: 02-22-2022 10:00:00.123 PM -06:00)
-U, --UTC UTC形式で日付と時刻を出力する (デフォルト: 現地時間)
Usage:
hayabusa.exe [OTHER-ACTIONS] <INPUT> [OUTPUT] [OPTIONS]
Options:
-h, --help ヘルプ画面の表示
-V, --version バージョンの表示
Input:
-d, --directory <DIRECTORY> .evtxファイルを持つディレクトリのパス
-f, --file <FILE> 1つの.evtxファイルに対して解析を行う
-l, --live-analysis ローカル端末のC:\Windows\System32\winevt\Logsフォルダを解析する
Advanced:
-c, --rules-config <DIRECTORY> ルールフォルダのコンフィグディレクトリ (デフォルト: ./rules/config)
-Q, --quiet-errors Quiet errorsモード: エラーログを保存しない
-r, --rules <DIRECTORY/FILE> ルールファイルまたはルールファイルを持つディレクトリ (デフォルト: ./rules)
-t, --thread-number <NUMBER> スレッド数 (デフォルト: パフォーマンスに最適な数値)
--target-file-ext <EVTX_FILE_EXT> evtx以外の拡張子を解析対象に追加する。 (例1: evtx_data 例2:evtx1,evtx2)
Output:
-H, --html-report <FILE> HTML形式で詳細な結果を出力する (例: results.html)
-j, --json タイムラインの出力をJSON形式で保存する(例: -j -o results.json)
-J, --jsonl タイムラインの出力をJSONL形式で保存する (例: -J -o results.jsonl)
-o, --output <FILE> タイムラインをCSV形式で保存する (例: results.csv)
-P, --profile <PROFILE> 利用する出力プロファイル名を指定する
Display Settings:
--no-color カラー出力を無効にする
--no-summary 結果概要を出力しない
-q, --quiet Quietモード: 起動バナーを表示しない
-v, --verbose 詳細な情報を出力する
-T, --visualize-timeline イベント頻度タイムラインを出力する
--debug デバッグ情報を出力する (メモリ使用量など)
Filtering:
-e, --eid-filter イベントIDによるフィルタリングを行う(コンフィグファイル: ./rules/config/target_event_IDs.txt)
--enable-deprecated-rules Deprecatedルールを有効にする
--exclude-status <STATUS> 読み込み対象外とするルール内でのステータス (ex: experimental) (ex: stable,test)
-m, --min-level <LEVEL> 結果出力をするルールの最低レベル (デフォルト: informational)
-n, --enable-noisy-rules Noisyルールを有効にする
--timeline-end <DATE> 解析対象とするイベントログの終了時刻 (例: "2022-02-22 23:59:59 +09:00")
--timeline-start <DATE> 解析対象とするイベントログの開始時刻 (例: "2020-02-22 00:00:00 +09:00")
Other Actions:
--contributors コントリビュータの一覧表示
-L, --logon-summary 成功と失敗したログオン情報の要約を出力する
--level-tuning [<FILE>] ルールlevelのチューニング (デフォルト: ./rules/config/level_tuning.txt)
--list-profiles 利用可能な出力プロファイル名を出力する
-M, --metrics イベントIDの統計情報を表示する
-p, --pivot-keywords-list ピボットキーワードの一覧作成
--set-default-profile <PROFILE> デフォルトの出力コンフィグを設定する
-u, --update-rules rulesフォルダをhayabusa-rulesのgithubリポジトリの最新版に更新する
Time Format:
--European-time ヨーロッパ形式で日付と時刻を出力する (例: 22-02-2022 22:00:00.123 +02:00)
--ISO-8601 ISO-8601形式で日付と時刻を出力する (ex: 2022-02-22T10:10:10.1234567Z) (いつもUTC)
--RFC-2822 RFC 2822形式で日付と時刻を出力する (例: Fri, 22 Feb 2022 22:00:00 -0600)
--RFC-3339 RFC 3339形式で日付と時刻を出力する (例: 2022-02-22 22:00:00.123456-06:00)
--US-military-time 24時間制(ミリタリータイム)のアメリカ形式で日付と時刻を出力する (例: 02-22-2022 22:00:00.123 -06:00)
--US-time アメリカ形式で日付と時刻を出力する (例: 02-22-2022 10:00:00.123 PM -06:00)
-U, --UTC UTC形式で日付と時刻を出力する (デフォルト: 現地時間)
```

## 使用例
Expand Down Expand Up @@ -845,7 +849,7 @@ Hayabusaの結果は`level`毎に文字色が変わります。

### イベント頻度タイムライン

`-V`または`--visualize-timeline`オプションを使うことで、検知したイベントの数が5以上の時、頻度のタイムライン(スパークライン)を画面に出力します。
`-T`または`--visualize-timeline`オプションを使うことで、検知したイベントの数が5以上の時、頻度のタイムライン(スパークライン)を画面に出力します。
マーカーの数は最大10個です。デフォルトのCommand PromptとPowerShell Promptでは文字化けがでるので、Windows TerminalやiTerm2等のターミナルをご利用ください。

# Hayabusaルール
Expand Down
Loading

0 comments on commit 91b0ca5

Please sign in to comment.