Palo Alto Prisma Cloud のアラートログを収集する
概要
このパーサーは、Palo Alto Prisma Cloud からアラートログを JSON 形式で抽出し、UDM に変換します。パーサーは、データ正規化、型変換、条件付きロジックを実行して、適切な UDM フィールドに入力します。また、ログデータ内のネストされた JSON 構造と配列を処理して、関連情報を抽出します。
始める前に
次の前提条件を満たしていることを確認します。
- Google SecOps インスタンス。
- Palo Alto Prisma Cloud への特権アクセス。
フィードを設定する
Google SecOps プラットフォームでフィードを設定するには、次の 2 つのエントリ ポイントがあります。
- [SIEM 設定] > [フィード]
- [Content Hub] > [Content Packs]
[SIEM 設定] > [フィード] でフィードを設定する
フィードを構成する手順は次のとおりです。
- [SIEM Settings] > [Feeds] に移動します。
- [Add New Feed] をクリックします。
- 次のページで [単一のフィードを設定] をクリックします。
- [フィード名] フィールドに、フィードの名前を入力します(例: PAN Prisma Cloud Alerts)。
- [Source type] として [Webhook] を選択します。
- [ログタイプ] として [Palo Alto Prisma Cloud Alerts payload] を選択します。
- [次へ] をクリックします。
- 省略可: 次の入力パラメータの値を指定します。
- Split delimiter: ログ行を区切るために使用される区切り文字(
\n
など)。
- Split delimiter: ログ行を区切るために使用される区切り文字(
- [次へ] をクリックします。
- [Finalize] 画面でフィードの設定を確認し、[Submit] をクリックします。
- [秘密鍵を生成する] をクリックして、このフィードを認証するためのシークレット キーを生成します。
- 秘密鍵をコピーして保存します。この秘密鍵を再び表示することはできません。必要に応じて、新しい秘密鍵を再生成できますが、その場合以前の秘密鍵は無効になります。
- [詳細] タブで、[エンドポイント情報] フィールドから、フィードのエンドポイント URL をコピーします。 このエンドポイント URL をクライアント アプリケーション内で指定する必要があります。
- [完了] をクリックします。
コンテンツ ハブからフィードを設定する
次のフィールドに値を指定します。
- Split delimiter: ログ行を区切るために使用される区切り文字(
\n
など)。
詳細オプション
- フィード名: フィードを識別する値が事前入力されています。
- ソースタイプ: ログを Google SecOps に収集するために使用される方法。
- アセット Namespace: フィードに関連付けられた Namespace。
Ingestion Labels: このフィードのすべてのイベントに適用されるラベル。
[秘密鍵を生成する] をクリックして、このフィードを認証するためのシークレット キーを生成します。
秘密鍵をコピーして保存します。この秘密鍵を再び表示することはできません。必要に応じて、新しい秘密鍵を再生成できますが、その場合以前の秘密鍵は無効になります。
[詳細] タブで、[エンドポイント情報] フィールドから、フィードのエンドポイント URL をコピーします。 このエンドポイント URL をクライアント アプリケーション内で指定する必要があります。
Webhook フィード用の API キーを作成する
Google Cloud コンソール > [認証情報] に移動します。
[認証情報を作成] をクリックして [API キー] を選択します。
API キーのアクセスを Google Security Operations API に制限します。
エンドポイント URL を指定する
- クライアント アプリケーション内で、Webhook フィードで提供される HTTPS エンドポイント URL を指定します。
次の形式でカスタム ヘッダーの一部として API キーと秘密鍵を指定して、認証を有効にします。
X-goog-api-key = API_KEY X-Webhook-Access-Key = SECRET
推奨事項: API キーは URL 内で指定するのではなくヘッダーとして指定してください。
Webhook クライアントがカスタム ヘッダーをサポートしていない場合は、次の形式のクエリ パラメータを使用して API キーと秘密鍵を指定できます。
ENDPOINT_URL?key=API_KEY&secret=SECRET
以下を置き換えます。
ENDPOINT_URL
: フィード エンドポイントの URL。API_KEY
: Google Security Operations に対する認証に使用する API キー。SECRET
: フィードの認証用に生成した秘密鍵。
Google SecOps への Palo Alto Prisma Cloud ウェブフックを構成する
- Palo Alto Prisma Cloud にログインします。
- [設定] > [インテグレーションと通知] ((and_then)) [インテグレーション] を選択します。
- [統合を追加] をクリックします。
- [Webhook] を選択します。
- 次の入力パラメータの値を指定します。
- Integration Name: 一意でわかりやすい名前を指定します(例: Google SecOps)。
- Webhook URL: ENDPOINT_URL を入力します。
- 省略可: 統合の説明を指定します。
- 省略可: [カスタム ペイロード] を有効にして > [次へ] をクリックし、カスタム ペイロードを確認または修正します。
- [次へ] をクリックします。
- [Test] と [Save Integration] をクリックします。
Palo Alto Prisma Cloud アラートを構成する
- Palo Alto Prisma Cloud コンソールで、[アラート] > [アラート ルールの表示] に移動します。
- 編集する既存のアラートルールを選択します。
- 省略可: Cloud Infrastructure の新しいアラートを作成します。
- 省略可: Cloud Workload の新しいアラートを作成します。
- [Configure Notifications] に移動します。
- [Webhook] を選択します。
- 省略可: アラート ルールによってトリガーされたアラートの通知を送信するチャネルを選択します。
- [次へ] をクリックします。
- [保存] をクリックします。
UDM マッピング テーブル
ログフィールド | UDM マッピング | 論理 |
---|---|---|
accountId |
target.resource.id |
未加工ログの accountId の値。 |
accountId |
target.resource.product_object_id |
未加工ログの accountId の値。これは、非推奨の resource.id フィールドをオーバーライドします。 |
alertId |
security_result.detection_fields[].key |
キーは「アラート ID」に設定されます。 |
alertId |
security_result.detection_fields[].value |
未加工ログの alertId の値。 |
alertRuleId |
security_result.rule_id |
未加工ログの alertRuleId の値。 |
alertRuleName |
security_result.rule_name |
未加工ログの alertRuleName の値。 |
alertStatus |
security_result.detection_fields[].key |
キーは「アラート ステータス」に設定されます。 |
alertStatus |
security_result.detection_fields[].value |
未加工ログの alertStatus の値。 |
alertTs |
security_result.detection_fields[].key |
キーは「alertTs」に設定されます。 |
alertTs |
security_result.detection_fields[].value |
未加工ログの alertTs の値(文字列に変換)。 |
callbackUrl |
metadata.url_back_to_product |
未加工ログの callbackUrl の値。 |
cloudType |
principal.cloud.environment |
cloudType が「gcp」の場合(大文字と小文字を区別しない)、値は「GOOGLE_CLOUD_PLATFORM」に設定されます。 |
complianceMetadata[].complianceId |
security_result.detection_fields[].key |
キーは「complianceId」に設定されます。 |
complianceMetadata[].complianceId |
security_result.detection_fields[].value |
未加工ログの complianceMetadata[].complianceId の値。 |
complianceMetadata[].customAssigned |
security_result.detection_fields[].key |
キーは「customAssigned」に設定されます。 |
complianceMetadata[].customAssigned |
security_result.detection_fields[].value |
未加工ログの complianceMetadata[].customAssigned の値(文字列に変換)。 |
complianceMetadata[].policyId |
security_result.detection_fields[].key |
キーは「Policy Id」に設定されます。 |
complianceMetadata[].policyId |
security_result.detection_fields[].value |
未加工ログの complianceMetadata[].policyId の値。 |
complianceMetadata[].requirementId |
security_result.rule_id |
未加工ログの complianceMetadata[].requirementId の値。 |
complianceMetadata[].requirementName |
security_result.summary |
未加工ログの complianceMetadata[].requirementName の値。 |
complianceMetadata[].requirementViewOrder |
security_result.detection_fields[].key |
キーは「requirementViewOrder」に設定されます。 |
complianceMetadata[].requirementViewOrder |
security_result.detection_fields[].value |
未加工ログの complianceMetadata[].requirementViewOrder の値(文字列に変換)。 |
complianceMetadata[].sectionDescription |
security_result.detection_fields[].key |
キーは「sectionDescription」に設定されます。 |
complianceMetadata[].sectionDescription |
security_result.detection_fields[].value |
未加工ログの complianceMetadata[].sectionDescription の値。 |
complianceMetadata[].sectionId |
security_result.detection_fields[].key |
キーは「sectionId」に設定されます。 |
complianceMetadata[].sectionId |
security_result.detection_fields[].value |
未加工ログの complianceMetadata[].sectionId の値。 |
complianceMetadata[].sectionLabel |
security_result.detection_fields[].key |
キーは「sectionLabel」に設定されます。 |
complianceMetadata[].sectionLabel |
security_result.detection_fields[].value |
未加工ログの complianceMetadata[].sectionLabel の値。 |
complianceMetadata[].sectionViewOrder |
security_result.detection_fields[].key |
キーは「sectionViewOrder」に設定されます。 |
complianceMetadata[].sectionViewOrder |
security_result.detection_fields[].value |
未加工ログの complianceMetadata[].sectionViewOrder の値(文字列に変換)。 |
complianceMetadata[].standardDescription |
security_result.detection_fields[].key |
キーは「standardDescription」に設定されます。 |
complianceMetadata[].standardDescription |
security_result.detection_fields[].value |
未加工ログの complianceMetadata[].standardDescription の値。 |
complianceMetadata[].standardName |
security_result.rule_name |
未加工ログの complianceMetadata[].standardName の値。 |
complianceMetadata[].systemDefault |
security_result.detection_fields[].key |
キーは「systemDefault」に設定されます。 |
complianceMetadata[].systemDefault |
security_result.detection_fields[].value |
未加工ログの complianceMetadata[].systemDefault の値(文字列に変換)。 |
create_time |
metadata.event_timestamp 、events[].timestamp |
未加工ログの create_time の値。 |
data.allocationId |
principal.resource.product_object_id |
未加工ログの data.allocationId の値。 |
data.publicIp |
principal.ip |
未加工ログの data.publicIp の値。 |
deleted |
additional.fields[].key |
キーは「deleted」に設定されます。 |
deleted |
additional.fields[].value.string_value |
未加工ログの deleted の値(文字列に変換)。 |
description |
metadata.description |
未加工ログの description の値。 |
firstSeen |
principal.asset.first_seen_time |
未加工ログの firstSeen の値。タイムスタンプ(UNIX_MS または UNIX 形式)として解析されます。 |
hasFinding |
security_result.detection_fields[].key |
キーは「hasFinding」に設定されます。 |
hasFinding |
security_result.detection_fields[].value |
未加工ログの hasFinding の値(文字列に変換)。 |
lastSeen |
principal.asset.last_discover_time |
未加工ログの lastSeen の値。タイムスタンプ(UNIX_MS または UNIX 形式)として解析されます。 |
なし | metadata.event_type |
ログの特定のイベントタイプでオーバーライドされていない場合は、「USER_RESOURCE_ACCESS」に設定されます。それ以外の場合は、「GENERIC_EVENT」に設定されます。 |
なし | metadata.product_name |
「CASB」にハードコードされています。 |
なし | metadata.vendor_name |
「Palo Alto Networks」にハードコードされています。 |
policyDescription |
security_result.detection_fields[].key |
キーは「policyDescription」に設定されます。 |
policyDescription |
security_result.detection_fields[].value |
未加工ログの policyDescription の値。 |
policyId |
security_result.detection_fields[].key |
キーは「Policy Id」に設定されます。 |
policyId |
security_result.detection_fields[].value |
未加工ログの policyId の値。 |
policyLabels |
additional.fields[].key |
キーは「policyLabels」に設定されます。 |
policyLabels |
additional.fields[].value.string_value |
未加工ログの policyLabels の値。 |
policyName |
security_result.description |
未加工ログの policyName の値。 |
policyRecommendation |
security_result.detection_fields[].key |
キーは「policy recommendation」に設定されます。 |
policyRecommendation |
security_result.detection_fields[].value |
未加工ログの policyRecommendation の値。 |
policyType |
security_result.detection_fields[].key |
キーは「Policy Type」に設定されます。 |
policyType |
security_result.detection_fields[].value |
未加工ログの policyType の値。 |
reason |
security_result.summary |
未加工ログの reason の値。 |
recommendation |
security_result.detection_fields[].key |
キーは「Recommendation」に設定されます。 |
recommendation |
security_result.detection_fields[].value |
未加工ログの recommendation の値。 |
resource.additionalInfo |
principal.resource.attribute.labels[].key |
キーは「resource additionalInfo」に設定されます。 |
resource.additionalInfo |
principal.resource.attribute.labels[].value |
未加工ログの resource.additionalInfo の値。 |
resource.cloudAccountGroups |
principal.resource.attribute.labels[].key |
キーは「resource cloudAccountGroups {index}」に設定されます。 |
resource.cloudAccountGroups |
principal.resource.attribute.labels[].value |
未加工ログの resource.cloudAccountGroups[] の値。 |
resource.cloudType |
principal.resource.attribute.labels[].key |
キーは「resource cloudType」に設定されます。 |
resource.cloudType |
principal.resource.attribute.labels[].value |
未加工ログの resource.cloudType の値。 |
resource.data |
principal.resource.attribute.labels[].key |
キーは「resource data {nested_key}」に設定されます。 |
resource.data |
principal.resource.attribute.labels[].value |
未加工ログの resource.data[] の値。 |
resource.id |
principal.resource.product_object_id |
未加工ログの resource.id の値。 |
resource.name |
principal.resource.name |
未加工ログの resource.name の値。 |
resource.region |
principal.location.country_or_region |
未加工ログの resource.region の値。 |
resource.regionId |
principal.cloud.availability_zone |
未加工ログの resource.regionId の値。 |
resource.resourceApiName |
principal.resource.attribute.labels[].key |
キーは「resource resourceApiName」に設定されます。 |
resource.resourceApiName |
principal.resource.attribute.labels[].value |
未加工ログの resource.resourceApiName の値。 |
resource.resourceTags |
principal.resource.attribute.labels[].key |
キーは「resource resourceTags {nested_key}」に設定されます。 |
resource.resourceTags |
principal.resource.attribute.labels[].value |
未加工ログの resource.resourceTags[] の値。 |
resource.resourceTs |
principal.resource.attribute.labels[].key |
キーは「resource resourceTs」に設定されます。 |
resource.resourceTs |
principal.resource.attribute.labels[].value |
未加工ログの resource.resourceTs の値。 |
resource.resourceType |
principal.resource.attribute.labels[].key |
キーは「resource resourceType」に設定されます。 |
resource.resourceType |
principal.resource.attribute.labels[].value |
未加工ログの resource.resourceType の値。 |
resource.rrn |
principal.resource.attribute.labels[].key |
キーは「resource rrn」に設定されます。 |
resource.rrn |
principal.resource.attribute.labels[].value |
未加工ログの resource.rrn の値。 |
resource.url |
principal.url |
未加工ログの resource.url の値。 |
resourceCloudService |
principal.resource.attribute.labels[].key |
キーは「resource cloud service」に設定されます。 |
resourceCloudService |
principal.resource.attribute.labels[].value |
未加工ログの resourceCloudService の値。 |
resourceName |
principal.resource.name |
未加工ログの resourceName の値。 |
resourceRegion |
principal.location.country_or_region |
未加工ログの resourceRegion の値。 |
resourceRegionId |
principal.cloud.availability_zone |
未加工ログの resourceRegionId の値。 |
resourceType |
target.resource.resource_subtype |
未加工ログの resourceType の値。 |
severity |
security_result.severity |
未加工ログの severity の値(大文字に変換)。UDM の重大度値(CRITICAL、HIGH、MEDIUM、LOW、INFORMATIONAL)にマッピングされます。 |
source |
principal.application |
未加工ログの source の値。 |
unifiedAssetId |
principal.asset.asset_id |
未加工ログの unifiedAssetId の値。接頭辞は「ASSETID:」です。 |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。