2.16.0 [2024/06/11] "FIRSTCON24 Release"
New Features:
- By default now, only rules that are applicable to loaded evtx files will be enabled. This is based on the
Channel
field in.evtx
file and.yml
rule. For example, ifSecurity.evtx
was being scanned, then only rules that haveChannel: Security
defined will be used against this file. In our benchmarks, this usually gives a speed benefit of around 20% when scanning singleevtx
files but can give up a 10x speed performance depending on the file. If you think there are multiple channels being used in a single.evtx
file or you want to use rules that do not have theChannel
field defined in order to scan all.evtx
files regardless of the channel, then you can turn off this filtering with the-A, --enable-all-rules
option incsv-timeline
andjson-timeline
. (#1317) (@fukusuket)- Currently, the only two detection rules that do not have
Channel
defined and are intended to scan all.evtx
files are the following:
- Currently, the only two detection rules that do not have
- By default now,
.evtx
files that have applicable rules will be loaded. So for example, if you are scanning a directory of various event logs but only enable a rule that is looking forChannel: Security
then Hayabusa will ignore all non-security event logs. In our benchmarks, this gives a speed benefit of around 10% with normal scans and up to 60%+ performance increase when scanning with a single rule. If you want to load all.evtx
files regardless of channel, then you can turn off this filtering with the-a, --scan-all-evtx-files
option incsv-timeline
andjson-timeline
. (#1318) (@fukusuket) - Note: Channel filtering only works with .evtx files and you will receive an error if you try to load event logs from a JSON file with
-J, --json-input
and also specify-A
or-a
. (#1345) (@fukusuket) - Support for Sigma Correlation's Event Count. (#1337) (@fukusuket)
- Support for Sigma Correlation's Value Count. (#1338) (@fukusuket)
Enhancements:
- You can now specify multiple directories with the
-d, --directory
option. (#1335) (@hitenkoku) - You can now analyze Splunk logs exported from the REST API. (#1083) (@hitenkoku)
- You can now specify multiple groups with
count
. Ex:count() by IpAddress,SubStatus,LogonType >= 2
Also, the output has been updated. Ex:[condition] count(TargetUserName) by IpAddress > 3 in timeframe [result] count: 4 TargetUserName:tanaka/Administrator/adsyncadmin/suzuki IpAddress:- timeframe:5m
->Count: 4 ¦ TargetUserName: tanaka/Administrator/adsyncadmin/suzuki ¦ IpAddress: -
(#1339) (@fukusuket) - Added support for specifying an optional
Provider_Name
field in field data mapping files (rules/config/data_mapping/*.yaml
) as well as support forData[x]
notation. (#1350) (@fukusuket) - JSON output in count rules now separates field information. (#1342) (@fukusuket)
- Before:
"Details": "[condition] count() by IpAddress >= 5 in timeframe [result] count:3558 IpAddress:192.168.198.149 timeframe:5m"
- After:
"Details": { "Count": 3558, "IpAddress": "192.168.198.149" }
- Before:
新機能:
- デフォルトでは、
.evtx
ファイルに適用可能なルールのみ有効になる。これは、.evtx
ファイルと.yml
ルールのChannel
フィールドに基づく。例えば、Security.evtx
がスキャンされている場合、Channel: Security
が定義されているルールのみがこのファイルに対して使用される。ベンチマークでは、単一のevtx
ファイルをスキャンする場合、パフォーマンスが約20%向上される。1つの.evtx
ファイルで複数のチャネルが使用されている場合や、チャネルが定義されていないルールを使用して、チャネルに関係なくすべての.evtx
ファイルをスキャンしたい場合は、csv-timeline
とjson-timeline
の-A、--enable-all-rules
オプションでこのフィルタリングをオフにすることができる。(#1317)(@fukusuket)- 現在のところ、
Channel
が定義されておらず、すべての.evtx
ファイルをスキャンすることを意図している検知ルールは以下の2つだけ:
- 現在のところ、
- デフォルトでは、適用可能なルールを持つ
.evtx
ファイルのみ読み込む。たとえば、さまざまなイベントログのディレクトリをスキャンしている場合でも、Channel: Security
を探すルールのみを有効にした場合、HayabusaはSecurity
以外のすべてのイベントログを無視します。ベンチマークでは、通常のスキャンで約10%、単一のルールでスキャンする場合は最大60%以上のパフォーマンス向上が得られる。チャネルに関係なくすべての.evtx
ファイルを読み込みたい場合は、csv-timeline
とjson-timeline
の-a、--scan-all-evtx-files
オプションでこのフィルタリングをオフにすることができる。(#1318) (@fukusuket) - 注意: チャンネルフィルタリングは .evtx ファイルにのみ適用され、
-J, --json-input
オプションを使用してイベントログをJSONファイルから読み込む際に-A
または-a
を指定するとエラーが発生する。(#1345) (@fukusuket) - Sigma CorrelationのEvent Countに対応した。 (#1337) (@fukusuket)
- Sigma CorrelationのValue Countに対応した。 (#1338) (@fukusuket)
改善:
-d, --directory
オプションで複数のフォルダを指定できるようにした。 (#1335) (@hitenkoku)- REST APIからエクスポートされたSplunkログを分析できるようになった。 (#1083) (@hitenkoku)
count
で複数のグループを指定できるようにした。例:count() by IpAddress,SubStatus,LogonType >= 2
。また、出力される結果を更新した。例:[condition] count(TargetUserName) by IpAddress > 3 in timeframe [result] count: 4 TargetUserName:tanaka/Administrator/adsyncadmin/suzuki IpAddress:- timeframe:5m
->Count: 4 ¦ TargetUserName: tanaka/Administrator/adsyncadmin/suzuki ¦ IpAddress: -
(#1339) (@fukusuket)- フィールドデータマッピングファイル(
rules/config/data_mapping/*.yaml
)で任意のProvider_Name
フィールドを指定できるようにし、Data[x]
表記に対応した。(#1350) (@fukusuket) - カウントルールのJSON出力で、フィールド情報が分離されるようになった。 (#1342) (@fukusuket)
- 以前:
"Details": "[condition] count() by IpAddress >= 5 in timeframe [result] count:3558 IpAddress:192.168.198.149 timeframe:5m"
- 現在:
"Details": { "Count": 3558, "IpAddress": "192.168.198.149" }
- 以前: