WatchGuard Fireware ログを収集する
以下でサポートされています。
Google SecOps
SIEM
概要
このパーサーは、JSON または Key-Value(KV)形式の WatchGuard Fireware ログを抽出し、UDM に変換します。「トラフィック」ログと「イベント」ログを異なる方法で処理します。grok フィルタと kv フィルタを使用してフィールドを抽出し、UDM にマッピングします。さまざまな msg_id
値とイベント名に固有のロジックを使用して、ネットワーク プロトコル、ユーザー アクション、セキュリティの結果などの関連する詳細を処理します。また、2 つ目の syslog エントリのグループを処理し、同様の情報を抽出して UDM 形式にマッピングします。
始める前に
- Google SecOps インスタンスがあることを確認します。
- Watchguard に対する特権アクセス権があることを確認します。
- Windows 2012 SP2 以降または systemd を使用する Linux ホストがあることを確認します。
- プロキシの背後で実行している場合は、ファイアウォール ポートが開いていることを確認します。
Google SecOps の取り込み認証ファイルを取得する
- Google SecOps コンソールにログインします。
- [SIEM Settings] > [Collection Agents] に移動します。
- Ingestion Authentication File をダウンロードします。
Google SecOps のお客様 ID を取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [プロファイル] に移動します。
- [組織の詳細情報] セクションから [お客様 ID] をコピーして保存します。
Bindplane エージェントをインストールする
- 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 Agent を構成する
- 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 Agent を再起動して、変更を適用します。
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 - 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 のプロフェッショナルから回答を得ることができます。