はじめに
セキュリティサービス部セキュリティエンジニアの岡本です。本記事では、Windows のイベントログ解析ツールである Hayabusa について紹介します。
セキュリティインシデントに迅速かつ正確に対応するためには、不正アクセスやマルウェア感染など、攻撃の痕跡を突き止めることが重要となります。 攻撃の痕跡を突き止めるために、メモリやストレージ、ネットワーク通信等の様々なデータを解析しますが、中でも被害端末に残されたイベントログをはじめとした各種ログの解析は攻撃の痕跡を探す上で非常に有効です。
しかし、手動で様々なログを解析し、攻撃の痕跡を見つけ出す作業は非常に困難です。 ログのデータ形式には様々な種類があるため、読み解くためには知識や慣れが必要であり、さらに、ログが大量に存在する場合、攻撃の痕跡に関する情報を見逃す可能性もあります。
こうした問題を解決するために、自動でログを解析するツールが開発されています。 今回は、Windows のイベントログを自動解析する Hayabusa というツールに焦点を当て、その機能と利点、実際に使用した結果をご紹介します。
Hayabusaとは
Hayabusa は、Windows のイベントログを自動で解析するツールであり、重要なログや攻撃の痕跡を高速に検出できます。 解析結果は各イベントを時系列順に並べたタイムラインとして、CSV や JSON 形式で出力可能です。
Hayabusa の開発は、日本で活動している Yamato Security というグループによって行われており、そのソースコードは GitHub 上で公開されています。 Yamato Security は、Zach Mathis 氏が設立したグループで、全国的なトレーニングやイベントを開催し、さらには Hayabusa などの様々なツールを提供しています。
Hayabusaの機能
Hayabusa には、詳細なログ解析を可能にする多くの機能があります。 以下のような機能を使用することで、ログ解析を迅速かつ正確に行うことができます。
分析コマンド
分析コマンドは、イベントログから、ログオン情報や各イベントの統計情報などを抽出できます。 以下のコマンドを使用することで、イベントログから不審な活動を迅速に特定でき、効率的なインシデントレスポンスに寄与します。
logon-summary
ログオンイベントのサマリーを出力します。以下のような不審なログオンがないかの特定に有用です。
繰り返し認証に失敗しているログオン
業務時間外や深夜等の通常とは異なる時間帯のログオン
会社のネットワーク外や国外からのログオン
metrics
各イベントごとの合計と割合を出力します。これにより、どのイベントが最も多く記録されているか、特定のイベントが全体のどの程度を占めているかなどの分析が可能です。
日頃から各種イベントがどのくらいの割合で発生しているか把握しておくことで、普段発生していないイベントが大量発生しているケースなど、異常な状態を把握しやすくなります。
pivot-keywords-list
ユーザー名やホスト名、プロセス名等をイベントログから抽出し、リストを作成します。これにより、イベントログに含まれている以下のような不審なキーワードを特定しやすくなります。
システム上に存在しないはずのユーザー名
ネットワーク上に存在しないはずのホスト名
通常の業務で使用されないプロセス名
search
キーワードや正規表現を用いてイベントを検索します。 例えば、以下のようなキーワードで検索することで、不審な活動を追跡、調査できます。
pivot-keywords-list で特定した不審なユーザー名やホスト名等
セキュリティ対策製品で検知されたプロセス名
タイムラインコマンド
タイムラインは、膨大なイベントログの中から、「何が起こったのか」「なぜ起こったのか」「防止のために何ができるのか」というインシデントレスポンスの意思決定で知りたい情報を的確に把握するために不可欠です。 攻撃者の行動やその結果生じた事象を時系列で整理することで、インシデントの全体像や原因の解明、そして再発防止策の策定に役立ちます。
Hayabusa は、以下のコマンドによりタイムラインを作成できます。
csv-timeline
CSV 形式でタイムラインを出力します。これにより、イベントを時系列順に確認し、特定の時間帯に発生したイベントを特定するのに役立ちます。
json-timeline
JSON 形式でタイムラインを出力します。
Hayabusaの実行手順
以下のような手順で、Hayabusa を使用して Windows のイベントログを解析できます。
1. Hayabusaのダウンロード、実行
まず、Hayabusa の GitHub ページから実行ファイルをダウンロードします。 各 OS バージョンごとの実行ファイルが公開されていますので、自身の環境に適したファイルを選択してダウンロードします。 特定の環境に合わせてカスタマイズしたい場合は、ソースコードをダウンロードして自身でコンパイルできます。
2. コマンドラインからの実行
ダウンロードした実行ファイルは、コマンドラインから実行します。 この際、使用する分析コマンドまたはタイムラインコマンドに応じて、必要なオプションを指定します。 例えば、「logon-summary」コマンドを実行する場合、具体的な Windows イベントログのファイルパスや出力ファイルのフォーマットなどを指定します。
3. 出力結果の分析
コマンドの実行が終了すると、解析結果が出力されます。 出力された解析結果をもとに、攻撃の痕跡やセキュリティインシデントの特性を分析します。
実際にWindowsイベントログを解析してみる
今回は、検証用に構築した Active Directory 環境に対して攻撃し、その攻撃によって生じたドメインコントローラーのイベントログに対し、Hayabusa を使用して解析してみます。 以下に、検証環境と攻撃シナリオを示します。
攻撃シナリオ
- よくあるユーザー名/パスワードの組み合わせによるブルートフォース攻撃
- 判明した低権限ユーザーの認証情報で RDP ログオン
- PowerShell Empire*1 のペイロード実行
- Windows の AlwaysInstallElevated 設定を悪用し、SYSTEM 権限を取得
- メモリに存在する Administrator の NTLM ハッシュ値を取得
- 取得した NTLM ハッシュ値を用いて Administrator で RDP ログオン
検証環境
なお、上記の検証環境において適切にイベントログが記録されるように、以下の URL で公開されているガイドを参考にイベントログ設定を行いました。
大和セキュリティによる、DFIRと脅威ハンティングのためのWindowsイベントログ設定の究極ガイド
logon-summaryコマンドによる解析
まずは、Hayabusa の logon-summary コマンドによるイベントログ解析を試みました。
具体的な出力内容は以下のようになりました。
この出力内容から以下のことが分かります。
① 攻撃者のマシンからユーザーアカウント「Remote」で RDP ログオン
攻撃者のマシンから Remote というユーザー名で RDP ログオンが行われていることが確認できます。これは攻撃者が、判明した認証情報でシステムにアクセスを試みている可能性を示しています。
② 攻撃者のマシンから Administrator で RDP ログオン
攻撃者のマシンから Administrator としての RDP ログオンが確認できます。これは攻撃者が高権限を取得し、システムに深刻な影響を及ぼす可能性があるため、特に注意が必要です。
③ ユーザーアカウント「Remote」でのログオン試行
ログオンの失敗に関する情報が確認できます。出力結果から、Remote というユーザー名でのログオン試行が行われていることが確認できました。
上記のように、logon-summary コマンドにより、Windows イベントログからログオンに関する情報を効率よく抽出できました。
csv-timelineコマンドによる解析
次に、Hayabusa の csv-timeline コマンドによるイベントログ解析を行いました。 このコマンドは、各種イベントを時系列に並べたタイムラインを CSV 形式で出力します。
以下に、出力された CSV ファイルを Excel で開いた画面を示します。 なお、Excel で出力結果が見やすくなるように、Hayabusa の GitHub で公開されている手順を参考に表示を調整しました。
CSV結果をExcelとTimeline Explorerで解析する方法
CSV ファイルには、各種イベントログが時系列順に並んでおり、イベントログごとに Hayabusa による検出レベル、検出ルールが記載されていることが分かります。
これらの出力内容から、攻撃者の行動パターンや攻撃手法を詳細に把握できます。 具体的には、次のような攻撃の痕跡を示すイベントログが確認できます。
ログオン試行
Logon Failure (Wrong Password)というログオン試行を示す複数のログが確認できます。
低権限ユーザーのRDPログオン
ユーザーアカウント「Remote」での RDP ログオンを示すログが確認できます。
PowerShell Empireのペイロード配置
今回の攻撃で使用した PowerShell Empire のペイロードであるファイルの作成を示すログが確認できます。
PowerShell Empireのペイロード実行
PowerShell Empire のペイロードが実行されていることを示すログが確認できます。 また、AlwaysInstallElevated 設定の利用が確認できます。
PowerShell Empireの検出
PowerShell Empire が使用されていることを示すログが確認できます。 また、SYSTEM 権限をもったプロセスが生成されていることが分かります。
AdministratorのRDPログオン
Administrator での RDP ログオンを示すログが確認できます。
上記のように、csv-timeline コマンドにより、大量のイベントログから必要な情報を効率的に抽出し、時系列順に分析できました。
おわりに
本記事では、Hayabusa を使った Windows イベントログ解析について紹介しました。
Hayabusa を活用することで、手動によるログ解析に伴う労力や、膨大なログデータからの情報の見落としを削減できます。 これはセキュリティインシデントへの対応時間の短縮につながり、結果的に攻撃による損害を最小限に抑えることができます。 FFRIセキュリティでも、お客様環境で発生したインシデントの初動調査を実施する際に、こうしたツールを活用して迅速な対処を実現しています。
今回紹介した Hayabusa をはじめ、解析作業を効率化する多くのツールが存在します。 組織全体のセキュリティを保護するためには、そのようなツールを活用したセキュリティ対策を継続的に実施することが大切です。 また、ツールの実行結果をレポートすることで、潜在的な不具合や脆弱性が見つかるケースもありますので、一度試してみることをお薦めします。
エンジニア募集
FFRIセキュリティではサイバーセキュリティに関する興味関心を持つエンジニアを募集しています。 採用に関しては採用ページをご覧ください。
*1:Windows 向けの攻撃フレームワークであり、様々な侵害テクニックと攻撃用モジュール(パスワードダンプ等)を提供します。