Skip to content

Releases: Yamato-Security/hayabusa

v2.16.1

02 Aug 02:41
63980ee
Compare
Choose a tag to compare

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 🦅

11 Jun 08:58
efaca57
Compare
Choose a tag to compare

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, if Security.evtx was being scanned, then only rules that have Channel: Security defined will be used against this file. In our benchmarks, this usually gives a speed benefit of around 20% when scanning single evtx 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 the Channel 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 in csv-timeline and json-timeline. (#1317) (@fukusuket)
  • 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 for Channel: 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 in csv-timeline and json-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 for Data[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" }

新機能:

  • デフォルトでは、.evtxファイルに適用可能なルールのみ有効になる。これは、.evtxファイルと.ymlルールのChannelフィールドに基づく。例えば、Security.evtxがスキャンされている場合、Channel: Securityが定義されているルールのみがこのファイルに対して使用される。ベンチマークでは、単一のevtxファイルをスキャンする場合、パフォーマンスが約20%向上される。1つの.evtxファイルで複数のチャネルが使用されている場合や、チャネルが定義されていないルールを使用して、チャネルに関係なくすべての.evtxファイルをスキャンしたい場合は、csv-timelinejson-timeline-A、--enable-all-rules オプションでこのフィルタリングをオフにすることができる。(#1317)(@fukusuket)
    • 現在のところ、Channelが定義されておらず、すべての.evtxファイルをスキャンすることを意図している検知ルールは以下の2つだけ:
  • デフォルトでは、適用可能なルールを持つ.evtxファイルのみ読み込む。たとえば、さまざまなイベントログのディレクトリをスキャンしている場合でも、 Channel: Security を探すルールのみを有効にした場合、HayabusaはSecurity以外のすべてのイベントログを無視します。ベンチマークでは、通常のスキャンで約10%、単一のルールでスキャンする場合は最大60%以上のパフォーマンス向上が得られる。チャネルに関係なくすべての.evtxファイルを読み込みたい場合は、csv-timelinejson-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 🦅

20 Apr 21:42
64baed7
Compare
Choose a tag to compare

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 of windash 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 🦅

29 Mar 21:43
ae75672
Compare
Choose a tag to compare

2.14.0 [2024/03/30] "BSides Tokyo Release"

New Features:

  • Added --include-status option: You can specify rules based on their status. (#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 the csv-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 the AllFieldInfo 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 🦅

11 Feb 01:50
6779465
Compare
Choose a tag to compare

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 their modified 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 the json-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 🦅

23 Dec 08:27
172703c
Compare
Choose a tag to compare

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 or json-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 and search 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-timelinejson-timelineeid-metricslogon-summarypivot-keywords-listsearchコマンドで調査対象ファイルの指定オプション(-l-f-d)が存在しないときに処理が実行されないように修正した。 (#1235) (@hitenkoku)

v2.11.0 🦅

04 Dec 01:47
d1ca428
Compare
Choose a tag to compare

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:

新機能:

  • PowerShell classicログのフィールドを抽出するようにした。(--no-pwsh-field-extractionで無効化できる) (#1220) (@fukusuket)

改善:

  • スキャンウィザードにルール数を追加した. (#1206) (@hitenkoku)

v2.10.1 🦅

13 Nov 01:27
daab5b5
Compare
Choose a tag to compare

2.10.1 [2023/11/13] "Kamemushi-Tsubushi (Bug-Fix) Release"

Enhancements:

Bug Fixes:

  • update-rules command would output You currently have the latest rules even if new rules were downloaded in version 2.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.0update-rulesコマンドでは、新しいルールがダウンロードされても、You currently have the latest rulesというメッセージを出力していた。 (#1209) (@fukusuket)
  • 正規表現が正しく処理されない場合があった。 (#1212) (@fukusuket)
  • JSON入力等にDataフィールドが存在しない場合、パニックが発生していた。(#1215) (@fukusuket)

v2.10.0 🦅

30 Oct 21:06
91ed9a2
Compare
Choose a tag to compare

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 the pivot-keywords-list command to only load rules with the specified tags field. (#1195) (@hitenkoku)
  • Added the --exclude-tag option to the pivot-keywords-list command to exclude rules with specific tags from being loaded. (#1195) (@hitenkoku)

🐛 Bug Fixes:

  • Fixed that field information defined in Details was also output to ExtraFieldInfo 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 🦅

22 Sep 06:32
b84bd4d
Compare
Choose a tag to compare

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 for count 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 old time 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)