Elastic Windows Event Log Beats のログを収集する
このドキュメントでは、Bindplane エージェントを使用して Elastic Windows Event Log Beats ログを Google Security Operations に取り込む方法について説明します。
Winlogbeat は、Elastic の Windows 固有のイベントログ転送エージェントです。Windows イベントログを収集し、さまざまな宛先に転送します。Windows システムで Windows サービスとして実行され、Application、Security、System などの Windows イベントログ チャネルからイベントを収集できます。
始める前に
次の前提条件を満たしていることを確認してください。
- Google SecOps インスタンス
- Windows Server 2016 以降、または Bindplane エージェントを実行するための
systemdを備えた Linux ホスト - Bindplane エージェントと Logstash サーバー間のネットワーク接続
- Logstash と Bindplane エージェント間のネットワーク接続
- プロキシの背後で実行している場合は、Bindplane エージェントの要件に従ってファイアウォール ポートが開いていることを確認します。
- イベントログを収集するために Winlogbeat をインストールする Windows システム
- Winlogbeat のインストールに必要な Windows システムへの管理者アクセス権
- 中間処理用の Logstash サーバー(バージョン 7.x または 8.x)
Google SecOps の取り込み認証ファイルを取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [コレクション エージェント] に移動します。
Ingestion Authentication File をダウンロードします。Bindplane をインストールするシステムにファイルを安全に保存します。
Google SecOps のお客様 ID を取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [プロファイル] に移動します。
[組織の詳細情報] セクションから [お客様 ID] をコピーして保存します。
Bindplane エージェントをインストールする
次の手順に沿って、Windows または Linux オペレーティング システムに Bindplane エージェントをインストールします。
Windows のインストール
- 管理者としてコマンド プロンプトまたは PowerShell を開きます。
次のコマンドを実行します。
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quietインストールが完了するまで待ちます。
次のコマンドを実行して、インストールの内容を確認します。
sc query observiq-otel-collectorサービス ステータスは RUNNING になります。
Linux のインストール
- root 権限または sudo 権限でターミナルを開きます。
次のコマンドを実行します。
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.shインストールが完了するまで待ちます。
次のコマンドを実行して、インストールの内容を確認します。
sudo systemctl status observiq-otel-collectorサービスのステータスが [active (running)] になります。
その他のインストール リソース
その他のインストール オプションとトラブルシューティングについては、Bindplane エージェントのインストール ガイドをご覧ください。
Syslog を取り込んで Google SecOps に送信するように Bindplane エージェントを構成する
構成ファイルを見つける
Linux:
sudo nano /etc/bindplane-agent/config.yamlWindows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
構成ファイルを編集します。
config.yamlの内容全体を次の構成に置き換えます。receivers: tcplog: listen_address: "0.0.0.0:1514" exporters: chronicle/winlogbeat: compression: gzip creds_file_path: '<CREDS_FILE_PATH>' customer_id: '<CUSTOMER_ID>' endpoint: <REGION_ENDPOINT> log_type: ELASTIC_WINLOGBEAT raw_log_field: body ingestion_labels: env: production source: winlogbeat service: pipelines: logs/winlogbeat_to_chronicle: receivers: - tcplog exporters: - chronicle/winlogbeat各プレースホルダを次のように置き換えます。
レシーバーの構成:
listen_address: ポート 1514(TCP)のすべてのインターフェースでリッスンするように0.0.0.0:1514に設定します。必要に応じてポート番号を変更できますが、Logstash syslog 出力構成と一致していることを確認してください。
エクスポータの構成:
<CREDS_FILE_PATH>: 取り込み認証ファイルのフルパス:- Linux:
/etc/bindplane-agent/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
<CUSTOMER_ID>: 前の手順の顧客 ID<REGION_ENDPOINT>: リージョン エンドポイント URL:- 米国:
malachiteingestion-pa.googleapis.com - ヨーロッパ:
europe-malachiteingestion-pa.googleapis.com - アジア:
asia-southeast1-malachiteingestion-pa.googleapis.com - 完全なリストについては、リージョン エンドポイントをご覧ください。
- 米国:
構成の例:
receivers: tcplog: listen_address: "0.0.0.0:1514" exporters: chronicle/winlogbeat: compression: gzip creds_file_path: '/etc/bindplane-agent/ingestion-auth.json' customer_id: 'a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6' endpoint: malachiteingestion-pa.googleapis.com log_type: ELASTIC_WINLOGBEAT raw_log_field: body ingestion_labels: env: production source: winlogbeat service: pipelines: logs/winlogbeat_to_chronicle: receivers: - tcplog exporters: - chronicle/winlogbeat
構成ファイルを保存する
編集が完了したら、ファイルを保存します。
- Linux:
Ctrl+O、Enter、Ctrl+Xの順に押します。 - Windows: [ファイル>保存] をクリックします。
Bindplane エージェントを再起動して変更を適用する
Linux で Bindplane エージェントを再起動するには:
次のコマンドを実行します。
sudo systemctl restart observiq-otel-collectorサービスが実行されていることを確認します。
sudo systemctl status observiq-otel-collectorログでエラーを確認します。
sudo journalctl -u observiq-otel-collector -f
Windows で Bindplane エージェントを再起動するには:
次のいずれかのオプションを選択します。
管理者としてコマンド プロンプトまたは PowerShell を開きます。
net stop observiq-otel-collector && net start observiq-otel-collectorサービス コンソール:
Win+Rキーを押して「services.msc」と入力し、Enter キーを押します。- observIQ OpenTelemetry Collector を見つけます。
- 右クリックして [再起動] を選択します。
サービスが実行されていることを確認します。
sc query observiq-otel-collectorログでエラーを確認します。
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
Logstash をインストールして構成する
Logstash は、Winlogbeat からイベントを受信し、syslog 経由で Bindplane エージェントに転送する仲介役として必要です。Winlogbeat にはネイティブの syslog 出力機能がありません。
Logstash をインストールする
- Elastic ダウンロード ページから Logstash をダウンロードします。
- Windows サーバーまたは Linux サーバーに Logstash をインストールします。
Linux(Debian/Ubuntu):
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - sudo apt-get install apt-transport-https echo "deb https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-8.x.list sudo apt-get update && sudo apt-get install logstashLinux(RHEL/CentOS):
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch sudo tee /etc/yum.repos.d/logstash.repo <<EOF [logstash-8.x] name=Elastic repository for 8.x packages baseurl=https://artifacts.elastic.co/packages/8.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md EOF sudo yum install logstashWindows:
- Elastic のダウンロード ページから ZIP ファイルをダウンロードします。
C:\logstashに抽出します。
Logstash パイプラインを構成する
新しいパイプライン構成ファイルを作成します。
Linux:
sudo nano /etc/logstash/conf.d/winlogbeat-to-syslog.confWindows:
notepad "C:\logstash\config\winlogbeat-to-syslog.conf"
次の構成を追加します。
input { beats { port => 5044 } } output { syslog { host => "<BINDPLANE_AGENT_IP>" port => 1514 protocol => "tcp" rfc => "rfc5424" appname => "winlogbeat" facility => "user-level" severity => "informational" } }<BINDPLANE_AGENT_IP>は、Bindplane エージェントを実行しているサーバーの IP アドレスに置き換えます。
Logstash 構成の例
input { beats { port => 5044 } } output { syslog { host => "192.168.1.100" port => 1514 protocol => "tcp" rfc => "rfc5424" appname => "winlogbeat" facility => "user-level" severity => "informational" } }
Logstash を起動する
Linux:
Logstash を起動します。
sudo systemctl start logstash sudo systemctl enable logstashLogstash が実行されていることを確認します。
sudo systemctl status logstashLogstash ログを確認します。
sudo tail -f /var/log/logstash/logstash-plain.log
Windows:
cd C:\logstash\bin logstash.bat -f C:\logstash\config\winlogbeat-to-syslog.conf本番環境で使用する場合は、NSSM などのツールを使用して Logstash を Windows サービスとしてインストールします。
Windows システムに Winlogbeat をインストールする
Winlogbeat をダウンロードする
- Elastic のダウンロード ページから Winlogbeat をダウンロードします。
- Windows 用の ZIP または MSI インストーラを選択します。
Winlogbeat をインストールする
MSI インストーラを使用する場合:
- MSI インストーラを実行します。
- インストール ウィザードに沿って操作します。
- デフォルトの場所(
C:\Program Files\Winlogbeat)にインストールします。
ZIP ファイルを使用する場合:
- ZIP ファイルを
C:\Program Files\Winlogbeatに解凍します。 - 管理者として PowerShell を開きます。
Winlogbeat ディレクトリに移動します。
cd 'C:\Program Files\Winlogbeat'インストール スクリプトを実行します。
.\install-service-winlogbeat.ps1
- ZIP ファイルを
ログを Logstash に送信するように Winlogbeat を構成する
Winlogbeat 構成ファイルを開きます。
notepad "C:\Program Files\Winlogbeat\winlogbeat.yml"収集するイベントログを構成します。
winlogbeat.event_logsセクションを見つけて、次のように構成します。winlogbeat.event_logs: - name: Application ignore_older: 72h - name: System - name: Security - name: Microsoft-Windows-Sysmon/Operational ignore_older: 72h - name: Windows PowerShell event_id: 400, 403, 600, 800 - name: Microsoft-Windows-PowerShell/Operational event_id: 4103, 4104, 4105, 4106 - name: ForwardedEvents tags: [forwarded]各行の先頭に
#を追加して、Elasticsearch 出力セクションをコメントアウトします。#output.elasticsearch: # hosts: ["localhost:9200"]Logstash 出力セクションのコメントを解除して構成します。
output.logstash: hosts: ["<LOGSTASH_SERVER_IP>:5044"]<LOGSTASH_SERVER_IP>は、Logstash サーバーの IP アドレスに置き換えます。
Winlogbeat 構成の例
winlogbeat.event_logs: - name: Application ignore_older: 72h - name: System - name: Security - name: Microsoft-Windows-Sysmon/Operational ignore_older: 72h output.logstash: hosts: ["192.168.1.50:5044"]
構成ファイルを保存する
ファイルを保存して閉じます。
Winlogbeat サービスを開始する
- 管理者として PowerShell を開きます。
Winlogbeat サービスを起動します。
Start-Service winlogbeatサービスが実行されていることを確認します。
Get-Service winlogbeatステータスが [Running] と表示されます。
Winlogbeat ログでエラーを確認します。
Get-Content "C:\ProgramData\winlogbeat\Logs\winlogbeat" -Tail 50
ログフローを確認する
Winlogbeat と Logstash の接続を確認する
Logstash サーバーで、Logstash ログを確認します。
Linux:
sudo tail -f /var/log/logstash/logstash-plain.logWindows:
type C:\logstash\logs\logstash-plain.log
Beats の接続を示すメッセージを探します。
[INFO ][logstash.inputs.beats] Beats inputs: Starting input listener {:address=>"0.0.0.0:5044"}
Logstash と Bindplane エージェントの接続を確認する
Bindplane エージェント サーバーで、エージェント ログを確認します。
Linux:
sudo journalctl -u observiq-otel-collector -fWindows:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
ログの取り込みが成功したことを示すメッセージを探します。
Google SecOps でログを確認する
- Google SecOps コンソールにログインします。
- [検索] に移動します。
検索クエリを実行して、Winlogbeat ログが取り込まれていることを確認します。
metadata.log_type = "ELASTIC_WINLOGBEAT"Windows イベントログが検索結果に表示されることを確認します。
トラブルシューティング
Winlogbeat が Logstash に接続しない
Winlogbeat と Logstash 間のネットワーク接続を確認します。
Test-NetConnection -ComputerName <LOGSTASH_IP> -Port 5044Windows ファイアウォール ルールでポート 5044 でのアウトバウンド接続が許可されていることを確認します。
Logstash がポート 5044 でリッスンしていることを確認します。
Linux:
sudo netstat -tulpn | grep 5044Windows:
netstat -an | findstr 5044
Logstash が Bindplane エージェントに転送しない
Logstash と Bindplane エージェント間のネットワーク接続を確認します。
Linux:
telnet <BINDPLANE_IP> 1514Windows:
Test-NetConnection -ComputerName <BINDPLANE_IP> -Port 1514
ファイアウォール ルールでポート 1514 の TCP 接続が許可されていることを確認します。
Bindplane エージェントがポート 1514 でリッスンしていることを確認します。
Linux:
sudo netstat -tulpn | grep 1514Windows:
netstat -an | findstr 1514
ログが Google SecOps に表示されない
- 顧客 ID と取り込み認証ファイルが正しいことを確認します。
- Bindplane エージェントのログで認証エラーを確認します。
- リージョン エンドポイントが Google SecOps インスタンスのリージョンと一致していることを確認します。
log_typeがELASTIC_WINLOGBEATに設定されていることを確認します。
UDM マッピング テーブル
このパーサーではフィールド マッピング情報を使用できません。
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。