Salesforce-Protokolle erfassen
In diesem Dokument wird beschrieben, wie Sie Salesforce-Logs mit zwei Methoden in Google Security Operations aufnehmen: Amazon AppFlow mit Amazon S3 oder Drittanbieter-API. Der Parser verarbeitet die Logs in den Formaten LEEF, CSV und JSON. Sie extrahiert Felder, führt formatspezifische Verarbeitungsschritte aus (LEEF-Schlüssel/Wert-Paare, CSV-Spalten und JSON-Strukturen werden verarbeitet), ordnet sie dem UDM zu und reichert die Daten mit Metadaten und abgeleiteten Feldern an. Der Parser verarbeitet auch verschiedene Salesforce-Ereignistypen, wendet spezifische Logik für Anmeldungen, Abmeldungen und andere Aktionen an, kategorisiert Ereignisse und legt geeignete UDM-Ereignistypen fest.
Hinweise
Prüfen Sie, ob folgende Voraussetzungen erfüllt sind:
- Eine Google SecOps-Instanz
- Privilegierter Zugriff auf Salesforce (Systemadministrator oder gleichwertig)
Option 1: Drittanbieter-API-Methode
- Eine Salesforce-Lizenz für Shield Event Monitoring oder ein Event Monitoring-Add-on
- X.509-Zertifikate und RSA-Schlüsselpaare generieren und verwalten
Option 2: Amazon AppFlow mit S3-Methode
- Privilegierter Zugriff auf AWS
- Ihre Organisation verwendet die Enterprise, Unlimited oder Performance Edition von Salesforce.
Wichtiger Lizenzhinweis: Ohne Salesforce Shield Event Monitoring ist der API-Zugriff auf EventLogFile auf nur 7 grundlegende Ereignistypen (Anmeldung, Abmeldung, API-Gesamtnutzung, CORS-Verletzungsdatensatz, CSP-Verletzung, Hostname-Weiterleitungen, Unerwartete Apex-Ausnahme) mit einer Aufbewahrungsdauer von einem Tag beschränkt. Die meisten Organisationen ohne Shield sollten die Amazon AppFlow-Methode (Option 2) verwenden.
Option 1: Salesforce Direct API-Integration mit Drittanbieter-API konfigurieren (OAuth-JWT-Inhaber)
Bei dieser Methode wird eine direkte API-Verbindung von Google SecOps zu Salesforce über den OAuth 2.0-JWT-Inhaber-Ablauf für die Server-zu-Server-Authentifizierung hergestellt.
Voraussetzungen für diese Methode:
- Eine Salesforce-Lizenz für Shield Event Monitoring oder ein Event Monitoring-Add-on (für umfassenden EventLogFile-Zugriff erforderlich)
- Systemadministratorzugriff in Salesforce
- X.509-Zertifikate und RSA-Schlüsselpaare generieren und verwalten
RSA-Schlüsselpaar und X.509-Zertifikat generieren
Für die JWT-Inhaberauthentifizierung benötigen Sie einen privaten RSA-Schlüssel und ein entsprechendes X.509-Zertifikat.
Privaten RSA-Schlüssel generieren:
openssl genrsa -out salesforce_jwt_private.key 2048Erstellen Sie eine Zertifikatsignierungsanfrage (Certificate Signing Request, CSR):
openssl req -new -key salesforce_jwt_private.key -out salesforce_jwt.csrGenerieren Sie ein selbstsigniertes Zertifikat (gültig für 1 Jahr):
openssl x509 -req -days 365 -in salesforce_jwt.csr -signkey salesforce_jwt_private.key -out salesforce_jwt.crtSpeichern Sie den privaten Schlüssel sicher. Sie benötigen ihn für die Konfiguration des Google SecOps-Feeds.
Verbundene Salesforce-App mit JWT-Bearer-Flow erstellen
- Melden Sie sich als Systemadministrator in Salesforce an.
- Gehen Sie zu Einrichtung > Apps > App-Manager.
- Klicken Sie auf Neue verbundene App.
- Geben Sie die folgenden Konfigurationsdetails an:
- Name der verbundenen App: Geben Sie einen Namen ein, z. B.
Google Security Operations Integration. - API-Name: Wird automatisch basierend auf dem Namen der verbundenen App ausgefüllt.
- Kontakt-E-Mail-Adresse: Geben Sie Ihre E-Mail-Adresse ein.
- Name der verbundenen App: Geben Sie einen Namen ein, z. B.
- Im Bereich API (OAuth-Einstellungen aktivieren):
- Wählen Sie OAuth-Einstellungen aktivieren aus.
- Callback-URL: Geben Sie
https://login.salesforce.com/services/oauth2/callbackein. Diese wird für den JWT-Ablauf nicht verwendet, ist aber erforderlich. - Wählen Sie Digitale Signaturen verwenden aus.
- Klicken Sie auf Datei auswählen und laden Sie das zuvor generierte X.509-Zertifikat (
salesforce_jwt.crt) hoch. - Ausgewählte OAuth-Bereiche: Fügen Sie die folgenden Bereiche hinzu:
- Daten aufrufen und verwalten (api)
- Anfragen jederzeit in Ihrem Namen ausführen (refresh_token, offline_access)
- Require Proof Key for Code Exchange (PKCE) Extension for Supported Authorization Flows (PKCE-Erweiterung für unterstützte Autorisierungsabläufe erforderlich): Deaktivieren Sie diese Option.
- Klicken Sie auf Speichern.
- Klicken Sie in der Warnmeldung auf Weiter.
- Notieren Sie sich auf der Detailseite der verbundenen App den Consumer Key. Dies wird in Google SecOps als JWT Claims Issuer verwendet.
- Klicken Sie auf Verwalten > Richtlinien bearbeiten.
- Im Abschnitt OAuth-Richtlinien:
- Berechtigte Nutzer: Wählen Sie Vom Administrator genehmigte Nutzer sind vorautorisiert aus.
- IP-Lockerung: Wählen Sie IP-Einschränkungen lockern aus.
- Klicken Sie auf Speichern.
Integrationsnutzer in Salesforce erstellen und konfigurieren
- Klicken Sie auf Einrichtung > Nutzer > Nutzer.
- Klicken Sie auf New User (Neuer Nutzer).
- Geben Sie die folgenden Konfigurationsdetails an:
- Vorname: Geben Sie
Googleein. - Nachname: Geben Sie
Google SecOps Integrationein. - E-Mail: Geben Sie eine E-Mail-Adresse ein.
- Nutzername: Geben Sie einen eindeutigen Nutzernamen ein.
- Nutzerlizenz: Wählen Sie Salesforce aus.
- Profil: Wählen Sie Systemadministrator aus oder erstellen Sie ein benutzerdefiniertes Profil mit API-Zugriff.
- Vorname: Geben Sie
- Klicken Sie auf Speichern.
- Notieren Sie sich den Nutzernamen genau so, wie er eingegeben wurde. Dies wird in Google SecOps als JWT Claims Subject verwendet.
Integrationsnutzer der verbundenen App zuweisen
- Gehen Sie zu Einrichtung > Apps > Verknüpfte Apps > Verknüpfte Apps verwalten.
- Klicken Sie auf die verbundene App Google Security Operations-Integration, die Sie erstellt haben.
- Klicken Sie auf Verwalten > Profile verwalten oder Berechtigungssätze verwalten.
- Wählen Sie das Profil oder den Berechtigungssatz aus, der Ihrem Integrationsnutzer zugewiesen ist, z. B. System Administrator (Systemadministrator).
- Klicken Sie auf Speichern.
API- und Ereignisüberwachungsberechtigungen für den Integrationsnutzer gewähren
- Gehen Sie zu Einrichtung> Nutzer > Berechtigungssätze.
- Klicken Sie auf New (Neu).
- Geben Sie die folgenden Konfigurationsdetails an:
- Label: Geben Sie
Event Monitoring API Accessein. - API-Name: Wird automatisch ausgefüllt.
- Label: Geben Sie
- Klicken Sie auf Speichern.
- Auf der Detailseite des Berechtigungssatzes:
- Klicken Sie auf Systemberechtigungen.
- Klicken Sie auf Bearbeiten.
- Prüfen Sie die folgenden Berechtigungen:
- API aktiviert
- Ereignisprotokolldateien ansehen
- Alle Daten ansehen (optional, aber für umfassenden Zugriff empfohlen)
- Klicken Sie auf Speichern.
- Klicken Sie auf Zuweisungen verwalten> Zuweisungen hinzufügen.
- Wählen Sie den Integrationsnutzer aus, den Sie zuvor erstellt haben.
- Klicken Sie auf Zuweisen> Fertig.
Feed in Google SecOps konfigurieren, um Salesforce-Logs über die API aufzunehmen
- 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 Feedname einen Namen für den Feed ein, z. B.
Salesforce logs. - Wählen Sie Drittanbieter-API als Quelltyp aus.
- Wählen Sie Salesforce als Log-Typ aus.
- Klicken Sie auf Weiter.
- Wählen Sie im Drop-down-Menü die Option OAuth-JWT-Gewährung aus.
- Geben Sie Werte für die folgenden Eingabeparameter an:
- OAuth-JWT-Endpunkt: Geben Sie den Salesforce-OAuth-Token-Endpunkt ein:
- Produktion:
https://login.salesforce.com/services/oauth2/token - Sandbox:
https://test.salesforce.com/services/oauth2/token - Benutzerdefinierte Domain:
https://yourdomain.my.salesforce.com/services/oauth2/token
- Produktion:
- JWT Claims Issuer (Aussteller von JWT-Ansprüchen): Geben Sie den Consumer Key (Consumer-Key) der verbundenen App ein.
- JWT Claims Subject (JWT-Anforderungen – Betreff): Geben Sie den Nutzername des Integrationsnutzers ein.
- JWT Claims Audience: Geben Sie die Salesforce-Login-Basis-URL ein:
- Produktion:
https://login.salesforce.com - Sandbox:
https://test.salesforce.com
- Produktion:
- Privater RSA-Schlüssel: Fügen Sie den gesamten Inhalt Ihres privaten RSA-Schlüssels (
salesforce_jwt_private.key) ein, einschließlich der Zeilen-----BEGIN PRIVATE KEY-----und-----END PRIVATE KEY-----.
- OAuth-JWT-Endpunkt: Geben Sie den Salesforce-OAuth-Token-Endpunkt ein:
- Zusätzliche Parameter angeben:
- Asset-Namespace: Der Asset-Namespace.
- Aufnahmelabels: Das Label, das auf die Ereignisse aus diesem Feed angewendet werden soll.
- Klicken Sie auf Weiter.
- Prüfen Sie die neue Feedkonfiguration auf dem Bildschirm Abschließen und klicken Sie dann auf Senden.
Option 2: Export von Salesforce-Protokollen mit Amazon AppFlow und S3 konfigurieren
Bei dieser Methode wird Amazon AppFlow verwendet, um Daten aus Salesforce zu extrahieren und in Amazon S3 zu speichern. Google SecOps nimmt diese Daten dann auf.
AWS S3-Bucket und IAM für Google SecOps konfigurieren
- Erstellen Sie einen Amazon S3-Bucket. Folgen Sie dazu der Anleitung unter Bucket erstellen.
- Speichern Sie den Namen und die Region des Buckets zur späteren Verwendung (z. B.
salesforce-secops-logs). - Erstellen Sie einen Nutzer gemäß dieser Anleitung: IAM-Nutzer erstellen.
- Wählen Sie den erstellten Nutzer aus.
- Wählen Sie den Tab Sicherheitsanmeldedaten aus.
- Klicken Sie im Abschnitt Zugriffsschlüssel auf Zugriffsschlüssel erstellen.
- Wählen Sie als Anwendungsfall Drittanbieterdienst aus.
- Klicken Sie auf Weiter.
- Optional: Fügen Sie ein Beschreibungstag hinzu.
- Klicken Sie auf Zugriffsschlüssel erstellen.
- Klicken Sie auf CSV-Datei herunterladen, um den Access Key (Zugriffsschlüssel) und den Secret Access Key (geheimer Zugriffsschlüssel) für die zukünftige Verwendung zu speichern.
- Klicken Sie auf Fertig.
- Wählen Sie den Tab Berechtigungen aus.
- Klicken Sie im Bereich Berechtigungsrichtlinien auf Berechtigungen hinzufügen.
- Wählen Sie Berechtigungen hinzufügen aus.
- Wählen Sie Richtlinien direkt anhängen aus.
- Suchen Sie nach der Richtlinie AmazonS3FullAccess.
- Wählen Sie die Richtlinie aus.
- Klicken Sie auf Weiter.
- Klicken Sie auf Berechtigungen hinzufügen.
Amazon AppFlow konfigurieren
- Öffnen Sie die Amazon AppFlow-Konsole.
- Klicken Sie auf Ablauf erstellen.
- Geben Sie die folgenden Konfigurationsdetails an:
- Ablaufname: Geben Sie einen Namen ein, z. B.
Salesforce-to-S3-SecOps. - Ablaufbeschreibung: Optionale Beschreibung.
- Ablaufname: Geben Sie einen Namen ein, z. B.
- Klicken Sie auf Weiter.
- Für Quelldetails:
- Quellname: Wählen Sie Salesforce aus.
- Salesforce-Verbindung auswählen: Klicken Sie auf Neue Verbindung erstellen.
- Ein Salesforce-Anmeldefenster wird angezeigt. Melden Sie sich mit Ihren Salesforce-Anmeldedaten an.
- Gewähren Sie den Zugriff, wenn Sie dazu aufgefordert werden.
- Salesforce-Objekt: Wählen Sie das Objekt aus, das Sie übertragen möchten, z. B. EventLogFile, wenn Sie Event Monitoring haben, oder andere Audit-Objekte.
- Klicken Sie auf Weiter.
- Für Zieldetails:
- Zielname: Wählen Sie Amazon S3 aus.
- Bucket-Details: Wählen Sie den S3-Bucket aus, den Sie zuvor erstellt haben.
- S3-Bucket-Präfix: Optionales Präfix (z. B.
salesforce-logs/).
- Klicken Sie auf Weiter.
- Für Ablauftrigger:
- Wählen Sie Nach Zeitplan ausführen aus.
- Ab: Legen Sie Ihre bevorzugte Startzeit fest.
- Wiederholungen: Wählen Sie je nach Bedarf Stündlich oder Täglich aus.
- Klicken Sie auf Weiter.
- Für Datenfelder zuordnen:
- Wählen Sie Alle Felder direkt zuordnen aus oder geben Sie an, welche Felder zugeordnet werden sollen.
- Wenn Sie die Zuordnung manuell vornehmen, wählen Sie die Felder aus, die übertragen werden sollen.
- Klicken Sie auf Weiter.
- Filter hinzufügen (optional):
- Fügen Sie Filter hinzu, um die übertragenen Daten einzuschränken.
- Klicken Sie auf Weiter.
- Überprüfen Sie die Konfiguration und klicken Sie auf Flow erstellen.
- Klicken Sie auf Ablauf aktivieren, um die geplanten Übertragungen zu starten.
Feed in Google SecOps konfigurieren, um Salesforce-Logs aufzunehmen
- 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 Feedname einen Namen für den Feed ein, z. B. Salesforce-Logs.
- Wählen Sie Amazon S3 V2 als Quelltyp aus.
- Wählen Sie Salesforce als Log-Typ aus.
- Klicken Sie auf Weiter.
Geben Sie Werte für die folgenden Eingabeparameter an:
- S3-URI: Der Bucket-URI.
s3://BUCKET_NAMEErsetzen Sie Folgendes:- BUCKET_NAME: Der Name des Buckets.
Optionen zum Löschen der Quelle: Wählen Sie die gewünschte Option zum Löschen aus.
Maximales Dateialter: Enthält Dateien, die in den letzten Tagen geändert wurden. Der Standardwert ist 180 Tage.
Zugriffsschlüssel-ID: Der Nutzerzugriffsschlüssel mit Zugriff auf den S3-Bucket.
Geheimer Zugriffsschlüssel: Der geheime Schlüssel des Nutzers mit Zugriff auf den S3-Bucket.
- S3-URI: Der Bucket-URI.
Klicken Sie auf Weiter.
Prüfen Sie die neue Feedkonfiguration auf dem Bildschirm Abschließen und klicken Sie dann auf Senden.
Unterstützte Salesforce-Logformate
Der Salesforce-Parser unterstützt Protokolle im KV-Format (LEEF) und im CSV-Format.
Unterstützte Salesforce-Beispiellogs
KV (LEEF)
LEEF:1.0|Salesforce|SecurityMonitoring|343.0|Login: Success|cat=SalesforceLoginHistory devTime=2020-04-23T14:40:38.000+0000 devTimeFormat=yyyy-MM-dd'T'HH:mm:ss.SSSZ ApiVersion=N/A Platform=Windows 7 LoginUrl=sanitized.salesforce.com src=192.0.2.1 usrName=user.sanitized@fakecorp.com attributes.url=https://sanitized.salesforce.com/services/data/v38.0/sobjects/LoginHistory/FAKEID12345 Id=FAKEID12345 LoginType=Remote Access 2.0 Application=Salesforce for Outlook Browser=N/ACSV
"EVENT_TYPE","TIMESTAMP","REQUEST_ID","ORGANIZATION_ID","USER_ID","RUN_TIME","CPU_TIME","URI","SESSION_KEY","LOGIN_KEY","USER_TYPE","REQUEST_STATUS","DB_TOTAL_TIME","METHOD","MEDIA_TYPE","STATUS_CODE","USER_AGENT","ROWS_PROCESSED","NUMBER_FIELDS","DB_BLOCKS","DB_CPU_TIME","REQUEST_SIZE","RESPONSE_SIZE","ENTITY_NAME","EXCEPTION_MESSAGE","TIMESTAMP_DERIVED","USER_ID_DERIVED","CLIENT_IP","URI_ID_DERIVED" "RestApi","20240421120015.367","SLB:sanitized_request_id","00D040000004g6r","005Sv000000CxcD",329,69,"/services/data/v58.0/query","TJestP3qzXKiV/Ud","D/M3fSrc6oTXlmLq","Standard","S",37030739,"GET","application/json;charset=UTF-8",200,9999,840,5,19481,47,10,250361,"EventLogFile",NaN,"2024-04-21T12:00:15.366Z","005Sv000000CxcDIAS","192.0.2.3",NaN
UDM-Zuordnungstabelle
| Logfeld | UDM-Zuordnung | Logik |
|---|---|---|
Account.Name |
target.resource.name |
Der Wert von Account.Name aus dem Rohlog. |
AccountId |
target.resource.id |
Der Wert von AccountId aus dem Rohlog. |
Action |
security_result.description |
Der Wert von Action aus dem Rohlog. |
AdditionalInfo |
- | Nicht dem IDM-Objekt zugeordnet. |
ApiType |
target.application |
Der Wert von ApiType aus dem Rohlog. |
ApiVersion |
- | Nicht dem IDM-Objekt zugeordnet. |
Application |
principal.application |
Der Wert von Application aus dem Rohlog oder „Browser“ für LoginAsEvent, „Integration JWT Token“ für LoginEvent, „SfdcSiqActivityPlatform“ für LoginHistory mit dem Objekttyp LoginHistory, „N/A“ für ApiEvent oder „Browser“ für LoginAsEventStream. |
attributes.url |
target.url |
Der Wert von attributes.url aus dem Rohlog oder bestimmte URLs für verschiedene Ereignistypen aus dem Rohlog. |
attributes.type |
metadata.product_event_type |
Der Wert von attributes.type aus dem Rohlog. |
AuthSessionId |
network.session_id |
Der Wert von AuthSessionId aus dem Rohlog. |
Browser |
principal.resource.name |
Der Wert von Browser aus dem Rohlog oder „Unbekannt“, wenn Browser im Rohlog nicht verfügbar ist und Application „Insights“ ist, oder „Java (Salesforce.com)“ für LoginHistory mit ApiType als „SOAP Partner“ oder „Unbekannt“ für LoginHistory mit Application als „SfdcSiqActivityPlatform“ oder aus data.properties.Browser.str für LoginAsEventStream. |
Case.Subject |
target.resource.name |
Der Wert von Case.Subject aus dem Rohlog. |
CaseId |
target.resource.id |
Der Wert von CaseId aus dem Rohlog. |
cat |
metadata.product_event_type |
Der Wert von cat aus dem Rohlog. |
City |
principal.location.city |
Der Wert von City aus dem Rohlog oder aus LoginGeo.City für LoginHistory. |
Client |
principal.labels |
Der Wert von Client aus dem Rohlog, als Label formatiert. |
CLIENT_IP |
principal.ip, principal.asset.ip |
Der Wert von CLIENT_IP aus dem Rohlog. |
ClientVersion |
- | Nicht dem IDM-Objekt zugeordnet. |
CipherSuite |
network.tls.cipher |
Der Wert von CipherSuite aus dem Rohlog. |
ColumnHeaders |
principal.labels |
Der Wert von ColumnHeaders aus dem Rohlog, als Label formatiert. |
ConnectedAppId |
principal.labels |
Der Wert von ConnectedAppId aus dem Rohlog, als Label formatiert. |
Contact.Name |
target.resource.name |
Der Wert von Contact.Name aus dem Rohlog. |
ContactId |
target.resource.id |
Der Wert von ContactId aus dem Rohlog. |
Country |
principal.location.country_or_region |
Der Wert von Country aus dem Rohlog oder LoginGeo.Country für LoginHistory. |
CreatedByContext |
principal.user.userid |
Der Wert von CreatedByContext aus dem Rohlog. |
CreatedById |
principal.resource.attribute.labels |
Der Wert von CreatedById aus dem Rohlog, als Label formatiert. |
CreatedDate |
metadata.collected_timestamp |
Der Wert von CreatedDate aus dem Rohlog oder der aktuelle Zeitstempel, falls nicht verfügbar. |
CPU_TIME |
target.resource.attribute.labels |
Der Wert von CPU_TIME aus dem Rohlog, als Label formatiert. |
data |
- | Enthält verschiedene Felder, die einzeln extrahiert und zugeordnet werden. |
DATASET_IDS |
target.resource.name |
Der Wert von DATASET_IDS aus dem Rohlog. |
DelegatedOrganizationId |
target.administrative_domain |
Der Wert von DelegatedOrganizationId aus dem Rohlog. |
DelegatedUsername |
observer.user.userid |
Der Wert von DelegatedUsername aus dem Rohlog. |
Description |
metadata.description |
Der Wert von Description aus dem Rohlog. |
DevicePlatform |
principal.resource.type |
Der Wert von DevicePlatform aus dem Rohlog, der zum Extrahieren des Ressourcentyps geparst wurde. |
Display |
metadata.description |
Der Wert von Display aus dem Rohlog. |
DOWNLOAD_FORMAT |
target.resource.attribute.labels |
Der Wert von DOWNLOAD_FORMAT aus dem Rohlog, als Label formatiert. |
Duration |
target.resource.attribute.labels |
Der Wert von Duration aus dem Rohlog, als Label formatiert. |
ENTITY_NAME |
target.resource.attribute.labels |
Der Wert von ENTITY_NAME aus dem Rohlog, als Label formatiert. |
ErrorCode |
security_result.action |
Der Wert von ErrorCode aus dem Rohlog, der in ALLOW oder BLOCK umgewandelt wurde. |
EventDate |
timestamp |
Der Wert von EventDate aus dem Rohlog oder data.properties.TIMESTAMP_DERIVED.str, falls verfügbar, oder data.properties.TIMESTAMP_DERIVED_FIRST.str, falls verfügbar, oder @timestamp, falls verfügbar, oder created_date, falls verfügbar, oder timestamp, falls verfügbar, oder LoginTime für LoginHistory. |
EventIdentifier |
metadata.product_log_id |
Der Wert von EventIdentifier aus dem Rohlog. |
EventType |
metadata.product_event_type |
Der Wert von EventType aus dem Rohlog. |
Id |
principal.user.userid |
Der Wert von Id aus dem Rohprotokoll oder metadata.product_log_id für SetupAuditTrail und andere Ereignisse. |
IdentityUsed |
principal.user.email_addresses |
Der Wert von IdentityUsed aus dem Rohlog. |
Lead.Name |
target.resource.name |
Der Wert von Lead.Name aus dem Rohlog. |
LeadId |
target.resource.id |
Der Wert von LeadId aus dem Rohlog. |
LoginAsCategory |
- | Nicht dem IDM-Objekt zugeordnet. |
LoginGeo.Country |
principal.location.country_or_region |
Der Wert von LoginGeo.Country aus dem Rohlog. |
LoginHistoryId |
- | Nicht dem IDM-Objekt zugeordnet. |
LoginKey |
principal.user.userid, network.session_id |
Der Wert von LoginKey aus dem Rohlog oder CreatedByContext für SetupAuditTrail. |
LoginTime |
timestamp |
Der Wert von LoginTime aus dem Rohlog. |
LoginType |
security_result.description |
Der Wert von LoginType aus dem Rohprotokoll oder „Other Apex API“ für LoginHistory mit ApiType als „SOAP Partner“ oder „Remote Access 2.0“ für LoginHistory mit Application als „SfdcSiqActivityPlatform“. |
LoginUrl |
target.url, principal.url |
Der Wert von LoginUrl aus dem Rohlog. |
LogFile |
principal.resource.attribute.labels |
Der Wert von LogFile aus dem Rohlog, als Label formatiert. |
LogFileContentType |
principal.resource.attribute.labels |
Der Wert von LogFileContentType aus dem Rohlog, als Label formatiert. |
LogFileLength |
principal.resource.attribute.labels |
Der Wert von LogFileLength aus dem Rohlog, als Label formatiert. |
Message |
- | Nicht dem IDM-Objekt zugeordnet. |
METHOD |
network.http.method |
Der Wert von METHOD aus dem Rohlog. |
Name |
target.application |
Der Wert von Name aus dem Rohlog. |
NewValue |
- | Wird in Verbindung mit OldValue verwendet, um security_result.summary zu generieren. |
NUMBER_FIELDS |
target.resource.attribute.labels |
Der Wert von NUMBER_FIELDS aus dem Rohlog, als Label formatiert. |
OldValue |
- | Wird in Verbindung mit NewValue verwendet, um security_result.summary zu generieren. |
Operation |
security_result.description, target.resource.attribute.labels |
Der Wert von Operation aus dem Rohlog oder Display für SetupAuditTrail. |
OperationStatus |
security_result.action |
Der Wert von OperationStatus aus dem Rohlog, der in ALLOW oder BLOCK umgewandelt wurde. |
ORGANIZATION_ID |
target.administrative_domain |
Der Wert von ORGANIZATION_ID aus dem Rohlog. |
OsName |
principal.platform |
Der Wert von OsName aus dem Rohlog. |
OsVersion |
principal.platform_version |
Der Wert von OsVersion aus dem Rohlog. |
Platform |
principal.platform |
Der Wert von Platform aus dem Rohlog oder aus data.properties.OsName.str für LightningUriEventStream oder aus data.properties.OsName.str für LoginEventStream. |
QueriedEntities |
target.resource.name, principal.labels |
Der Wert von QueriedEntities aus dem Rohlog oder component_name für UriEvent und ApiEvent. |
Query |
target.process.command_line, principal.labels |
Der Wert von Query aus dem Rohlog. |
RecordId |
target.resource.id |
Der Wert von RecordId aus dem Rohlog. |
Records |
principal.labels |
Der Wert von Records aus dem Rohlog, als Label formatiert. |
REQUEST_ID |
metadata.product_log_id, target.resource.product_object_id |
Der Wert von REQUEST_ID aus dem Rohlog. |
REQUEST_SIZE |
network.sent_bytes |
Der Wert von REQUEST_SIZE aus dem Rohlog. |
REQUEST_STATUS |
security_result.summary |
Der Wert von REQUEST_STATUS aus dem Rohlog. |
RESPONSE_SIZE |
network.received_bytes |
Der Wert von RESPONSE_SIZE aus dem Rohlog. |
RowsProcessed |
target.resource.attribute.labels |
Der Wert von RowsProcessed aus dem Rohlog, als Label formatiert. |
RUN_TIME |
target.resource.attribute.labels |
Der Wert von RUN_TIME aus dem Rohlog, als Label formatiert. |
SamlEntityUrl |
- | Nicht dem IDM-Objekt zugeordnet. |
SdkAppType |
- | Nicht dem IDM-Objekt zugeordnet. |
SdkAppVersion |
- | Nicht dem IDM-Objekt zugeordnet. |
SdkVersion |
- | Nicht dem IDM-Objekt zugeordnet. |
Section |
security_result.summary |
Der Wert von Section aus dem Rohlog. |
SessionKey |
network.session_id |
Der Wert von SessionKey aus dem Rohlog. |
SessionLevel |
target.resource.attribute.labels |
Der Wert von SessionLevel aus dem Rohlog, als Label formatiert. |
SourceIp |
principal.ip, principal.asset.ip |
Der Wert von SourceIp aus dem Rohlog. |
src |
principal.ip, principal.asset.ip |
Der Wert von src aus dem Rohlog. |
SsoType |
target.resource.attribute.labels |
Der Wert von SsoType aus dem Rohlog, als Label formatiert. |
STATUS_CODE |
network.http.response_code |
Der Wert von STATUS_CODE aus dem Rohlog. |
Status |
security_result.action, security_result.action_details |
Der Wert von Status aus dem Rohlog, der in ALLOW oder BLOCK umgewandelt oder als Aktionsdetails für LoginEventStream verwendet wird. |
Subject |
target.resource.name |
Der Wert von Subject aus dem Rohlog. |
TargetUrl |
- | Nicht dem IDM-Objekt zugeordnet. |
TIMESTAMP |
metadata.collected_timestamp |
Der Wert von TIMESTAMP aus dem Rohlog. |
TIMESTAMP_DERIVED |
timestamp |
Der Wert von TIMESTAMP_DERIVED aus dem Rohlog. |
TlsProtocol |
network.tls.version_protocol |
Der Wert von TlsProtocol aus dem Rohlog. |
URI |
target.url |
Der Wert von URI aus dem Rohlog. |
USER_AGENT |
network.http.user_agent |
Der Wert von USER_AGENT aus dem Rohlog. |
USER_ID |
principal.user.userid |
Der Wert von USER_ID aus dem Rohlog. |
USER_ID_DERIVED |
principal.user.product_object_id, target.resource.attribute.labels |
Der Wert von USER_ID_DERIVED aus dem Rohlog. |
UserId |
principal.user.userid |
Der Wert von UserId aus dem Rohlog. |
USER_TYPE |
target.resource.attribute.labels |
Der Wert von USER_TYPE aus dem Rohlog, als Label formatiert. |
Username |
principal.user.userid, principal.user.email_addresses, target.user.email_addresses |
Der Wert von Username aus dem Rohlog oder src_email für verschiedene Ereignisse oder IdentityUsed für IdentityProviderEventStore oder data.properties.Email.str für Search und SearchAlert oder data.properties.Username.str für LoginAsEventStream und LoginEventStream. |
UserType |
target.resource.attribute.labels |
Der Wert von UserType aus dem Rohlog, als Label formatiert. |
usrName |
principal.user.userid, principal.user.email_addresses, target.user.email_addresses |
Der Wert von usrName aus dem Rohlog. |
VerificationMethod |
target.resource.attribute.labels |
Der Wert von VerificationMethod aus dem Rohlog, als Label formatiert. |
| Parser-Logik | metadata.event_type |
Abgeleitet aus den Feldern event_id und operation oder auf „USER_LOGIN“ für LoginEventStream, „USER_LOGOUT“ für Logout und LogoutEvent, „USER_RESOURCE_UPDATE_CONTENT“ für verschiedene Ereignisse, „USER_RESOURCE_UPDATE_PERMISSIONS“ für PlatformEncryption, „RESOURCE_READ“ für QueuedExecution, ApexExecution, LightningInteraction, LightningPerformance, LightningPageView, URI, RestApi, API, AuraRequest, ApexCallout, OneCommerceUsage, Sites, MetadataApiOperation, OneCommerceUsage, VisualforceRequest, Dashboard, Search, ListViewEvent, „RESOURCE_CREATION“ für UriEvent und TimeBasedWorkflow mit Operation als „Create“ oder „INSERT“, „RESOURCE_WRITTEN“ für UriEvent und LightningUriEvent mit Operation als „Update“, „RESOURCE_DELETION“ für UriEvent mit Operation als „Delete“ oder „ROLLBACK“, „USER_UNCATEGORIZED“ für SetupAuditTrail und AuditTrail, „USER_CHANGE_PASSWORD“ für SetupAuditTrail mit operation als „namedCredentialEncryptedFieldChange“, „GENERIC_EVENT“ für ApiEventStream und LightningUriEventStream oder basierend auf Netzwerk und Prinzipal. |
| Parser-Logik | metadata.ingestion_labels |
Labels, die die Quelle des Ereignisses angeben, entweder „Event Log File“ (Ereignisprotokolldatei), „Real-Time Event Monitoring“ (Echtzeit-Ereignisüberwachung) oder „SetupAuditTrail“ (Setup-Prüfprotokoll). |
| Parser-Logik | metadata.log_type |
Immer auf „SALESFORCE“ festgelegt. |
| Parser-Logik | metadata.product_name |
Immer auf „SALESFORCE“ festgelegt. |
| Parser-Logik | metadata.vendor_name |
Immer auf „SALESFORCE“ festgelegt. |
| Parser-Logik | metadata.url_back_to_product |
Wird aus verschiedenen Feldern wie LoginUrl, attributes.url, data.properties.PageUrl.str und data.properties.LoginUrl.str zusammengesetzt. |
| Parser-Logik | network.application_protocol |
Auf „HTTPS“ festgelegt, wenn das Feld uri mit „http“ beginnt. |
| Parser-Logik | network.http.referral_url |
Wird aus dem Feld user_agent extrahiert, wenn es „Referer=“ enthält. |
| Parser-Logik | network.http.response_code |
Abgeleitet von request_status für verschiedene Ereignisse. |
| Parser-Logik | network.http.user_agent |
Der Wert von user_agent aus dem Rohlog oder von data.properties.UserAgent.str für ApiEventStream und LoginEventStream oder von Sites-Ereignissen oder „User-Agent“ aus Sites-Ereignissen. |
| Parser-Logik | network.session_id |
Der Wert von session_key oder SESSION_KEY aus dem Rohlog oder aus anderen Feldern wie LoginKey oder AuthSessionId. |
| Parser-Logik | network.tls.version |
Der Wert von tls_protocol aus dem Rohlog oder aus data.properties.TlsProtocol.str für LoginEventStream. |
| Parser-Logik | principal.application |
Der Wert von application aus dem Rohprotokoll oder „Salesforce for Outlook“ für „Login: Success“-Ereignisse oder „Insights“ für „Login: Success“-Ereignisse ohne Anwendung oder aus device_platform für Lightning-Ereignisse extrahiert. |
| Parser-Logik | principal.asset.hostname |
Der Wert von client_ip, wenn es sich um einen Hostnamen handelt. |
| Parser-Logik | principal.asset.ip |
Der Wert von client_ip, src_ip, SourceIp oder CLIENT_IP, wenn es sich um eine IP-Adresse handelt. |
| Parser-Logik | principal.hostname |
Der Wert von client_ip, wenn es sich um einen Hostnamen handelt. |
| Parser-Logik | principal.ip |
Der Wert von client_ip, src_ip, SourceIp oder CLIENT_IP, wenn es sich um eine IP-Adresse handelt. |
| Parser-Logik | principal.labels |
Labels, die aus verschiedenen Feldern wie FederationIdentifier, ApiType, OrgId und channel erstellt werden. |
| Parser-Logik | principal.location.city |
Der Wert von geoip_src.city_name, City oder LoginGeo.City aus dem Rohlog. |
| Parser-Logik | principal.location.country_or_region |
Der Wert von geoip_src.country_name, Country, LoginGeo.Country oder client_geo aus dem Rohlog. |
| Parser-Logik | principal.location.region_latitude |
Der Wert von data.properties.LoginLatitude.number aus dem Rohlog. |
| Parser-Logik | principal.location.region_longitude |
Der Wert von data.properties.LoginLongitude.number aus dem Rohlog. |
| Parser-Logik | principal.location.state |
Der Wert von geoip_src.region_name aus dem Rohlog. |
| Parser-Logik | principal.platform |
Der Wert von Platform, OsName oder os_name aus dem Rohlog oder „WINDOWS“ für LoginEventStream mit Platform, das „Windows“ enthält. |
| Parser-Logik | principal.platform_version |
Der Wert von OsVersion oder os_version aus dem Rohlog oder aus Platform für LoginEventStream extrahiert, wenn Platform „Windows“ enthält. |
| Parser-Logik | principal.resource.attribute.labels |
Labels, die aus verschiedenen Feldern wie CreatedById, ApiVersion, LogFile, LogFileContentType und LogFileLength erstellt werden. |
| Parser-Logik | principal.resource.name |
Der Wert von Browser oder browser_name aus dem Rohlog oder „Java (Salesforce.com)“ für LoginHistory mit ApiType als „SOAP Partner“. |
| Parser-Logik | principal.resource.type |
Aus device_platform für Lightning-Ereignisse oder „Browser“ für LoginAsEvent und LoginAsEventStream extrahiert. |
| Parser-Logik | principal.url |
Der Wert von LoginUrl aus dem Rohlog. |
| Parser-Logik | principal.user.email_addresses |
Der Wert von usrName, Username, src_email, IdentityUsed, data.properties.Username.str oder data.properties.Email.str aus dem Rohlog. |
| Parser-Logik | principal.user.product_object_id |
Der Wert von attrs.USER_ID_DERIVED oder data.properties.USER_ID_DERIVED.str aus dem Rohlog. |
| Parser-Logik | principal.user.userid |
Der Wert von usrName oder Username oder user_id oder UserId oder USER_ID oder Id oder LoginKey oder CreatedByContext oder data.properties.Username.str oder data.properties.USER_ID.str oder data.properties.LoginKey.str aus dem Rohlog. |
| Parser-Logik | security_result.action |
Abgeleitet von Status, OperationStatus, ErrorCode, action oder operation_status aus dem Rohlog, umgewandelt in ALLOW oder BLOCK. |
| Parser-Logik | security_result.action_details |
Der Wert von Status aus dem Rohlog für LoginEventStream. |
| Parser-Logik | security_result.description |
Der Wert von LoginType, logintype, Operation, Action oder Display aus dem Rohlog. |
| Parser-Logik | security_result.rule_name |
Der Wert von Policy oder rule_name aus dem Rohlog. |
| Parser-Logik | security_result.summary |
Aus NewValue und OldValue oder REQUEST_STATUS oder Section oder forecastcategory aus dem Rohlog erstellt. |
| Parser-Logik | target.administrative_domain |
Der Wert von ORGANIZATION_ID, DelegatedOrganizationId, organization_id oder data.properties.OrgName.str aus dem Rohlog. |
| Parser-Logik | target.application |
Der Wert von Application, app_name, ApiType, Name oder data.properties.Application.str aus dem Rohlog. |
| Parser-Logik | target.asset.hostname |
Der Wert von target_hostname, der aus dem Feld uri extrahiert wurde. |
| Parser-Logik | target.asset.ip |
Der Wert von data.properties.CLIENT_IP.str aus dem Rohlog. |
| Parser-Logik | target.asset_id |
Erstellt aus Inhalten von device_id oder REQUEST_ID. |
| Parser-Logik | target.file.mime_type |
Der Wert von file_type aus dem Rohlog. |
| Parser-Logik | target.file.size |
Der Wert von size_bytes aus dem Rohlog. |
| Parser-Logik | target.hostname |
Der Wert von target_hostname, der aus dem Feld uri extrahiert wurde. |
| Parser-Logik | target.process.command_line |
Der Wert von query_exec, Query oder data.properties.Query.str aus dem Rohlog. |
| Parser-Logik | target.process.pid |
Der Wert von job_id aus dem Rohlog. |
| Parser-Logik | target.resource.attribute.labels |
Labels, die aus verschiedenen Feldern wie CPU_TIME, RUN_TIME, USER_TYPE, DB_TOTAL_TIME, MEDIA_TYPE, ROWS_PROCESSED, NUMBER_FIELDS, DB_BLOCKS, DB_CPU_TIME, ENTITY_NAME, EXCEPTION_MESSAGE, USER_ID_DERIVED, DOWNLOAD_FORMAT, USER_TYPE, CPU_TIME, RUN_TIME, WAVE_SESSION_ID, SessionLevel, verification_method, cpu_time, run_time, db_total_time, db_cpu_time, exec_time, callout_time, number_soql_queries, duration, user_type, entry_point, operation, session_level, rows_processed, sso_type, dashboard_type, Operation, SessionLevel, werden erstellt. |
| Parser-Logik | target.resource.id |
Der Wert von REQUEST_ID, RecordId, caseid, leadid, contactid, opportunityid oder accountid aus dem Rohlog. |
| Parser-Logik | target.resource.name |
Der Wert von QueriedEntities, resource_name, component_name, DATASET_IDS, field, StageName oder Subject aus dem Rohlog. |
| Parser-Logik | target.resource.product_object_id |
Der Wert von REQUEST_ID aus dem Rohlog. |
| Parser-Logik | target.resource.resource_type |
Auf „ACCESS_POLICY“ für ApexCallout und PlatformEncryption, „DATABASE“ für ApexTrigger, „FILE“ für ContentTransfer oder „TABLE“ für ApiEvent festlegen. |
| Parser-Logik | target.resource.type |
Auf „BATCH“ für QueuedExecution und ApexExecution, „FILE“ für ContentTransfer, „DATABASE_TRIGGER“ für ApexTrigger oder „Case“, „Lead“, „Contact“, „Opportunity“, „Account“ basierend auf dem Vorhandensein der entsprechenden ID-Felder festgelegt. |
| Parser-Logik | target.url |
Der Wert von LoginUrl, URI, attributes.url, login_url oder uri aus dem Rohlog. |
| Parser-Logik | target.user.email_addresses |
Der Wert von Username, attrs.usrName oder email_address aus dem Rohlog. |
| Parser-Logik | target.user.user_display_name |
Der Wert von target_user_display_name, user_name oder username aus dem Rohlog. |
| Parser-Logik | target.user.userid |
Der Wert von target_user_name, data.properties.UserId.str oder data.properties.CreatedById.str aus dem Rohlog. |
| Parser-Logik | extensions.auth.auth_details |
Wird auf „ACTIVE“ gesetzt, wenn Status nicht „Success“ ist. Andernfalls wird „UNKNOWN_AUTHENTICATION_STATUS“ festgelegt. |
| Parser-Logik | extensions.auth.mechanism |
Auf „REMOTE“ für „Login: Success“- und „Login“-Ereignisse mit logintype, die „Remote“ enthalten, oder „USERNAME_PASSWORD“ für „LoginEventStream“ oder „MECHANISM_OTHER“ für Ereignisse mit login_url oder „AUTHTYPE_UNSPECIFIED“ für „Login: Success“- und „Logout“-Ereignisse festgelegt. |
| Parser-Logik | extensions.auth.type |
Auf „SSO“ für Login, Logout, LogoutEvent, LoginAs, IdentityProviderEventStore, LoginHistory, LoginAsEvent mit LoginType als „SAML Sfdc Initiated SSO“ oder „AUTHTYPE_UNSPECIFIED“ für Login: Success, Logout, LoginAsEvent mit LoginType als „Application“ gesetzt. |
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten