WatchGuard Fireware ログを収集する

以下でサポートされています。

概要

このパーサーは、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 取り込み認証ファイルを取得する

  1. Google SecOps コンソールにログインします。
  2. [SIEM 設定] > [収集エージェント] に移動します。
  3. 取り込み認証ファイルをダウンロードします。

Google SecOps のお客様 ID を取得する

  1. Google SecOps コンソールにログインします。
  2. [SIEM 設定] > [プロファイル] に移動します。
  3. [組織の詳細] セクションから [お客様 ID] をコピーして保存します。

BindPlane Agent をインストールする

  1. Windows へのインストールの場合は、次のスクリプト msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet を実行します。
  2. Linux へのインストールの場合は、sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh スクリプトを実行します。
  3. その他のインストール オプションについては、こちらのインストール ガイドをご覧ください。

Syslog を取り込んで Google SecOps に送信するように BindPlane エージェントを構成する

  1. BindPlane がインストールされているマシンにアクセスします。
  2. 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
    
  3. 次のコマンドを使用して BindPlane エージェントを再起動して、変更を適用します。sudo systemctl bindplane restart

Watchguard に Syslog サーバー構成を追加する

  1. Watchguard UI にログインします。
  2. [システム] > [ロギング] を選択します。
  3. [Syslog Server] タブをクリックします。
  4. [これらの syslog サーバーにログメッセージを送信する] チェックボックスをオンにします。
  5. [追加] をクリックします。
  6. [Syslog Server] ダイアログで、入力パラメータの値を指定します。

    • IP アドレス: サーバーの IP アドレスを入力します。
    • ポート: デフォルトの syslog サーバー ポート(514)を変更し、サーバーの別のポートを入力します。
    • ログ形式: プルダウンから [Syslog] を選択します。
    • 省略可: [説明] に、サーバーの説明を入力します(例: Google SecOps エクスポート)。
    • 省略可: タイムスタンプ: [チェックボックス] をオンにすると、Firebox でイベントが発生した日時がログ メッセージの詳細に含まれます。
    • 省略可: デバイスのシリアル番号: チェックボックスをオンにすると、ログ メッセージの詳細に Firebox のシリアル番号が含まれます。
    • Syslog 施設: ログメッセージのタイプごとに、プルダウンから優先度を選択します(アラームなどの優先度の高い syslog メッセージの場合は、[Local0] を選択します)。
    • 省略可: [デフォルトに戻す]: デフォルト設定に戻します。
  7. [保存] をクリックします。

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.secondstimestamp.seconds 未加工ログの time の値が解析され、metadata.event_timestamp.secondstimestamp.seconds の入力に使用されます。
time1 metadata.event_timestamp.secondstimestamp.seconds 未加工ログの time1 の値が解析され、metadata.event_timestamp.secondstimestamp.seconds の入力に使用されます。
tls_profile about.labels.value 元のログの tls_profile の値が about.labels.value に割り当てられ、about.labels.key は「tls_profile」になります。
tls_version マッピングされていません 提供された UDM の例の IDM オブジェクトにマッピングされていない。
user_name principal.user.useridprincipal.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_idlog_typeevent_name などのフィールドに基づいてパーサー ロジックによって決定されます。NETWORK_CONNECTIONSERVICE_MODIFICATIONNETWORK_SMTPNETWORK_DNSNETWORK_HTTPUSER_LOGINUSER_LOGOUTUSER_RESOURCE_UPDATE_CONTENTRESOURCE_PERMISSIONS_CHANGERESOURCE_CREATIONGENERIC_EVENTSTATUS_UPDATEUSER_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_idevent_name に基づくパーサー ロジックによって決定されます。「DNS」、「DHCP」、「HTTP」、「HTTPS」のいずれか。
(なし) network.dns.questions.type 「A」レコードのクエリの場合は 1 に設定します。
(なし) target.labels.key actiontarget.labels.value にマッピングされている場合は、[リソースに対するアクション] に設定します。
(なし) intermediary.labels.key prin_hostintermediary.labels.value にマッピングされている場合は、「ファイアウォール メンバー名」に設定します。
(なし) intermediary.labels.key endpointintermediary.labels.value にマッピングされている場合は、「Gateway-Endpoint」に設定します。
(なし) principal.labels.key gatewayprincipal.labels.value にマッピングされている場合は「Gateway」に設定します。
(なし) target.labels.key gatewaytarget.labels.value にマッピングされている場合は「Gateway」に設定します。
(なし) principal.labels.key statusprincipal.labels.value にマッピングされている場合は「state」に設定します。
(なし) target.labels.key statustarget.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」に関連するイベントを含むログを解析しました。