ハイビスカス
With Growing High-SAI
RECRUIT
ハイビスカス
With Growing High-SAI

AI時代のセキュリティを学ぶ第一歩!Docker DesktopでSIEM「Wazuh」を構築してみたお話

AI時代のセキュリティを学ぶ第一歩!Docker DesktopでSIEM「Wazuh」を構築してみたお話

はじめまして!!株式会社ハイサイの眠れる虎🐯、N.Mです! 

現在、綺羅星の様にキラめくセキュリティエンジニアを目指して日々学習中です!

基本スペック

資格:AWS CLF/情報セキュリティマネジメント

出身:岡山県出身、小学生の頃から東京

趣味:ゲーム、ダーツ、リアル脱出ゲーム、飲み

セキュリティについて学んでいると、「ログ監視」や「SIEM」という言葉を頻繁に目にすることがあります。

最初は「ログを集めて確認するもの」くらいのイメージしかなく、実際にどのような流れでログが収集・分析されるのかは、あまり理解できていませんでした。

そこで今回は、実際に手を動かしてSIEMの仕組みを学んでみます!

Wazuhを構築、WindowsのイベントログがWazuh Dashboardに表示されるまでを追ってみました!

※SIEM、Wazuhについては後述します!

SIEMに興味を持ったきっかけ

今回SIEMについて学んでみようと思ったきっかけは、Interop Tokyo 2026で行われた、パロアルトネットワークス株式会社による次の講演です。

「Agentic AI」が切り拓く次世代セキュリティ:AIRS、Prisma BrowserからSASEの進化まで

生成AIが「質問に答えるだけのツール」から、自分で判断してタスクをこなす「Agentic AI」へと進化しているという話や、AIアプリケーションを守るAIRS、Prisma Browser、SASEの進化についても紹介されていて、なるほどなぁと聞き入ってしまいました。

中でも特に刺さったのが、AIを業務に導入する際のセキュリティだけでなく、AIが実際に動いている環境の中で、どんなデータにアクセスして、どんな権限で何を実行しているのかという「AIの振る舞い」まで含めて守る必要があるという話です。

正直、この講演を聞くまでセキュリティって結構アバウトなイメージしか持っていませんでした。

しかし、AIの利用が進んでシステムが自律的に動くようになればなるほど、「システム上で今何が起きているか」を把握することがますます重要になってくるんじゃないか、と感じたんです。

そこで最新のセキュリティ技術を学ぶ前に、まずは監視と検知の基礎となるログの仕組みについて理解したいと考えました。そこで白羽の矢が立ったのがSIEMです。

そもそもSIEMとは?

SIEMは「Security Information and Event Management」の略称です。サーバー、ネットワーク機器、アプリケーション、セキュリティ製品などから出力されるログやイベントを集約し、監視や分析に活用するための仕組みです。

SIEMの主要な機能には、次のようなものがあります。

  • ログ管理
  • イベントの相関分析
  • 継続的な監視
  • インシデントへの対応

例えばある端末でログインに失敗したという記録が残っていたとしても、そのログを誰も確認しなければ、異常に気づくことはできません。さらに、複数のサーバーや端末を管理している場合、それぞれのログを一台ずつ確認するのは大変です。SIEMへログを集約することで、複数のシステムで発生した出来事を一か所で確認しやすくなります。

私もSIEMという言葉は知っていましたが、最初は「いろいろな機器のログを集めて、画面に表示するもの」という漠然としたイメージしか持っていませんでした。そこで、説明を読むだけではなく、実際にSIEM環境を構築し、どのようなコンポーネントが動作しているのかを確かめてみることにしました。

今回使用するWazuhとは?

今回の学習ではWazuhを使用しました。
Wazuhのシングルノード構成では主に次の3つの中央コンポーネントが、それぞれDockerコンテナとして起動し、連携して動作します。

コンポーネント主な役割
Wazuh Manager収集したセキュリティイベントの分析、検知ルールの適用、Agentの管理
Wazuh Indexer収集・分析したセキュリティデータの保存と検索
Wazuh Dashboardログやアラートを確認・検索・管理するWeb画面

これらのコンポーネントが連携することで、セキュリティイベントの分析、保存、可視化が行われます。今回は、Windows 11上にDocker Desktopを導入し、そのLinuxコンテナ環境でWazuh Manager、Wazuh Indexer、Wazuh Dashboardを動かします。構成を簡単に表すと、次のようになります。

Windows 11
└─ Docker Desktop
  └─ Linuxコンテナ環境
          ├─ Wazuh Manager
          ├─ Wazuh Indexer
          └─ Wazuh Dashboard

4. WindowsへWazuh Agentを導入する

Wazuhの中央コンポーネントを構築しただけでは、監視対象のログは収集されません。そこで、使用しているWindows 11へWazuh Agentを導入しました。

Wazuh Dashboardの「Deploy new agent」画面からWindowsを選択し、接続先となるWazuh ServerのアドレスとAgent名を設定します。
今回は同じPC上のDockerコンテナでWazuh Serverが動作しているため、接続先には127.0.0.1を指定しました。Agent名は、検証用として「NM-WIN11」としています。

Wazuh Agentのインストール後、PowerShellからサービスの状態を確認しました。

Get-Service wazuhsvc

結果はRunningとなり、Wazuh AgentがWindowsサービスとして起動していることを確認できました。Wazuh Dashboardを確認すると、登録したNM-WIN11が表示され、状態がActiveになっていました。

これでWindows上のWazuh Agentから、Docker Desktop上のWazuh Serverへ情報を送る準備が整いました。

Windowsイベントログを発生させる

次にWindowsでテスト用のイベントを発生させ、Wazuhで収集できるか確認します。
Windows版Wazuh Agentは、標準設定でSystem、Application、Securityの各イベントチャネルを監視します。今回はWindowsサービスの起動種類を変更した際にSystemログへ記録される、イベントID 7040を使用しました。

PowerShellからWazuh Agentサービスの起動種類を一時的に「自動」から「手動」へ変更し、その後「自動」へ戻しました。

Set-Service -Name wazuhsvc -StartupType Manual
Set-Service -Name wazuhsvc -StartupType Automatic

サービス自体は停止せず、Windows起動時の開始方法だけを変更しています。
操作後、PowerShellからSystemイベントログを確認しました。

Get-WinEvent `
  -FilterHashtable @{
      LogName = 'System'
      Id = 7040
      StartTime = (Get-Date).AddHours(-1)
  } `
  -MaxEvents 5 |
Select-Object TimeCreated, Id, ProviderName, Message |
Format-List

結果には次の2件が記録されていました。

  • Wazuhサービスの起動種類を「自動」から「手動」へ変更
  • Wazuhサービスの起動種類を「手動」から「自動」へ変更

これでWindows側でテスト用のイベントが正常に発生したことを確認できました。

Wazuh Dashboardで確認する

最後にWindowsで発生したイベントがWazuhへ送信されているか確認します。
Wazuh Dashboardの「Threat Hunting」画面を開き、Agent名NM-WIN11で絞り込みました。すると、Windowsでサービスの起動種類を変更した時刻とほぼ同じ時間に、次のイベントが表示されました。

項目確認結果
AgentNM-WIN11
Rule ID61104
Rule Level3
DescriptionService startup type was changed

今回の結果から次の一連の流れが正常に動作していることを確認できました。

環境を構築しただけでは分からなかった、ログの発生から収集、分析、可視化までの流れを、実際に手を動かしながら確認できました。

実際に試して分かったこと

今回の検証前は、SIEMに対して「複数のログを集めて画面に表示するもの」というイメージを持っていました。しかし実際には、収集したすべてのログが同じようにアラートとして表示されるわけではありません。Wazuh Serverが受信したイベントを検知ルールと照合し、条件に一致したものがDashboardに表示されます。

今回発生させたイベントID 7040は、サービスの起動種類が変更されたイベントとして分析され、Rule ID 61104で表示されました。単にログを大量に集めるだけではなく、どのような出来事を、どのような条件で検知するかが重要なのだと分かりました。

まとめ

今回はWindows 11のDocker Desktop上にWazuh 4.14.6の環境を作って、Windows端末へWazuh Agentを導入してみました。

あえてイベントID を発生させてみて、Wazuh Dashboard上でしっかりRule ID として検知されていたときは、ちょっと感動しました✨

この検証を通して、SIEMにおける「ログの発生→収集→分析→可視化」という一連の流れを、机上の知識じゃなく実感として掴めた気がします。

今後はWindowsのログイン失敗やPowerShellの操作ログ、Dockerコンテナのイベントなど、もう少し監視対象を広げてみたいところです。あとは、用意された検知ルールを使うだけじゃなくて、いずれは自分でルールを作って「何を異常と見なすか」という設計そのものにも踏み込んでみたいと思っています。

そもそも、今回Wazuhに触れてみようと思ったきっかけは、冒頭で紹介したパロアルトネットワークス社の講演でした。あの場で感じた「兆候を見逃さない仕組み」への興味を出発点に、まずはこういう身近な環境で基礎を固めつつ、将来的にはログや振る舞いから異常の芽をいち早く見抜けるようなキラキラしたセキュリティエンジニアを目指して、これからもコツコツ学びを積み重ねていきたいと思います!

Author: M.N  @High-SAI