From 8cee3fc82dc1b1000524c13e6130622d91bb67bd Mon Sep 17 00:00:00 2001 From: YamatoSecurity Date: Thu, 26 Dec 2024 06:34:36 +0300 Subject: [PATCH 1/5] update readme --- README.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d9cff8ce4..58f22720a 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,13 @@ # About Hayabusa -Hayabusa is a **Windows event log fast forensics timeline generator** and **threat hunting tool** created by the [Yamato Security](https://yamatosecurity.connpass.com/) group in Japan. Hayabusa means ["peregrine falcon"](https://en.wikipedia.org/wiki/Peregrine_falcon) in Japanese and was chosen as peregrine falcons are the fastest animal in the world, great at hunting and highly trainable. It is written in [Rust](https://www.rust-lang.org/) and supports multi-threading in order to be as fast as possible. We have provided a [tool](https://github.com/Yamato-Security/hayabusa-rules/tree/main/tools/sigmac) to convert [Sigma](https://github.com/SigmaHQ/sigma) rules into Hayabusa rule format. The Sigma-compatible Hayabusa detection rules are written in YML in order to be as easily customizable and extensible as possible. Hayabusa can be run either on single running systems for live analysis, by gathering logs from single or multiple systems for offline analysis, or by running the [Hayabusa artifact](https://docs.velociraptor.app/exchange/artifacts/pages/windows.eventlogs.hayabusa/) with [Velociraptor](https://docs.velociraptor.app/) for enterprise-wide threat hunting and incident response. The output will be consolidated into a single CSV timeline for easy analysis in [LibreOffice](https://www.libreoffice.org/), [Timeline Explorer](https://ericzimmerman.github.io/#!index.md), [Elastic Stack](doc/ElasticStackImport/ElasticStackImport-English.md), [Timesketch](https://timesketch.org/), etc... +Hayabusa is a **Windows event log fast forensics timeline generator** and **threat hunting tool** created by the [Yamato Security](https://yamatosecurity.connpass.com/) group in Japan. +Hayabusa means ["peregrine falcon"](https://en.wikipedia.org/wiki/Peregrine_falcon) in Japanese and was chosen as peregrine falcons are the fastest animal in the world, great at hunting and highly trainable. +It is written in memory-safe [Rust](https://www.rust-lang.org/), supports multi-threading in order to be as fast as possible and is the only open-source tool that has full support for the Sigma specification including v2 correlation rules. +Hayabusa can handle parsing [upstream Sigma](https://github.com/SigmaHQ/sigma) rules, however, the Sigma rules that we use and host in the [hayabusa-rules repository](https://github.com/Yamato-Security/hayabusa-rules) have some conversion done to them in order to make rule loading more flexible and reduce false positives. +You can read the details about this at the [sigma-to-hayabusa-converter repository](https://github.com/Yamato-Security/sigma-to-hayabusa-converter) README file. +Hayabusa can be run either on single running systems for live analysis, by gathering logs from single or multiple systems for offline analysis, or by running the [Hayabusa artifact](https://docs.velociraptor.app/exchange/artifacts/pages/windows.eventlogs.hayabusa/) with [Velociraptor](https://docs.velociraptor.app/) for enterprise-wide threat hunting and incident response. +The output will be consolidated into a single CSV/JSON/JSONL timeline for easy analysis in [LibreOffice](https://www.libreoffice.org/), [Timeline Explorer](https://ericzimmerman.github.io/#!index.md) [Elastic Stack](doc/ElasticStackImport/ElasticStackImport-English.md), [Timesketch](https://timesketch.org/), etc... # Companion Projects @@ -2004,6 +2010,8 @@ If you find any issues (false positives, bugs, etc...) with Sigma rules, please # License Hayabusa is released under [AGPLv3](https://www.gnu.org/licenses/agpl-3.0.en.html) and all rules are released under the [Detection Rule License (DRL) 1.1](https://github.com/SigmaHQ/sigma/blob/master/LICENSE.Detection.Rules.md). +You may freely use Hayabusa internally, SaaS solutions, for consulting work, etc... +However, if you use Hayabusa in a type of SaaS solution and make improvements to it, we ask you to open-source those improvements and give back to the project. Hayabusa uses GeoLite2 data created by MaxMind, available from [https://www.maxmind.com](https://www.maxmind.com). From 14932ceb32f34d37667a0b90a777302cc7589feb Mon Sep 17 00:00:00 2001 From: fukusuket <41001169+fukusuket@users.noreply.github.com> Date: Sat, 28 Dec 2024 08:56:47 +0900 Subject: [PATCH 2/5] doc: update japanese readme --- README-Japanese.md | 159 ++++++++++++++++++++++++++++++++++++++++++++- README.md | 2 +- 2 files changed, 157 insertions(+), 4 deletions(-) diff --git a/README-Japanese.md b/README-Japanese.md index 61c175498..4d4d4d66e 100644 --- a/README-Japanese.md +++ b/README-Japanese.md @@ -30,7 +30,13 @@ # Hayabusa について -Hayabusaは、日本の[Yamato Security](https://yamatosecurity.connpass.com/)グループによって作られた**Windowsイベントログのファストフォレンジックタイムライン作成**および**脅威ハンティングツール**です。 Hayabusaは日本語で[「ハヤブサ」](https://ja.wikipedia.org/wiki/%E3%83%8F%E3%83%A4%E3%83%96%E3%82%B5)を意味し、ハヤブサが世界で最も速く、狩猟(hunting)に優れ、とても訓練しやすい動物であることから選ばれました。[Rust](https://www.rust-lang.org/) で開発され、マルチスレッドに対応し、可能な限り高速に動作するよう配慮されています。[Sigma](https://github.com/SigmaHQ/Sigma)ルールをHayabusaルール形式に変換する[ツール](https://github.com/Yamato-Security/hayabusa-rules/tree/main/tools/sigmac)も提供しています。Hayabusaの検知ルールもSigmaと同様にYML形式であり、カスタマイズ性や拡張性に優れます。稼働中のシステムで実行してライブ調査することも、複数のシステムからログを収集してオフライン調査することも可能です。また、 [Velociraptor](https://docs.velociraptor.app/)と[Hayabusa artifact](https://docs.velociraptor.app/exchange/artifacts/pages/windows.eventlogs.hayabusa/)を用いることで企業向けの広範囲なスレットハンティングとインシデントレスポンスにも活用できます。出力は一つのCSVタイムラインにまとめられ、[LibreOffice](https://www.libreoffice.org/)、[Timeline Explorer](https://ericzimmerman.github.io/#!index.md)、[Elastic Stack](doc/ElasticStackImport/ElasticStackImport-Japanese.md)、[Timesketch](https://timesketch.org/)等で簡単に分析できるようになります。 +Hayabusaは、日本の[Yamato Security](https://yamatosecurity.connpass.com/)グループによって作られた**Windowsイベントログのファストフォレンジックタイムライン作成**および**脅威ハンティングツール**です。 +Hayabusaは日本語で[「ハヤブサ」](https://ja.wikipedia.org/wiki/%E3%83%8F%E3%83%A4%E3%83%96%E3%82%B5)を意味し、ハヤブサが世界で最も速く、狩猟(hunting)に優れ、とても訓練しやすい動物であることから選ばれました。 +[Rust](https://www.rust-lang.org/) で開発され、マルチスレッドに対応し、可能な限り高速に動作するよう配慮されています。 +Hayabusaは[upstream Sigma](https://github.com/SigmaHQ/sigma) ルールの解析に対応しています。ただし、[hayabusa-rules repository](https://github.com/Yamato-Security/hayabusa-rules)で使用およびホストしているSigmaルールは、ルールの読み込みをより柔軟にし、誤検知を減らすために一部の変換が施されています。 +詳細については、[sigma-to-hayabusa-converter repository](https://github.com/Yamato-Security/sigma-to-hayabusa-converter) リポジトリのREADMEファイルをご参照ください。 +稼働中のシステムで実行してライブ調査することも、複数のシステムからログを収集してオフライン調査することも可能です。 また、 [Velociraptor](https://docs.velociraptor.app/)と[Hayabusa artifact](https://docs.velociraptor.app/exchange/artifacts/pages/windows.eventlogs.hayabusa/)を用いることで企業向けの広範囲なスレットハンティングとインシデントレスポンスにも活用できます。 +出力は一つのCSVタイムラインにまとめられ、[LibreOffice](https://www.libreoffice.org/)、[Timeline Explorer](https://ericzimmerman.github.io/#!index.md)、[Elastic Stack](doc/ElasticStackImport/ElasticStackImport-Japanese.md)、[Timesketch](https://timesketch.org/)等で簡単に分析できるようになります。 # 関連プロジェクト @@ -105,8 +111,14 @@ Hayabusaは、日本の[Yamato Security](https://yamatosecurity.connpass.com/) - [`eid-metrics`コマンドの使用例](#eid-metricsコマンドの使用例) - [`eid-metrics`コマンドの設定ファイル](#eid-metricsコマンドの設定ファイル) - [`eid-metrics`のスクリーンショット](#eid-metricsのスクリーンショット) + - [`expand-list` command](#expand-list-command) + - [`expand-list` command examples](#expand-list-command-examples) + - [`expand-list` results](#expand-list-results) + - [`extract-base64` command](#extract-base64-command) + - [`extract-base64` command examples](#extract-base64-command-examples) + - [`extract-base64` results](#extract-base64-results) - [`log-metrics`コマンド](#log-metricsコマンド) - - [`log-metrics`コマンドの例](#log-metricsコマンドの使用例) + - [`log-metrics`コマンドの使用例](#log-metricsコマンドの使用例) - [`log-metrics`のスクリーンショット](#log-metricsのスクリーンショット) - [`logon-summary`コマンド](#logon-summaryコマンド) - [`logon-summary`コマンドの使用例](#logon-summaryコマンドの使用例) @@ -288,6 +300,7 @@ JSON形式の結果を`jq`で解析する方法については、[こちら](/do * PowerShell classicログのフィールドパースと抽出。 * 低メモリモード。(注意: 結果をソートしないことで可能。エージェントやビッグデータでの実行に適している。) * チャンネルとルールのフィルタリングによって最も効率的なパフォーマンスを達成する。 +* Detect, extract and decode Base64 strings found in logs. # ダウンロード @@ -517,6 +530,8 @@ macOSの環境設定から「セキュリティとプライバシー」を開き ## 分析コマンド: * `computer-metrics`: コンピュータ名に基づくイベントの合計を出力する。 * `eid-metrics`: イベントIDに基づくイベントの合計と割合の集計を出力する。 +* `expand-list`: Extract `expand` placeholders from the rules folder. +* `extract-base64`: Extract and decode base64 strings from events. * `logon-summary`: ログオンイベントのサマリを出力する。 * `log-metrics`: ログファイルの統計情報を出力する。 * `pivot-keywords-list`: ピボットする不審なキーワードのリストを作成する。 @@ -657,6 +672,144 @@ Microsoft-Windows-Sysmon/Operational,4,Sysmon Service State Changed. ![eid-metrics screenshot](screenshots/EID-Metrics.png) +### `expand-list`コマンド + +ルールフォルダから`expand`プレースホルダーを抽出します。 +これは、`expand`フィールド修飾子を使用するルールで利用する設定ファイルを作成する際に役立ちます。 +`expand`ルールを使用するには、`./config/expand/`ディレクトリ内に`expand`フィールド修飾子の名前を持つ.txtファイルを作成し、そのファイル内に確認したい値をすべて入力するだけです。 + +例えば、ルールの`detection`ロジックが次のような場合: +```yaml +detection: + selection: + EventID: 5145 + RelativeTargetName|contains: '\winreg' + filter_main: + IpAddress|expand: '%Admins_Workstations%' + condition: selection and not filter_main +``` + +テキストファイル `./config/expand/Admins_Workstations.txt` を作成し、次のような値を入力します: +``` +AdminWorkstation1 +AdminWorkstation2 +AdminWorkstation3 +``` + +これは本質的に次のロジックと同じ内容を確認します: +``` +- IpAddress: 'AdminWorkstation1' +- IpAddress: 'AdminWorkstation2' +- IpAddress: 'AdminWorkstation3' +``` + +設定ファイルが存在しない場合でも、Hayabusaは`expand`ルールを読み込みますが、それを無視します。 + +``` +Usage: expand-list [OPTIONS] + +General Options: + -h, --help Show the help menu + -r, --rules Specify rule directory (default: ./rules) + +Display Settings: + -K, --no-color Disable color output + -q, --quiet Quiet mode: do not display the launch banner +``` + +#### `expand-list`コマンドの使用例 + +* デフォルトの`rules`ディレクトリから`expand`フィールド修飾子を抽出する:`hayabusa.exe expand-list` +* `sigma`ディレクトリから`expand`フィールド修飾子を抽出する:`hayabusa.exe eid-metrics -r ../sigma` + +#### `expand-list`結果 + +``` +5 unique expand placeholders found: +Admins_Workstations +DC-MACHINE-NAME +Workstations +internal_domains +domain_controller_hostnames +``` + +### `extract-base64`コマンド + +このコマンドは、次のイベントからBase64文字列を抽出し、それをデコードして、どのようなエンコードが使用されているかを判別します。 +* Security 4688 CommandLine +* Sysmon 1 CommandLine, ParentCommandLine +* PowerShell Operational 4104 +* PowerShell Operational 4103 + +``` +Usage: extract-base64 [OPTIONS] + +Input: + -d, --directory Directory of multiple .evtx files + -f, --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) + -Q, --quiet-errors Quiet errors mode: do not save error logs + -x, --recover-records Carve evtx records from slack space (default: disabled) + -c, --rules-config Specify custom rule config directory (default: ./rules/config) + -t, --threads Number of threads (default: optimal number for performance) + --target-file-ext Specify additional evtx file extensions (ex: evtx_data) + +Filtering: + --exclude-computer Do not scan specified computer names (ex: ComputerA) (ex: ComputerA,ComputerB) + --include-computer Scan only specified computer names (ex: ComputerA) (ex: ComputerA,ComputerB) + --time-offset Scan recent events based on an offset (ex: 1y, 3M, 30d, 24h, 30m) + +Output: + -o, --output Extract Base64 strings + +Display Settings: + -K, --no-color Disable color output + -q, --quiet Quiet mode: do not display the launch banner + -v, --verbose Output verbose information + +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) +``` + +#### `extract-base64`コマンドの使用例 + +* ディレクトリをスキャンし、結果をターミナルに出力します: `hayabusa.exe extract-base64 -d ../hayabusa-sample-evtx` +* ディレクトリをスキャンし、結果をCSVファイルに出力します: `hayabusa.exe eid-metrics -r ../sigma -o base64-extracted.csv` + +#### `extract-base64`の結果 + +ターミナルに出力する際、スペースに制限があるため、次のフィールドのみが表示されます: +* Timestamp +* Computer +* Base64 String +* Decoded String (if not binary) + +CSVファイルに保存する際、次のフィールドが保存されます: +* Timestamp +* Computer +* Base64 String +* Decoded String (if not binary) +* Original Field +* Length +* Binary (`Y/N`) +* Double Encoding (`Y`の場合、それは通常悪意があります。) +* Encoding Type +* File Type +* Event +* Record ID +* File Name + ### `log-metrics`コマンド `log-metrics`コマンドを使うと、イベントログ内の以下のメタデータを出力することができる: @@ -713,7 +866,7 @@ Time Format: -U, --UTC UTC形式で日付と時刻を出力する (デフォルト: 現地時間) ``` -#### `log-metrics`コマンドの例 +#### `log-metrics`コマンドの使用例 * ファイルからログファイルのメトリクスを出力する: `hayabusa.exe log-metrics -f Security.evtx` * ディレクトリからログファイルのメトリクスを出力する: `hayabusa.exe log-metrics -d ../logs` diff --git a/README.md b/README.md index 58f22720a..04c8c7ab7 100644 --- a/README.md +++ b/README.md @@ -784,7 +784,7 @@ Time Format: #### `extract-base64` command examples -* Scan a directory and output to the terminal: `./target/release/hayabusa extract-base64 -d ../hayabusa-sample-evtx` +* Scan a directory and output to the terminal: `hayabusa.exe extract-base64 -d ../hayabusa-sample-evtx` * Scan a directory and output to a CSV file: `hayabusa.exe eid-metrics -r ../sigma -o base64-extracted.csv` #### `extract-base64` results From ef0ff8b455a519ddd90f6df511c45c8e6aef8754 Mon Sep 17 00:00:00 2001 From: fukusuket <41001169+fukusuket@users.noreply.github.com> Date: Sat, 28 Dec 2024 08:59:18 +0900 Subject: [PATCH 3/5] doc: update japanese readme --- README-Japanese.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README-Japanese.md b/README-Japanese.md index 4d4d4d66e..78c1a9f2c 100644 --- a/README-Japanese.md +++ b/README-Japanese.md @@ -111,12 +111,12 @@ Hayabusaは[upstream Sigma](https://github.com/SigmaHQ/sigma) ルールの解析 - [`eid-metrics`コマンドの使用例](#eid-metricsコマンドの使用例) - [`eid-metrics`コマンドの設定ファイル](#eid-metricsコマンドの設定ファイル) - [`eid-metrics`のスクリーンショット](#eid-metricsのスクリーンショット) - - [`expand-list` command](#expand-list-command) - - [`expand-list` command examples](#expand-list-command-examples) - - [`expand-list` results](#expand-list-results) - - [`extract-base64` command](#extract-base64-command) - - [`extract-base64` command examples](#extract-base64-command-examples) - - [`extract-base64` results](#extract-base64-results) + - [`expand-list`コマンド](#expand-listコマンド) + - [`expand-list`コマンドの使用例](#expand-listコマンドの使用例) + - [`expand-list`結果](#expand-listの結果) + - [`extract-base64`コマンド](#extract-base64コマンド) + - [`extract-base64`コマンドの使用例](#extract-base64コマンドの使用例) + - [`extract-base64`結果](#extract-base64の結果) - [`log-metrics`コマンド](#log-metricsコマンド) - [`log-metrics`コマンドの使用例](#log-metricsコマンドの使用例) - [`log-metrics`のスクリーンショット](#log-metricsのスクリーンショット) From 3d030496c76b9c888ddc18e2a6164edcd16eb686 Mon Sep 17 00:00:00 2001 From: YamatoSecurity Date: Sat, 28 Dec 2024 08:11:46 +0300 Subject: [PATCH 4/5] minor fixes --- README-Japanese.md | 140 +++++++++++++++++++++++---------------------- README.md | 2 +- 2 files changed, 72 insertions(+), 70 deletions(-) diff --git a/README-Japanese.md b/README-Japanese.md index 78c1a9f2c..f283b99ad 100644 --- a/README-Japanese.md +++ b/README-Japanese.md @@ -83,7 +83,7 @@ Hayabusaは[upstream Sigma](https://github.com/SigmaHQ/sigma) ルールの解析 - [jqによるJSON形式の結果の解析](#jqによるjson形式の結果の解析) - [特徴&機能](#特徴機能) - [ダウンロード](#ダウンロード) - - [Windowsライブレスポンスパッケージ](#Windowsライブレスポンスパッケージ) + - [Windowsライブレスポンスパッケージ](#windowsライブレスポンスパッケージ) - [Gitクローン](#gitクローン) - [アドバンス: ソースコードからのコンパイル(任意)](#アドバンス-ソースコードからのコンパイル任意) - [Rustパッケージの更新](#rustパッケージの更新) @@ -95,7 +95,7 @@ Hayabusaは[upstream Sigma](https://github.com/SigmaHQ/sigma) ルールの解析 - [注意: アンチウィルス/EDRの誤検知と遅い初回実行](#注意-アンチウィルスedrの誤検知と遅い初回実行) - [Windows](#windows) - [パスにスペースが含まれるファイルまたはディレクトリをスキャンしようとするとエラーが発生した場合](#パスにスペースが含まれるファイルまたはディレクトリをスキャンしようとするとエラーが発生した場合) - - [Characters not being displayed correctly](#characters-not-being-displayed-correctly) + - [文字が正常に表示されない場合](#文字が正常に表示されない場合) - [Linux](#linux) - [macOS](#macos) - [コマンド一覧](#コマンド一覧) @@ -113,10 +113,10 @@ Hayabusaは[upstream Sigma](https://github.com/SigmaHQ/sigma) ルールの解析 - [`eid-metrics`のスクリーンショット](#eid-metricsのスクリーンショット) - [`expand-list`コマンド](#expand-listコマンド) - [`expand-list`コマンドの使用例](#expand-listコマンドの使用例) - - [`expand-list`結果](#expand-listの結果) + - [`expand-list`結果](#expand-list結果) - [`extract-base64`コマンド](#extract-base64コマンド) - [`extract-base64`コマンドの使用例](#extract-base64コマンドの使用例) - - [`extract-base64`結果](#extract-base64の結果) + - [`extract-base64`の結果](#extract-base64の結果) - [`log-metrics`コマンド](#log-metricsコマンド) - [`log-metrics`コマンドの使用例](#log-metricsコマンドの使用例) - [`log-metrics`のスクリーンショット](#log-metricsのスクリーンショット) @@ -300,7 +300,7 @@ JSON形式の結果を`jq`で解析する方法については、[こちら](/do * PowerShell classicログのフィールドパースと抽出。 * 低メモリモード。(注意: 結果をソートしないことで可能。エージェントやビッグデータでの実行に適している。) * チャンネルとルールのフィルタリングによって最も効率的なパフォーマンスを達成する。 -* Detect, extract and decode Base64 strings found in logs. +* ログに含まれるBase64文字列を検出、抽出、デコードする。 # ダウンロード @@ -328,15 +328,15 @@ zipファイルには、Hayabusaのバイナリ、XORエンコードされたル # Gitクローン -以下の`git clone`コマンドでレポジトリをダウンロードし、ソースコードからコンパイルして使用することも可能です: +以下の`git clone`コマンドでレポジトリをダウンロードし、ソースコードからコンパイルして使用することも可能です: + +> **注意:** `main`ブランチは開発中のバージョンです。まだ正式にリリースされていない新機能が使えるかもしれないが、バグがある可能性もあるので、テスト版だと思って下さい。 ```bash git clone https://github.com/Yamato-Security/hayabusa.git --recursive ``` -> **注意:** mainブランチは開発中のバージョンです。まだ正式にリリースされていない新機能が使えるかもしれないが、バグがある可能性もあるので、テスト版だと思って下さい。 - -※ `--recursive`をつけ忘れた場合、サブモジュールとして管理されている`rules`フォルダ内のファイルはダウンロードされません。 +> ※ `--recursive`をつけ忘れた場合、サブモジュールとして管理されている`rules`フォルダ内のファイルはダウンロードされません。 `git pull --recurse-submodules`コマンド、もしくは以下のコマンドで`rules`フォルダを同期し、Hayabusaの最新のルールを更新することができます: @@ -369,7 +369,7 @@ cargo build --release rustup update stable ``` -コンパイルされたバイナリは`target/release`フォルダ配下で作成されます。 +コンパイルされたバイナリは`./target/release`フォルダ配下で作成されます。 ## Rustパッケージの更新 @@ -530,8 +530,8 @@ macOSの環境設定から「セキュリティとプライバシー」を開き ## 分析コマンド: * `computer-metrics`: コンピュータ名に基づくイベントの合計を出力する。 * `eid-metrics`: イベントIDに基づくイベントの合計と割合の集計を出力する。 -* `expand-list`: Extract `expand` placeholders from the rules folder. -* `extract-base64`: Extract and decode base64 strings from events. +* `expand-list`: `expand`のプレースホルダを`rules`フォルダから取り出す。 +* `extract-base64`: イベントからbase64文字列を抽出し、デコードする。 * `logon-summary`: ログオンイベントのサマリを出力する。 * `log-metrics`: ログファイルの統計情報を出力する。 * `pivot-keywords-list`: ピボットする不審なキーワードのリストを作成する。 @@ -547,7 +547,7 @@ macOSの環境設定から「セキュリティとプライバシー」を開き ## 汎用コマンド: * `help`: このメッセージまたは指定されたコマンドのヘルプを表示する。 -* `list-contributors`: コントリビュータ一覧の表示 +* `list-contributors`: コントリビュータ一覧の表示。 # コマンド使用方法 @@ -689,7 +689,7 @@ detection: condition: selection and not filter_main ``` -テキストファイル `./config/expand/Admins_Workstations.txt` を作成し、次のような値を入力します: +テキストファイル `./config/expand/Admins_Workstations.txt` を作成し、次のような値を入力します: ``` AdminWorkstation1 AdminWorkstation2 @@ -709,12 +709,12 @@ AdminWorkstation3 Usage: expand-list [OPTIONS] General Options: - -h, --help Show the help menu - -r, --rules Specify rule directory (default: ./rules) + -h, --help ヘルプメニューを表示する + -r, --rules ルールファイルまたはルールファイルを持つディレクトリ (デフォルト: ./rules) Display Settings: - -K, --no-color Disable color output - -q, --quiet Quiet mode: do not display the launch banner + -K, --no-color カラーで出力しない + -q, --quiet Quietモード: 起動バナーを表示しない ``` #### `expand-list`コマンドの使用例 @@ -745,41 +745,41 @@ domain_controller_hostnames Usage: extract-base64 [OPTIONS] Input: - -d, --directory Directory of multiple .evtx files - -f, --file File path to one .evtx file - -l, --live-analysis Analyze the local C:\Windows\System32\winevt\Logs folder + -d, --directory .evtxファイルを持つディレクトリのパス + -f, --file 1つの.evtxファイルに対して解析を行う + -l, --live-analysis ローカル端末のC:\Windows\System32\winevt\Logsフォルダを解析する 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) - -Q, --quiet-errors Quiet errors mode: do not save error logs - -x, --recover-records Carve evtx records from slack space (default: disabled) - -c, --rules-config Specify custom rule config directory (default: ./rules/config) - -t, --threads Number of threads (default: optimal number for performance) - --target-file-ext Specify additional evtx file extensions (ex: evtx_data) + -C, --clobber 結果ファイルを上書きする + -h, --help ヘルプメニューを表示する + -J, --JSON-input .evtxファイルの代わりにJSON形式のログファイル(.jsonまたは.jsonl)をスキャンする + -Q, --quiet-errors Quiet errorsモード: エラーログを保存しない + -x, --recover-records 空ページからevtxレコードをカービングする (デフォルト: 無効) + -c, --rules-config ルールフォルダのコンフィグディレクトリ (デフォルト: ./rules/config) + -t, --threads スレッド数 (デフォルト: パフォーマンスに最適な数値) + --target-file-ext evtx以外の拡張子を解析対象に追加する。 (例1: evtx_data 例2: evtx1,evtx2) Filtering: - --exclude-computer Do not scan specified computer names (ex: ComputerA) (ex: ComputerA,ComputerB) - --include-computer Scan only specified computer names (ex: ComputerA) (ex: ComputerA,ComputerB) - --time-offset Scan recent events based on an offset (ex: 1y, 3M, 30d, 24h, 30m) + --exclude-computer 特定のコンピュータ名をスキャンしない (例: ComputerA) (例: ComputerA,ComputerB) + --include-computer 特定のコンピュータ名のみをスキャンする (例: ComputerA) (例: ComputerA,ComputerB) + --time-offset オフセットに基づく最近のイベントのスキャン (例: 1y, 3M, 30d, 24h, 30m) Output: - -o, --output Extract Base64 strings + -o, --output Base64文字列を抽出する Display Settings: - -K, --no-color Disable color output - -q, --quiet Quiet mode: do not display the launch banner - -v, --verbose Output verbose information + -K, --no-color カラーで出力しない + -q, --quiet Quietモード: 起動バナーを表示しない + -v, --verbose 詳細な情報を出力する 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) + --European-time ヨーロッパ形式で日付と時刻を出力する (例: 22-02-2022 22:00:00.123 +02:00) + -O, --ISO-8601 ISO-8601形式で日付と時刻を出力する (例: 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形式で日付と時刻を出力する (デフォルト: 現地時間) ``` #### `extract-base64`コマンドの使用例 @@ -790,25 +790,25 @@ Time Format: #### `extract-base64`の結果 ターミナルに出力する際、スペースに制限があるため、次のフィールドのみが表示されます: -* Timestamp -* Computer -* Base64 String -* Decoded String (if not binary) + * Timestamp + * Computer + * Base64 String + * Decoded String (if not binary) CSVファイルに保存する際、次のフィールドが保存されます: -* Timestamp -* Computer -* Base64 String -* Decoded String (if not binary) -* Original Field -* Length -* Binary (`Y/N`) -* Double Encoding (`Y`の場合、それは通常悪意があります。) -* Encoding Type -* File Type -* Event -* Record ID -* File Name + * Timestamp + * Computer + * Base64 String + * Decoded String (if not binary) + * Original Field + * Length + * Binary (`Y/N`) + * Double Encoding (`Y`の場合、それは通常悪意があります。) + * Encoding Type + * File Type + * Event + * Record ID + * File Name ### `log-metrics`コマンド @@ -881,7 +881,7 @@ Time Format: `logon-summary`コマンドを使うことでログオン情報の要約(ユーザ名、ログイン成功数、ログイン失敗数)の画面出力ができます。 単体のevtxファイルを解析したい場合は`-f`オプションを利用してください。複数のevtxファイルを対象としたい場合は`-d`オプションを合わせて使うことでevtxファイルごとのログイン情報の要約を出力できます。 -ログオン成功は、以下のイベントから取得される: +ログオン成功は、以下のイベントから取得される: * `Security 4624` (ログオン成功) * `RDS-LSM 21` (リモートデスクトップサービス ローカルセッションマネージャーのログオン) * `RDS-GTW 302` (リモートデスクトップサービス ゲートウェイのログオン) @@ -914,7 +914,6 @@ Filtering: --timeline-start 解析対象とするイベントログの開始時刻 (例: "2020-02-22 00:00:00 +09:00") Output: - -b, --disable-abbreviations 省略機能を無効にする -o, --output ログオンサマリをCSV形式で2つのファイルに保存する (例: -o logon-summary.csv) Display Settings: @@ -1053,10 +1052,11 @@ Filtering: --time-offset オフセットに基づく最近のイベントのスキャン (例: 1y, 3M, 30d, 24h, 30m) Output: - -J, --JSON-output JSON形式で検索結果を保存する (例: -J -o results.json) - -L, --JSONL-output JSONL形式で検索結果を保存 (例: -L -o results.jsonl) - -M, --multiline イベントフィールド情報を複数の行に出力する - -o, --output ログオンサマリをCSV形式で保存する (例: search.csv) + -b, --disable-abbreviations 省略機能を無効にする + -J, --JSON-output JSON形式で検索結果を保存する (例: -J -o results.json) + -L, --JSONL-output JSONL形式で検索結果を保存 (例: -L -o results.jsonl) + -M, --multiline イベントフィールド情報を複数の行に出力する + -o, --output ログオンサマリをCSV形式で保存する (例: search.csv) Time Format: --European-time ヨーロッパ形式で日付と時刻を出力する (例: 22-02-2022 22:00:00.123 +02:00) @@ -1741,11 +1741,11 @@ RuleID: "%RuleID%" また、[イベントキーエイリアス](https://github.com/Yamato-Security/hayabusa-rules/blob/main/README-Japanese.md#%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88%E3%82%AD%E3%83%BC%E3%82%A8%E3%82%A4%E3%83%AA%E3%82%A2%E3%82%B9)を定義し、出力することもできます。 -## Abbreviations +## 省略 -In order to save space, we abbreviate levels, MITRE ATT&CK tactics, channels, providers, field names, etc... +結果をミニマルにするため、レベル、MITRE ATT&CK戦術、チャンネル、プロバイダ、フィールド名などを省略しています。 -You can turn off some of these abbreviations to see the original channel name, provider name, etc... with the `-b, --disable-abbreviations` option. +`b, --disable-abbreviations`オプションで、これらの省略のいくつかを無効にして、元々のチャンネル名、プロバイダ名などを表示することができます。 ### Levelの省略 @@ -2010,6 +2010,8 @@ Sigmaルールの問題点(誤検出、バグ等々)を発見された方は # ライセンス Hayabusaは[AGPLv3](https://gpl.mhatta.org/agpl.ja.html)で公開され、すべてのルールは[Detection Rule License (DRL) 1.1](https://github.com/SigmaHQ/sigma/blob/master/LICENSE.Detection.Rules.md)で公開されています。 +Hayabusaの社内利用、SaaSソリューションの利用、コンサルティングの利用などは自由です。 +ただし、SaaS型ソリューションでHayabusaを利用し、改良を加えた場合は、その改良をオープンソース化し、プロジェクトに還元してください。 Hayabusaは、MaxMind社が作成したGeoLite2データを使用しており、[https://www.maxmind.com](https://www.maxmind.com)から入手可能です。 diff --git a/README.md b/README.md index 04c8c7ab7..38cbddd93 100644 --- a/README.md +++ b/README.md @@ -530,7 +530,7 @@ You should now be able to run hayabusa. ## Analysis Commands: * `computer-metrics`: Print the number of events based on computer names. * `eid-metrics`: Print the number and percentage of events based on Event ID. -* `expand-list`: Extract `expand` placeholders from the rules folder. +* `expand-list`: Extract `expand` placeholders from the `rules` folder. * `extract-base64`: Extract and decode base64 strings from events. * `log-metrics`: Print log file metrics. * `logon-summary`: Print a summary of logon events. From 07678dc64c365b86205af70374096be87dc6c2b7 Mon Sep 17 00:00:00 2001 From: YamatoSecurity Date: Sat, 28 Dec 2024 08:21:07 +0300 Subject: [PATCH 5/5] bump --- Cargo.lock | 56 +++++++++++++++++++++++++++--------------------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 982cd3998..be9b259bf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -256,9 +256,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.5" +version = "1.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31a0499c1dc64f458ad13872de75c0eb7e3fdb0e67964610c914b034fc5956e" +checksum = "8d6dbb628b8f8555f86d0323c2eb39e3ec81901f4b83e091db8a6a76d316a333" dependencies = [ "jobserver", "libc", @@ -345,7 +345,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", ] [[package]] @@ -562,7 +562,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", ] [[package]] @@ -1078,7 +1078,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", ] [[package]] @@ -1546,7 +1546,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", ] [[package]] @@ -1664,9 +1664,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.37" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" dependencies = [ "proc-macro2", ] @@ -1814,7 +1814,7 @@ dependencies = [ "proc-macro2", "quote", "rust-embed-utils", - "syn 2.0.91", + "syn 2.0.92", "walkdir", ] @@ -1882,9 +1882,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.18" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248" +checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4" [[package]] name = "ryu" @@ -1918,22 +1918,22 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.216" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e" +checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.216" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e" +checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", ] [[package]] @@ -2052,7 +2052,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.91", + "syn 2.0.92", ] [[package]] @@ -2074,9 +2074,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.91" +version = "2.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53cbcb5a243bd33b7858b1d7f4aca2153490815872d86d955d6ea29f743c035" +checksum = "70ae51629bf965c5c098cc9e87908a3df5301051a9e087d6f9bef5c9771ed126" dependencies = [ "proc-macro2", "quote", @@ -2091,7 +2091,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", ] [[package]] @@ -2153,7 +2153,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", ] [[package]] @@ -2192,7 +2192,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", ] [[package]] @@ -2328,7 +2328,7 @@ dependencies = [ "log", "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", "wasm-bindgen-shared", ] @@ -2350,7 +2350,7 @@ checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -2634,7 +2634,7 @@ checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", "synstructure", ] @@ -2656,7 +2656,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", ] [[package]] @@ -2676,7 +2676,7 @@ checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", "synstructure", ] @@ -2705,5 +2705,5 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.91", + "syn 2.0.92", ]