Collecter les journaux Salesforce
Ce document explique comment collecter des journaux Salesforce en configurant un flux Google Security Operations à l'aide de l'API tierce.
Salesforce est une plate-forme de gestion de la relation client (CRM) basée dans le cloud qui fournit des outils pour les ventes, les services, le marketing et les analyses. Les journaux Salesforce enregistrent l'activité des utilisateurs, les événements de sécurité, les modifications du système et l'utilisation de l'API sur l'ensemble de la plate-forme.
Avant de commencer
Assurez-vous de remplir les conditions préalables suivantes :
- Une instance Google SecOps
- Édition Enterprise de Salesforce ou version ultérieure (accès à l'API activé)
- Autorisations d'administrateur système Salesforce
- OpenSSL installé (pour la génération de certificats)
Générer une paire de clés RSA et un certificat
Générez une clé privée RSA et un certificat X.509 autosigné pour la signature JWT.
Générer une clé privée
```bash
openssl genrsa -out salesforce_private.key 2048
```
Générer un certificat autosigné
```bash
openssl req -new -x509 -key salesforce_private.key -out salesforce_certificate.crt -days 365
```
Lorsque vous y êtes invité, saisissez les informations du certificat :
- Nom du pays : saisissez le code pays à deux lettres (par exemple,
US). - Nom de l'État ou de la province : saisissez votre État (par exemple,
California). - Nom de la localité : saisissez votre ville (par exemple,
San Francisco). - Nom de l'organisation : saisissez le nom de votre organisation (par exemple,
Acme Corp). - Nom de l'unité organisationnelle : saisissez le nom du service (par exemple,
IT Security). - Nom commun : saisissez un nom descriptif (par exemple,
Chronicle Integration). - Adresse e-mail : saisissez l'adresse e-mail de contact.
Créer une application cliente externe Salesforce
Les applications clientes externes sont la méthode recommandée pour l 'authentification OAuth dans Salesforce (Spring 26 et versions ultérieures).
- Connectez-vous à Salesforce.
- Accédez à Configuration (icône en forme de roue dentée en haut à droite).
- Dans la zone Quick Find (Recherche rapide), saisissez
External Client Apps. - Cliquez sur Gestionnaire d'applications clientes externes.
- Cliquez sur New External Client App (Nouvelle application cliente externe).
Configurer les informations de base
- Fournissez les informations de configuration suivantes :
- Nom de l'application cliente externe : saisissez un nom descriptif (par exemple,
Google SecOps Integration). - Nom de l'API : renseigné automatiquement en fonction du nom de l'application. Conservez les valeurs par défaut ou personnalisez-les.
- Adresse e-mail de contact : saisissez votre adresse e-mail.
- État de la distribution : sélectionnez Local.
- Nom de l'application cliente externe : saisissez un nom descriptif (par exemple,
- Cliquez sur Continuer.
Activer les paramètres OAuth
- Cochez la case Enable OAuth (Activer OAuth).
- Fournissez les informations de configuration suivantes :
- URL de rappel : saisissez
https://login.salesforce.com/services/oauth2/callback.
- URL de rappel : saisissez
- Dans la section OAuth Scopes (Champs d'application OAuth), déplacez les champs d'application suivants de Available OAuth Scopes (Champs d'application OAuth disponibles) vers Selected OAuth Scopes (Champs d'application OAuth sélectionnés) :
- Gérer les données utilisateur via des API
- Effectuer des requêtes en votre nom à tout moment (refresh_token, offline_access)
Activer le flux du jeton de support JWT et importer le certificat
- Dans la section Flow Enablement (Activation du flux), cochez la case Enable JWT Bearer Flow (Activer le flux du jeton de support JWT).
- La section Importer un certificat s'affiche.
- Cliquez sur Importer des fichiers ou glissez-déposez votre fichier de certificat.
- Sélectionnez le fichier
salesforce_certificate.crtgénéré précédemment. - Attendez que l'importation soit terminée. Le nom du fichier du certificat doit apparaître sous le bouton d'importation.
Configurer des règles OAuth
- Dans la section Règles OAuth :
- Utilisateurs autorisés : sélectionnez Les utilisateurs validés par l'administrateur sont pré-autorisés.
- Cliquez sur Enregistrer.
Obtenir une clé client
Après avoir créé l'application cliente externe, récupérez la clé client pour la configuration de Chronicle.
- Dans le Gestionnaire d'applications clientes externes, cliquez sur le nom de votre application (par exemple,
Google SecOps Integration). - Accédez à l'onglet Paramètres.
- Dans la section OAuth Settings (Paramètres OAuth), cliquez sur Consumer Key and Secret (Clé et code secret du client).
- Copiez et enregistrez la valeur de la clé client.
Exemple de format de clé client :
```
3MVG9IKcPoNiNVBIPjdw4z.pcfRjTFBp7xC8x9k4U8jZ0HlLQdPqX5bKjR8yNzQ9_YvY.8xD3F2W6nXb5YgNx
```
Pré-autoriser l'application cliente externe
Salesforce exige une pré-autorisation pour le flux de support JWT. Pré-autorisez l'accès en attribuant l'application cliente externe à un utilisateur via un ensemble d'autorisations.
Créer un ensemble d'autorisations
- Accédez à Configuration> Utilisateurs> Ensembles d'autorisations.
- Cliquez sur New (Nouveau).
- Fournissez les informations de configuration suivantes :
- Libellé : saisissez
Chronicle Integration Users(par exemple). - Nom de l'API : renseigné automatiquement en fonction du libellé.
- Libellé : saisissez
- Cliquez sur Enregistrer.
Attribuer un ensemble d'autorisations à l'application cliente externe
- Accédez à Configuration > Gestionnaire d'applications clientes externes.
- Cliquez sur votre application cliente externe (par exemple,
Google SecOps Integration). - Cliquez sur l'onglet Règles.
- Dans la section Règles relatives aux applications, sous Sélectionner des ensembles d'autorisations :
- Déplacez votre ensemble d'autorisations (par exemple,
Chronicle Integration Users) de Ensembles d'autorisations disponibles vers Ensembles d'autorisations sélectionnés.
- Déplacez votre ensemble d'autorisations (par exemple,
- Cliquez sur Enregistrer.
Attribuer un ensemble d'autorisations à un utilisateur
- Sur la page d'informations sur l'ensemble d'autorisations, cliquez sur Gérer les attributions.
- Cliquez sur Add Assignments (Ajouter des attributions).
- Cochez la case à côté du compte utilisateur qui sera utilisé pour l'intégration Chronicle (par exemple,
integration@acme.com). - Cliquez sur Attribuer.
- Cliquez sur OK.
Configurer un flux dans Google SecOps pour ingérer les journaux Salesforce
- Accédez à Paramètres SIEM> Flux.
- Cliquez sur Add New Feed (Ajouter un flux).
- Sur la page suivante, cliquez sur Configurer un seul flux.
- Dans le champ Nom du flux, saisissez un nom pour le flux (par exemple,
Salesforce EventLogFile). - Sélectionnez API tierce comme Type de source.
- Sélectionnez SALESFORCE comme type de journal.
- Cliquez sur Suivant.
- Spécifiez les valeurs des paramètres d'entrée suivants :
- Nom d'hôte de l'API : saisissez le nom d'hôte de votre instance Salesforce (par exemple,
acme.my.salesforce.com).
- Nom d'hôte de l'API : saisissez le nom d'hôte de votre instance Salesforce (par exemple,
* **OAuth JWT Endpoint**: Enter the OAuth token endpoint URL:
- Production orgs: `https://login.salesforce.com/services/oauth2/token`
- Sandbox orgs: `https://test.salesforce.com/services/oauth2/token`
- My Domain: `https://acme.my.salesforce.com/services/oauth2/token`
* **JWT Claims Issuer**: Enter the Consumer Key from the External Client App.
* **JWT Claims Subject**: Enter the Salesforce username of the pre-authorized user (for example, `integration@acme.com`).
* **JWT Claims Audience**: Enter the authorization server URL:
- Production orgs: `https://login.salesforce.com`
- Sandbox orgs: `https://test.salesforce.com`
- My Domain: `https://acme.my.salesforce.com`
* **RSA Private Key**: Paste the complete private key contents including `-----BEGIN PRIVATE KEY-----` and `-----END PRIVATE KEY-----` markers.
Pour obtenir le contenu de la clé privée :
```bash
cat salesforce_private.key
```
Copiez l'intégralité du résultat, y compris les lignes d'en-tête et de pied de page.
* **Asset namespace**: The [asset namespace](/chronicle/docs/investigation/asset-namespaces).
* **Ingestion labels**: The label to be applied to the events from this feed.
- Cliquez sur Suivant.
- Vérifiez la configuration de votre nouveau flux sur l'écran Finaliser, puis cliquez sur Envoyer.
Référence des types d'instances Salesforce
Les valeurs du point de terminaison et de l'audience JWT OAuth dépendent du type de votre instance Salesforce :
| Instance Type | OAuth JWT Endpoint | JWT Claims Audience | API Hostname Format |
| ------------------- | ------------------------------------------------------- | -------------------------------- | -------------------------------------- |
| **Production** | `https://login.salesforce.com/services/oauth2/token` | `https://login.salesforce.com` | `company.my.salesforce.com` |
| **Sandbox** | `https://test.salesforce.com/services/oauth2/token` | `https://test.salesforce.com` | `company--sandbox.sandbox.my.salesforce.com` |
| **My Domain** | `https://domain.my.salesforce.com/services/oauth2/token`| `https://domain.my.salesforce.com` | `domain.my.salesforce.com` |
Note: "My Domain" is recommended for production deployments. "My Domain" provides a custom, branded login URL and is required for certain Salesforce features.
Table de mappage UDM
| Champ de journal | Mappage UDM | Logique |
|---|---|---|
Account.Name |
target.resource.name |
Valeur de Account.Name à partir du journal brut. |
AccountId |
target.resource.id |
Valeur de AccountId à partir du journal brut. |
Action |
security_result.description |
Valeur de Action à partir du journal brut. |
AdditionalInfo |
- | Non mappé à l'objet IDM. |
ApiType |
target.application |
Valeur de ApiType à partir du journal brut. |
ApiVersion |
- | Non mappé à l'objet IDM. |
Application |
principal.application |
Valeur de Application du journal brut, ou "Navigateur" pour LoginAsEvent, ou "Jeton JWT d'intégration" pour LoginEvent, ou "SfdcSiqActivityPlatform" pour LoginHistory avec objecttype LoginHistory, ou "N/A" pour ApiEvent, ou "Navigateur" pour LoginAsEventStream. |
attributes.url |
target.url |
La valeur de attributes.url à partir du journal brut ou des URL spécifiques pour différents types d'événements à partir du journal brut. |
attributes.type |
metadata.product_event_type |
Valeur de attributes.type à partir du journal brut. |
AuthSessionId |
network.session_id |
Valeur de AuthSessionId à partir du journal brut. |
Browser |
principal.resource.name |
Valeur de Browser à partir du journal brut, ou "Inconnu" si Browser n'est pas disponible dans le journal brut et que Application est défini sur "Insights", ou "Java (Salesforce.com)" pour LoginHistory avec ApiType défini sur "SOAP Partner", ou "Inconnu" pour LoginHistory avec Application défini sur "SfdcSiqActivityPlatform", ou à partir de data.properties.Browser.str pour LoginAsEventStream. |
Case.Subject |
target.resource.name |
Valeur de Case.Subject à partir du journal brut. |
CaseId |
target.resource.id |
Valeur de CaseId à partir du journal brut. |
cat |
metadata.product_event_type |
Valeur de cat à partir du journal brut. |
City |
principal.location.city |
La valeur de City à partir du journal brut ou de LoginGeo.City pour LoginHistory. |
Client |
principal.labels |
Valeur de Client à partir du journal brut, mise en forme en tant que libellé. |
CLIENT_IP |
principal.ip, principal.asset.ip |
Valeur de CLIENT_IP à partir du journal brut. |
ClientVersion |
- | Non mappé à l'objet IDM. |
CipherSuite |
network.tls.cipher |
Valeur de CipherSuite à partir du journal brut. |
ColumnHeaders |
principal.labels |
Valeur de ColumnHeaders à partir du journal brut, mise en forme en tant que libellé. |
ConnectedAppId |
principal.labels |
Valeur de ConnectedAppId à partir du journal brut, mise en forme en tant que libellé. |
Contact.Name |
target.resource.name |
Valeur de Contact.Name à partir du journal brut. |
ContactId |
target.resource.id |
Valeur de ContactId à partir du journal brut. |
Country |
principal.location.country_or_region |
La valeur de Country à partir du journal brut ou LoginGeo.Country pour LoginHistory. |
CreatedByContext |
principal.user.userid |
Valeur de CreatedByContext à partir du journal brut. |
CreatedById |
principal.resource.attribute.labels |
Valeur de CreatedById à partir du journal brut, mise en forme en tant que libellé. |
CreatedDate |
metadata.collected_timestamp |
Valeur de CreatedDate à partir du journal brut ou code temporel actuel si la valeur n'est pas disponible. |
CPU_TIME |
target.resource.attribute.labels |
Valeur de CPU_TIME à partir du journal brut, mise en forme en tant que libellé. |
data |
- | Contient différents champs qui sont extraits et mappés individuellement. |
DATASET_IDS |
target.resource.name |
Valeur de DATASET_IDS à partir du journal brut. |
DelegatedOrganizationId |
target.administrative_domain |
Valeur de DelegatedOrganizationId à partir du journal brut. |
DelegatedUsername |
observer.user.userid |
Valeur de DelegatedUsername à partir du journal brut. |
Description |
metadata.description |
Valeur de Description à partir du journal brut. |
DevicePlatform |
principal.resource.type |
Valeur de DevicePlatform à partir du journal brut, analysée pour extraire le type de ressource. |
Display |
metadata.description |
Valeur de Display à partir du journal brut. |
DOWNLOAD_FORMAT |
target.resource.attribute.labels |
Valeur de DOWNLOAD_FORMAT à partir du journal brut, mise en forme en tant que libellé. |
Duration |
target.resource.attribute.labels |
Valeur de Duration à partir du journal brut, mise en forme en tant que libellé. |
ENTITY_NAME |
target.resource.attribute.labels |
Valeur de ENTITY_NAME à partir du journal brut, mise en forme en tant que libellé. |
ErrorCode |
security_result.action |
Valeur de ErrorCode du journal brut, transformée en ALLOW ou BLOCK. |
EventDate |
timestamp |
Valeur de EventDate à partir du journal brut, ou data.properties.TIMESTAMP_DERIVED.str si disponible, ou data.properties.TIMESTAMP_DERIVED_FIRST.str si disponible, ou @timestamp si disponible, ou created_date si disponible, ou timestamp si disponible, ou LoginTime pour LoginHistory. |
EventIdentifier |
metadata.product_log_id |
Valeur de EventIdentifier à partir du journal brut. |
EventType |
metadata.product_event_type |
Valeur de EventType à partir du journal brut. |
Id |
principal.user.userid |
Valeur de Id à partir du journal brut, ou metadata.product_log_id pour SetupAuditTrail et d'autres événements. |
IdentityUsed |
principal.user.email_addresses |
Valeur de IdentityUsed à partir du journal brut. |
Lead.Name |
target.resource.name |
Valeur de Lead.Name à partir du journal brut. |
LeadId |
target.resource.id |
Valeur de LeadId à partir du journal brut. |
LoginAsCategory |
- | Non mappé à l'objet IDM. |
LoginGeo.Country |
principal.location.country_or_region |
Valeur de LoginGeo.Country à partir du journal brut. |
LoginHistoryId |
- | Non mappé à l'objet IDM. |
LoginKey |
principal.user.userid, network.session_id |
Valeur de LoginKey à partir du journal brut ou CreatedByContext pour SetupAuditTrail. |
LoginTime |
timestamp |
Valeur de LoginTime à partir du journal brut. |
LoginType |
security_result.description |
Valeur de LoginType à partir du journal brut, ou "Autre API Apex" pour LoginHistory avec ApiType comme "Partenaire SOAP", ou "Accès à distance 2.0" pour LoginHistory avec Application comme "SfdcSiqActivityPlatform". |
LoginUrl |
target.url, principal.url |
Valeur de LoginUrl à partir du journal brut. |
LogFile |
principal.resource.attribute.labels |
Valeur de LogFile à partir du journal brut, mise en forme en tant que libellé. |
LogFileContentType |
principal.resource.attribute.labels |
Valeur de LogFileContentType à partir du journal brut, mise en forme en tant que libellé. |
LogFileLength |
principal.resource.attribute.labels |
Valeur de LogFileLength à partir du journal brut, mise en forme en tant que libellé. |
Message |
- | Non mappé à l'objet IDM. |
METHOD |
network.http.method |
Valeur de METHOD à partir du journal brut. |
Name |
target.application |
Valeur de Name à partir du journal brut. |
NewValue |
- | Utilisé conjointement avec OldValue pour générer security_result.summary. |
NUMBER_FIELDS |
target.resource.attribute.labels |
Valeur de NUMBER_FIELDS à partir du journal brut, mise en forme en tant que libellé. |
OldValue |
- | Utilisé conjointement avec NewValue pour générer security_result.summary. |
Operation |
security_result.description, target.resource.attribute.labels |
Valeur de Operation à partir du journal brut ou Display pour SetupAuditTrail. |
OperationStatus |
security_result.action |
Valeur de OperationStatus du journal brut, transformée en ALLOW ou BLOCK. |
ORGANIZATION_ID |
target.administrative_domain |
Valeur de ORGANIZATION_ID à partir du journal brut. |
OsName |
principal.platform |
Valeur de OsName à partir du journal brut. |
OsVersion |
principal.platform_version |
Valeur de OsVersion à partir du journal brut. |
Platform |
principal.platform |
La valeur de Platform à partir du journal brut, ou de data.properties.OsName.str pour LightningUriEventStream, ou de data.properties.OsName.str pour LoginEventStream. |
QueriedEntities |
target.resource.name, principal.labels |
La valeur de QueriedEntities à partir du journal brut, ou component_name pour UriEvent et ApiEvent. |
Query |
target.process.command_line, principal.labels |
Valeur de Query à partir du journal brut. |
RecordId |
target.resource.id |
Valeur de RecordId à partir du journal brut. |
Records |
principal.labels |
Valeur de Records à partir du journal brut, mise en forme en tant que libellé. |
REQUEST_ID |
metadata.product_log_id, target.resource.product_object_id |
Valeur de REQUEST_ID à partir du journal brut. |
REQUEST_SIZE |
network.sent_bytes |
Valeur de REQUEST_SIZE à partir du journal brut. |
REQUEST_STATUS |
security_result.summary |
Valeur de REQUEST_STATUS à partir du journal brut. |
RESPONSE_SIZE |
network.received_bytes |
Valeur de RESPONSE_SIZE à partir du journal brut. |
RowsProcessed |
target.resource.attribute.labels |
Valeur de RowsProcessed à partir du journal brut, mise en forme en tant que libellé. |
RUN_TIME |
target.resource.attribute.labels |
Valeur de RUN_TIME à partir du journal brut, mise en forme en tant que libellé. |
SamlEntityUrl |
- | Non mappé à l'objet IDM. |
SdkAppType |
- | Non mappé à l'objet IDM. |
SdkAppVersion |
- | Non mappé à l'objet IDM. |
SdkVersion |
- | Non mappé à l'objet IDM. |
Section |
security_result.summary |
Valeur de Section à partir du journal brut. |
SessionKey |
network.session_id |
Valeur de SessionKey à partir du journal brut. |
SessionLevel |
target.resource.attribute.labels |
Valeur de SessionLevel à partir du journal brut, mise en forme en tant que libellé. |
SourceIp |
principal.ip, principal.asset.ip |
Valeur de SourceIp à partir du journal brut. |
src |
principal.ip, principal.asset.ip |
Valeur de src à partir du journal brut. |
SsoType |
target.resource.attribute.labels |
Valeur de SsoType à partir du journal brut, mise en forme en tant que libellé. |
STATUS_CODE |
network.http.response_code |
Valeur de STATUS_CODE à partir du journal brut. |
Status |
security_result.action, security_result.action_details |
Valeur de Status du journal brut, transformée en ALLOW ou BLOCK, ou utilisée comme détails d'action pour LoginEventStream. |
Subject |
target.resource.name |
Valeur de Subject à partir du journal brut. |
TargetUrl |
- | Non mappé à l'objet IDM. |
TIMESTAMP |
metadata.collected_timestamp |
Valeur de TIMESTAMP à partir du journal brut. |
TIMESTAMP_DERIVED |
timestamp |
Valeur de TIMESTAMP_DERIVED à partir du journal brut. |
TlsProtocol |
network.tls.version_protocol |
Valeur de TlsProtocol à partir du journal brut. |
URI |
target.url |
Valeur de URI à partir du journal brut. |
USER_AGENT |
network.http.user_agent |
Valeur de USER_AGENT à partir du journal brut. |
USER_ID |
principal.user.userid |
Valeur de USER_ID à partir du journal brut. |
USER_ID_DERIVED |
principal.user.product_object_id, target.resource.attribute.labels |
Valeur de USER_ID_DERIVED à partir du journal brut. |
UserId |
principal.user.userid |
Valeur de UserId à partir du journal brut. |
USER_TYPE |
target.resource.attribute.labels |
Valeur de USER_TYPE à partir du journal brut, mise en forme en tant que libellé. |
Username |
principal.user.userid, principal.user.email_addresses, target.user.email_addresses |
Valeur de Username à partir du journal brut, ou src_email pour différents événements, ou IdentityUsed pour IdentityProviderEventStore, ou data.properties.Email.str pour Search et SearchAlert, ou data.properties.Username.str pour LoginAsEventStream et LoginEventStream. |
UserType |
target.resource.attribute.labels |
Valeur de UserType à partir du journal brut, mise en forme en tant que libellé. |
usrName |
principal.user.userid, principal.user.email_addresses, target.user.email_addresses |
Valeur de usrName à partir du journal brut. |
VerificationMethod |
target.resource.attribute.labels |
Valeur de VerificationMethod à partir du journal brut, mise en forme en tant que libellé. |
| Logique de l'analyseur | metadata.event_type |
Dérivé des champs event_id et operation, ou défini sur "USER_LOGIN" pour LoginEventStream, "USER_LOGOUT" pour Logout et LogoutEvent, "USER_RESOURCE_UPDATE_CONTENT" pour divers événements, "USER_RESOURCE_UPDATE_PERMISSIONS" pour PlatformEncryption, "RESOURCE_READ" pour QueuedExecution, ApexExecution, LightningInteraction, LightningPerformance, LightningPageView, URI, RestApi, API, AuraRequest, ApexCallout, OneCommerceUsage, Sites, MetadataApiOperation, OneCommerceUsage, VisualforceRequest, Dashboard, Search, ListViewEvent, "RESOURCE_CREATION" pour UriEvent et TimeBasedWorkflow avec Operation défini sur "Create" ou "INSERT", "RESOURCE_WRITTEN" pour UriEvent et LightningUriEvent avec Operation défini sur "Update", "RESOURCE_DELETION" pour UriEvent avec Operation défini sur "Delete" ou "ROLLBACK", "USER_UNCATEGORIZED" pour SetupAuditTrail et AuditTrail, "USER_CHANGE_PASSWORD" pour SetupAuditTrail avec operation défini sur "namedCredentialEncryptedFieldChange", "GENERIC_EVENT" pour ApiEventStream et LightningUriEventStream, ou en fonction de la présence du réseau et du principal. |
| Logique de l'analyseur | metadata.ingestion_labels |
Libellés indiquant la source de l'événement : "Fichier journal des événements", "Surveillance des événements en temps réel" ou "SetupAuditTrail". |
| Logique de l'analyseur | metadata.log_type |
Toujours défini sur "SALESFORCE". |
| Logique de l'analyseur | metadata.product_name |
Toujours défini sur "SALESFORCE". |
| Logique de l'analyseur | metadata.vendor_name |
Toujours défini sur "SALESFORCE". |
| Logique de l'analyseur | metadata.url_back_to_product |
Construit à partir de différents champs tels que LoginUrl, attributes.url, data.properties.PageUrl.str et data.properties.LoginUrl.str. |
| Logique de l'analyseur | network.application_protocol |
Définissez la valeur sur "HTTPS" si le champ uri commence par "http". |
| Logique de l'analyseur | network.http.referral_url |
Extrait du champ user_agent s'il contient "Referer=". |
| Logique de l'analyseur | network.http.response_code |
Dérivé de request_status pour divers événements. |
| Logique de l'analyseur | network.http.user_agent |
Valeur de user_agent à partir du journal brut, ou de data.properties.UserAgent.str pour ApiEventStream et LoginEventStream, ou des événements Sites, ou "User-Agent" des événements Sites. |
| Logique de l'analyseur | network.session_id |
Valeur de session_key ou SESSION_KEY à partir du journal brut, ou construite à partir d'autres champs tels que LoginKey ou AuthSessionId. |
| Logique de l'analyseur | network.tls.version |
Valeur de tls_protocol à partir du journal brut ou de data.properties.TlsProtocol.str pour LoginEventStream. |
| Logique de l'analyseur | principal.application |
Valeur de application à partir du journal brut, ou "Salesforce pour Outlook" pour les événements "Connexion : succès", ou "Insights" pour les événements "Connexion : succès" sans application, ou extraite de device_platform pour les événements Lightning. |
| Logique de l'analyseur | principal.asset.hostname |
Valeur de client_ip s'il s'agit d'un nom d'hôte. |
| Logique de l'analyseur | principal.asset.ip |
La valeur de client_ip, src_ip, SourceIp ou CLIENT_IP s'il s'agit d'une adresse IP. |
| Logique de l'analyseur | principal.hostname |
Valeur de client_ip s'il s'agit d'un nom d'hôte. |
| Logique de l'analyseur | principal.ip |
La valeur de client_ip, src_ip, SourceIp ou CLIENT_IP s'il s'agit d'une adresse IP. |
| Logique de l'analyseur | principal.labels |
Libellés construits à partir de différents champs tels que FederationIdentifier, ApiType, OrgId, channel. |
| Logique de l'analyseur | principal.location.city |
Valeur de geoip_src.city_name, City ou LoginGeo.City à partir du journal brut. |
| Logique de l'analyseur | principal.location.country_or_region |
Valeur de geoip_src.country_name, Country, LoginGeo.Country ou client_geo à partir du journal brut. |
| Logique de l'analyseur | principal.location.region_latitude |
Valeur de data.properties.LoginLatitude.number à partir du journal brut. |
| Logique de l'analyseur | principal.location.region_longitude |
Valeur de data.properties.LoginLongitude.number à partir du journal brut. |
| Logique de l'analyseur | principal.location.state |
Valeur de geoip_src.region_name à partir du journal brut. |
| Logique de l'analyseur | principal.platform |
Valeur de Platform, OsName ou os_name à partir du journal brut, ou "WINDOWS" pour LoginEventStream avec Platform contenant "Windows". |
| Logique de l'analyseur | principal.platform_version |
Valeur de OsVersion ou os_version du journal brut, ou extraite de Platform pour LoginEventStream avec Platform contenant "Windows". |
| Logique de l'analyseur | principal.resource.attribute.labels |
Libellés construits à partir de différents champs tels que CreatedById, ApiVersion, LogFile, LogFileContentType, LogFileLength. |
| Logique de l'analyseur | principal.resource.name |
Valeur de Browser ou browser_name à partir du journal brut, ou "Java (Salesforce.com)" pour LoginHistory avec ApiType défini sur "SOAP Partner". |
| Logique de l'analyseur | principal.resource.type |
Extrait de device_platform pour les événements Lightning ou "Navigateur" pour LoginAsEvent et LoginAsEventStream. |
| Logique de l'analyseur | principal.url |
Valeur de LoginUrl à partir du journal brut. |
| Logique de l'analyseur | principal.user.email_addresses |
Valeur usrName, Username, src_email, IdentityUsed, data.properties.Username.str ou data.properties.Email.str du journal brut. |
| Logique de l'analyseur | principal.user.product_object_id |
Valeur attrs.USER_ID_DERIVED ou data.properties.USER_ID_DERIVED.str du journal brut. |
| Logique de l'analyseur | principal.user.userid |
Valeur de usrName, Username, user_id, UserId, USER_ID, Id, LoginKey, CreatedByContext, data.properties.Username.str, data.properties.USER_ID.str ou data.properties.LoginKey.str du journal brut. |
| Logique de l'analyseur | security_result.action |
Dérivé de Status, OperationStatus, ErrorCode, action ou operation_status du journal brut, transformé en ALLOW ou BLOCK. |
| Logique de l'analyseur | security_result.action_details |
Valeur de Status à partir du journal brut pour LoginEventStream. |
| Logique de l'analyseur | security_result.description |
Valeur de LoginType, logintype, Operation, Action ou Display du journal brut. |
| Logique de l'analyseur | security_result.rule_name |
Valeur Policy ou rule_name du journal brut. |
| Logique de l'analyseur | security_result.summary |
Construit à partir de NewValue et OldValue ou REQUEST_STATUS ou Section ou forecastcategory à partir du journal brut. |
| Logique de l'analyseur | target.administrative_domain |
Valeur de ORGANIZATION_ID, DelegatedOrganizationId, organization_id ou data.properties.OrgName.str à partir du journal brut. |
| Logique de l'analyseur | target.application |
Valeur de Application, app_name, ApiType, Name ou data.properties.Application.str du journal brut. |
| Logique de l'analyseur | target.asset.hostname |
Valeur de target_hostname extraite du champ uri. |
| Logique de l'analyseur | target.asset.ip |
Valeur de data.properties.CLIENT_IP.str à partir du journal brut. |
| Logique de l'analyseur | target.asset_id |
Construit à partir de device_id ou REQUEST_ID. |
| Logique de l'analyseur | target.file.mime_type |
Valeur de file_type à partir du journal brut. |
| Logique de l'analyseur | target.file.size |
Valeur de size_bytes à partir du journal brut. |
| Logique de l'analyseur | target.hostname |
Valeur de target_hostname extraite du champ uri. |
| Logique de l'analyseur | target.process.command_line |
Valeur de query_exec, Query ou data.properties.Query.str à partir du journal brut. |
| Logique de l'analyseur | target.process.pid |
Valeur de job_id à partir du journal brut. |
| Logique de l'analyseur | target.resource.attribute.labels |
Étiquettes construites à partir de différents champs, comme 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 et SessionLevel. |
| Logique de l'analyseur | target.resource.id |
Valeur REQUEST_ID, RecordId, caseid, leadid, contactid, opportunityid ou accountid du journal brut. |
| Logique de l'analyseur | target.resource.name |
Valeur QueriedEntities, resource_name, component_name, DATASET_IDS, field, StageName ou Subject du journal brut. |
| Logique de l'analyseur | target.resource.product_object_id |
Valeur de REQUEST_ID à partir du journal brut. |
| Logique de l'analyseur | target.resource.resource_type |
Définissez sur "ACCESS_POLICY" pour ApexCallout et PlatformEncryption, sur "DATABASE" pour ApexTrigger, sur "FILE" pour ContentTransfer ou sur "TABLE" pour ApiEvent. |
| Logique de l'analyseur | target.resource.type |
Défini sur "BATCH" pour QueuedExecution et ApexExecution, sur "FILE" pour ContentTransfer, sur "DATABASE_TRIGGER" pour ApexTrigger, ou sur "Case", "Lead", "Contact", "Opportunity" ou "Account" en fonction de la présence des champs d'ID correspondants. |
| Logique de l'analyseur | target.url |
Valeur de LoginUrl, URI, attributes.url, login_url ou uri du journal brut. |
| Logique de l'analyseur | target.user.email_addresses |
Valeur de Username, attrs.usrName ou email_address à partir du journal brut. |
| Logique de l'analyseur | target.user.user_display_name |
Valeur de target_user_display_name, user_name ou username à partir du journal brut. |
| Logique de l'analyseur | target.user.userid |
Valeur de target_user_name, data.properties.UserId.str ou data.properties.CreatedById.str à partir du journal brut. |
| Logique de l'analyseur | extensions.auth.auth_details |
Définissez la valeur sur "ACTIVE" si Status n'est pas "Success", sinon définissez-la sur "UNKNOWN_AUTHENTICATION_STATUS". |
| Logique de l'analyseur | extensions.auth.mechanism |
Définissez la valeur sur "REMOTE" pour les événements "Connexion : réussie" et "Connexion" avec logintype contenant "Remote", ou sur "USERNAME_PASSWORD" pour LoginEventStream, ou sur "MECHANISM_OTHER" pour les événements avec login_url, ou sur "AUTHTYPE_UNSPECIFIED" pour les événements "Connexion : réussie" et "Déconnexion". |
| Logique de l'analyseur | extensions.auth.type |
Définissez la valeur sur "SSO" pour Login, Logout, LogoutEvent, LoginAs, IdentityProviderEventStore, LoginHistory, LoginAsEvent avec LoginType défini sur "SAML Sfdc Initiated SSO", ou "AUTHTYPE_UNSPECIFIED" pour Login: Success, Logout, LoginAsEvent avec LoginType défini sur "Application". |
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.