Skip to content

Releases: Yamato-Security/hayabusa

v4.0.0 - BlackHat Arsenal USA Release

Choose a tag to compare

@YamatoSecurity YamatoSecurity released this 03 Aug 15:00
188e22e

Anti-Virus False Positives

Warning: You will get false positives from certain anti-virus programs like Windows Defender and Web Browsers saying they have detected malicious files. They are detecting on Sigma .yml files that are not executable and just contain certain signatures from malware. They are not malicious. If you are running Hayabusa for live analysis and do not want to cause any anti-virus alerts, be sure to use the live response packages that use encoded Sigma rules.

4.0.0 [2026/07/29] - Black Hat Arsenal USA Release

Enhancements:

  • Combined the csv-timeline and json-timeline commands into a single dfir-timeline command whose output format is chosen with -t, --output-type: unspecified or -t csv outputs CSV (default), -t json outputs JSON, and -t jsonl outputs JSONL. The value is case-insensitive (e.g. -t JSONL). The -t shorthand, previously --threads, now belongs to --output-type (--threads keeps its long form). The CSV-only options -M, --multiline, -S, --tab-separator, and -R, --remove-duplicate-data are grouped under a new "CSV Output" help category and now error if used with a non-CSV -t. The old json-timeline -L, --JSONL-output flag is removed (use -t jsonl). (#1906) (@YamatoSecurity)
  • Standardized all command-line option long names to lowercase for consistency: --GeoIP--geo-ip, --HTML-report--html-report, --UTC--utc, --ISO-8601--iso-8601, --RFC-2822/--RFC-3339--rfc-2822/--rfc-3339, --US-time/--US-military-time/--European-time→lowercase, --JSON-input/--JSON-output--json-input/--json-output, and --EID-filter--eid-filter (--GeoIP was the only long name that joined words by capitalization, so it also gains a hyphen). Short flags are unchanged. The help for -T, --visualize-timeline, -X, --remove-duplicate-detections, and -R, --remove-duplicate-data now notes that they require event sorting (-s, --sort). (#1909) (@YamatoSecurity)
  • Added a Linux aarch64 (ARM64) musl release binary (hayabusa-<ver>-lin-aarch64-musl), built with a proper aarch64 musl cross toolchain so it runs correctly. (The previously reported failure was from linking a musl target with the glibc aarch64-linux-gnu-gcc, which produced a binary killed at startup.) (#1332) (@YamatoSecurity)
  • The logon-summary command now also counts RDP session events: Security 4778/4779 (session reconnect/disconnect, which carry the RDP client's workstation name and IP) and the Terminal Services operational events RemoteConnectionManager/Operational 1149 (network-level authentication) and LocalSessionManager/Operational 25 (session reconnect) — on top of the existing LocalSessionManager 21 and Gateway 302. This keeps RDP logons summarized even when the matching Security 4624 has been flooded out of the log, and surfaces the source client hostname for reconnect/disconnect. (#1893) (@YamatoSecurity)
  • Added PowerShell event IDs 4100/4102 (Microsoft-Windows-PowerShell/Operational and PowerShellCore/Operational) and classic 403/600 (Windows PowerShell) to the extract-base64 command. 4100/4102 scan the ContextInfo (Host Application = powershell -encodedcommand ...) and Payload fields; 403/600 scan the EventData.Data detail blob like the existing 400. (#1889) (@YamatoSecurity)
  • Added First Logon/Last Logon columns to the logon-summary successful-logons table and First Attempt/Last Attempt columns to the failed-logons table, showing the time range over which each account/source combination logged on (or attempted to). (#1883) (@YamatoSecurity)

Bug Fixes:

  • Fixed eid-metrics, logon-summary and pivot-keywords-list producing differently ordered output on every run, so two scans of the same logs could not be diffed. eid-metrics and logon-summary sorted only by count, leaving equal-count rows in HashMap iteration order, which is reseeded per process; ties are now broken by channel and event ID, and by the logon grouping key. pivot-keywords-list wrote each category's keywords in IndexSet insertion order, which varies because the values are inserted from the per-record parallel tasks; they are now sorted. Only the ordering changes -- the rows and keywords themselves are the same. (#1912) (@YamatoSecurity)
  • Fixed a panic in the results-summary tables when a top-5 rule title or author name contained multi-byte UTF-8 (e.g. a Japanese rule title). The titles/authors were truncated with a raw byte slice (&title[..32], &author[0..24]), which panics when the byte index falls inside a multi-byte character — so with piped/redirected output (where the width defaults such that titles over 32 bytes are truncated) the whole run crashed after the scan finished, losing the summary. Truncation is now done at character boundaries, and the width limits use saturating subtraction so very narrow terminals no longer underflow. (#1904) (@YamatoSecurity)
  • Fixed ComplexData event fields (e.g. the IdleState/PerfState values in Kernel-Processor-Power EID 26) not being extracted correctly: the two Name attributes collapsed into a Name array and the field values were dropped entirely. They are now keyed by their Name attribute like normal <Data> fields (fixed in the bundled hayabusa-evtx, bumped to 0.9.10). (#1520) (@YamatoSecurity)
  • Fixed -c (custom rules config directory) being ignored by pivot-keywords-list, which always loaded pivot_keywords.txt from the bundled config next to the executable. It now resolves pivot_keywords.txt through the -c directory (falling back to the bundled copy), the same way every other config file is loaded. (#1902) (@YamatoSecurity)
  • Fixed the read_jsonl_to_value/read_json_to_value file-open error printing the literal placeholder {path} instead of the file path (the error string was a plain string literal rather than a format!). (#1897) (@YamatoSecurity)
  • Fixed a u16 underflow in the eid-metrics table's "Event" column width on terminals narrower than 55 columns: terminal_width - 55 underflowed before the 45-character floor could apply, panicking in overflow-checked builds and wrapping to a huge value in release builds (leaving the column effectively uncapped). It now uses saturating subtraction. (#1897) (@YamatoSecurity)
  • Fixed Splunk-JSON timestamps carrying an explicit UTC offset (e.g. +09:00) being parsed as a NaiveDateTime, which discards the offset and stored the local wall-clock time as if it were UTC — skewing the log-metrics First/Last Timestamp columns as well as the eid-metrics/logon-summary time ranges (EventMetrics::stats_time_cnt and parse_evtx_datetime). The timeline aggregators now share one offset-aware parser (utils::parse_evtx_timestamp) that applies the offset. (#1897) (@YamatoSecurity)
  • Fixed -G (GeoIP enrichment) with a custom rules config directory (-c) ignoring that directory's geoip_field_mapping.yaml: the lookup used the extensionless name geoip_field_mapping, which never matched the real file, so it always fell back to the default bundled mapping. (#1897) (@YamatoSecurity)
  • Fixed count(field) correlation rules producing a false-positive alert spanning longer than the rule's timeframe. In judge_timeframe's sliding window, the branch handling a window that did not satisfy the count condition did an unchecked add_data(right) before dropping the left edge, pulling records[right] — already known to be outside the timeframe from the window's left edge — into the next window; when that record's field value was new it could push the distinct-value count over the threshold across a span longer than the timeframe. The slide now only drops the left edge and lets the inner loop re-extend right with the timeframe check, so no record beyond the timeframe is counted. Bare count() was unaffected. (#1896) (@YamatoSecurity)
  • Fixed narrow-terminal issues in the results summary: _print_timeline_hist did unchecked usize subtraction that could underflow on a very narrow terminal (huge allocation / hang) — it now skips the histogram when there is no room and uses saturating_sub; the rule-authors table computed its row count with a hard-coded is_multiple_of(4) instead of the actual column count (uneven tables at most widths) — now authors_num.div_ceil(table_column_num); and the rule-authors table now falls back to a single column on very narrow terminals (≤72 chars) instead of overflowing/wrapping. Timeline output is unaffected. (#1858) (@YamatoSecurity)
  • Fixed the ungrammatical "Successed submodule update" message printed after update-rules (now "Submodule update succeeded"). (#1840) (@YamatoSecurity)
  • Fixed temporal/temporal_ordered correlations not enforcing the rule's group-by value when combining referenced-rule matches. Each referenced rule was aggregated per group-by value, but matches from different groups (e.g. different Computers) could still be correlated together as long as their timestamps fit the timeframe, producing false-positive alerts. Referenced-rule matches are now required to share the base match's group-by value. (#1841) (@YamatoSecurity)
  • Fixed temporal_ordered correlations not enforcing event order beyond the first referenced rule: a no-op assignment (last_base = base) left every subsequent rule checked only against the base event's window, so out-of-order attack-chain events (e.g. A→C→B for a rule requiring A→B→C) were still matched. Each referenced rule is now required to match at or after the previous rule's matched event while staying within the timeframe window anchored at the base event. (#1841) (@YamatoSecurity)

Refactoring:

  • Updated all Rust crate dependencies to their latest versions, including the bundled hayabusa-evtx crate to 0.9.11 (hayabusa-evtx#93). That release is a dependency refresh with no .rs changes, so evtx parsing behavior is unchanged: `dfir-timeli...
Read more

v3.10.0 - Happy Independence Day Release

Choose a tag to compare

@YamatoSecurity YamatoSecurity released this 04 Jul 16:08
3e96ff7

Anti-Virus False Positives

Warning: You will get false positives from certain anti-virus programs like Windows Defender and Web Browsers saying they have detected malicious files. They are detecting on Sigma .yml files that are not executable and just contain certain signatures from malware. They are not malicious. If you are running Hayabusa for live analysis and do not want to cause any anti-virus alerts, be sure to use the live response packages that use encoded Sigma rules.

3.10.0 [2026/07/04] - Independence Day Release

New Features:

  • Added support for the |neq and |fieldref|neq field modifiers from the Sigma 2.1 specification. |neq negates a comparison and can be combined with other modifiers (|contains|neq, |startswith|neq, |endswith|neq, |fieldref|neq, ...). (#1684) (@YamatoSecurity)
  • Added unique and total alert count to MITRE ATT&CK tactics found. (#1753) (@fukusuket)

Bug Fixes:

  • MITRE ATT&CK Tactics were not line-breaking properly in HTML reports (#1751) (@fukusuket)
  • Fixed the scan progress bar not redrawing in place (each update was printed on a new line) during large scans, caused by literal carriage returns (\r\n) in the progress bar template. (#1760) (@YamatoSecurity)
  • Fixed a typo (infomationalinformational) in the pivot keyword list level exclusion that prevented informational-level records from being excluded, so their field values polluted the pivot keyword lists. (#1804) (@YamatoSecurity)
  • Fixed a Markdown-injection issue in the HTML report: user-supplied values (e.g. computer names) were HTML-escaped but not Markdown-escaped, so a value like [x](javascript:alert(1)) could render as a clickable javascript: link. Markdown metacharacters in user values are now escaped as well. (#1806) (@YamatoSecurity)
  • The exemption that keeps the null-UUID test rule out of the excluded/noisy rule counts compared the exclude-list file path instead of the rule ID, so it never applied and test rules inflated the Excluded rules count. (#1821) (@YamatoSecurity)
  • Unique detection percentages in the Results Summary (and the HTML report) were mirrored across levels: the percentage was computed with the reversed loop index, so e.g. the critical row showed informational's percentage and vice versa (only medium was correct). (#1812) (@YamatoSecurity)
  • logon-summary: the Target Domain column was always - for RDS Gateway logons (EID 302 in Microsoft-Windows-TerminalServices-Gateway/Operational) because the dst_domain lookup used the misspelled event key alias RdsGtwUserName instead of RdsGtwUsername, so the domain in DOMAIN\user values was silently dropped. (#1809) (@YamatoSecurity)
  • The GeoIP function treated every public IPv6 address as Private and never performed a lookup for them, because the IPv6 private range list included 2000::/3 (the entire global unicast space). Removed it (along with the redundant FD00::/8, a subset of FC00::/7) so that public IPv6 addresses are now enriched with ASN/Country/City. (#1819) (@YamatoSecurity)
  • Wildcard field patterns that fall back to regex matching (patterns containing ?, a mid-string *, or non-ASCII text together with *) were compiled to an unanchored regex and evaluated with Regex::is_match() (a substring search), so they matched any value that merely contained the pattern instead of the whole field value (e.g. Channel: Sec?rity matched MySec1rityLog, and net*user matched mynetXuserZ). These wildcard regexes are now anchored to the full value, matching Sigma full-value semantics and Hayabusa's own fast-match paths (Exact/StartsWith/EndsWith). Keyword (grep) searches and |re regexes remain intentionally unanchored. (#1826) (@Shirofune-Security)
  • The HTML report's General Overview section was missing the analyzed event file count, total file size, selected detection rule set, and excluded tags. These lines were registered under a misspelled section key (General Overview #{general_overview} with # outside the braces, instead of {#general_overview}), which is not one of the sections the renderer emits, so the data was silently dropped. Fixed the key (now sourced from shared section-name constants so it cannot drift again) along with the mislabeled total-file-size and rule-set lines on it. (#1827) (@YamatoSecurity)
  • -X/--remove-duplicate-detections did not remove the second of two identical detections when the copies were the first records of a timestamp group. get_duplicate_indices() never added the first record of each group to its comparison set (both the initial-record and timestamp-boundary branches skipped insertion), so the second copy was treated as unique and only the third and later copies were removed, leaving duplicate rows in csv-timeline/json-timeline output and inflating detection counts. Fixed so exactly one of N identical detections in a timestamp group survives. (#1828) (@YamatoSecurity)
  • read_encoded_file silently discarded I/O read errors (returning a truncated or empty rule set) and panicked via .expect() on invalid UTF-8 when loading encoded rules (encoded_rules.yml); both are now surfaced as errors through its Result. (#1834) (@YamatoSecurity)

Other:

  • Translated all remaining Japanese code comments to English, cleaned up and added many code comments for readability, and fixed misspelled internal identifiers. Comments and identifiers only; no behavior changes. (#1808) (@YamatoSecurity)
  • Renamed 76 cryptic, misleading, or hayabusa-specific variable, parameter, and struct-field names in src/ (e.g. datasrecords, con_caljoined_value, name_2_nodename_to_node, hlchhorizontal_line_char, rulepathrule_path, ext_fieldoutput_fields, and a misnamed or_nodeall_node that actually held an AND-semantics AllSelectionNode) to clearer, idiomatic Rust names for readability. Internal identifiers only; no behavior or output changes. (#1830) (@YamatoSecurity)
  • Updated the hayabusa-evtx crate to 0.9.9, bumping all of its dependencies (notably thiserror 1→2 and criterion 0.5→0.8) to their latest versions. No behavior change. (#1835) (@YamatoSecurity)
  • Removed two pieces of dead code surfaced during review: an always-empty addition_header branch in the JSON string escaper, and a never-taken branch plus a per-unit Vec allocation in the relative time-offset parser. No behavior change. (#1834) (@YamatoSecurity)

新機能:

  • Sigma 2.1仕様の |neq および |fieldref|neq フィールド修飾子のサポートを追加した。|neq は比較を否定するもので、他の修飾子(|contains|neq|startswith|neq|endswith|neq|fieldref|neq など)と組み合わせて使用できる。 (#1684) (@YamatoSecurity)
  • 検出されたMITRE ATT&CK戦術について、一意の件数と合計件数を追加した。 (#1753) (@fukusuket)

バグ修正:

  • MITRE ATT&CK Tacticsの項目が、HTMLレポートで適切に改行されていなかった。 (#1751) (@fukusuket)
  • 大量のファイルをスキャンする際に、スキャンのプログレスバーがその場で再描画されず、更新ごとに新しい行に表示される問題を修正した。プログレスバーのテンプレートにリテラルの改行コード(\r\n)が含まれていたことが原因。 (#1760) (@YamatoSecurity)
  • ピボットキーワードリスト機能のレベル除外判定にあったタイポ(infomationalinformational)を修正した。この誤字により informational レベルのレコードが除外されず、そのフィールド値がピボットキーワードリストに混入していた。 (#1804) (@YamatoSecurity)
  • HTMLレポートのMarkdownインジェクションの問題を修正した。ユーザー由来の値(コンピュータ名など)はHTMLエスケープされていたがMarkdownエスケープはされておらず、[x](javascript:alert(1)) のような値がクリック可能な javascript: リンクとして描画される可能性があった。ユーザー値内のMarkdownメタ文字もエスケープするようにした。 (#1806) (@YamatoSecurity)
  • null-UUIDのテストルールを除外ルール・ノイジールールの件数から除くための判定が、ルールIDではなく除外リストファイルのパスと比較していたため機能しておらず、テストルールがExcluded rulesの件数を水増ししていた問題を修正した。 (#1821) (@YamatoSecurity)
  • Results Summary(およびHTMLレポート)のユニーク検知のパーセンテージがレベル間で鏡写しに入れ替わっていた問題を修正した。逆順ループのインデックスでパーセンテージを計算していたため、例えばcriticalの行にinformationalのパーセンテージが表示されていた(正しかったのは中央のmediumのみ)。 (#1812) (@YamatoSecurity)
  • logon-summaryコマンドで、RDSゲートウェイのログオン(Microsoft-Windows-TerminalServices-Gateway/OperationalのEID 302)のTarget Domain列が常に-になっていた問題を修正した。dst_domainの抽出がイベントキーエイリアスRdsGtwUsernameをスペルミスのRdsGtwUserNameで参照していたため、DOMAIN\user形式の値からドメインが取得されていなかった。 (#1809) (@YamatoSecurity)
  • GeoIP機能がすべてのパブリックIPv6アドレスをPrivateとして扱い、GeoIP検索を行っていなかった問題を修正した。IPv6のプライベート範囲リストにグローバルユニキャスト空間全体である2000::/3が含まれていたことが原因。あわせて冗長なFD00::/8FC00::/7に包含される)も削除し、パブリックIPv6アドレスにASN・国・都市の情報が付与されるようにした。 (#1819) (@YamatoSecurity)
  • 正規表現マッチにフォールバックするワイルドカードのフィールドパターン(? を含む、途中に * がある、または非ASCII文字と * を含むパターン)が、アンカーなしの正規表現にコンパイルされ Regex::is_match()(部分一致検索)で照合されていた問題を修正した。このためフィールド値全体ではなくパターンを単に「含む」値にも一致し、誤検知が発生していた(例: Channel: Sec?rityMySec1rityLog に、net*usermynetXuserZ に一致)。これらのワイルドカード正規表現を値全体にアンカーするようにし、Sigmaの完全一致セマンティクスおよびHayabusaの高速マッチ経路(Exact/StartsWith/EndsWith)と整合させた。キーワード(grep)検索と |re 正規表現は意図的にアンカーなしのままとした。 (#1826) (@Shirofune-Security)
  • HTMLレポートのGeneral Overviewセクションから、解析したイベントファイル数・合計ファイルサイズ・選択した検知ルールセット・除外タグの各行が抜け落ちていた問題を修正した。これらがスペルミスのセクションキー({#general_overview} ではなく # が波括弧の外にある General Overview #{general_overview})で登録されており、レンダラーが描画しないキーだったため、データが黙って破棄されていた。キー(今後ずれないよう共通のセクション名定数に統一)と、あわせて合計ファイルサイズ行・ルールセット行のラベルの誤りを修正した。 (#1827) (@YamatoSecurity)
  • -X/--remove-duplicate-detections で、重複した検知の2件目が、それらがタイムスタンプグループの先頭レコードだった場合に除去されない問題を修正した。get_duplicate_indices() が各グループの先頭レコードを比較用のセットに追加していなかった(初回レコードの分岐とタイムスタンプ境界の分岐の両方で挿入をスキップしていた)ため、2件目が一意とみなされ、3件目以降しか除去されていなかった。この結果、csv-timeline/json-timeline の出力に重複行が残り、検知件数が水増しされていた。タイムスタンプグループ内の同一なN件の検知のうち、ちょうど1件だけが残るように修正した。 (#1828) (@YamatoSecurity)
  • read_encoded_file が、エンコード済みルール(encoded_rules.yml)の読み込み時にI/O読み込みエラーを黙って無視し(切り詰められた・空のルールセットを返す)、不正なUTF-8に対して .expect() でパニックしていた問題を修正した。どちらも Result を通じてエラーとして返すようにした。 (#1834) (@YamatoSecurity)

その他:

  • 可読性向上のため、src/ 内の分かりにくい・誤解を招く・Hayabusa固有の変数・引数・構造体フィールド名76個を、より明確で慣用的なRustの名前にリネームした(例: datasrecordscon_caljoined_valuename_2_nodename_to_nodehlchhorizontal_line_charrulepathrule_pathext_fieldoutput_fields、および実際にはAND条件のAllSelectionNodeを保持していた誤名のor_nodeall_node)。内部識別子のみの変更で、挙動・出力に変化はない。 (#1830) (@YamatoSecurity)
  • hayabusa-evtx クレートを 0.9.9 に更新し、その...
Read more

v3.9.0 - Showa Day Release

Choose a tag to compare

@YamatoSecurity YamatoSecurity released this 29 Apr 23:40
4065830

Anti-Virus False Positives

Warning: You will get false positives from certain anti-virus programs like Windows Defender and Web Browsers saying they have detected malicious files. They are detecting on Sigma .yml files that are not executable and just contain certain signatures from malware. They are not malicious. If you are running Hayabusa for live analysis and do not want to cause any anti-virus alerts, be sure to use the live response packages that use encoded Sigma rules.

3.9.0 [2026/04/29] - Showa Day Release

Enchancements:

Support for MITRE ATT&CK v19. (@fukusuket)

Other:

Added unit tests. (#1746) (@Fuzzdkk)

改善:

MITRE ATT&CK v19に対応した。(@fukusuket)

その他:

ユニットテストの追加。 (#1746) (@Fuzzdkk)

v3.8.1 - Spring Hayfever Release

Choose a tag to compare

@YamatoSecurity YamatoSecurity released this 24 Feb 11:42
23c95e4

Anti-Virus False Positives

Warning: You will get false positives from certain anti-virus programs like Windows Defender and Web Browsers saying they have detected malicious files. They are detecting on Sigma .yml files that are not executable and just contain certain signatures from malware. They are not malicious. If you are running Hayabusa for live analysis and do not want to cause any anti-virus alerts, be sure to use the live response packages that use encoded Sigma rules.

3.8.1 [2026/02/24] - Spring Hayfever Release

Bug Fixes:

Fixed multiple progress bars issue. (#1740) (@fukusuket)

アンチウィルスの過検知について

注意: ウェブブラウザやWindows Defenderのような一部のアンチウイルス製品が、悪意のあるファイルを検出したと誤検知を出すことがあります。これは実行可能ではない Sigmaの.ymlファイル内にマルウェアのシグネチャに該当する記述が含まれているためであって、当該ファイル自体は悪意のあるものではありません。Hayabusa をライブ調査で実行していてアンチウイルスのアラートを出したくない場合は、Sigmaルールをエンコードしたライブレスポンス用のパッケージを必ず使用してください。

バグ修正:

複数のプログレスバーの問題を修正した。 (#1740) (@fukusuket)

v3.8.0 - Winter Release

Choose a tag to compare

@YamatoSecurity YamatoSecurity released this 01 Feb 01:23
00f8bcd

Anti-Virus False Positives

Warning: You will get false positives from certain anti-virus programs like Windows Defender and Web Browsers saying they have detected malicious files. They are detecting on Sigma .yml files that are not executable and just contain certain signatures from malware. They are not malicious. If you are running Hayabusa for live analysis and do not want to cause any anti-virus alerts, be sure to use the live response packages that use encoded Sigma rules.

3.8.0 [2026/01/31] - Winter Release

Bug Fixes:

  • Fixed MaxMind compile error. (#1722) (@fukusuket)
  • When -GeoIP is specified, the GeoIP fields were outputed in both the Details and ExtraFieldInfo in the JSON timelines. (#1724) (@fukusuket)
  • Fixed a possible panic with corrupted logs. (#1732) (@fukusuket)

Vulnerability Fixes:

  • Fixed an XSS vulnerability in the HTML report if a user scans JSON exported logs (not the standard .evtx files) and an attacker has the ability to inject malicious Javascript in the Computer field of those logs. (@fukusuket)
    • Many thanks to the Mobasi team for finding and reporting this!

アンチウィルスの過検知

注意: ウェブブラウザやWindows Defenderのような一部のアンチウイルス製品が、悪意のあるファイルを検出したと誤検知を出すことがあります。これは実行可能ではない Sigmaの.ymlファイル内にマルウェアのシグネチャに該当する記述が含まれているためであって、当該ファイル自体は悪意のあるものではありません。Hayabusa をライブ調査で実行していてアンチウイルスのアラートを出したくない場合は、Sigmaルールをエンコードしたライブレスポンス用のパッケージを必ず使用してください。

3.8.0 [2026/01/31] - Winter Release

バグ修正:

  • MaxMindのコンパイルエラーを直した。 (#1722) (@fukusuket)
  • -GeoIPが指定された場合、GeoIPフィールドはJSONタイムラインのDetailsExtraFieldInfoの両方に出力されていた。 (#1724) (@fukusuket)
  • 破損したログによるパニックの可能性を修正した。 (#1732) (@fukusuket)

脆弱性修正:

  • HTMLレポートにおけるXSS脆弱性を修正した。ユーザが(標準の.evtxファイルではなく)JSON形式でエクスポートされたログをスキャンし、攻撃者がそれらのログのComputerフィールドに悪意のあるJavaScriptを注入できる場合に発生する問題。 (@fukusuket)
    • この問題を発見し報告してくれたMobasiチームに深く感謝します!

v3.7.0 - CODE BLUE Release

Choose a tag to compare

@YamatoSecurity YamatoSecurity released this 14 Nov 22:30
36d4680

Anti-Virus False Positives

Warning: You will get false positives from certain anti-virus programs like Windows Defender and Web Browsers saying they have detected malicious files. They are detecting on Sigma .yml files that are not executable and just contain certain signatures from malware. They are not malicious. If you are running Hayabusa for live analysis and do not want to cause any anti-virus alerts, be sure to use the live response packages that use encoded Sigma rules.

3.7.0 [2025/11/15] - CODE BLUE Release

New Features:

  • Added a -V, --validate-checksums option to check chunk header checksums in the csv-timeline and json-timeline commands. (#1709) (@fukusuket)

Enhancements:

  • Added four new command-line options --include-channel, --exclude-channel, --include-filename, and --exclude-filename to the log-metrics command. (#1715) (@fukusuket)
  • Updated the Timesketch install readme to support Timesketch on ARM-based Macs. (#1719) (@fukusuket)

Bug Fixes:

  • When validate_checksum is disabled (default), an infinite loop and memory leak when the data_size of an event is set to zero was fixed. (omerbenamram/evtx#264)
  • -t, --threads was not working in the computer-metrics and search commands. (#1563) (@hach1yon)
  • computer-metrics was giving incorrect results when logs from multiple comuters were scanned. (#1713) (@fukusuket)

アンチウィルスの過検知

注意: ウェブブラウザやWindows Defenderのような一部のアンチウイルス製品が、悪意のあるファイルを検出したと誤検知を出すことがあります。これは実行可能ではない Sigmaの.ymlファイル内にマルウェアのシグネチャに該当する記述が含まれているためであって、当該ファイル自体は悪意のあるものではありません。Hayabusa をライブ調査で実行していてアンチウイルスのアラートを出したくない場合は、Sigmaルールをエンコードしたライブレスポンス用のパッケージを必ず使用してください。

3.7.0 [2025/11/15] - CODE BLUE Release

新機能:

  • csv-timelineおよびjson-timelineコマンドでチャンクヘッダーのチェックサムを確認する-V, --validate-checksumsオプションを追加した。 (#1709) (@fukusuket)

改善:

  • log-metricsコマンドに、4つの新しいコマンドラインオプション --include-channel--exclude-channel--include-filename--exclude-filename を追加した。 (#1715) (@fukusuket)
  • Timesketchのインストール用Readmeを更新し、ARMベースのMacでのTimesketchサポートを追加した。 (#1719) (@fukusuket)

バグ修正:

  • validate_checksumが無効(デフォルト設定)になっている場合、イベントのdata_sizeがゼロに設定されていると、無限ループとメモリリークが発生する問題が修正された。 (omerbenamram/evtx#264)
  • -t, --threadsオプションがcomputer-metricsおよびsearchコマンドで機能していなかった。(#1563) (@hach1yon)
  • 複数のコンピュータからのログをスキャンした際、log-metricsが誤った結果を返していた。 (#1713) (@fukusuket)

v3.6.0 - Nezamezuki Release

Choose a tag to compare

@YamatoSecurity YamatoSecurity released this 25 Sep 00:19
0f8a7c2

Anti-Virus False Positives

Warning: You will get false positives from certain anti-virus programs like Windows Defender saying they have detected malicious files. They are detecting on Sigma .yml files that are not executable and just contain certain signatures from malware. They are not malicious. If you are running Hayabusa for live analysis and do not want to cause any anti-virus alerts, be sure to use the live response packages that use encoded Sigma rules.

3.6.0 [2025/09/25] - Nezamezuki Release

Note: "Nezame-zuki" (寝覚月) means the "month where you easily wake up early" (due to the cool autumn weather starting in September)

Enhancements:

  • Event and record IDs with multiple possibilities due to correlation rules are now outputted as empty strings instead of - for easier parsing. (#1694) (@fukusuket)
  • We now output first and last detection timestamps instead of just the first and last timestamps found in the Results Summary of the csv-timeline and json-timeline commands. (#1688) (@fukusuket)
  • The guide on how to import Hayabusa JSONL results into SOF-ELK (Elastic Stack) was updated. (#1091) (@YamatoSecurity)
  • Output an empty string instead of - in the rule's modified date if it is not defined to make importing into a SIEM easier. (#1702) (@YamatoSecurity)
  • Empty fields in rule metadata like RuleModifiedDate, etc... are not outputted to JSON if they are empty in order to make parsing easier and decrease file size. (#1702) (@fukusuket)

Bug Fixes:

  • -T, --visualize-timeline would output incorrect results if -s, --sort was not specified so we now require -s when -T is used. (#1690) (@YamatoSecurity)
  • Records outside the range specified by the time range options (--timeline-start/--timeline-end) were being displayed because we were filtering with the timestamps in the record headers instead of the timestamps in the records themselves. (#1689) (@fukusuket)
  • GeoIP lookup was not working with json-timeline. (#1693) (@fukusuket)
  • The search command would not consistently abbreviate fields. (#1697) (@fukusuket)

アンチウィルスの過検知

注意: Windows Defenderのような一部のアンチウイルス製品が、悪意のあるファイルを検出したと誤検知を出すことがあります。これは実行可能ではない Sigmaの.ymlファイル内にマルウェアのシグネチャに該当する記述が含まれているためであって、当該ファイル自体は悪意のあるものではありません。Hayabusa をライブ調査で実行していてアンチウイルスのアラートを出したくない場合は、Sigmaルールをエンコードしたライブレスポンス用のパッケージを必ず使用してください。

3.6.0 [2025/09/25] - 寝覚月リリース

改善:

  • 相関ルールにより複数の可能性を持つイベントIDおよびレコードIDは、パースしやすくするため、-ではなく空文字列として出力されるようになった。 (#1694) (@fukusuket)
  • csv-timelineおよびjson-timelineコマンドのResults Summaryに表示される最初のタイムスタンプと最後のタイムスタンプの後に、最初と最後の検出のタイムスタンプも出力するようにした。 (#1688) (@fukusuket)
  • SOF-ELK(Elastic Stack)へのHayabusa JSONL結果のインポート方法に関するガイドが更新された。 (#1091) (@YamatoSecurity)
  • ルールの変更日時が定義されていない場合、SIEMへのインポートを容易にするため、-の代わりに空文字列を出力する。 (#1702) (@YamatoSecurity)
  • ルールメタデータ内のRuleModifiedDate等の空フィールドは、パースを容易にしファイルサイズを削減するため、JSONに出力されない。 (#1702) (@fukusuket)

バグ修正:

  • -T, --visualize-timelineは、-s, --sortが指定されていない場合、正しくない結果を出力するため、-Tを使用する際には-sの指定を必須とした。 (#1690) (@YamatoSecurity)
  • レコード自体のタイムスタンプではなく、レコードヘッダー内のタイムスタンプでフィルタリングしていたため、タイムレンジオプション(--timeline-start / --timeline-end)で指定した範囲外のレコードが表示されていた。 (#1689) (@fukusuket)
  • GeoIP検索がjson-timelineで機能していなかった。 (#1693) (@fukusuket)
  • searchコマンドにおける省略形処理は一貫していなかった。(#1697) (@fukusuket)

v3.5.0 - Obon Release

Choose a tag to compare

@YamatoSecurity YamatoSecurity released this 16 Aug 10:09
19334ec

3.5.0 [2025/08/16] - Obon Release

Enhancements:

改善:*

v3.4.0 - Black Hat Arsenal USA 2025 Release

Choose a tag to compare

@YamatoSecurity YamatoSecurity released this 01 Aug 15:20
dce3a89

3.4.0 [2025/08/01] - Black Hat Arsenal USA 2025 Release

Enhancements:

  • Field names are now abbreviated in the search command. You can disable with -b, --disable-abbreviations. (#1627) (@hitenkoku)
  • 32-bit version of Hayabusa will now also run on 64-bit OSes. (#1665) (@akkuman)
  • We now put a return character after the last line in JSON/L files so that filebeat will not miss the last event. (#1666) (@fukusuket)

Bug Fixes:

  • Levels would be abbreviated even when --disable-abbreviations was enabled. (#1672) (@fukusuket)

改善:

  • searchコマンドでフィールド名が省略されるようになった。-b, --disable-abbreviationsで無効にできる。 (#1627) (@hitenkoku)
  • 32ビット版のHayabusaが64ビットOSでも動作するようになった。 (#1665) (@akkuman)
  • Filebeatが最後のイベントを見逃さないように、JSON/Lファイルの最終行の後にリターン文字を置くようにした。 (#1666) (@fukusuket)

バグ修正:

  • レベルは、--disable-abbreviationsオプションが有効であっても省略されていた。(#1672) (@fukusuket)

v3.3.0 - AUSCERT/SINCON Release

Choose a tag to compare

@YamatoSecurity YamatoSecurity released this 21 May 14:09
45f1b02

3.3.0 [2025/05/22] - AUSCERT/SINCON Release

Enhancements:

  • Now output file size in base 1024 (Ex: KiB, MiB, GiB). (#1648) (@fukusuket)
  • Improved the uptime calculation in the computer-metrics command. (#1656) (@fukusuket)

Bug Fixes:

  • The computer-metrics command was not working with the Windows live response package. (#1654) (@fukusuket)
  • ruletype field was returned to being an optional field. (#1660) (@fukusuket)

改善:

  • ファイルサイズを1024ベースで出力するようにした。(例:KiB, MiB, GiB等) (#1648) (@fukusuket)
  • computer-metricsコマンドのアップタイムの計算を改善した。 (#1656) (@fukusuket)

バグ修正:

  • Windowsのライブレスポンスパッケージでは、computer-metricsコマンドが正しく動作しなかった。 (#1654) (@fukusuket)
  • ruletypeフィールドは任意フィールドに戻された。 (#1660) (@fukusuket)