Palo Alto Prisma Cloud-Benachrichtigungslogs erfassen
Übersicht
Dieser Parser extrahiert Warnungslogs aus Palo Alto Prisma Cloud im JSON-Format und wandelt sie in das UDM um. Der Parser führt Datennormalisierung, Typkonvertierungen und bedingte Logik aus, um die entsprechenden UDM-Felder zu füllen. Außerdem werden verschachtelte JSON-Strukturen und Arrays in den Logdaten verarbeitet, um relevante Informationen zu extrahieren.
Hinweise
Prüfen Sie, ob die folgenden Voraussetzungen erfüllt sind:
- Google SecOps-Instanz.
- Berechtigter Zugriff auf Palo Alto Prisma Cloud.
Feeds einrichten
Es gibt zwei verschiedene Einstiegspunkte zum Einrichten von Feeds in der Google SecOps-Plattform:
- SIEM-Einstellungen > Feeds
- Content Hub> Content-Pakete
Feeds über „SIEM-Einstellungen“ > „Feeds“ einrichten
So konfigurieren Sie einen Feed:
- Rufen Sie die SIEM-Einstellungen > Feeds auf.
- Klicken Sie auf Neuen Feed hinzufügen.
- Klicken Sie auf der nächsten Seite auf Einen einzelnen Feed konfigurieren.
- Geben Sie im Feld Feed name (Feedname) einen Namen für den Feed ein, z. B. PAN Prisma Cloud Alerts (PAN Prisma Cloud-Benachrichtigungen).
- Wählen Sie Webhook als Quelltyp aus.
- Wählen Sie Palo Alto Prisma Cloud Alerts payload als Logtyp aus.
- Klicken Sie auf Weiter.
- Optional: Geben Sie Werte für die folgenden Eingabeparameter an:
- Trennzeichen für Aufteilung: Das Trennzeichen, das zum Trennen von Logzeilen verwendet wird, z. B.
\n
.
- Trennzeichen für Aufteilung: Das Trennzeichen, das zum Trennen von Logzeilen verwendet wird, z. B.
- Klicken Sie auf Weiter.
- Prüfen Sie die Feedkonfiguration auf dem Bildschirm Finalize (Abschließen) und klicken Sie dann auf Submit (Senden).
- Klicken Sie auf Geheimen Schlüssel generieren, um einen geheimen Schlüssel zur Authentifizierung dieses Feeds zu generieren.
- Kopieren Sie den geheimen Schlüssel und speichern Sie ihn. Sie können diesen geheimen Schlüssel nicht noch einmal aufrufen. Bei Bedarf können Sie einen neuen geheimen Schlüssel generieren. Dadurch wird der vorherige geheime Schlüssel jedoch ungültig.
- Kopieren Sie auf dem Tab Details die Feed-Endpunkt-URL aus dem Feld Endpunktinformationen. Sie müssen diese Endpunkt-URL in Ihrer Clientanwendung angeben.
- Klicken Sie auf Fertig.
Feeds über den Content Hub einrichten
Geben Sie Werte für die folgenden Felder an:
- Trennzeichen für Aufteilung: Das Trennzeichen, das zum Trennen von Logzeilen verwendet wird, z. B.
\n
.
Erweiterte Optionen
- Feedname:Ein vorausgefüllter Wert, der den Feed identifiziert.
- Quelltyp:Methode, die zum Erfassen von Logs in Google SecOps verwendet wird.
- Asset-Namespace:Der mit dem Feed verknüpfte Namespace.
Aufnahmelabels:Labels, die auf alle Ereignisse aus diesem Feed angewendet werden.
Klicken Sie auf Geheimen Schlüssel generieren, um einen geheimen Schlüssel zur Authentifizierung dieses Feeds zu generieren.
Kopieren Sie den geheimen Schlüssel und speichern Sie ihn. Sie können diesen geheimen Schlüssel nicht noch einmal aufrufen. Bei Bedarf können Sie einen neuen geheimen Schlüssel generieren. Dadurch wird der vorherige geheime Schlüssel jedoch ungültig.
Kopieren Sie auf dem Tab Details die Feed-Endpunkt-URL aus dem Feld Endpunktinformationen. Sie müssen diese Endpunkt-URL in Ihrer Clientanwendung angeben.
API-Schlüssel für den Webhook-Feed erstellen
Rufen Sie die Google Cloud Console > Anmeldedaten auf.
Klicken Sie auf Anmeldedaten erstellen und wählen Sie anschließend API-Schlüssel aus.
Schränken Sie den API-Schlüsselzugriff auf die Google Security Operations API ein.
Endpunkt-URL angeben
- Geben Sie in Ihrer Clientanwendung die HTTPS-Endpunkt-URL an, die im Webhook-Feed bereitgestellt wird.
Aktivieren Sie die Authentifizierung, indem Sie den API-Schlüssel und den geheimen Schlüssel als Teil des benutzerdefinierten Headers im folgenden Format angeben:
X-goog-api-key = API_KEY X-Webhook-Access-Key = SECRET
Empfehlung: Geben Sie den API-Schlüssel als Header an, anstatt ihn in der URL anzugeben.
Wenn Ihr Webhook-Client keine benutzerdefinierten Headern unterstützt, können Sie den API-Schlüssel und den geheimen Schlüssel mit Suchparametern im folgenden Format angeben:
ENDPOINT_URL?key=API_KEY&secret=SECRET
Ersetzen Sie Folgendes:
ENDPOINT_URL
: Die URL des Feed-Endpunkts.API_KEY
: Der API-Schlüssel für die Authentifizierung bei Google Security Operations.SECRET
: Der geheime Schlüssel, den Sie zur Authentifizierung des Feeds generiert haben.
Palo Alto Prisma Cloud-Webhook für Google SecOps konfigurieren
- Melden Sie sich in Palo Alto Prisma Cloud an.
- Wählen Sie Einstellungen > Integrationen und Benachrichtigungen ((and_then)) Integrationen aus.
- Klicken Sie auf Integration hinzufügen.
- Wählen Sie Webhook aus.
- Geben Sie Werte für die folgenden Eingabeparameter an:
- Name der Integration: Geben Sie einen eindeutigen und aussagekräftigen Namen an (z. B. Google SecOps).
- Webhook-URL: Geben Sie die ENDPOINT_URL ein.
- Optional: Geben Sie eine Beschreibung der Integration ein.
- Optional: Aktivieren Sie Benutzerdefinierte Nutzlast > klicken Sie auf Weiter, um die benutzerdefinierte Nutzlast zu prüfen oder zu bearbeiten.
- Klicken Sie auf Weiter.
- Klicken Sie auf Test (Testen) und Save Integration (Integration speichern).
Palo Alto Prisma Cloud-Benachrichtigungen konfigurieren
- Wechseln Sie in der Palo Alto Prisma Cloud Console zu Alerts > View Alert Rules (Benachrichtigungen > Benachrichtigungsregeln ansehen).
- Wählen Sie eine vorhandene Benachrichtigungsregel aus, die Sie bearbeiten möchten.
- Optional: Neue Benachrichtigung für Cloud-Infrastruktur erstellen.
- Optional: Erstellen Sie eine neue Benachrichtigung für Cloud Workload.
- Rufen Sie Benachrichtigungen konfigurieren auf.
- Wählen Sie Webhook aus.
- Optional: Wählen Sie die Kanäle aus, über die Benachrichtigungen zu Benachrichtigungen gesendet werden sollen, die durch die Benachrichtigungsregel ausgelöst werden.
- Klicken Sie auf Weiter.
- Klicken Sie auf Speichern.
UDM-Zuordnungstabelle
Logfeld | UDM-Zuordnung | Logik |
---|---|---|
accountId |
target.resource.id |
Der Wert von accountId aus dem Rohlog. |
accountId |
target.resource.product_object_id |
Der Wert von accountId aus dem Rohlog. Dadurch wird das eingestellte Feld resource.id überschrieben. |
alertId |
security_result.detection_fields[].key |
Der Schlüssel ist auf „alert id“ festgelegt. |
alertId |
security_result.detection_fields[].value |
Der Wert von alertId aus dem Rohlog. |
alertRuleId |
security_result.rule_id |
Der Wert von alertRuleId aus dem Rohlog. |
alertRuleName |
security_result.rule_name |
Der Wert von alertRuleName aus dem Rohlog. |
alertStatus |
security_result.detection_fields[].key |
Der Schlüssel ist auf „alert status“ festgelegt. |
alertStatus |
security_result.detection_fields[].value |
Der Wert von alertStatus aus dem Rohlog. |
alertTs |
security_result.detection_fields[].key |
Der Schlüssel ist auf „alertTs“ gesetzt. |
alertTs |
security_result.detection_fields[].value |
Der Wert von alertTs aus dem Rohlog, in einen String konvertiert. |
callbackUrl |
metadata.url_back_to_product |
Der Wert von callbackUrl aus dem Rohlog. |
cloudType |
principal.cloud.environment |
Wenn cloudType „gcp“ (Groß-/Kleinschreibung wird nicht beachtet) ist, wird der Wert auf „GOOGLE_CLOUD_PLATFORM“ gesetzt. |
complianceMetadata[].complianceId |
security_result.detection_fields[].key |
Der Schlüssel ist auf „complianceId“ gesetzt. |
complianceMetadata[].complianceId |
security_result.detection_fields[].value |
Der Wert von complianceMetadata[].complianceId aus dem Rohlog. |
complianceMetadata[].customAssigned |
security_result.detection_fields[].key |
Der Schlüssel ist auf „customAssigned“ gesetzt. |
complianceMetadata[].customAssigned |
security_result.detection_fields[].value |
Der Wert von complianceMetadata[].customAssigned aus dem Rohlog, in einen String konvertiert. |
complianceMetadata[].policyId |
security_result.detection_fields[].key |
Der Schlüssel ist auf „Policy Id“ (Richtlinien-ID) festgelegt. |
complianceMetadata[].policyId |
security_result.detection_fields[].value |
Der Wert von complianceMetadata[].policyId aus dem Rohlog. |
complianceMetadata[].requirementId |
security_result.rule_id |
Der Wert von complianceMetadata[].requirementId aus dem Rohlog. |
complianceMetadata[].requirementName |
security_result.summary |
Der Wert von complianceMetadata[].requirementName aus dem Rohlog. |
complianceMetadata[].requirementViewOrder |
security_result.detection_fields[].key |
Der Schlüssel ist auf „requirementViewOrder“ gesetzt. |
complianceMetadata[].requirementViewOrder |
security_result.detection_fields[].value |
Der Wert von complianceMetadata[].requirementViewOrder aus dem Rohlog, in einen String konvertiert. |
complianceMetadata[].sectionDescription |
security_result.detection_fields[].key |
Der Schlüssel ist auf „sectionDescription“ festgelegt. |
complianceMetadata[].sectionDescription |
security_result.detection_fields[].value |
Der Wert von complianceMetadata[].sectionDescription aus dem Rohlog. |
complianceMetadata[].sectionId |
security_result.detection_fields[].key |
Der Schlüssel ist auf „sectionId“ festgelegt. |
complianceMetadata[].sectionId |
security_result.detection_fields[].value |
Der Wert von complianceMetadata[].sectionId aus dem Rohlog. |
complianceMetadata[].sectionLabel |
security_result.detection_fields[].key |
Der Schlüssel ist auf „sectionLabel“ festgelegt. |
complianceMetadata[].sectionLabel |
security_result.detection_fields[].value |
Der Wert von complianceMetadata[].sectionLabel aus dem Rohlog. |
complianceMetadata[].sectionViewOrder |
security_result.detection_fields[].key |
Der Schlüssel ist auf „sectionViewOrder“ gesetzt. |
complianceMetadata[].sectionViewOrder |
security_result.detection_fields[].value |
Der Wert von complianceMetadata[].sectionViewOrder aus dem Rohlog, in einen String konvertiert. |
complianceMetadata[].standardDescription |
security_result.detection_fields[].key |
Der Schlüssel ist auf „standardDescription“ festgelegt. |
complianceMetadata[].standardDescription |
security_result.detection_fields[].value |
Der Wert von complianceMetadata[].standardDescription aus dem Rohlog. |
complianceMetadata[].standardName |
security_result.rule_name |
Der Wert von complianceMetadata[].standardName aus dem Rohlog. |
complianceMetadata[].systemDefault |
security_result.detection_fields[].key |
Der Schlüssel ist auf „systemDefault“ gesetzt. |
complianceMetadata[].systemDefault |
security_result.detection_fields[].value |
Der Wert von complianceMetadata[].systemDefault aus dem Rohlog, in einen String konvertiert. |
create_time |
metadata.event_timestamp , events[].timestamp |
Der Wert von create_time aus dem Rohlog. |
data.allocationId |
principal.resource.product_object_id |
Der Wert von data.allocationId aus dem Rohlog. |
data.publicIp |
principal.ip |
Der Wert von data.publicIp aus dem Rohlog. |
deleted |
additional.fields[].key |
Der Schlüssel ist auf „deleted“ (gelöscht) gesetzt. |
deleted |
additional.fields[].value.string_value |
Der Wert von deleted aus dem Rohlog, in einen String konvertiert. |
description |
metadata.description |
Der Wert von description aus dem Rohlog. |
firstSeen |
principal.asset.first_seen_time |
Der Wert von firstSeen aus dem Rohlog, der als Zeitstempel (UNIX_MS oder UNIX-Format) geparst wird. |
hasFinding |
security_result.detection_fields[].key |
Der Schlüssel ist auf „hasFinding“ gesetzt. |
hasFinding |
security_result.detection_fields[].value |
Der Wert von hasFinding aus dem Rohlog, in einen String konvertiert. |
lastSeen |
principal.asset.last_discover_time |
Der Wert von lastSeen aus dem Rohlog, der als Zeitstempel (UNIX_MS oder UNIX-Format) geparst wird. |
– | metadata.event_type |
Wird auf „USER_RESOURCE_ACCESS“ festgelegt, sofern nicht durch einen bestimmten Ereignistyp aus dem Log überschrieben. Andernfalls auf „GENERIC_EVENT“ setzen. |
– | metadata.product_name |
Fest codiert als „CASB“. |
– | metadata.vendor_name |
Fest codiert auf „Palo Alto Networks“. |
policyDescription |
security_result.detection_fields[].key |
Der Schlüssel ist auf „policyDescription“ festgelegt. |
policyDescription |
security_result.detection_fields[].value |
Der Wert von policyDescription aus dem Rohlog. |
policyId |
security_result.detection_fields[].key |
Der Schlüssel ist auf „Policy Id“ (Richtlinien-ID) festgelegt. |
policyId |
security_result.detection_fields[].value |
Der Wert von policyId aus dem Rohlog. |
policyLabels |
additional.fields[].key |
Der Schlüssel ist auf „policyLabels“ festgelegt. |
policyLabels |
additional.fields[].value.string_value |
Der Wert von policyLabels aus dem Rohlog. |
policyName |
security_result.description |
Der Wert von policyName aus dem Rohlog. |
policyRecommendation |
security_result.detection_fields[].key |
Der Schlüssel ist auf „policy recommendation“ (Richtlinienempfehlung) festgelegt. |
policyRecommendation |
security_result.detection_fields[].value |
Der Wert von policyRecommendation aus dem Rohlog. |
policyType |
security_result.detection_fields[].key |
Der Schlüssel ist auf „Policy Type“ (Richtlinientyp) festgelegt. |
policyType |
security_result.detection_fields[].value |
Der Wert von policyType aus dem Rohlog. |
reason |
security_result.summary |
Der Wert von reason aus dem Rohlog. |
recommendation |
security_result.detection_fields[].key |
Der Schlüssel ist auf „Recommendation“ gesetzt. |
recommendation |
security_result.detection_fields[].value |
Der Wert von recommendation aus dem Rohlog. |
resource.additionalInfo |
principal.resource.attribute.labels[].key |
Der Schlüssel ist auf „resource additionalInfo“ festgelegt. |
resource.additionalInfo |
principal.resource.attribute.labels[].value |
Der Wert von resource.additionalInfo aus dem Rohlog. |
resource.cloudAccountGroups |
principal.resource.attribute.labels[].key |
Der Schlüssel ist auf „resource cloudAccountGroups {index}“ festgelegt. |
resource.cloudAccountGroups |
principal.resource.attribute.labels[].value |
Der Wert von resource.cloudAccountGroups[] aus dem Rohlog. |
resource.cloudType |
principal.resource.attribute.labels[].key |
Der Schlüssel ist auf „resource cloudType“ festgelegt. |
resource.cloudType |
principal.resource.attribute.labels[].value |
Der Wert von resource.cloudType aus dem Rohlog. |
resource.data |
principal.resource.attribute.labels[].key |
Der Schlüssel ist auf „resource data {nested_key}“ festgelegt. |
resource.data |
principal.resource.attribute.labels[].value |
Der Wert von resource.data[] aus dem Rohlog. |
resource.id |
principal.resource.product_object_id |
Der Wert von resource.id aus dem Rohlog. |
resource.name |
principal.resource.name |
Der Wert von resource.name aus dem Rohlog. |
resource.region |
principal.location.country_or_region |
Der Wert von resource.region aus dem Rohlog. |
resource.regionId |
principal.cloud.availability_zone |
Der Wert von resource.regionId aus dem Rohlog. |
resource.resourceApiName |
principal.resource.attribute.labels[].key |
Der Schlüssel ist auf „resource resourceApiName“ festgelegt. |
resource.resourceApiName |
principal.resource.attribute.labels[].value |
Der Wert von resource.resourceApiName aus dem Rohlog. |
resource.resourceTags |
principal.resource.attribute.labels[].key |
Der Schlüssel ist auf „resource resourceTags {nested_key}“ festgelegt. |
resource.resourceTags |
principal.resource.attribute.labels[].value |
Der Wert von resource.resourceTags[] aus dem Rohlog. |
resource.resourceTs |
principal.resource.attribute.labels[].key |
Der Schlüssel ist auf „resource resourceTs“ festgelegt. |
resource.resourceTs |
principal.resource.attribute.labels[].value |
Der Wert von resource.resourceTs aus dem Rohlog. |
resource.resourceType |
principal.resource.attribute.labels[].key |
Der Schlüssel ist auf „resource resourceType“ festgelegt. |
resource.resourceType |
principal.resource.attribute.labels[].value |
Der Wert von resource.resourceType aus dem Rohlog. |
resource.rrn |
principal.resource.attribute.labels[].key |
Der Schlüssel ist auf „resource rrn“ festgelegt. |
resource.rrn |
principal.resource.attribute.labels[].value |
Der Wert von resource.rrn aus dem Rohlog. |
resource.url |
principal.url |
Der Wert von resource.url aus dem Rohlog. |
resourceCloudService |
principal.resource.attribute.labels[].key |
Der Schlüssel ist auf „resource cloud service“ festgelegt. |
resourceCloudService |
principal.resource.attribute.labels[].value |
Der Wert von resourceCloudService aus dem Rohlog. |
resourceName |
principal.resource.name |
Der Wert von resourceName aus dem Rohlog. |
resourceRegion |
principal.location.country_or_region |
Der Wert von resourceRegion aus dem Rohlog. |
resourceRegionId |
principal.cloud.availability_zone |
Der Wert von resourceRegionId aus dem Rohlog. |
resourceType |
target.resource.resource_subtype |
Der Wert von resourceType aus dem Rohlog. |
severity |
security_result.severity |
Der Wert von severity aus dem Rohlog, in Großbuchstaben konvertiert. Wird den UDM-Schweregradwerten (CRITICAL, HIGH, MEDIUM, LOW, INFORMATIONAL) zugeordnet. |
source |
principal.application |
Der Wert von source aus dem Rohlog. |
unifiedAssetId |
principal.asset.asset_id |
Der Wert von unifiedAssetId aus dem Rohlog mit dem Präfix „ASSETID:“. |
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten