Windowsイベントログ解析ツール「Hayabusa」を使ってみる
こんにちは、いちび( @itiB_S144 )です。
2021年12月25日にWindowsイベントログ解析ツールとして「Hayabusa」がリリースされました🎉
Hayabusaは事前に作成したルールに則ってWindowsイベントログを調査し、インシデントや何かしらのイベントが発生していないか高速に検知することができるツールです。 私も開発を微力ながらお手伝いさせていただきました。 本記事では多くの方にHayabusaを触っていただきたいため、簡単な使い方を紹介していきます。
github.comWe just released two Windows event log analysis tools: Hayabusa and WELA: https://t.co/nFHxSgUl2q #yamasec
— Yamato Security Tools (@SecurityYamato) 2021年12月25日
詳細なHayabusaの実装についてはコミッターのKazuminさんの記事が参考になります、 ぜひご参照ください!
Hayabusaとは
HayabusaはWindowsイベントログの解析ツールです。 事前に作成したルールに則って解析を行い、ルールに引っかかるものがあれば検知します。
Hayabusaは、日本のYamato Securityグループによって作られたWindowsイベントログのファストフォレンジックタイムライン生成およびスレットハンティングツールです。
hayabusa/README-Japanese.md at main · Yamato-Security/hayabusa · GitHub
ルールは独自に作成することも可能ですが、1000以上のルールがプリセットとして用意されており、手軽に試すことができます。 また日本のコミュニティが作っているため日本語のREADMEが充実しています。英語が苦手な方でも安心
ルールの例
- 管理者権限でだれかがログインした
- WindowsDefenderのアラートが鳴っている
- PreFetchファイルが削除された
Hayabusaリポジトリの中には独自に作られたルールと多くの研究者が作成したルールである Sigma をベースに変換したルールが配置されています。 上にあげた例だけでなく、マルウェア検知など様々なルールが用意されています。 自分でルールを作るのが難しいという方でも十二分にHayabusaを利用することができます。
Hayabusaを使ってみる
以下に用意されたサンプルWindowsイベントログファイルに対してHayabusaを実行してみます。 ルールファイルはHayabusaで用意されたものを用います。 github.com
環境
- Windows 10 Education
- hayabusa-1.0.0
手順
1. GitHubから必要なファイルを入手
Hayabusaの実行ファイルとサンプルWindowsイベントログファイルを取得します。
- Hayabusa実行ファイル
- サンプルWindowsイベントログファイル
Windows環境なので hayabusa-1.0.0-windows-x64-evtx-0.7.2.zip
をダウンロードしました。evtx以降の 0.6.7
と 0.7.2
の違いは中で使用しているライブラリのバージョンの違いです。とりあえず新しいほうを選んでいます。
ファイルを解凍して準備OKです。
2. フォルダの確認
基本的に変更が発生するのは config
フォルダになります。
大量発生してログを埋め尽くすようなルールをミュートしたり等々の設定ができます。
ひとまず今回はデフォルトのままで進めます。
├── hayabusa-1.0.0-windows-x64-evtx-0.7.2 │ ├── README.md │ ├── hayabusa.exe │ ├── config // 設定ファイル │ ├── doc // ドキュメントたち │ ├── logs // hayabusa.exeの実行ログ │ ├── rules // 検知ルールファイルたち │ ├── sample-results │ └── tools └── hayabusa-sample-evtx-main // サンプルイベントファイルたち ├── DeepBlueCLI ├── EVTX-ATTACK-SAMPLES ├── EVTX-to-MITRE-Attack ├── README.md └── YamatoSecurity
3. Hayabusaの実行
コマンドプロンプトからHayabusaを起動します。
エクスプローラーでHayabusaフォルダに移動し、バーに cmd
と入力することで簡単に開くことができます。
オプションをなにもつけずに hayabusa.exe
を実行するとヘルプが出てきます。
ファイルに対してHayabusaを実行
hayabusa-sample-evtx
に用意されたサンプルのWindowsイベントログファイル(.evtx)に対してHayabusaを実行します。
>hayabusa.exe -f <検査対象WIndowsイベントログ.evtx>
検知した内容が表示されたのち、サマリが表示されます。
デフォルトのHayabusaが使用しているルールは /rules
フォルダ下に配置されたすべてのルールです。
オプションから使用するルールを指定することも可能です。
フォルダに対してHayabusaを実行
windowsイベントファイルを置いたフォルダに対してまとめてHayabusaを実行することができます。
>hayabusa.exe -d ..\hayabusa-sample-evtx-main
その他
基本的な使い方はREADMEにすべて書かれています。 検出結果のファイルへの出力方法等は以下に記載されていますので参考にしてください。
hayabusa/README-Japanese.md at main · Yamato-Security/hayabusa · GitHub
自分のWindowsに対してHayabusa実行
サンプルのWindowsイベントログファイルにHayabusaを実行した後は自分のWindowsに対して実行してみたくなりますね? 早速試していきましょう。
新規Windowsユーザの作成
今回はログに残る動作として新たなユーザをWindowsに追加します。
設定 → アカウント → 他のユーザ からユーザを追加します。
ログの取得
Windowsのイベントログファイルは C:\Windows\System32\winevt\Logs
下に保存されます。
管理者権限が必要となるため Hayabusa を管理者権限のあるコマンドプロンプトで開くかログファイルを管理者権限のいらないフォルダ下にコピーしましょう。
ユーザ追加のログは Security.evtx
に保存されます。
Hayabusaで調査する
コピーした Security.evtx
に対してHayabusaをかけてみました。
User: test
が作られたことを検知できていることがわかります。
オプション -o
をつけるとCSVファイルに検知結果を出力することができます。
>hayabusa.exe -f ..\Security.evtx -o detect.csv
detect.csv
Timestamp,Computer,EventID,Level,RuleTitle,Details,RulePath,FilePath 2021-12-31 19:38:37.370 +09:00,DESKTOP-ITIB,4728,low,User added to local security group,User: itib : Group: なし : LogonID: 0x4a111111,rules\hayabusa\default\alerts\Security\4728-AccountManipulation_UserAddedToLocalSecurityGroup.yml,..\Security.evtx 2021-12-31 19:38:37.370 +09:00,DESKTOP-ITIB,4728,medium,User added to global security group,User: itib : Group: なし : LogonID: 0x4a111111,rules\hayabusa\default\alerts\Security\4728_AccountManipulation_UserAddedToGlobalSecurityGroup.yml,..\Security.evtx 2021-12-31 19:38:37.372 +09:00,DESKTOP-ITIB,4720,medium,Local user account created,User: test : SID: S-1-1-11-111111111-1111111111-1111111111-1111,rules\hayabusa\default\alerts\Security\4720_CreateAccount-LocalAccount_UserAccountCreated.yml,..\Security.evtx
csvには検知したルールファイルへのパスが表示されています。
ルールファイルを見てみる
Hayabusaで調査するで検知したイベントログとルールファイルを見てみましょう。
Security.evtxをイベントビューアで開き、検索を駆使して検知したイベントを見つけました。
イベントログの EventID
が 4720
、Channel
がSecurity
、作られたTargetUserName
がtest
であることがわかります。後々のためにXML形式で見ています。
上記イベントを検知した先ほどルールファイルは 4720_CreateAccount-LocalAccount_UserAccountCreated.yml でした。
author: Eric Conrad, Yamato Security creation_date: 2020/11/08 uodated_date: 2021/12/22 title: Local user account created title_jp: ローカルユーザアカウントが作成された details: 'User: %TargetUserName% : SID: %TargetSid%' details_jp: 'ユーザ名: %TargetUserName% : SID: %TargetSid%' description: A local user account was created. description_jp: ローカルユーザアカウントが作成された. id: 13edce80-2b02-4469-8de4-a3e37271dcdb level: medium status: stable detection: selection: Channel: Security EventID: 4720 filter: TargetUserName|endswith: "$" #Filter out machine/computer accounts condition: selection and not filter falsepositives: - system administrator tags: - attack.persistence - attack.11136.001 references: - https://attack.mitre.org/techniques/T1136/001/ sample-evtx: ./sample-evtx/DeepBlueCLI/new-user-security.evtx logsource: default ruletype: Hayabusa
detection下に書かれた条件で検知が行われます。
Channel
が Security
AND EventID
が 4720
であり、filter
にマッチしない条件がこのルールで検知されるようです。
検知した場合は title: Local user account created
と details: 'User: %TargetUserName% : SID: %TargetSid%'
の %~%
が埋められた文字列が検知結果として表示されています。
詳細なルールの書き方はこれまたREADMEに詳しく書かれていますので参考にしてください。
hayabusa/AboutRuleCreation-Japanese.md at main · Yamato-Security/hayabusa · GitHub
最後に
ここまで読んでいただきありがとうございました。
簡単なHayabusaの使い方を紹介させていただきました。 Hayabusa、面白そう!触ってみたいと思っていただけたら幸いです。
HayabusaはOSSとして大和セキュリティが開発しています。 Hayabusaの開発気になる、バグ見つけた等あればGithubのissueや下記ConnpassのSlackからコンタクトお願いします。
それではよいWindowsログ解析ライフを!