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.1.0 [2026/09/13] - Suzumushi Release
New Features:
- Added a
sort-csvcommand that post-processes a Hayabusa CSV: it keeps the header, sorts the rows by theTimestampcolumn, and removes duplicate detections (comparing every column exceptEvtxFile, so the same event collected from overlapping/backup.evtxfiles collapses to one entry). Takes a single file with-f, --fileor a whole directory of CSVs with-d, --directory(handy for CSVs collected from many endpoints), and writes to-o, --output(or stdout), with-C, --clobberto overwrite. This does in post-processing what--low-memory-modecan't do during the scan. (#1295) (@ChrisJr404)
Enhancements:
- Added embedded version information (
VERSIONINFO) to Windows executables, including the product name, file description, company name, copyright, and original filename. File and product versions are generated automatically from the package version inCargo.toml, and the release workflow verifies the metadata before packaging. (#1926) (@YamatoSecurity) - Added the
-G, --geo-ipoption to thelogon-summarycommand, which appendsSource ASN,Source CountryandSource Citycolumns for the source IP address of each summarized logon. (#1920) (@fukusuket)
Bug Fixes:
- Fixed the
-T, --visualize-timelinehistogram printing its axis markers in UTC regardless of the selected time format, so they disagreed with every other timestamp in the same output by the host's UTC offset -- an axis reading2026-05-06 12:49:03sat about ten lines aboveFirst timestamp: 2026-05-06 15:49:03.364 +03:00in the same summary, with nothing on screen saying which of the two was UTC.calc_statistic_infocollected raw UTC epoch seconds, and krapslog renders each marker withDateTime::from_timestamp(always UTC) and strips the trailing" UTC", so the markers came out as unlabelled UTC; the helper that used to add the offset before the value reached krapslog lost its last caller in February 2024 and has been dead code since. The offset is applied again, now taken at the instant being converted rather than at the Unix epoch (the old helper readLocal.timestamp_opt(0, 0), i.e. the 1970 offset, which is wrong for any zone that observes DST or has changed its rules since). It is applied to the axis markers alone, where they are rendered: krapslog picks its markers by index, but bins the sparkline by value, so shifting the collected timestamps themselves would let a DST fall-back merge two distinct hours into one bin and a spring-forward stretch the drawn duration by an hour.format_timeand the histogram each spelled out the "is this output UTC?" condition separately and now shareTimeFormatOptions::is_utc_output, so a future always-UTC format cannot leave them disagreeing again. Since the markers carry no offset of their own, the histogram title now names the zone:Detection Frequency Timeline (local time), or(UTC)under-U/--iso-8601. (#1914) (@kotru21)
Other:
- Refreshed Rust crate dependencies and updated the bundled
hayabusa-evtxcrate to0.9.12(hayabusa-evtx#94), which includesquick-xml0.42 compatibility changes. (@YamatoSecurity)
改善:
csv-timelineコマンドとjson-timelineコマンドを統合し、単一のdfir-timelineコマンドにしました。出力形式は-t, --output-typeで指定します。指定なしまたは-t csvで CSV 出力(デフォルト)、-t jsonで JSON 出力、-t jsonlで JSONL 出力となります。値の大文字・小文字は区別されません(例:-t JSONL)。これまで--threadsの短縮形だった-tは--output-typeに割り当てられました(--threadsは長い形式のまま使用できます)。CSV 専用のオプションである-M, --multiline、-S, --tab-separator、-R, --remove-duplicate-dataは、ヘルプ内の新しい「CSV Output」カテゴリにまとめられ、CSV 以外の-tと併用した場合はエラーになるようになりました。旧json-timelineの-L, --JSONL-outputフラグは廃止されました(代わりに-t jsonlをご利用ください)。(#1906) (@YamatoSecurity)- Linux aarch64(ARM64)の musl リリースバイナリ(
hayabusa-<ver>-lin-aarch64-musl)を追加した。正しく動作するよう、適切な aarch64 musl クロスツールチェインでビルドしている。(これまで報告されていた実行失敗は、musl ターゲットを glibc のaarch64-linux-gnu-gccでリンクしていたためで、起動時に kill されるバイナリが生成されていた。) (#1332) (@YamatoSecurity) logon-summaryコマンドが、RDP のセッションイベントも集計するようにした。既存の LocalSessionManager21と Gateway302に加えて、Security4778/4779(セッションの再接続/切断。RDP クライアントのワークステーション名とIPを含む)と、Terminal Services の運用ログの RemoteConnectionManager/Operational1149(ネットワークレベル認証)・LocalSessionManager/Operational25(セッション再接続)を対象に追加した。これにより、対応する Security4624がログからあふれて消えている場合でも RDP ログオンを集計でき、再接続/切断では接続元クライアントのホスト名も表示される。 (#1893) (@YamatoSecurity)extract-base64コマンドに、PowerShellのイベントID4100/4102(Microsoft-Windows-PowerShell/Operational および PowerShellCore/Operational)と、クラシックの403/600(Windows PowerShell)を追加した。4100/4102はContextInfo(Host Application = powershell -encodedcommand ...)とPayloadフィールドを、403/600は既存の400と同様にEventData.Dataの詳細ブロックをスキャンする。 (#1889) (@YamatoSecurity)logon-summaryの成功ログオンテーブルにFirst Logon/Last Logon列を、失敗ログオンテーブルにFirst Attempt/Last Attempt列を追加した。各アカウント/ソースの組み合わせがログオン(または試行)した時間の範囲を表示する。 (#1883) (@YamatoSecurity)
新機能:
- HayabusaのCSVを後処理する
sort-csvコマンドを追加した。ヘッダーを保持し、Timestamp列で行を並べ替え、重複した検知を削除する(EvtxFile以外のすべての列を比較するため、内容が重複する.evtxファイルやバックアップから収集された同じイベントは1件にまとめられる)。-f, --fileで単一のファイル、または-d, --directoryでCSVを格納したディレクトリ全体を指定できる(多数のエンドポイントから収集したCSVに便利)。-o, --outputで指定したファイル、または標準出力に書き出し、-C, --clobberで上書きできる。--low-memory-modeではスキャン中にできない処理を、スキャン後に行える。 (#1295) (@ChrisJr404)
改善:
- Windows版の実行ファイルに、製品名、ファイルの説明、会社名、著作権、元のファイル名などのバージョン情報(
VERSIONINFO)を埋め込むようにした。ファイル/製品バージョンはCargo.tomlのパッケージバージョンから自動生成し、リリースワークフローでパッケージ化前にメタデータを検証する。 (#1926) (@YamatoSecurity) logon-summaryコマンドに-G, --geo-ipオプションを追加した。集計された各ログオンの送信元IPアドレスに対してSource ASN、Source Country、Source City列を追加する。 (#1920) (@fukusuket)
バグ修正:
-T, --visualize-timelineのヒストグラムが、選択した時刻フォーマットに関わらず軸のマーカーを常に UTC で表示し、同じ出力内の他のタイムスタンプとホストの UTC オフセット分ずれる問題を修正した。同一のサマリー内で、軸の2026-05-06 12:49:03の10行ほど下にFirst timestamp: 2026-05-06 15:49:03.364 +03:00が表示され、どちらが UTC なのかを示すものが画面上に何もなかった。calc_statistic_infoが UTC のエポック秒をそのまま収集しており、krapslog は各マーカーをDateTime::from_timestamp(常に UTC)で描画して末尾の" UTC"を取り除くため、マーカーはタイムゾーン表記のない UTC になっていた。krapslog に値が渡る前にオフセットを加算していたヘルパーは、2024年2月に最後の呼び出し元を失い、以降デッドコードになっていた。再びオフセットを適用するようにし、その際 Unix エポック時点ではなく変換対象の時刻におけるオフセットを用いるようにした(旧ヘルパーはLocal.timestamp_opt(0, 0)、すなわち1970年のオフセットを読んでおり、サマータイムを採用している地域やその後ルールが変更された地域では誤った値になる)。オフセットの適用は描画時の軸マーカーに対してのみ行う。krapslog はマーカーをインデックスで選ぶ一方、スパークラインは値でビン分けするため、収集したタイムスタンプ自体をずらすと、サマータイム終了時には異なる2時間が1つのビンにまとめられ、開始時には描画される期間が1時間伸びてしまう。また、format_timeとヒストグラムがそれぞれ個別に記述していた「出力が UTC かどうか」の判定をTimeFormatOptions::is_utc_outputに共通化し、将来 UTC 固定のフォーマットが追加されても両者が食い違わないようにした。マーカー自体はオフセットを持たないため、ヒストグラムのタイトルにタイムゾーンを表示するようにした(Detection Frequency Timeline (local time)、-U/--iso-8601指定時は(UTC))。 (#1914) (@kotru21)
その他:
- Rustのクレート依存関係を更新し、同梱の
hayabusa-evtxクレートを0.9.12に更新した(hayabusa-evtx#94)。このバージョンにはquick-xml0.42への互換対応が含まれる。 (@YamatoSecurity)