Merge pull request #503 from Yamato-Security/documentation/elastic-import
Elastic Stack import documentation
@@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
# Hayabusa について
|
# Hayabusa について
|
||||||
|
|
||||||
Hayabusaは、日本の[Yamato Security](https://yamatosecurity.connpass.com/)グループによって作られた**Windowsイベントログのファストフォレンジックタイムライン生成**および**スレットハンティングツール**です。 Hayabusaは日本語で[「ハヤブサ」](https://en.wikipedia.org/wiki/Peregrine_falcon)を意味し、ハヤブサが世界で最も速く、狩猟(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形式であり、カスタマイズ性や拡張性に優れます。稼働中のシステムで実行してライブ調査することも、複数のシステムからログを収集してオフライン調査することも可能です。(※現時点では、リアルタイムアラートや定期的なスキャンには対応していません。) 出力は一つのCSVタイムラインにまとめられ、Excelや[Timeline Explorer](https://ericzimmerman.github.io/#!index.md)で簡単に分析できるようになります。
|
Hayabusaは、日本の[Yamato Security](https://yamatosecurity.connpass.com/)グループによって作られた**Windowsイベントログのファストフォレンジックタイムライン生成**および**スレットハンティングツール**です。 Hayabusaは日本語で[「ハヤブサ」](https://en.wikipedia.org/wiki/Peregrine_falcon)を意味し、ハヤブサが世界で最も速く、狩猟(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形式であり、カスタマイズ性や拡張性に優れます。稼働中のシステムで実行してライブ調査することも、複数のシステムからログを収集してオフライン調査することも可能です。(※現時点では、リアルタイムアラートや定期的なスキャンには対応していません。) 出力は一つのCSVタイムラインにまとめられ、Excel、[Timeline Explorer](https://ericzimmerman.github.io/#!index.md)、[Elastic Stack](doc/ElasticStackImport/ElasticStackImport-English.md)等で簡単に分析できるようになります。
|
||||||
|
|
||||||
## 目次
|
## 目次
|
||||||
|
|
||||||
@@ -34,6 +34,7 @@ Hayabusaは、日本の[Yamato Security](https://yamatosecurity.connpass.com/)
|
|||||||
- [Excelでの解析:](#excelでの解析)
|
- [Excelでの解析:](#excelでの解析)
|
||||||
- [Timeline Explorerでの解析:](#timeline-explorerでの解析)
|
- [Timeline Explorerでの解析:](#timeline-explorerでの解析)
|
||||||
- [Criticalアラートのフィルタリングとコンピュータごとのグルーピング:](#criticalアラートのフィルタリングとコンピュータごとのグルーピング)
|
- [Criticalアラートのフィルタリングとコンピュータごとのグルーピング:](#criticalアラートのフィルタリングとコンピュータごとのグルーピング)
|
||||||
|
- [Elastic Stackダッシュボード](#elastic-stackダッシュボード)
|
||||||
- [タイムラインのサンプル結果](#タイムラインのサンプル結果)
|
- [タイムラインのサンプル結果](#タイムラインのサンプル結果)
|
||||||
- [特徴&機能](#特徴機能)
|
- [特徴&機能](#特徴機能)
|
||||||
- [予定されている機能](#予定されている機能)
|
- [予定されている機能](#予定されている機能)
|
||||||
@@ -54,6 +55,7 @@ Hayabusaは、日本の[Yamato Security](https://yamatosecurity.connpass.com/)
|
|||||||
- [ピボットキーワードの作成](#ピボットキーワードの作成)
|
- [ピボットキーワードの作成](#ピボットキーワードの作成)
|
||||||
- [サンプルevtxファイルでHayabusaをテストする](#サンプルevtxファイルでhayabusaをテストする)
|
- [サンプルevtxファイルでHayabusaをテストする](#サンプルevtxファイルでhayabusaをテストする)
|
||||||
- [Hayabusaの出力](#hayabusaの出力)
|
- [Hayabusaの出力](#hayabusaの出力)
|
||||||
|
- [MITRE ATT&CK戦術の省略](#mitre-attck戦術の省略)
|
||||||
- [プログレスバー](#プログレスバー)
|
- [プログレスバー](#プログレスバー)
|
||||||
- [標準出力へのカラー設定](#標準出力へのカラー設定)
|
- [標準出力へのカラー設定](#標準出力へのカラー設定)
|
||||||
- [Hayabusaルール](#hayabusaルール)
|
- [Hayabusaルール](#hayabusaルール)
|
||||||
@@ -76,7 +78,7 @@ Hayabusaは、日本の[Yamato Security](https://yamatosecurity.connpass.com/)
|
|||||||
|
|
||||||
### スレット(脅威)ハンティング
|
### スレット(脅威)ハンティング
|
||||||
|
|
||||||
Hayabusa には現在、1300以上のSigmaルールと約70のHayabusa検知ルールがあり、定期的にルールが追加されています。 最終的な目標はインシデントレスポンスや定期的なスレットハンティングのために、HayabusaエージェントをすべてのWindows端末にインストールして、中央サーバーにアラートを返す仕組みを作ることです。
|
Hayabusaには現在、2200以上のSigmaルールと約125のHayabusa検知ルールがあり、定期的にルールが追加されています。 最終的な目標はインシデントレスポンスや定期的なスレットハンティングのために、HayabusaエージェントをすべてのWindows端末にインストールして、中央サーバーにアラートを返す仕組みを作ることです。
|
||||||
|
|
||||||
### フォレンジックタイムラインの高速生成
|
### フォレンジックタイムラインの高速生成
|
||||||
|
|
||||||
@@ -108,16 +110,24 @@ Windowsのイベントログは、
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
## Criticalアラートのフィルタリングとコンピュータごとのグルーピング:
|
|
||||||
|
|
||||||
|
## Criticalアラートのフィルタリングとコンピュータごとのグルーピング:
|
||||||

|

|
||||||
|
|
||||||
|
## Elastic Stackダッシュボード
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
# タイムラインのサンプル結果
|
# タイムラインのサンプル結果
|
||||||
|
|
||||||
CSVのタイムライン結果のサンプルは[こちら](https://github.com/Yamato-Security/hayabusa/tree/main/sample-results)で確認できます。
|
CSVのタイムライン結果のサンプルは[こちら](https://github.com/Yamato-Security/hayabusa/tree/main/sample-results)で確認できます。
|
||||||
|
|
||||||
CSVのタイムラインをExcelやTimeline Explorerで分析する方法は[こちら](doc/CSV-AnalysisWithExcelAndTimelineExplorer-Japanese.pdf)で紹介しています。
|
CSVのタイムラインをExcelやTimeline Explorerで分析する方法は[こちら](doc/CSV-AnalysisWithExcelAndTimelineExplorer-Japanese.pdf)で紹介しています。
|
||||||
|
|
||||||
|
CSVのタイムラインをElastic Stackにインポートする方法は[こちら](doc/ElasticStackImport/ElasticStackImport-English.md)で紹介しています。(現在、英語のみ)
|
||||||
|
|
||||||
# 特徴&機能
|
# 特徴&機能
|
||||||
|
|
||||||
* クロスプラットフォーム対応: Windows, Linux, macOS。
|
* クロスプラットフォーム対応: Windows, Linux, macOS。
|
||||||
@@ -132,15 +142,13 @@ CSVのタイムラインをExcelやTimeline Explorerで分析する方法は[こ
|
|||||||
* MITRE ATT&CKとのマッピング (CSVの出力ファイルのみ)。
|
* MITRE ATT&CKとのマッピング (CSVの出力ファイルのみ)。
|
||||||
* ルールレベルのチューニング。
|
* ルールレベルのチューニング。
|
||||||
* イベントログから不審なユーザやファイルを素早く特定するのに有用な、ピボットキーワードの一覧作成。
|
* イベントログから不審なユーザやファイルを素早く特定するのに有用な、ピボットキーワードの一覧作成。
|
||||||
|
* 詳細な調査のために全フィールド情報の出力。
|
||||||
|
|
||||||
# 予定されている機能
|
# 予定されている機能
|
||||||
|
|
||||||
* すべてのエンドポイントでの企業全体のスレットハンティング。
|
* すべてのエンドポイントでの企業全体のスレットハンティング。
|
||||||
* 日本語対応。
|
|
||||||
* MITRE ATT&CKのヒートマップ生成機能。
|
* MITRE ATT&CKのヒートマップ生成機能。
|
||||||
* ユーザーログオンと失敗したログオンのサマリー。
|
* ユーザーログオンと失敗したログオンのサマリー。
|
||||||
* JSONログからの入力。
|
|
||||||
* JSONへの出力→Elastic Stack/Splunkへのインポート。
|
|
||||||
|
|
||||||
# ダウンロード
|
# ダウンロード
|
||||||
|
|
||||||
@@ -292,6 +300,7 @@ macOSの環境設定から「セキュリティとプライバシー」を開き
|
|||||||
USAGE:
|
USAGE:
|
||||||
-d --directory=[DIRECTORY] '.evtxファイルを持つディレクトリのパス。'
|
-d --directory=[DIRECTORY] '.evtxファイルを持つディレクトリのパス。'
|
||||||
-f --filepath=[FILEPATH] '1つの.evtxファイルのパス。'
|
-f --filepath=[FILEPATH] '1つの.evtxファイルのパス。'
|
||||||
|
-F --full-data '全てのフィールド情報を出力する。'
|
||||||
-r --rules=[RULEFILE/RULEDIRECTORY] 'ルールファイルまたはルールファイルを持つディレクトリ。(デフォルト: ./rules)'
|
-r --rules=[RULEFILE/RULEDIRECTORY] 'ルールファイルまたはルールファイルを持つディレクトリ。(デフォルト: ./rules)'
|
||||||
-c --color 'カラーで出力する。 (ターミナルはTrue Colorに対応する必要がある。)'
|
-c --color 'カラーで出力する。 (ターミナルはTrue Colorに対応する必要がある。)'
|
||||||
-C --config=[RULECONFIGDIRECTORY] 'ルールフォルダのコンフィグディレクトリ(デフォルト: ./rules/config)'
|
-C --config=[RULECONFIGDIRECTORY] 'ルールフォルダのコンフィグディレクトリ(デフォルト: ./rules/config)'
|
||||||
@@ -330,10 +339,10 @@ hayabusa.exe -f eventlog.evtx
|
|||||||
hayabusa.exe -d .\hayabusa-sample-evtx
|
hayabusa.exe -d .\hayabusa-sample-evtx
|
||||||
```
|
```
|
||||||
|
|
||||||
* 1つのCSVファイルにエクスポートして、ExcelやTimeline Explorerでさらに分析することができます:
|
* 全てのフィールド情報も含めて1つのCSVファイルにエクスポートして、Excel、Timeline Explorer、Elastic Stack等でさらに分析することができます:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
hayabusa.exe -d .\hayabusa-sample-evtx -o results.csv
|
hayabusa.exe -d .\hayabusa-sample-evtx -o results.csv -F
|
||||||
```
|
```
|
||||||
|
|
||||||
* Hayabusaルールのみを実行します(デフォルトでは `-r .\rules` にあるすべてのルールが利用されます):
|
* Hayabusaルールのみを実行します(デフォルトでは `-r .\rules` にあるすべてのルールが利用されます):
|
||||||
@@ -456,11 +465,34 @@ Hayabusaの結果を標準出力に表示しているとき(デフォルト)
|
|||||||
* `Title`: YML検知ルールの`title`フィールドから来ています。
|
* `Title`: YML検知ルールの`title`フィールドから来ています。
|
||||||
* `Details`: YML検知ルールの`details`フィールドから来ていますが、このフィールドはHayabusaルールにしかありません。このフィールドはアラートとイベントに関する追加情報を提供し、ログの`<Event><System><EventData>`部分から有用なデータを抽出することができます。
|
* `Details`: YML検知ルールの`details`フィールドから来ていますが、このフィールドはHayabusaルールにしかありません。このフィールドはアラートとイベントに関する追加情報を提供し、ログの`<Event><System><EventData>`部分から有用なデータを抽出することができます。
|
||||||
|
|
||||||
CSVファイルとして保存する場合、以下の2つのフィールドが追加されます:
|
CSVファイルとして保存する場合、以下の列が追加されます:
|
||||||
|
|
||||||
|
* `MitreAttack`: MITRE ATT&CKの戦術。
|
||||||
* `Rule Path`: アラートまたはイベントを生成した検知ルールへのパス。
|
* `Rule Path`: アラートまたはイベントを生成した検知ルールへのパス。
|
||||||
* `File Path`: アラートまたはイベントを起こしたevtxファイルへのパス。
|
* `File Path`: アラートまたはイベントを起こしたevtxファイルへのパス。
|
||||||
|
|
||||||
|
`-F`もしくは`--full-data`オプションを指定した場合、全てのフィールド情報が新しいカラムで出力されます。
|
||||||
|
|
||||||
|
## MITRE ATT&CK戦術の省略
|
||||||
|
|
||||||
|
簡潔に出力するためにMITRE ATT&CKの戦術を以下のように省略しています。
|
||||||
|
`config/output_tag.txt`の設定ファイルで自由に編集できます。
|
||||||
|
|
||||||
|
* `Recon` : Reconnaissance (偵察)
|
||||||
|
* `ResDev` : Resource Development (リソース開発)
|
||||||
|
* `InitAccess` : Initial Access (初期アクセス)
|
||||||
|
* `Exec` : Execution (実行)
|
||||||
|
* `Persis` : Persistence (永続化)
|
||||||
|
* `PrivEsc` : Privilege Escalation (権限昇格)
|
||||||
|
* `Evas` : Defense Evasion (防御回避)
|
||||||
|
* `CredAccess` : Credential Access (認証情報アクセス)
|
||||||
|
* `Disc` : Discovery (探索)
|
||||||
|
* `LatMov` : Lateral Movement (横展開)
|
||||||
|
* `Collect` : Collection (収集)
|
||||||
|
* `C2` : Command and Control (遠隔操作)
|
||||||
|
* `Exfil` : Exfiltration (持ち出し)
|
||||||
|
* `Impact` : Impact (影響)
|
||||||
|
|
||||||
## プログレスバー
|
## プログレスバー
|
||||||
|
|
||||||
プログレス・バーは、複数のevtxファイルに対してのみ機能します。
|
プログレス・バーは、複数のevtxファイルに対してのみ機能します。
|
||||||
@@ -502,11 +534,14 @@ Hayabusaルールのディレクトリ構造は、3つのディレクトリに
|
|||||||
|
|
||||||
## Hayabusa v.s. 変換されたSigmaルール
|
## Hayabusa v.s. 変換されたSigmaルール
|
||||||
|
|
||||||
Sigmaルールは、最初にHayabusaルール形式に変換する必要があります。変換のやり方は[ここ](https://github.com/Yamato-Security/hayabusa-rules/tree/main/tools/sigmac/README-Japanese.md)で説明されています。Hayabusaルールは、Windowsのイベントログ解析専用に設計されており、以下のような利点があります:
|
Sigmaルールは、最初にHayabusaルール形式に変換する必要があります。変換のやり方は[ここ](https://github.com/Yamato-Security/hayabusa-rules/tree/main/tools/sigmac/README-Japanese.md)で説明されています。
|
||||||
|
殆どのルールはSigmaルールと互換性があるので、Sigmaルールのようにその他のSIEM形式に変換できます。
|
||||||
|
Hayabusaルールは、Windowsのイベントログ解析専用に設計されており、以下のような利点があります:
|
||||||
|
|
||||||
1. ログの有用なフィールドのみから抽出された追加情報を表示するための `details`フィールドを追加しています。
|
1. ログの有用なフィールドのみから抽出された追加情報を表示するための `details`フィールドを追加しています。
|
||||||
2. Hayabusaルールはすべてサンプルログに対してテストされ、検知することが確認されています。
|
2. Hayabusaルールはすべてサンプルログに対してテストされ、検知することが確認されています。
|
||||||
> 変換処理のバグ、サポートされていない機能、実装の違い(正規表現など)により、一部のSigmaルールは意図したとおりに動作しない可能性があります。
|
> 変換処理のバグ、サポートされていない機能、実装の違い(正規表現など)により、一部のSigmaルールは意図したとおりに動作しない可能性があります。
|
||||||
|
3. Sigmaルール仕様にない集計式(例:`|equalsfield`)の利用。
|
||||||
|
|
||||||
**制限事項**: 私たちの知る限り、Hayabusa はオープンソースの Windows イベントログ解析ツールの中でSigmaルールを最も多くサポートしていますが、まだサポートされていないルールもあります。
|
**制限事項**: 私たちの知る限り、Hayabusa はオープンソースの Windows イベントログ解析ツールの中でSigmaルールを最も多くサポートしていますが、まだサポートされていないルールもあります。
|
||||||
|
|
||||||
|
|||||||
65
README.md
@@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
# About Hayabusa
|
# 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 hayabusa detection rules, like sigma, are also written in YML in order to be as easily customizable and extensible as possible. It can be run either on running systems for live analysis or by gathering logs from multiple systems for offline analysis. (At the moment, it does not support real-time alerting or periodic scans.) The output will be consolidated into a single CSV timeline for easy analysis in Excel or [Timeline Explorer](https://ericzimmerman.github.io/#!index.md).
|
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 hayabusa detection rules are based on sigma rules, written in YML in order to be as easily customizable and extensible as possible. It can be run either on running systems for live analysis or by gathering logs from multiple systems for offline analysis. (At the moment, it does not support real-time alerting or periodic scans.) The output will be consolidated into a single CSV timeline for easy analysis in Excel, [Timeline Explorer](https://ericzimmerman.github.io/#!index.md), or [Elastic Stack](doc/ElasticStackImport/ElasticStackImport-English.md).
|
||||||
|
|
||||||
## Table of Contents
|
## Table of Contents
|
||||||
|
|
||||||
@@ -34,7 +34,8 @@ Hayabusa is a **Windows event log fast forensics timeline generator** and **thre
|
|||||||
- [Analysis in Excel](#analysis-in-excel)
|
- [Analysis in Excel](#analysis-in-excel)
|
||||||
- [Analysis in Timeline Explorer](#analysis-in-timeline-explorer)
|
- [Analysis in Timeline Explorer](#analysis-in-timeline-explorer)
|
||||||
- [Critical Alert Filtering and Computer Grouping in Timeline Explorer](#critical-alert-filtering-and-computer-grouping-in-timeline-explorer)
|
- [Critical Alert Filtering and Computer Grouping in Timeline Explorer](#critical-alert-filtering-and-computer-grouping-in-timeline-explorer)
|
||||||
- [Sample Timeline Results](#sample-timeline-results)
|
- [Elastic Stack Dashboard](#elastic-stack-dashboard)
|
||||||
|
- [Analyzing Sample Timeline Results](#analyzing-sample-timeline-results)
|
||||||
- [Features](#features)
|
- [Features](#features)
|
||||||
- [Planned Features](#planned-features)
|
- [Planned Features](#planned-features)
|
||||||
- [Downloads](#downloads)
|
- [Downloads](#downloads)
|
||||||
@@ -54,6 +55,7 @@ Hayabusa is a **Windows event log fast forensics timeline generator** and **thre
|
|||||||
- [Pivot Keyword Generator](#pivot-keyword-generator)
|
- [Pivot Keyword Generator](#pivot-keyword-generator)
|
||||||
- [Testing Hayabusa on Sample Evtx Files](#testing-hayabusa-on-sample-evtx-files)
|
- [Testing Hayabusa on Sample Evtx Files](#testing-hayabusa-on-sample-evtx-files)
|
||||||
- [Hayabusa Output](#hayabusa-output)
|
- [Hayabusa Output](#hayabusa-output)
|
||||||
|
- [MITRE ATT&CK Tactics Abbreviations](#mitre-attck-tactics-abbreviations)
|
||||||
- [Progress Bar](#progress-bar)
|
- [Progress Bar](#progress-bar)
|
||||||
- [Color Output](#color-output)
|
- [Color Output](#color-output)
|
||||||
- [Hayabusa Rules](#hayabusa-rules)
|
- [Hayabusa Rules](#hayabusa-rules)
|
||||||
@@ -76,7 +78,7 @@ Hayabusa is a **Windows event log fast forensics timeline generator** and **thre
|
|||||||
|
|
||||||
### Threat Hunting
|
### Threat Hunting
|
||||||
|
|
||||||
Hayabusa currently has over 1300 sigma rules and around 70 hayabusa rules with more rules being added regularly. The ultimate goal is to be able to push out hayabusa agents to all Windows endpoints after an incident or for periodic threat hunting and have them alert back to a central server.
|
Hayabusa currently has over 2200 sigma rules and around 125 hayabusa rules with more rules being added regularly. The ultimate goal is to be able to push out hayabusa agents to all Windows endpoints after an incident or for periodic threat hunting and have them alert back to a central server.
|
||||||
|
|
||||||
### Fast Forensics Timeline Generation
|
### Fast Forensics Timeline Generation
|
||||||
|
|
||||||
@@ -110,12 +112,20 @@ Hayabusa is not intended to be a replacement for tools like [Evtx Explorer](http
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
# Sample Timeline Results
|
## Elastic Stack Dashboard
|
||||||
|
|
||||||
You can check out sample CSV timelines [here](https://github.com/Yamato-Security/hayabusa/tree/main/sample-results).
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
# Analyzing Sample Timeline Results
|
||||||
|
|
||||||
|
You can check out a sample CSV timeline [here](https://github.com/Yamato-Security/hayabusa/tree/main/sample-results).
|
||||||
|
|
||||||
You can learn how to analyze CSV timelines in Excel and Timeline Explorer [here](doc/CSV-AnalysisWithExcelAndTimelineExplorer-English.pdf).
|
You can learn how to analyze CSV timelines in Excel and Timeline Explorer [here](doc/CSV-AnalysisWithExcelAndTimelineExplorer-English.pdf).
|
||||||
|
|
||||||
|
You can learn how to import CSV files into Elastic Stack [here](doc/ElasticStackImport/ElasticStackImport-English.md).
|
||||||
|
|
||||||
# Features
|
# Features
|
||||||
|
|
||||||
* Cross-platform support: Windows, Linux, macOS.
|
* Cross-platform support: Windows, Linux, macOS.
|
||||||
@@ -124,21 +134,19 @@ You can learn how to analyze CSV timelines in Excel and Timeline Explorer [here]
|
|||||||
* Creates a single easy-to-analyze CSV timeline for forensic investigations and incident response.
|
* Creates a single easy-to-analyze CSV timeline for forensic investigations and incident response.
|
||||||
* Threat hunting based on IoC signatures written in easy to read/create/edit YML based hayabusa rules.
|
* Threat hunting based on IoC signatures written in easy to read/create/edit YML based hayabusa rules.
|
||||||
* Sigma rule support to convert sigma rules to hayabusa rules.
|
* Sigma rule support to convert sigma rules to hayabusa rules.
|
||||||
* Currently it supports the most sigma rules compared to other similar tools and even supports count rules.
|
* Currently it supports the most sigma rules compared to other similar tools and even supports count rules and new aggregators such as `|equalsfield`.
|
||||||
* Event log statistics. (Useful for getting a picture of what types of events there are and for tuning your log settings.)
|
* Event log statistics. (Useful for getting a picture of what types of events there are and for tuning your log settings.)
|
||||||
* Rule tuning configuration by excluding unneeded or noisy rules.
|
* Rule tuning configuration by excluding unneeded or noisy rules.
|
||||||
* MITRE ATT&CK mapping of tactics (only in saved CSV files).
|
* MITRE ATT&CK mapping of tactics (only in saved CSV files).
|
||||||
* Rule level tuning.
|
* Rule level tuning.
|
||||||
* Create a list of unique pivot keywords to quickly identify abnormal users, hostnames, processes, etc... as well as correlate events.
|
* Create a list of unique pivot keywords to quickly identify abnormal users, hostnames, processes, etc... as well as correlate events.
|
||||||
|
* Output all fields for more thorough investigations.
|
||||||
|
|
||||||
# Planned Features
|
# Planned Features
|
||||||
|
|
||||||
* Enterprise-wide hunting on all endpoints.
|
* Enterprise-wide hunting on all endpoints.
|
||||||
* Japanese language support.
|
|
||||||
* MITRE ATT&CK heatmap generation.
|
* MITRE ATT&CK heatmap generation.
|
||||||
* User logon and failed logon summary.
|
* User logon and failed logon summary.
|
||||||
* Input from JSON logs.
|
|
||||||
* JSON support for sending alerts to Elastic Stack/Splunk, etc...
|
|
||||||
|
|
||||||
# Downloads
|
# Downloads
|
||||||
|
|
||||||
@@ -210,7 +218,7 @@ sudo yum install openssl-devel
|
|||||||
|
|
||||||
## Advanced: Updating Rust Packages
|
## Advanced: Updating Rust Packages
|
||||||
|
|
||||||
You can update to the latest Rust crates before compiling to get the latest libraries:
|
You can update to the latest Rust crates before compiling:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cargo update
|
cargo update
|
||||||
@@ -285,6 +293,7 @@ You should now be able to run hayabusa.
|
|||||||
USAGE:
|
USAGE:
|
||||||
-d --directory=[DIRECTORY] 'Directory of multiple .evtx files.'
|
-d --directory=[DIRECTORY] 'Directory of multiple .evtx files.'
|
||||||
-f --filepath=[FILEPATH] 'File path to one .evtx file.'
|
-f --filepath=[FILEPATH] 'File path to one .evtx file.'
|
||||||
|
-F --full-data 'Print all field information.'
|
||||||
-r --rules=[RULEFILE/RULEDIRECTORY] 'Rule file or directory. (Default: ./rules)'
|
-r --rules=[RULEFILE/RULEDIRECTORY] 'Rule file or directory. (Default: ./rules)'
|
||||||
-c --color 'Output with color. (Terminal needs to support True Color.)'
|
-c --color 'Output with color. (Terminal needs to support True Color.)'
|
||||||
-C --config=[RULECONFIGDIRECTORY] 'Rule config folder. (Default: ./rules/config)'
|
-C --config=[RULECONFIGDIRECTORY] 'Rule config folder. (Default: ./rules/config)'
|
||||||
@@ -323,10 +332,10 @@ hayabusa.exe -f eventlog.evtx
|
|||||||
hayabusa.exe -d .\hayabusa-sample-evtx
|
hayabusa.exe -d .\hayabusa-sample-evtx
|
||||||
```
|
```
|
||||||
|
|
||||||
* Export to a single CSV file for further analysis with excel or timeline explorer:
|
* Export to a single CSV file for further analysis with excel, timeline explorer, elastic stack, etc... and include all field information:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
hayabusa.exe -d .\hayabusa-sample-evtx -o results.csv
|
hayabusa.exe -d .\hayabusa-sample-evtx -o results.csv -F
|
||||||
```
|
```
|
||||||
|
|
||||||
* Only run hayabusa rules (the default is to run all the rules in `-r .\rules`):
|
* Only run hayabusa rules (the default is to run all the rules in `-r .\rules`):
|
||||||
@@ -449,11 +458,34 @@ When hayabusa output is being displayed to the screen (the default), it will dis
|
|||||||
* `Title`: This comes from the `title` field in the YML detection rule.
|
* `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 `<Event><System><EventData>` portion of the log. For example, usernames, command line information, process information, etc...
|
* `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 `<Event><System><EventData>` portion of the log. For example, usernames, command line information, process information, etc...
|
||||||
|
|
||||||
When saving to a CSV file an additional two fields will be added:
|
The following additional columns will be added to the output when saving to a CSV file:
|
||||||
|
|
||||||
|
* `MitreAttack`: MITRE ATT&CK tactics.
|
||||||
* `Rule Path`: The path to the detection rule that generated the alert or event.
|
* `Rule Path`: The path to the detection rule that generated the alert or event.
|
||||||
* `File Path`: The path to the evtx file that caused the alert or event.
|
* `File Path`: The path to the evtx file that caused the alert or event.
|
||||||
|
|
||||||
|
If you add the `-F` or `--full-data` option, a new column with all field information will also be added.
|
||||||
|
|
||||||
|
## MITRE ATT&CK Tactics Abbreviations
|
||||||
|
|
||||||
|
In order to save space, we use the following abbreviations when displaying MITRE ATT&CK tactics.
|
||||||
|
You can freely edit these abbreviations in the `config/output_tag.txt` configuration file.
|
||||||
|
|
||||||
|
* `Recon` : Reconnaissance
|
||||||
|
* `ResDev` : Resource Development
|
||||||
|
* `InitAccess` : Initial Access
|
||||||
|
* `Exec` : Execution
|
||||||
|
* `Persis` : Persistence
|
||||||
|
* `PrivEsc` : Privilege Escalation
|
||||||
|
* `Evas` : Defense Evasion
|
||||||
|
* `CredAccess` : Credential Access
|
||||||
|
* `Disc` : Discovery
|
||||||
|
* `LatMov` : Lateral Movement
|
||||||
|
* `Collect` : Collection
|
||||||
|
* `C2` : Command and Control
|
||||||
|
* `Exfil` : Exfiltration
|
||||||
|
* `Impact` : Impact
|
||||||
|
|
||||||
## Progress Bar
|
## Progress Bar
|
||||||
|
|
||||||
The progress bar will only work with multiple evtx files.
|
The progress bar will only work with multiple evtx files.
|
||||||
@@ -480,7 +512,7 @@ The hayabusa rule directory structure is separated into 3 directories:
|
|||||||
* `default`: logs that are turned on in Windows by default.
|
* `default`: logs that are turned on in Windows by default.
|
||||||
* `non-default`: logs that need to be turned on through group policy, security baselines, etc...
|
* `non-default`: logs that need to be turned on through group policy, security baselines, etc...
|
||||||
* `sysmon`: logs that are generated by [sysmon](https://docs.microsoft.com/en-us/sysinternals/downloads/sysmon).
|
* `sysmon`: logs that are generated by [sysmon](https://docs.microsoft.com/en-us/sysinternals/downloads/sysmon).
|
||||||
* `testing`: a temporary directory to put rules that you are currently testing
|
* `testing`: a temporary directory to put rules that you are currently testing.
|
||||||
|
|
||||||
Rules are further seperated into directories by log type (Example: Security, System, etc...) and are named in the following format:
|
Rules are further seperated into directories by log type (Example: Security, System, etc...) and are named in the following format:
|
||||||
|
|
||||||
@@ -493,11 +525,14 @@ Please check out the current rules to use as a template in creating new ones or
|
|||||||
|
|
||||||
## Hayabusa v.s. Converted Sigma Rules
|
## Hayabusa v.s. Converted Sigma Rules
|
||||||
|
|
||||||
Sigma rules need to first be converted to hayabusa rule format explained [here](https://github.com/Yamato-Security/hayabusa-rules/blob/main/tools/sigmac/README.md). Hayabusa rules are designed solely for Windows event log analysis and have the following benefits:
|
Sigma rules need to first be converted to hayabusa rule format explained [here](https://github.com/Yamato-Security/hayabusa-rules/blob/main/tools/sigmac/README.md).
|
||||||
|
Most rules are compatible with the sigma format so you can use them just like sigma rules to convert to other SIEM formats.
|
||||||
|
Hayabusa rules are designed solely for Windows event log analysis and have the following benefits:
|
||||||
|
|
||||||
1. An extra `details` field to display additional information taken from only the useful fields in the log.
|
1. An extra `details` field to display additional information taken from only the useful fields in the log.
|
||||||
2. They are all tested against sample logs and are known to work.
|
2. They are all tested against sample logs and are known to work.
|
||||||
> Some sigma rules may not work as intended due to bugs in the conversion process, unsupported features, or differences in implementation (such as in regular expressions).
|
> Some sigma rules may not work as intended due to bugs in the conversion process, unsupported features, or differences in implementation (such as in regular expressions).
|
||||||
|
3. Extra aggregators not found in sigma, such as `|equalsfield`.
|
||||||
|
|
||||||
**Limitations**: To our knowledge, hayabusa provides the greatest support for sigma rules out of any open source Windows event log analysis tool, however, there are still rules that are not supported:
|
**Limitations**: To our knowledge, hayabusa provides the greatest support for sigma rules out of any open source Windows event log analysis tool, however, there are still rules that are not supported:
|
||||||
|
|
||||||
|
|||||||
BIN
doc/ElasticStackImport/01-SOF-ELK-Bootup.png
Normal file
|
After Width: | Height: | Size: 85 KiB |
BIN
doc/ElasticStackImport/02-Kibana.png
Normal file
|
After Width: | Height: | Size: 457 KiB |
BIN
doc/ElasticStackImport/03-Integrations.png
Normal file
|
After Width: | Height: | Size: 67 KiB |
BIN
doc/ElasticStackImport/04-IntegrationsImportCSV.png
Normal file
|
After Width: | Height: | Size: 573 KiB |
BIN
doc/ElasticStackImport/05-OverrideSettings.png
Normal file
|
After Width: | Height: | Size: 878 KiB |
BIN
doc/ElasticStackImport/06-OverrideSettingsConfig.png
Normal file
|
After Width: | Height: | Size: 100 KiB |
BIN
doc/ElasticStackImport/07-CSV-Import.png
Normal file
|
After Width: | Height: | Size: 939 KiB |
BIN
doc/ElasticStackImport/08-ImportDataSettings.png
Normal file
|
After Width: | Height: | Size: 568 KiB |
BIN
doc/ElasticStackImport/09-ImportFinish.png
Normal file
|
After Width: | Height: | Size: 449 KiB |
BIN
doc/ElasticStackImport/10-Discover.png
Normal file
|
After Width: | Height: | Size: 1.0 MiB |
BIN
doc/ElasticStackImport/11-Dashboard.png
Normal file
|
After Width: | Height: | Size: 505 KiB |
BIN
doc/ElasticStackImport/12-AddingColumns.png
Normal file
|
After Width: | Height: | Size: 123 KiB |
BIN
doc/ElasticStackImport/13-RecommendedColumns.png
Normal file
|
After Width: | Height: | Size: 95 KiB |
BIN
doc/ElasticStackImport/14-DicoverWithColumns.png
Normal file
|
After Width: | Height: | Size: 644 KiB |
BIN
doc/ElasticStackImport/15-HayabusaDashboard-StackManagement.png
Normal file
|
After Width: | Height: | Size: 66 KiB |
BIN
doc/ElasticStackImport/16-HayabusaDashboard-Import.png
Normal file
|
After Width: | Height: | Size: 522 KiB |
BIN
doc/ElasticStackImport/17-HayabusaDashboard-1.png
Normal file
|
After Width: | Height: | Size: 652 KiB |
BIN
doc/ElasticStackImport/18-HayabusaDashboard-2.png
Normal file
|
After Width: | Height: | Size: 704 KiB |
130
doc/ElasticStackImport/ElasticStackImport-English.md
Normal file
@@ -0,0 +1,130 @@
|
|||||||
|
# Importing Results Into Elastic Stack
|
||||||
|
|
||||||
|
## Start an elastic stack distribution
|
||||||
|
|
||||||
|
Hayabusa results can easily be imported into Elastic Stack. We recommend using [SOF-ELK](https://github.com/philhagen/sof-elk/blob/main/VM_README.md), a free elastic stack Linux distro focused on DFIR investigations.
|
||||||
|
|
||||||
|
First download and unzip the SOF-ELK 7-zipped VMware image from [http://for572.com/sof-elk-vm](http://for572.com/sof-elk-vm).
|
||||||
|
|
||||||
|
* Username: `elk_user`
|
||||||
|
* Password: `forensics`
|
||||||
|
|
||||||
|
When you boot up the VM, you will get a screen similar to below:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Open Kibana in a web browser according to the URL displayed. For example: http://172.16.62.130:5601/
|
||||||
|
|
||||||
|
>> Note: it may take a while for Kibana to load.
|
||||||
|
|
||||||
|
You should see a webpage as follows:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Import the CSV results
|
||||||
|
|
||||||
|
Click the sidebar icon in top-lefthand corner and open `Integrations`.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Type in `csv` in the search bar and click `Upload a file`:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
After uploading the CSV file, click `Override settings` to specify the correct timestamp format:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
As shown below, perform the following changes and then click `Apply`:
|
||||||
|
|
||||||
|
1. Change `Timestamp format` to `custom`.
|
||||||
|
2. Specify the format as `yyyy-MM-dd HH:mm:ss.SSS XXX`
|
||||||
|
3. Change the `Time field` to `Timestamp`.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Now click `Import` in the bottom left-hand corner.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
As shown below, click on `Advanced` and perform the following settings before clicking `Import`:
|
||||||
|
|
||||||
|
1. Title the `Index name` as `evtxlogs-hayabusa`.
|
||||||
|
2. Under `Index settings`, add `, "number_of_replicas": 0` so that the index health status does not turn yellow.
|
||||||
|
3. Under `Mappings`, change the `RuleTitle` type of `text` to `keyword` so that we can do statistics on the rule titles and change the `EventID` type of `long` to `keyword` in order to import without errors.
|
||||||
|
4. Under `Ingest pipeline`, add `, "field": "Timestamp"` under the `remove` section. Timestamps will be displayed as `@timestamp` so this duplicate field is not needed. Also, delete the following in order to import without errors:
|
||||||
|
```
|
||||||
|
{
|
||||||
|
"convert": {
|
||||||
|
"field": "EventID",
|
||||||
|
"type": "long",
|
||||||
|
"ignore_missing": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
```
|
||||||
|
|
||||||
|
Settings should look similar to below:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
After importing, you should receive something similar to below:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
You can now click `View index in Discover` to view the results.
|
||||||
|
|
||||||
|
## Analyzing results
|
||||||
|
|
||||||
|
The default Discover view should look similar to this:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
You can get an overview of when the events happened and frequency of events by looking at the histogram at top.
|
||||||
|
|
||||||
|
In the left-side sidebar, you can add fields you want to display in the columns by clicking the plus sign after hovering over a field:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
To start off, we recommend the following columns:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Your Discover view should now look like this:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
You can filter with KQL to search for certain events and alerts. For example:
|
||||||
|
* `Level: "critical"`: Just show critical alerts.
|
||||||
|
* `Level: "critical" or Level: "high"`: Show high and critical alerts.
|
||||||
|
* `NOT Level:info`: Do not show informational events, only alerts.
|
||||||
|
* `*LatMov*`: Show events and alerts related to lateral movement.
|
||||||
|
* `"Password Spray"`: Only show specific attacks such as "Password Spray".
|
||||||
|
* `"LID: 0x8724ead"`: Display all activity associated with Logon ID 0x8724ead.
|
||||||
|
|
||||||
|
## Hayabusa Dashboard
|
||||||
|
|
||||||
|
We have exported a simple Hayabusa Dashboard in JSON to download [here](https://github.com/Yamato-Security/hayabusa/blob/main/doc/ElasticStackImport/HayabusaDashboard.ndjson)
|
||||||
|
|
||||||
|
To import the dashboard, open the left sidebar and click `Stack Management` under `Management`.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
After clicking `Saved Objects`, please click `Import` in the upper right-hand corner and import the Hayabusa Dashboard JSON file you downloaded.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
You should now be able to use the dashboard shown below:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Future Plans
|
||||||
|
|
||||||
|
We plan on creating Hayabusa logstash parsers and a dashboard pre-built for SOF-ELK so that all you will need to do is copy the CSV results file to a directory in order to ingest the logs.
|
||||||
|
|
||||||
|
## Acknowledgements
|
||||||
|
|
||||||
|
Much of this documentation was taken from the blog write-up in Japanese from @kzzzzo2 [here](https://qiita.com/kzzzzo2/items/ead8ccc77b7609143749).
|
||||||
|
|
||||||
|
Many thanks to @kzzzzo2!
|
||||||
4
doc/ElasticStackImport/HayabusaDashboard.ndjson
Normal file
@@ -1,11 +1,6 @@
|
|||||||
`hayabusa-sample-evtx-ResultsDefaultSettings.csv` was created by running:
|
`hayabusa-sample-results-2022-04-16.csv` was created by running:
|
||||||
```bash
|
```bash
|
||||||
hayabusa.exe -d ./hayabusa-sample-evtx -o hayabusa-sample-evtx-ResultsDefaultSettings.csv
|
hayabusa.exe -d ./hayabusa-sample-evtx -o hayabusa-sample-results-2022-04-16.csv -U
|
||||||
```
|
```
|
||||||
|
|
||||||
`hayabusa-sample-evtx-ResultsDeprecatedAndNoisyRulesEnabled.csv` was created running:
|
The sample evtx files used came from [this](https://github.com/Yamato-Security/hayabusa-sample-evtx) repository.
|
||||||
```bash
|
|
||||||
hayabusa.exe -d ./hayabusa-sample-evtx -D -n -o hayabusa-sample-evtx-ResultsDeprecatedAndNoisyRulesEnabled.csv
|
|
||||||
```
|
|
||||||
|
|
||||||
The two .xlsx files were created in Excel after importing the CSV files and manually adding color to the different severity levels.
|
|
||||||