WatchGuard Fireware ログを収集する
以下でサポートされています。
Google SecOpsSIEM
概要
このパーサーは、WatchGuard Fireware ログを JSON 形式または Key-Value(KV)形式で抽出し、UDM に変換します。「トラフィック」ログと「イベント」ログは、grok フィルタと kv フィルタを使用してフィールドを抽出し、UDM にマッピングする方法が異なります。さまざまな msg_id
値とイベント名に固有のロジックを使用して、ネットワーク プロトコル、ユーザー アクション、セキュリティ結果、その他の関連情報を処理します。また、2 番目のグループの Syslog エントリを処理し、類似の情報を抽出して UDM 形式にマッピングします。
始める前に
- Google SecOps インスタンスがあることを確認します。
- Watchguard に対する特権アクセス権があることを確認します。
- Windows 2012 SP2 以降または systemd を搭載した Linux ホストがあることを確認します。
- プロキシの背後で実行している場合は、ファイアウォールのポートが開いていることを確認します。
Google SecOps 取り込み認証ファイルを取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [収集エージェント] に移動します。
- 取り込み認証ファイルをダウンロードします。
Google SecOps のお客様 ID を取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [プロファイル] に移動します。
- [組織の詳細] セクションから [お客様 ID] をコピーして保存します。
BindPlane Agent をインストールする
- Windows へのインストールの場合は、次のスクリプト
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
を実行します。 - Linux へのインストールの場合は、
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
スクリプトを実行します。 - その他のインストール オプションについては、こちらのインストール ガイドをご覧ください。
Syslog を取り込んで Google SecOps に送信するように BindPlane エージェントを構成する
- BindPlane がインストールされているマシンにアクセスします。
config.yaml
ファイルを次のように編集します。receivers: tcplog: # Replace the below port <54525> and IP (0.0.0.0) with your specific values listen_address: "0.0.0.0:54525" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the creds location below according the placement of the credentials file you downloaded creds: '{ json file for creds }' # Replace <customer_id> below with your actual ID that you copied customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # You can apply ingestion labels below as preferred ingestion_labels: log_type: SYSLOG namespace: testNamespace raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - tcplog exporters: - chronicle/chronicle_w_labels
次のコマンドを使用して BindPlane エージェントを再起動して、変更を適用します。
sudo systemctl bindplane restart
Watchguard に Syslog サーバー構成を追加する
- Watchguard UI にログインします。
- [システム] > [ロギング] を選択します。
- [Syslog Server] タブをクリックします。
- [これらの syslog サーバーにログメッセージを送信する] チェックボックスをオンにします。
- [追加] をクリックします。
[Syslog Server] ダイアログで、入力パラメータの値を指定します。
- IP アドレス: サーバーの IP アドレスを入力します。
- ポート: デフォルトの syslog サーバー ポート(514)を変更し、サーバーの別のポートを入力します。
- ログ形式: プルダウンから [Syslog] を選択します。
- 省略可: [説明] に、サーバーの説明を入力します(例: Google SecOps エクスポート)。
- 省略可: タイムスタンプ: [チェックボックス] をオンにすると、Firebox でイベントが発生した日時がログ メッセージの詳細に含まれます。
- 省略可: デバイスのシリアル番号: チェックボックスをオンにすると、ログ メッセージの詳細に Firebox のシリアル番号が含まれます。
- Syslog 施設: ログメッセージのタイプごとに、プルダウンから優先度を選択します(アラームなどの優先度の高い syslog メッセージの場合は、[Local0] を選択します)。
- 省略可: [デフォルトに戻す]: デフォルト設定に戻します。
[保存] をクリックします。
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 - ウェブサービス」)。 |
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 - ウェブサービス」)。 |
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 の値の先頭に「ファイアウォール 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 に割り当てられます。「ICMP」にマッピングされる「EXTERNAL 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 は「評判」です。 |
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」に設定します。 |
変更点
2023-12-03
- 新しいフィールドを解析するように Grok パターンを変更しました。
- 「identified_log」の新しいパターンを解析するように、いくつかの Grok パターンを変更しました。
- 「msg_id」値が「1600-0066」の「identified_log」を解析するための新しい Grok パターンを追加しました。
2023-11-27
- 「msg_id」が「3000-0150」のログの「signature_name」を「additional.fields」にマッピングしました。
- 「signature_id」、「signature_cat」を「additional.fields」にマッピングしました。
2023-11-24
- 新しいフィールドを解析するようにいくつかの Grok パターンを変更しました。
- 「firewallname」を「event.idm.read_only_udm.intermediary.hostname」にマッピングしました。
- 「firewall_id」を「event.idm.read_only_udm.intermediary.asset_id」にマッピングしました。
- 「prin_host」を「event.idm.read_only_udm.intermediary.labels」にマッピングしました
2023-11-10
- 重複するコードを削除しました。
- 「signature_name」を「additional.fields」にマッピングしました。
2023-09-28
- バグの修正:
- 「yyyy-MM-dd HH:mm:ss」、「MMM d HH:mm:ss」、「MMM dd HH:mm:ss」、「ISO8601」、「yyyy-MM-ddTHH:mm:ss」の形式をサポートするように「日付」フィルタを変更しました。
2023-05-25
- バグの修正:
- イベント「Received DPD message from target host through gateway」の「src_vpn_ip」フィールドのマッピングを「principal.ip」から「target.ip」に変更しました。
2023-05-04
- 機能拡張 - イベント「dnsmasq」、「dhcpd」、「iked」、「admd」の未解析ログを処理するための Grok パターンを追加しました。
2023-01-20
- 機能拡張 - 未解析ログを処理するための grok を追加しました。
- 「dst_port」を target.port にマッピングしました。
- 「src_port」を principal.port にマッピングしました。
- 「rcvd_bytes」を network.received_bytes にマッピングしました。
- 「geo_src」を principal.location.country_or_region にマッピングしました。
- 「geo_dst」を target.location.country_or_region にマッピングしました。
- 「prin_host」を「principal.hostname」にマッピングしました。
- 「dhcp_type」、「intermediary_host」、「protocol」の条件付きチェックを追加しました
- 「msg_id」が「1600-0066」の場合
- 「msg_id」が「1600-0066」に等しい場合の Grok パターンを追加しました。
- 「description」を「metadeta.description」にマッピングしました。
- 「msg_id」が「2DFF-0000」の場合
- 「proxy_act」を「security_result.rule_name」にマッピングしました。
2022-12-17
- 機能強化 - Member1 を含むログのファイアウォール名を「principal.asset_id」にマッピングしました。
- 「event_type」を「SERVICE_MODIFICATION」から「NETWORK_CONNECTION」に変更しました。
- 「src_user」がメールの場合は「principal.user.email_addresses」に、それ以外の場合は「principal.user.user_display_name」にマッピングしました。
2022-12-16
- 機能強化 -
- event_name が「firewall」の未解析ログを処理する grok を追加しました。
- GENERIC_EVENT タイプを削減しました。
2022-11-16
- 機能強化 - 「reason」フィールドを「security_result.action_details」にマッピングしました。
- event_name が「firewall」の未解析ログを処理する grok を追加しました。
- event_name が「loggerd」、「sigd」、「sessiond」、「admd」、「iked」のログを解析する条件ブロックを追加しました。
2022-11-07
- バグの修正:
- http ヘッダーで指定されたマッピング パスが「target.file.full_path」から「target.url」に変更されました。
2022-06-17
- 機能拡張 - 「firewall」、「http-proxy」、「https-proxy」に関連するイベントを含むログを解析しました。