WatchGuard Firebox のログを収集する
このドキュメントでは、Bindplane を使用して WatchGuard Firebox ログを Google Security Operations に取り込む方法について説明します。WatchGuard Firebox は、ステートフル パケット インスペクション、侵入防止、アプリケーション制御、URL フィルタリング、ゲートウェイ ウイルス対策、VPN 接続などのネットワーク セキュリティ機能を提供する統合脅威管理(UTM)ファイアウォール アプライアンスです。Firebox ログには、トラフィック イベント、セキュリティ アラート、認証アクティビティ、システム健全性情報が記録されます。
始める前に
次の前提条件を満たしていることを確認してください。
- Google SecOps インスタンス。
- Windows 2016 以降または systemd を使用する Linux ホスト。
- プロキシの背後で実行している場合は、Bindplane エージェントの要件に従ってファイアウォール ポートが開いていることを確認します。
- WatchGuard Firebox ウェブ UI(Fireware ウェブ UI)または WatchGuard System Manager への特権アクセス。
Google SecOps の取り込み認証ファイルを取得する
- Google SecOps コンソールにログインします。
- [SIEM Settings] > [Collection Agent] に移動します。
取り込み認証ファイル をダウンロードします。
- 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
Linux のインストール
- root 権限または sudo 権限でターミナルを開きます。
次のコマンドを実行します。
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
その他のインストール リソース
- その他のインストール オプションについては、こちらのインストール ガイドをご覧ください。
Syslog を取り込んで Google SecOps に送信するように Bindplane エージェントを構成する
構成ファイルにアクセスします。
config.yamlファイルを見つけます。通常、Linux では/etc/bindplane-agent/ディレクトリに、Windows ではインストール ディレクトリにあります。- テキスト エディタ(
nano、vi、メモ帳など)を使用してファイルを開きます。
config.yamlファイルを次のように編集します。receivers: udplog: # Replace the port and IP address as required listen_address: "0.0.0.0:514" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds_file_path: '/path/to/ingestion-authentication-file.json' # Replace with your actual customer ID from Step 2 customer_id: YOUR_CUSTOMER_ID endpoint: malachiteingestion-pa.googleapis.com # Add optional ingestion labels for better organization log_type: 'WATCHGUARD' raw_log_field: body ingestion_labels: service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labels
- 自社のインフラストラクチャでの必要性に応じて、ポートと IP アドレスを置き換えます。
YOUR_CUSTOMER_IDは、実際のお客様 ID に置き換えます。/path/to/ingestion-authentication-file.jsonの値を、手順 1 で認証ファイルを保存したファイルパスに更新します。
Bindplane エージェントを再起動して変更を適用する
Linux で Bindplane エージェントを再起動するには、次のコマンドを実行します。
sudo systemctl restart observiq-otel-collectorWindows で Bindplane エージェントを再起動するには、サービス コンソールを使用するか、次のコマンドを入力します。
net stop observiq-otel-collector && net start observiq-otel-collector
WatchGuard Firebox の syslog 転送を構成する
Fireware Web UI を使用して syslog メッセージを Bindplane エージェントに転送するように WatchGuard Firebox を構成する手順は次のとおりです。
- Fireware ウェブ UI(
https://<firebox-ip>:8080)にログインします。 - [システム] > [ロギング] に移動します。
- [Syslog Servers] セクションで [Add] をクリックします。
次の構成情報を提供してください。
- IP アドレス: Bindplane エージェント ホストの IP アドレス(
192.168.1.100など)を入力します。 - ポート:
514(または Bindplane エージェントで構成されたポート)を入力します。 - ログ形式: [Syslog](標準の BSD syslog 形式)を選択します。
- IP アドレス: Bindplane エージェント ホストの IP アドレス(
[Syslog の設定] セクションで、ログレベルを構成します。
- トラフィック、セキュリティ、システム イベントをキャプチャするには、[ログレベル] を [情報] 以上に設定します。
[保存] をクリックします。
転送するログタイプを構成する
- Fireware ウェブ UI で、System > Logging > Syslog に移動します。
syslog 転送で次のログタイプが有効になっていることを確認します。
- トラフィック - ファイアウォール トラフィック イベント(許可、拒否)。
- アラーム - IPS とセキュリティ警報イベント。
- イベント - システム イベントとステータスの変更。
- Debug - 省略可。トラブルシューティング専用。
[保存] をクリックします。
(代替)WatchGuard System Manager で構成する
- WatchGuard System Manager を開き、Firebox に接続します。
- [設定]> [ロギング]> [この Syslog サーバーにログ メッセージを送信する] に移動します。
- [追加] をクリックします。
次の構成情報を提供してください。
- IP アドレス: Bindplane エージェント ホストの IP アドレスを入力します。
- ポート: 「
514」と入力します。 - ログ形式: [Syslog] を選択します。
[OK] をクリックして、構成を Firebox に保存します。
詳細については、WatchGuard Fireware ロギングのドキュメントをご覧ください。
UDM マッピング テーブル
| ログフィールド | UDM マッピング | ロジック |
|---|---|---|
action |
security_result.action_details |
未加工ログの action の値が security_result.action_details に割り当てられます。 |
action |
target.labels.value |
未加工ログの action の値が target.labels.value に割り当てられ、target.labels.key は「リソースに対するアクション」になります。 |
arg |
target.file.full_path |
未加工ログの arg の値が target.file.full_path に割り当てられます。 |
app_cat_id |
about.labels.value |
未加工ログの app_cat_id の値が about.labels.value に割り当てられ、about.labels.key は「app_cat_id」になります。 |
app_cat_name |
target.application |
app_name と組み合わせて使用され、target.application の値を形成します(例: 「Google - Web サービス」)。 |
app_id |
about.labels.value |
未加工ログの app_id の値が about.labels.value に割り当てられ、about.labels.key は「app_id」になります。 |
app_name |
target.application |
app_cat_name と組み合わせて使用され、target.application の値を形成します(例: 「Google - Web サービス」)。 |
cats |
security_result.category_details |
未加工ログの cats の値が security_result.category_details に割り当てられます。 |
cert_issuer |
network.tls.server.certificate.issuer |
未加工ログの cert_issuer の値が network.tls.server.certificate.issuer に割り当てられます。 |
cert_subject |
network.tls.server.certificate.subject |
未加工ログの cert_subject の値が network.tls.server.certificate.subject に割り当てられます。 |
cn |
network.tls.server.certificate.subject |
未加工ログの cn の値が network.tls.server.certificate.subject に割り当てられます。 |
conn_action |
security_result.action_details |
未加工ログの conn_action の値が security_result.action_details に割り当てられます。 |
content_type |
マッピングされていません | 提供された UDM の例では、IDM オブジェクトにマッピングされていません。 |
description |
metadata.description |
未加工ログから取得された description の値が metadata.description に割り当てられます。 |
dhcp_type |
network.dhcp.type |
未加工ログの dhcp_type の値は、network.dhcp.type の対応する DHCP タイプ(「REQUEST」、「ACK」など)にマッピングされます。 |
dst_host |
target.hostname |
未加工ログの dst_host の値が target.hostname に割り当てられます。 |
dst_ip |
target.ip |
未加工ログの dst_ip の値が target.ip に割り当てられます。 |
dst_mac |
target.mac |
未加工ログの dst_mac の値が target.mac に割り当てられます。 |
dst_port |
target.port |
未加工ログの dst_port の値が target.port に割り当てられます。 |
dst_user |
target.user.user_display_name |
未加工ログの dst_user の値が target.user.user_display_name に割り当てられます。 |
dstname |
target.administrative_domain |
未加工ログの dstname の値が target.administrative_domain に割り当てられます。 |
duration |
マッピングされていません | 提供された UDM の例では、IDM オブジェクトにマッピングされていません。 |
elapsed_time |
マッピングされていません | 提供された UDM の例では、IDM オブジェクトにマッピングされていません。 |
endpoint |
intermediary.labels.value |
未加工ログの endpoint の値が intermediary.labels.value に割り当てられ、intermediary.labels.key は「Gateway-Endpoint」になります。 |
event_name |
principal.application |
未加工ログの event_name の値が principal.application に割り当てられます。 |
firewall_id |
intermediary.asset_id |
未加工ログの firewall_id の値に「Firewall ID : 」が追加され、intermediary.asset_id に割り当てられます。 |
firewall_name |
principal.asset_id |
未加工ログの firewall_name の値に「Firewall: 」が追加され、principal.asset_id に割り当てられます。 |
firewallname |
intermediary.hostname |
未加工ログの firewallname の値が intermediary.hostname に割り当てられます。 |
firewallname |
principal.hostname |
未加工ログの firewallname の値が principal.hostname に割り当てられます。 |
fqdn_dst_match |
マッピングされていません | 提供された UDM の例では、IDM オブジェクトにマッピングされていません。 |
geo |
マッピングされていません | 提供された UDM の例では、IDM オブジェクトにマッピングされていません。 |
geo_dst |
target.location.country_or_region |
未加工ログの geo_dst の値が target.location.country_or_region に割り当てられます。 |
geo_src |
principal.location.country_or_region |
未加工ログの geo_src の値が principal.location.country_or_region に割り当てられます。 |
host |
マッピングされていません | 提供された UDM の例では、IDM オブジェクトにマッピングされていません。 |
ike_policy |
security_result.rule_id |
未加工ログの ike_policy の値が security_result.rule_id に割り当てられます。 |
ike_policy_version |
security_result.rule_version |
未加工ログの ike_policy_version の値が security_result.rule_version に割り当てられます。 |
intermediary_host |
intermediary.hostname |
未加工ログの intermediary_host の値が intermediary.hostname に割り当てられます。 |
ipaddress |
マッピングされていません | 提供された UDM の例では、IDM オブジェクトにマッピングされていません。 |
ipsec_policy |
マッピングされていません | 提供された UDM の例では、IDM オブジェクトにマッピングされていません。 |
ipsec_policy_version |
マッピングされていません | 提供された UDM の例では、IDM オブジェクトにマッピングされていません。 |
keyword |
マッピングされていません | 提供された UDM の例では、IDM オブジェクトにマッピングされていません。 |
line |
マッピングされていません | 提供された UDM の例では、IDM オブジェクトにマッピングされていません。 |
log_message |
metadata.description |
他のより具体的な説明がない場合、未加工ログの log_message の値が metadata.description に割り当てられます。 |
log_reason |
security_result.summary |
未加工ログの log_reason の値が security_result.summary に割り当てられます。 |
log_type |
metadata.log_type |
未加工ログの log_type の値が metadata.log_type に割り当てられます。常に「WATCHGUARD」に設定されます。 |
msg |
security_result.summary |
未加工ログの msg の値が security_result.summary に割り当てられます。 |
msg_id |
metadata.product_event_type |
未加工ログの msg_id の値が metadata.product_event_type に割り当てられます。 |
new_action |
security_result.action_details |
conn_action と組み合わせて security_result.action_details の値を形成します(例: 「ProxyReplace: IP protocol - HTTPS-Client.DPI-Off」)。 |
op |
network.http.method |
未加工ログの op の値が network.http.method に割り当てられます。 |
path |
target.url |
未加工ログの path の値が target.url に割り当てられます。 |
pid |
マッピングされていません | 提供された UDM の例では、IDM オブジェクトにマッピングされていません。 |
policy_name |
intermediary.resource.name |
未加工ログの policy_name の値が intermediary.resource.name に割り当てられます。 |
policy_name |
security_result.rule_name |
未加工ログの policy_name の値が security_result.rule_name に割り当てられます。 |
policyname_label.value |
security_result.rule_labels.value |
未加工ログの policy_name の値が security_result.rule_labels.value に割り当てられ、security_result.rule_labels.key は「PolicyName」になります。 |
prin_host |
principal.hostname |
未加工ログの prin_host の値が principal.hostname に割り当てられます。 |
proc_id |
マッピングされていません | 提供された UDM の例では、IDM オブジェクトにマッピングされていません。 |
protocol |
network.ip_protocol |
未加工ログの protocol の値が大文字に変換され、network.ip_protocol に割り当てられます。「EXTERNAL ICMP」の特殊な処理(「ICMP」にマッピングされます)。 |
proxy_act |
security_result.rule_id |
未加工ログの proxy_act の値が security_result.rule_id に割り当てられます。 |
proxy_act |
security_result.rule_name |
未加工ログの proxy_act の値が security_result.rule_name に割り当てられます。 |
query_name |
network.dns.questions.name |
未加工ログの query_name の値が network.dns.questions.name に割り当てられます。 |
query_type |
network.dns.questions.type |
未加工ログの query_type の値が network.dns.questions.type に割り当てられます。数値クエリタイプの特別な処理と、標準 DNS クエリタイプへのマッピング。 |
rc |
マッピングされていません | 提供された UDM の例では、IDM オブジェクトにマッピングされていません。 |
reason |
security_result.summary |
未加工ログの reason の値が security_result.summary に割り当てられます。 |
record_type |
network.dns.answers.type |
未加工ログの record_type の値は、network.dns.answers.type の対応する DNS レコード タイプにマッピングされます。 |
redirect_action |
マッピングされていません | 提供された UDM の例では、IDM オブジェクトにマッピングされていません。 |
reputation |
additional.fields.value.string_value |
未加工ログの reputation の値が additional.fields.value.string_value に割り当てられ、additional.fields.key は「reputation」になります。 |
response |
マッピングされていません | 提供された UDM の例では、IDM オブジェクトにマッピングされていません。 |
response_code |
network.dns.response_code |
未加工ログの response_code の値は、network.dns.response_code の対応する DNS レスポンス コードにマッピングされます。 |
route_type |
マッピングされていません | 提供された UDM の例では、IDM オブジェクトにマッピングされていません。 |
rule_name |
security_result.rule_name |
未加工ログの rule_name の値が security_result.rule_name に割り当てられます。 |
rcvd_bytes |
network.received_bytes |
未加工ログの rcvd_bytes の値が network.received_bytes に割り当てられます。 |
sent_bytes |
network.sent_bytes |
未加工ログの sent_bytes の値が network.sent_bytes に割り当てられます。 |
server_ssl |
マッピングされていません | 提供された UDM の例では、IDM オブジェクトにマッピングされていません。 |
severity |
マッピングされていません | 提供された UDM の例では、IDM オブジェクトにマッピングされていません。 |
sig_vers |
network.tls.server.certificate.version |
未加工ログの sig_vers の値が network.tls.server.certificate.version に割り当てられます。 |
signature_cat |
additional.fields.value.string_value |
未加工ログの signature_cat の値が additional.fields.value.string_value に割り当てられ、additional.fields.key は「signature_cat」になります。 |
signature_id |
additional.fields.value.string_value |
未加工ログの signature_id の値が additional.fields.value.string_value に割り当てられ、additional.fields.key は「signature_id」になります。 |
signature_name |
additional.fields.value.string_value |
未加工ログの signature_name の値が additional.fields.value.string_value に割り当てられ、additional.fields.key は「signature_name」になります。 |
sni |
network.tls.client.server_name |
未加工ログの sni の値が network.tls.client.server_name に割り当てられます。 |
src_ctid |
マッピングされていません | 提供された UDM の例では、IDM オブジェクトにマッピングされていません。 |
src_host |
principal.hostname |
未加工ログの src_host の値が principal.hostname に割り当てられます。 |
src_ip |
principal.ip |
未加工ログの src_ip の値が principal.ip に割り当てられます。 |
src_ip_nat |
マッピングされていません | 提供された UDM の例では、IDM オブジェクトにマッピングされていません。 |
src_mac |
principal.mac |
未加工ログの src_mac の値が principal.mac に割り当てられます。 |
src_port |
principal.port |
未加工ログの src_port の値が principal.port に割り当てられます。 |
src_user |
principal.user.user_display_name |
未加工ログの src_user の値が principal.user.user_display_name に割り当てられます。 |
src_user_name |
principal.user.user_display_name |
未加工ログの src_user_name の値が principal.user.user_display_name に割り当てられます。 |
src_vpn_ip |
principal.ip |
未加工ログの src_vpn_ip の値が principal.ip に割り当てられます。 |
srv_ip |
マッピングされていません | 提供された UDM の例では、IDM オブジェクトにマッピングされていません。 |
srv_port |
マッピングされていません | 提供された UDM の例では、IDM オブジェクトにマッピングされていません。 |
ssl_offload |
マッピングされていません | 提供された UDM の例では、IDM オブジェクトにマッピングされていません。 |
tcp_info |
マッピングされていません | 提供された UDM の例では、IDM オブジェクトにマッピングされていません。 |
time |
metadata.event_timestamp.seconds、timestamp.seconds |
未加工ログの time の値が解析され、metadata.event_timestamp.seconds と timestamp.seconds の入力に使用されます。 |
time1 |
metadata.event_timestamp.seconds、timestamp.seconds |
未加工ログの time1 の値が解析され、metadata.event_timestamp.seconds と timestamp.seconds の入力に使用されます。 |
tls_profile |
about.labels.value |
未加工ログの tls_profile の値が about.labels.value に割り当てられ、about.labels.key は「tls_profile」になります。 |
tls_version |
マッピングされていません | 提供された UDM の例では、IDM オブジェクトにマッピングされていません。 |
user_name |
principal.user.userid、principal.user.user_display_name |
未加工ログの user_name の値は、コンテキストに応じて principal.user.userid または principal.user.user_display_name に割り当てられます。 |
user_type |
マッピングされていません | 提供された UDM の例では、IDM オブジェクトにマッピングされていません。 |
| (なし) | intermediary.resource.type |
常に「ACCESS_POLICY」に設定されます。 |
| (なし) | metadata.event_type |
msg_id、log_type、event_name などのフィールドに基づいてパーサー ロジックによって決定されます。NETWORK_CONNECTION、SERVICE_MODIFICATION、NETWORK_SMTP、NETWORK_DNS、NETWORK_HTTP、USER_LOGIN、USER_LOGOUT、USER_RESOURCE_UPDATE_CONTENT、RESOURCE_PERMISSIONS_CHANGE、RESOURCE_CREATION、GENERIC_EVENT、STATUS_UPDATE、USER_UNCATEGORIZED のいずれかです。 |
| (なし) | metadata.product_name |
常に「Fireware」に設定されます。 |
| (なし) | metadata.vendor_name |
常に「Watchguard」に設定されます。 |
| (なし) | security_result.action |
disposition に基づくパーサー ロジックによって決定されます。「ALLOW」または「BLOCK」を指定できます。 |
| (なし) | extensions.auth.type |
ユーザーのログイン/ログアウト イベントの場合は「AUTHTYPE_UNSPECIFIED」に、VPN に関連するネットワーク イベントの場合は「VPN」に設定します。 |
| (なし) | network.application_protocol |
msg_id と event_name に基づくパーサー ロジックによって決定されます。「DNS」、「DHCP」、「HTTP」、「HTTPS」のいずれかになります。 |
| (なし) | network.dns.questions.type |
「A」レコードのクエリの場合は 1 に設定します。 |
| (なし) | target.labels.key |
action が target.labels.value にマッピングされている場合は、「リソースに対するアクション」に設定します。 |
| (なし) | intermediary.labels.key |
prin_host が intermediary.labels.value にマッピングされている場合は、「ファイアウォール メンバー名」に設定します。 |
| (なし) | intermediary.labels.key |
endpoint が intermediary.labels.value にマッピングされている場合は、「Gateway-Endpoint」に設定します。 |
| (なし) | principal.labels.key |
gateway が principal.labels.value にマッピングされている場合は、「Gateway」に設定します。 |
| (なし) | target.labels.key |
gateway が target.labels.value にマッピングされている場合は、「Gateway」に設定します。 |
| (なし) | principal.labels.key |
status が principal.labels.value にマッピングされている場合は、「state」に設定します。 |
| (なし) | target.labels.key |
status が target.labels.value にマッピングされている場合は、「Gateway Status」に設定します。 |
| (なし) | additional.fields.key |
対応する値が未加工ログからマッピングされる場合は、「signature_name」、「signature_cat」、「signature_id」、「reputation」に設定します。 |
変更ログ
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。