Palo Alto Networks Traps のログを収集する
このドキュメントでは、Bindplane を使用して Palo Alto Networks Traps ログを Google Security Operations に収集する方法について説明します。パーサーは、CSV 形式と Key-Value 形式のログを処理し、UDM に変換します。Grok と CSV 解析を使用してフィールドを抽出し、特定のログ メッセージまたはフィールド値に基づいて条件ロジックを実行して UDM フィールドにマッピングします。また、ステータスの更新、ネットワーク スキャン、プロセスの作成など、さまざまなイベントタイプを処理します。
始める前に
- Google Security Operations インスタンスがあることを確認します。
- Windows 2016 以降、または
systemdを使用する Linux ホストを使用していることを確認します。 - プロキシの背後で実行している場合は、ファイアウォールのポートが開いていることを確認します。
- Cortex XDR への特権アクセス権があることを確認します。
Bindplane エージェントの Google SecOps 認証情報を取得する
Bindplane エージェントを Google SecOps に対して認証するには、次のいずれかの方法を選択します。
- 新しいデプロイ: Chronicle API(オプション 1)を使用します。
- 以前のデプロイ: 2027 年 7 月 20 日に Ingestion API が廃止されるまで、取り込み認証ファイル(オプション 2)を引き続き使用します。
オプション 1: Chronicle API のサービス アカウントを作成する(推奨)
- Google Cloud コンソールにログインし、Google SecOps インスタンスにリンクされている Google Cloud プロジェクトを選択します。
- [IAM と管理] > [サービス アカウント] に移動します。
- [サービス アカウントを作成] をクリックします。
- 次の構成情報を指定します。
- サービス アカウント名: アカウントの名前を入力します(例:
bindplane-ingest)。 - サービス アカウントの説明: 説明を入力します(例:
Bindplane agent log ingestion)。
- サービス アカウント名: アカウントの名前を入力します(例:
- [作成して続行] をクリックします。
- [このサービス アカウントにプロジェクトへのアクセスを許可する] セクションで、[ロールを選択] をクリックし、[Chronicle 編集者] を選択します。
- [続行] をクリックして [完了] をクリックします。
- 作成したサービス アカウントをクリックし、[キー] タブに移動します。
- [鍵を追加] > [新しい鍵を作成] の順にクリックします。
- [JSON] を選択し、[作成] をクリックします。キーファイルがパソコンにダウンロードされます。
- 鍵ファイルを
ingestion-auth.jsonとして Bindplane コレクタ ディレクトリ(Linux の場合は/opt/observiq-otel-collector/ingestion-auth.json、Windows の場合はC:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json)に保存するか、config.yamlのcreds_file_pathを更新して、保存先のパスと一致させます。 - [IAM と管理] > [設定] に移動し、[プロジェクト番号] をコピーします。これはエクスポータの構成に必要です。
オプション 2: 取り込み認証ファイルをダウンロードする(レガシー)
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [収集エージェント] に移動します。
- 取り込み認証ファイルをダウンロードします。
- Bindplane エージェントがインストールされるシステムにファイルを安全に保存します。
Google SecOps のお客様 ID を取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [プロファイル] に移動します。
- [組織の詳細情報] セクションから [お客様 ID] をコピーして保存します。
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 では/opt/observiq-otel-collector/ディレクトリに、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: protocol: https # Region of your instance, for example us, europe, asia-southeast1 location: <LOCATION> # Project number of the Google Cloud project linked to the instance project: '<PROJECT_NUMBER>' compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds: '/path/to/ingestion-authentication-file.json' # Replace with your actual customer ID from Step 2 customer_id: <customer_id> endpoint: chronicle.googleapis.com # Add optional ingestion labels for better organization ingestion_labels: log_type: PAN_EDR raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labels自社のインフラストラクチャでの必要性に応じて、ポートと IP アドレスを置き換えます。
<LOCATION>は、Google SecOps インスタンスのリージョン(us、europe、asia-southeast1など)に置き換えます。エクスポートでは、この値がchronicle.googleapis.comの接頭辞として使用されます。<PROJECT_NUMBER>は、[IAM と管理] > [設定] のプロジェクト番号に置き換えます。<customer_id>は、実際の顧客 ID に置き換えます。/path/to/ingestion-authentication-file.jsonの値を、Bindplane エージェントの Google SecOps 認証情報を取得するでサービス アカウント キーファイル(オプション 1)を保存したパスに更新します。
以前の Ingestion API エクスポータ
オプション 2 の取り込み認証ファイルを使用する場合は、
exportersブロックを次のように置き換えます。credsを取り込み認証ファイルのパスに設定します。インスタンスが米国以外にある場合は、malachiteingestion-pa.googleapis.comをリージョン エンドポイント(europe-malachiteingestion-pa.googleapis.comなど)に置き換えます。exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds: '/path/to/ingestion-authentication-file.json' # Replace with your actual customer ID from Step 2 customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # Add optional ingestion labels for better organization ingestion_labels: log_type: PAN_EDR raw_log_field: body
Bindplane エージェントを再起動して変更を適用する
Linux で Bindplane エージェントを再起動するには、次のコマンドを実行します。
sudo systemctl restart bindplane-agentWindows で Bindplane エージェントを再起動するには、Services コンソールを使用するか、次のコマンドを入力します。
net stop BindPlaneAgent && net start BindPlaneAgent
Palo Alto Networks Traps を構成する
- Cortex XDR ESM コンソールにログインします。
- [Settings] > [ESM] > [Syslog] を選択します。
- [Syslog を有効にする] チェックボックスをオンにします。
- 次の構成情報を指定します。
- Syslog サーバー: Bindplane エージェントの IP アドレスを入力します。
- Syslog ポート: Bindplane で構成されたポート番号を入力します(例:
514)。 - Syslog protocol: [CEF] を選択します。
- [Keep-alive タイムアウト] を 0 に設定します。
- 通信プロトコル: [UDP] を選択します。
- [セキュリティ イベント] セクションで、次のチェックボックスをオンにします。
- 防止イベント
- 通知イベント
- 検出後のイベント
- [接続を確認] > [保存] をクリックします。
UDM マッピング テーブル
| ログフィールド | UDM マッピング | ロジック |
|---|---|---|
agentId |
event.idm.read_only_udm.additional.fields.value.string_value |
未加工ログの agentId の値は、additional.fields のネストされた構造内の string_value フィールドにマッピングされます。このフィールドの key は Agent ID に設定されています。 |
agentIp |
event.idm.read_only_udm.target.ip |
未加工ログの agentIp の値は、target.ip フィールドにマッピングされます。 |
cat |
event.idm.read_only_udm.security_result.rule_name |
未加工ログの cat の値が security_result.rule_name フィールドにマッピングされます。 |
class |
event.idm.read_only_udm.security_result.category_details |
subClass と組み合わせて使用し、security_result.category_details に class: subClass 形式で値を設定します。 |
cs1 |
event.idm.read_only_udm.principal.application、event.idm.read_only_udm.principal.user.email_addresses |
cs1Label が email で、cs1 が有効なメールアドレスの場合、principal.user.email_addresses にマッピングされます。cs1Label が Initiated by の場合は、principal.application にマッピングされます。 |
cs2 |
event.idm.read_only_udm.principal.process.command_line、event.idm.read_only_udm.security_result.description |
cs2Label が subtype の場合、security_result.description にマッピングされます。cs2Label が Initiator CMD の場合、principal.process.command_line にマッピングされます。 |
cs3 |
event.idm.read_only_udm.security_result.action_details |
cs3Label が result の場合、security_result.action_details にマッピングされます。 |
customerId |
event.idm.read_only_udm.additional.fields.value.string_value |
未加工ログの customerId の値は、additional.fields のネストされた構造内の string_value フィールドにマッピングされます。このフィールドの key は Customer ID に設定されています。 |
date_time |
event.idm.read_only_udm.metadata.event_timestamp.seconds |
解析されてタイムスタンプに変換され、metadata.event_timestamp.seconds にマッピングされます。 |
desc |
event.idm.read_only_udm.metadata.description |
未加工ログの desc の値が metadata.description フィールドにマッピングされます。 |
deviceName |
event.idm.read_only_udm.target.hostname |
未加工ログの deviceName の値は、target.hostname フィールドにマッピングされます。 |
email_receiver |
event.idm.read_only_udm.network.email.to |
msg フィールドにメールアドレスが含まれている場合は、そのフィールドから抽出され、network.email.to にマッピングされます。 |
endpoint_desc |
event.idm.read_only_udm.target.resource.attribute.labels.value |
isEndpoint から取得されます。isEndpoint が 1 の場合は Yes, host is an endpoint.、isEndpoint が 0 の場合は No, host is not an endpoint。key は Is Endpoint に設定します。 |
eventType |
event.idm.read_only_udm.metadata.product_event_type、event.idm.read_only_udm.metadata.event_type |
未加工ログの eventType の値は、metadata.product_event_type フィールドにマッピングされます。また、その値に基づいて metadata.event_type を導出するためにも使用されます(例: Management Audit Logs の場合は EMAIL_TRANSACTION、XDR Analytics BIOC または Behavioral Threat の場合は SCAN_NETWORK)。 |
facility |
event.idm.read_only_udm.additional.fields.value.string_value |
未加工ログの facility の値は、additional.fields の下のネストされた構造内の string_value フィールドにマッピングされます。このフィールドの key は Facility に設定されています。 |
fileHash |
event.idm.read_only_udm.principal.process.file.sha256 |
未加工ログの fileHash の値は小文字に変換され、principal.process.file.sha256 フィールドにマッピングされます。 |
filePath |
event.idm.read_only_udm.principal.process.file.full_path |
未加工ログの filePath の値は、principal.process.file.full_path フィールドにマッピングされます。 |
friendlyName |
event.idm.read_only_udm.metadata.description |
未加工ログの friendlyName の値が metadata.description フィールドにマッピングされます。 |
interm_ip |
event.idm.read_only_udm.intermediary.ip |
未加工ログの interm_ip の値が intermediary.ip フィールドにマッピングされます。 |
isEndpoint |
event.idm.read_only_udm.target.resource.attribute.labels.value |
target.resource.attribute.labels.value の派生に使用されます。 |
isVdi |
event.idm.read_only_udm.target.resource.resource_type |
isVdi が 1 の場合、target.resource.resource_type は VIRTUAL_MACHINE に設定されます。 |
msg |
event.idm.read_only_udm.security_result.summary |
未加工ログの msg の値は、security_result.summary フィールドにマッピングされます。email_receiver の抽出にも使用されます。 |
msgTextEn |
event.idm.read_only_udm.security_result.description |
未加工ログの msgTextEn の値が security_result.description フィールドにマッピングされます。 |
osType |
event.idm.read_only_udm.target.platform、event.idm.read_only_udm.target.resource.attribute.labels.value |
osType が 1 の場合、target.platform は WINDOWS に設定されます。osType が 2 の場合、target.platform は MAC に設定されます。osType が 4 の場合、target.platform は LINUX に設定されます。osType が 3 の場合、その値は key OS を使用して target.resource.attribute.labels.value にマッピングされます。 |
osVersion |
event.idm.read_only_udm.target.platform_version |
未加工ログの osVersion の値が target.platform_version フィールドにマッピングされます。 |
product_version |
event.idm.read_only_udm.metadata.product_version |
未加工ログの product_version の値が metadata.product_version フィールドにマッピングされます。 |
proto |
event.idm.read_only_udm.network.ip_protocol |
proto が udp の場合、network.ip_protocol は UDP に設定されます。 |
recordType |
event.idm.read_only_udm.additional.fields.value.string_value |
未加工ログの recordType の値は、additional.fields の下のネストされた構造内の string_value フィールドにマッピングされます。このフィールドの key は Record Type に設定されています。 |
regionId |
event.idm.read_only_udm.principal.location.country_or_region |
regionId が 10 の場合、principal.location.country_or_region は Americas (N. Virginia) に設定されます。regionId が 70 の場合、principal.location.country_or_region は EMEA (Frankfurt) に設定されます。 |
request |
event.idm.read_only_udm.target.url |
未加工ログの request の値は、target.url フィールドにマッピングされます。 |
sec_category_details |
event.idm.read_only_udm.security_result.category_details |
未加工ログの sec_category_details の値が security_result.category_details フィールドにマッピングされます。 |
sec_desc |
event.idm.read_only_udm.security_result.description |
未加工ログの sec_desc の値は、security_result.description フィールドにマッピングされます。 |
serverHost |
event.idm.read_only_udm.principal.hostname |
未加工ログの serverHost の値が principal.hostname フィールドにマッピングされます。 |
severity |
event.idm.read_only_udm.security_result.severity |
次のロジックで security_result.severity にマッピングされます。2 -> CRITICAL、3 -> ERROR、4 -> MEDIUM、5 -> LOW、6 -> INFORMATIONAL。 |
severity_val |
event.idm.read_only_udm.security_result.severity、event.idm.read_only_udm.security_result.severity_details |
severity_val が 0 の場合、security_result.severity_details は UNKNOWN_SEVERITY に設定されます。それ以外の場合は、次のロジックで security_result.severity にマッピングされます。6 -> LOW、8 -> MEDIUM、9 -> HIGH。 |
shost |
event.idm.read_only_udm.principal.hostname |
未加工ログの shost の値が principal.hostname フィールドにマッピングされます。 |
src_ip |
event.idm.read_only_udm.principal.ip |
未加工ログの src_ip の値は、principal.ip フィールドにマッピングされます。 |
subClass |
event.idm.read_only_udm.security_result.category_details |
class と組み合わせて使用し、security_result.category_details に値を設定します。 |
suser |
event.idm.read_only_udm.principal.user.user_display_name |
未加工ログの suser の値(角かっこ、バックスラッシュ、一重引用符が削除されたもの)が principal.user.user_display_name フィールドにマッピングされます。 |
targetprocesscmd |
event.idm.read_only_udm.target.process.command_line |
未加工ログの targetprocesscmd の値は、target.process.command_line フィールドにマッピングされます。 |
targetprocessname |
event.idm.read_only_udm.target.application |
未加工ログの targetprocessname の値は、target.application フィールドにマッピングされます。 |
targetprocesssha256 |
event.idm.read_only_udm.target.process.file.sha256 |
未加工ログの targetprocesssha256 の値は小文字に変換され、target.process.file.sha256 フィールドにマッピングされます。 |
tenantname |
event.idm.read_only_udm.target.resource.attribute.labels.value |
未加工ログの tenantname の値は、target.resource.attribute.labels のネストされた構造内の value フィールドにマッピングされます。このフィールドの key は Tenant name に設定されています。 |
event.idm.read_only_udm.metadata.event_type |
デフォルトでは STATUS_UPDATE に設定されています。eventType が Management Audit Logs の場合、EMAIL_TRANSACTION に変更されます。eventType が XDR Analytics BIOC または Behavioral Threat の場合、または desc が Behavioral Threat の場合は、SCAN_NETWORK に変更されます。desc が Suspicious Process Creation の場合、SCAN_PROCESS に変更されます。Palo Alto Networks に設定します。Cortex XDR に設定します。PAN_EDR に設定します。eventType が XDR Analytics BIOC または Behavioral Threat の場合、あるいは desc が Behavioral Threat の場合、NETWORK_SUSPICIOUS に設定します。 |
変更ログ
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。