Releases: Yamato-Security/hayabusa
Releases · Yamato-Security/hayabusa
v2.16.1
This release is the same as v2.16.0 with updated rules as of August 2nd, 2024. We are re-releasing just the Windows packages because Windows defender was giving false positive alerts on certain rules. We have temporarily removed those rules so you should not receive false positives on rules anymore. If you do, please create a GitHub issue and tell us the path of the offending rules.
v2.16.0 🦅
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" }
- 以前:
v2.15.0 🦅
2024/06/05 Update
- I updated the detections rules so that they do not include two rules that cause false positives for Windows Defender for the Windows 65 bit package:
hayabusa-2.15.0-win-x64-r2.zip
(@YamatoSecurity)
2.15.0 [2024/04/20] "Sonic Release"
Enhancements:
- Added support for
windash
field modifier (ex.|contains|windash:
,|contains|all|windash:
) in sigma rules. (#1319) (@hitenkoku)- https://sigmahq.io/docs/basics/modifiers.html#windash
- Note: currently on the backend we convert the use of
windash
in rules so they are compatibile with previous versions of Hayabusa, however, around the end of May we will start to keep the use ofwindash
as-is so please update to this version before then or else you will recieve rule parsing errors if you update rules.
Bug Fixes:
-T
detection frequency timeline was not usable in version 2.14.0. (#1322) (@fukusuket)- Fixed
windash
not working when there is a wildcard. (#1327) (@hitenkoku)
改善:
- Sigmaルールの
windash
フィールド修飾子 (例:|contains|windash:
と|contains|all|windash:
)に対応した。 (#1319) (@hitenkoku)- https://sigmahq.io/docs/basics/modifiers.html#windash
- 注意: 現在、バックエンドでは、以前のバージョンのHayabusaと互換性があるようにルール内の
windash
の使用を変換しているが、5月末ごろには、windash
の使用をそのままにする予定なので、それまでにこのバージョンにアップデートしてください。
バグ修正:
- バージョン2.14.0では、
-T
の検知頻度タイムライン出力は使用できなかった。 (#1322) (@fukusuket) windash
でワイルドカードが利用できない問題を修正した。 (#1327) (@hitenkoku)
v2.14.0 🦅
2.14.0 [2024/03/30] "BSides Tokyo Release"
New Features:
- Added
--include-status
option: You can specify rules based on theirstatus
. (#1193) (@hitenkoku) - Added a
-s, --low-memory-mode
option that uses up to 95% less memory. However, in order to do this, Hayabusa cannot sort results nor use-R, --remove-duplicate-data
and/or-X, --remove-duplicate-detections
in combination. (#1254) (@hach1yon @hitenkoku)
Enhancements:
- Removed unused crates. (@YamatoSecurity)
- JSON input now supports the format exported from Splunk. (#1083) (@hitenkoku)
- Performance enchancements. (#1277, #1278) (@fukusuket)
- Reordered
search
result fields to look similar to thecsv-timeline
command results. (#1297) (@hitenkoku) - Added master piece character in ascii art eggs. R.I.P. lovely master hidden behind the gas mask. (#1304) (@hitenkoku)
- Unified help option format in
computer-metrics
command with other commands. (#1314) (@hitenkoku)
Bug Fixes:
- JSON output of the
search
command was missing theAllFieldInfo
field. (#1251) (@hitenkoku) - The time the user took to choose options in the scan wizard was included in elapsed time so we now exclude that. (#1291) (@hitenkoku)
- Fixed
-h, --help
option is being displayed multiple times. (#1309) (@hitenkoku)
新機能:
- 指定した
status
のルールのみを利用する--include-status
オプションを追加した。 (#1193) (@hitenkoku) - メモリ使用量を最大95%削減する
-s, --low-memory-mode
(低メモリモード)オプションを追加した。ただし、そのためには結果をソートしたり、-R, --remove-duplicate-data
または-X, --remove-duplicate-detections
を併用したりすることはできない。(#1254) (@hach1yon @hitenkoku)
改善:
- 未使用のクレートを削除した。(@YamatoSecurity)
- SplunkからエクスポートしたJSONファイルの入力に対応した。 (#1083) (@hitenkoku)
- パフォーマンスの改善 (#1277, #1278) (@fukusuket)
csv-timeline
コマンドの結果と同様になるようにするために、search
コマンドの結果の表示順番を変更した。 (#1297) (@hitenkoku)- イースターエッグに最強のキャラクターを追加した。 (#1304) (@hitenkoku)
computer-metrics
コマンドのhelpオプションの表示をほかのコマンドの形式に合わせた。 (#1314) (@hitenkoku)
バグ修正:
search
コマンドのJSON出力でAllFieldInfo
フィールドの情報が出力されなくなっていたのを修正した。 (#1251) (@hitenkoku)- ウィザードのオプション選択の時間が処理時間の中に含まれていたため除外した。 (#1291) (@hitenkoku)
-h, --help
オプションが重複して複数回表示されていた問題を修正した。 (#1309) (@hitenkoku)
v2.13.0 🦅
2.13.0 [2024/02/11] "Year Of The Dragon Release"
Enhancements:
- Adjusted the
search
command's Filter option to be an exact match and support wildcard characters. (#1240) (@hitenkoku) - Any time there is a change in a detection rule, it will be displayed when running the
update-rules
command. Previously, only rules that updated theirmodified
field would be displayed. (#1243) (@hitenkoku) - The
json-timeline
command now outputs in JSON format when outputting to the terminal. (#1197) (@hitenkoku) - Added support for parsing JSON input when the data is inside an array. (#1248) (@hitenkoku)
- Changed the
‖
separator into a·
separator to make it easier to read and render properly on older terminals. (#1258) (@YamatoSecurity) - Added a
-h, --help
option to General Options for all commands. (#1255) (@hitenkoku) - Changed the
Details
output in thejson-timeline
command from alphabetical order to the original order. - Loading detection rules is now skipped when running commands that do not need them. (#1263) (@hitenkoku)
- Improved the standard output colors in the
csv-timeline
command. (#1271) (@hitenkoku) - Refactoring and performance enhancements. (#1268, #1260) (@hach1yon)
Bug Fixes:
- Removed newline characters in the
search
command output. (#1253) (@hitenkoku) - Fixed the progress bar and wizard colored output when the
--no-color
option is used. (#1256) (@hitenkoku) - Fixed a panic when the local timezone was not able to be identified. This was fixed in the
chrono
crate version 0.4.32. (#1273)
改善:
search
コマンドのフィルタオプションを完全一致にするようにした。加えてフィルタオプションはワイルドカード対応をするようにした。 (#1240) (@hitenkoku)update-rules
コマンドを実行したときに、検知ルールが変更された場合にルール名を出力するようにした。以前はmodified
フィールドを更新したルールだけが表示されていた。(#1243) (@hitenkoku)json-timeline
コマンドの標準出力でJSONフォーマットを出力するように修正した。 (#1197) (@hitenkoku)- JSON入力でデータが配列内にある場合に解析できるようにした。 (#1248) (@hitenkoku)
- 古いターミナルでも正しく表示されるように、また読みやすくするために、
‖
区切り文字を·
区切り文字に変更した。(#1258) (@YamatoSecurity) - General Optionsに
-h, --help
オプションを追加した。 (#1255) (@hitenkoku) json-timeline
コマンドのDetails
の出力で、要素がアルファベット順に並んでいたのをルールに記載されているオリジナルの順番に変更した。 (#1264) (@hitenkoku)- ルールをロードする必要のないコマンドを実行した場合、検出ルールのロードをスキップするようにした。 (#1263) (@hitenkoku)
csv-timeline
コマンドの標準出力のカラー出力ルールを変更した。 (#1271) (@hitenkoku)- リファクタリングとパフォーマンスの改善。(#1268, #1260) (@hach1yon)
バグ修正:
search
コマンドの出力に入っている不要な改行文字を削除した。 (#1253) (@hitenkoku)no-color
オプション使用時のプログレスバーとウィザードのカラー出力を修正した。 (#1256) (@hitenkoku)- ローカルのタイムゾーンを特定できない場合にパニックが発生する問題を修正した。
chrono
クレートのバージョン0.4.32で修正された。(#1273)
v2.12.0 🦅
2.12.0 [2023/12/23] "SECCON Christmas Release"
Enhancements:
%MitreTactics%
,%MitreTags%
,%OtherTags%
fields are now outputted as an array of strings in JSON output. (#1230) (@hitenkoku)- Added a summary of MITRE ATT&CK tactics that were detected for each computer in the HTML report. In order to use this feature, you need to use a profile that includes the
%MitreTactics%
field. (#1226) (@hitenkoku) - Output messages about reporting issues and false positives when using
csv-timeline
orjson-timeline
commands. (#1236) (@hitenkoku)
Bug Fixes:
- In JSON output, multiple field names with the same names were not outputted as an array so only one result would be returned when parsing with
jq
. We fixed this by outputting multiple field data with the same field name inside an array. (#1202) (@hitenkoku) - Fixed a bug in the
csv-timeline
,json-timeline
,eid-metrics
,logon-summary
,pivot-keywords-list
andsearch
commands so that Hayabusa will quit whenever no input option (-l
,-f
or-d
) is specified. (#1235) (@hitenkoku)
改善:
- JSON出力において、MitreTactics、MitreTags, OtherTagsの出力を要素ごとに文字列で出力させるように修正した。 (#1230) (@hitenkoku)
- 検知した端末に対してMITRE ATT&CKの戦術をHTMLレポートに出力できるようにした。この機能を利用するためには利用したプロファイルに
%MitreTactics%
が存在する必要がある。 (#1226) (@hitenkoku) csv-timeline
またはjson-timeline
コマンドが利用されたときにissueやpull-requestの連絡先についてのメッセージを追加した。 (#1236) (@hitenkoku)
バグ修正:
- JSON出力において、同じ名前の複数のフィールド名が配列として出力されないため、
jq
でパースすると1つの結果しか返されなかった。同じフィールド名を持つ複数のフィールドデータを配列内に出力することで修正した。 (#1202) (@hitenkoku) csv-timeline
、json-timeline
、eid-metrics
、logon-summary
、pivot-keywords-list
、search
コマンドで調査対象ファイルの指定オプション(-l
、-f
、-d
)が存在しないときに処理が実行されないように修正した。 (#1235) (@hitenkoku)
v2.11.0 🦅
2.11.0 [2023/12/04] "Nasi Lemak Release"
New Features:
- Extraction of fields from PowerShell classic logs. (Can disable with
--no-pwsh-field-extraction
) (#1220) (@fukusuket)
Enhancements:
- Added rule count in the scan wizard. (#1206) (@hitenkoku)
新機能:
- PowerShell classicログのフィールドを抽出するようにした。(
--no-pwsh-field-extraction
で無効化できる) (#1220) (@fukusuket)
改善:
- スキャンウィザードにルール数を追加した. (#1206) (@hitenkoku)
v2.10.1 🦅
2.10.1 [2023/11/13] "Kamemushi-Tsubushi (Bug-Fix) Release"
Enhancements:
- Added questions to the scan wizard. (#1207) (@hitenkoku)
Bug Fixes:
update-rules
command would outputYou currently have the latest rules
even if new rules were downloaded in version2.10.0
. (#1209) (@fukusuket)- Regular expressions would sometimes be incorrectly handled. (#1212) (@fukusuket)
- In the rare case that there is no
Data
field such as for JSON input, a panic would occur. (#1215) (@fukusuket)
改善:
- スキャンウィザードに質問を追加した。 (#1207) (@hitenkoku)
バグ修正:
- バージョン
2.10.0
のupdate-rules
コマンドでは、新しいルールがダウンロードされても、You currently have the latest rules
というメッセージを出力していた。 (#1209) (@fukusuket) - 正規表現が正しく処理されない場合があった。 (#1212) (@fukusuket)
- JSON入力等に
Data
フィールドが存在しない場合、パニックが発生していた。(#1215) (@fukusuket)
v2.10.0 🦅
2.10.0 [2023/10/31] "Halloween Release"
🦅 Enhancements:
- Added a scan wizard to help new users choose which rules they want to enable. Add the
-w, --no-wizard
option to run Hayabusa in the traditional way. (Scan for all events and alerts, and customize options manually.) (#1188) (@hitenkoku) - Added the
--include-tag
option to thepivot-keywords-list
command to only load rules with the specifiedtags
field. (#1195) (@hitenkoku) - Added the
--exclude-tag
option to thepivot-keywords-list
command to exclude rules with specifictags
from being loaded. (#1195) (@hitenkoku)
🐛 Bug Fixes:
- Fixed that field information defined in
Details
was also output toExtraFieldInfo
in some cases. (#1145) (@hitenkoku) - Fixed output of newline and tab characters in
AllFieldInfo
in JSON output. (#1189) (@hitenkoku) - Fixed output of space characters in some fields in standard output. (#1192) (@hitenkoku)
🦅 改善:
- 初心者のユーザのために有効にしたいルールを選択するようにスキャンウィザードを追加した。
-w, --no-wizard
オプションを追加すると、従来の形式でHayabusaを実行できる。(すべてのイベントとアラートをスキャンし、オプションを手動でカスタマイズする) (#1188) (@hitenkoku) pivot-keywords-list
コマンドに--include-tag
オプションを追加し、指定したtags
フィールドを持つルールのみをロードするようにした。(#1195) (@hitenkoku)pivot-keywords-list
コマンドに--exclude-tag
オプションを追加し、指定したtags
フィールドを持つルールをロードしないようにした。(#1195) (@hitenkoku)
🐛 バグ修正:
- まれにJSONフィールドが正しくパースされない状態を修正した。(#1145) (@hitenkoku)
- JSON出力で、
AllFieldInfo
は改行文字とタブ文字を除去していたが、出力するように修正した。 (#1189) (@hitenkoku) - 標準出力のいくつかのフィールドでスペースが削除されて見づらくなっていたのを修正した。 (#1192) (@hitenkoku)
v2.9.0 🦅
2.9.0 [2023/09/22] "Autumn Rain Release"
Enhancements:
- Added an error message to indicate that when you can't load evtx files in Windows due to specifying a directory path with spaces in it, you need to remove the trailing backslash. (#1166) (@hitenkoku, thanks for the suggestion from @joswr1ght)
- Optimized the number of records to load at a time for performance. (#1175) (@YamatoSecurity)
- Replaced double backslashes in paths under the progress bar on Windows systems with single forward slashes. (#1172) (@hitenkoku)
- Made the
Details
field forcount
rules a string in the JSON output for easier parsing. (#1179) (@hitenkoku) - Changed the default number of threads from number of CPUs to the estimate of the default amount of parallelism a program should use (
std::thread::available_parallelism
). (#1182) (@hitenkoku)
Bug Fixes:
- Fixed JSON fields would not be correctly parsed in rare cases. (#1145) (@hitenkoku)
Other:
- Removed the unmaintained
hhmmss
crate that uses an oldtime
crate in order to pass the code coverage CI checks. (#1181) (@hitenkoku)
改善:
- ディレクトリパスの指定にバックスラッシュを使用すべきではないことを示すエラーメッセージを追加した。 (#1166) (@hitenkoku, 提案者: @joswr1ght)
- 一度に読み込むレコード数の最適化。(#1175) (@YamatoSecurity)
- プログレスバー内にあるバックスラッシュの表示をスラッシュに変更した。 (#1172) (@hitenkoku)
- JSON形式で出力する際に、
count
ルールのDetails
フィールドを文字列にし、パースしやすくした。(#1179) (@hitenkoku) - デフォルトのスレッド数をCPU数から、プログラムが使用すべきデフォルトの並列度の推定値(
std::thread::available_parallelism
)に変更した。(#1182) (@hitenkoku)
バグ修正:
- まれにJSONフィールドが正しくパースされない状態を修正した。(#1145) (@hitenkoku)
その他:
- CIを通すために
time
クレートを利用している更新されていないhhmmss
クレートを除外した。 (#1181) (@hitenkoku)