Recopila registros de Salesforce
En este documento, se explica cómo recopilar registros de Salesforce configurando un feed de Google Security Operations con la API de terceros.
Salesforce es una plataforma de administración de relaciones con clientes (CRM) basada en la nube que proporciona herramientas para ventas, servicios, marketing y estadísticas. Los registros de Salesforce capturan la actividad del usuario, los eventos de seguridad, los cambios del sistema y el uso de la API en toda la plataforma.
Antes de comenzar
Asegúrate de cumplir con los siguientes requisitos previos:
- Una instancia de Google SecOps
- Salesforce Enterprise Edition o una versión superior (acceso a la API habilitado)
- Permisos de administrador del sistema de Salesforce
- OpenSSL instalado (para la generación de certificados)
Genera un certificado y un par de clave RSA
Genera una clave privada RSA y un certificado X.509 autofirmado para la firma de JWT.
Genera una clave privada
```bash
openssl genrsa -out salesforce_private.key 2048
```
Genera un certificado autofirmado
```bash
openssl req -new -x509 -key salesforce_private.key -out salesforce_certificate.crt -days 365
```
Cuando se te solicite, ingresa los detalles del certificado:
- Nombre del país: Ingresa el código de país de 2 letras (por ejemplo,
US). - Nombre del estado o la provincia: Ingresa tu estado (por ejemplo,
California). - Nombre de la localidad: Ingresa tu ciudad (por ejemplo,
San Francisco). - Nombre de la organización: Ingresa el nombre de tu organización (por ejemplo,
Acme Corp). - Nombre de la unidad organizativa: Ingresa el departamento (por ejemplo,
IT Security). - Nombre común: Ingresa un nombre descriptivo (por ejemplo,
Chronicle Integration). - Dirección de correo electrónico: Ingresa el correo electrónico de contacto.
Crea una app cliente externa de Salesforce
Las apps cliente externas son el método recomendado para la autenticación de OAuth en Salesforce (Spring '26 y versiones posteriores).
- Accede a Salesforce.
- Ve a Configuración (ícono de ajustes en la esquina superior derecha).
- En el cuadro Búsqueda rápida, ingresa
External Client Apps. - Haz clic en Administrador de aplicaciones cliente externas.
- Haz clic en Nueva aplicación cliente externa.
Configura la información básica
- Proporciona los siguientes detalles de configuración:
- External Client App Name: Ingresa un nombre descriptivo (por ejemplo,
Google SecOps Integration). - Nombre de la API: Se completa automáticamente según el nombre de la app. Déjalo como predeterminado o personalízalo.
- Correo electrónico de contacto: Ingresa tu dirección de correo electrónico.
- Estado de distribución: Selecciona Local.
- External Client App Name: Ingresa un nombre descriptivo (por ejemplo,
- Haz clic en Continuar.
Habilita la configuración de OAuth
- Selecciona la casilla de verificación Habilitar OAuth.
- Proporciona los siguientes detalles de configuración:
- URL de devolución de llamada: Ingresa
https://login.salesforce.com/services/oauth2/callback.
- URL de devolución de llamada: Ingresa
- En la sección OAuth Scopes, mueve los siguientes permisos de Available OAuth Scopes a Selected OAuth Scopes:
- Administra datos del usuario a través de las APIs (api)
- Realizar solicitudes en tu nombre en cualquier momento (refresh_token, offline_access)
Habilita el flujo de token de portador de JWT y sube el certificado
- En la sección Habilitación del flujo, selecciona la casilla de verificación Habilitar el flujo de token de portador de JWT.
- Aparecerá la sección Carga de certificado.
- Haz clic en Subir archivos o arrastra y suelta el archivo del certificado.
- Selecciona el archivo
salesforce_certificate.crtque se generó antes. - Espera a que se complete la carga. El nombre del archivo del certificado debería aparecer debajo del botón de carga.
Configura políticas de OAuth
- En la sección Políticas de OAuth, haz lo siguiente:
- Usuarios permitidos: Selecciona Usuarios aprobados por el administrador con autorización previa.
- Haz clic en Guardar.
Obtén la clave de consumidor
Después de crear la aplicación cliente externa, recupera la clave de consumidor para la configuración de Chronicle.
- En el Administrador de aplicaciones cliente externas, haz clic en el nombre de tu aplicación (por ejemplo,
Google SecOps Integration). - Vaya a la pestaña Configuración.
- En la sección Configuración de OAuth, haz clic en Clave y secreto del consumidor.
- Copia y guarda el valor de la clave de consumidor.
Formato de ejemplo de clave del consumidor:
```
3MVG9IKcPoNiNVBIPjdw4z.pcfRjTFBp7xC8x9k4U8jZ0HlLQdPqX5bKjR8yNzQ9_YvY.8xD3F2W6nXb5YgNx
```
Autoriza previamente la aplicación cliente externa
Salesforce requiere una autorización previa para el flujo de portador de JWT. Autoriza previamente la app cliente externa asignándola a un usuario a través de un conjunto de permisos.
Crea un conjunto de permisos
- Ve a Configuración > Usuarios > Conjuntos de permisos.
- Haz clic en Nuevo.
- Proporciona los siguientes detalles de configuración:
- Label: Ingresa
Chronicle Integration Users(por ejemplo). - Nombre de la API: Se completa automáticamente según la etiqueta.
- Label: Ingresa
- Haz clic en Guardar.
Asigna el conjunto de permisos a la app cliente externa
- Ve a Configuración > Administrador de apps cliente externas.
- Haz clic en tu aplicación cliente externa (por ejemplo,
Google SecOps Integration). - Haz clic en la pestaña Políticas.
- En la sección Políticas de la app, en Seleccionar conjuntos de permisos, haz lo siguiente:
- Mueve tu conjunto de permisos (por ejemplo,
Chronicle Integration Users) de Available Permission Sets a Selected Permission Sets.
- Mueve tu conjunto de permisos (por ejemplo,
- Haz clic en Guardar.
Asigna un conjunto de permisos al usuario
- En la página de detalles del conjunto de permisos, haz clic en Administrar asignaciones.
- Haz clic en Agregar tareas.
- Selecciona la casilla de verificación junto a la cuenta de usuario que se usará para la integración de Chronicle (por ejemplo,
integration@acme.com). - Haz clic en Asignar.
- Haz clic en Listo.
Configura un feed en Google SecOps para transferir registros de Salesforce
- Ve a Configuración de SIEM > Feeds.
- Haz clic en Agregar feed nuevo.
- En la siguiente página, haz clic en Configurar un solo feed.
- En el campo Nombre del feed, ingresa un nombre para el feed (por ejemplo,
Salesforce EventLogFile). - Selecciona API de terceros como el Tipo de origen.
- Selecciona SALESFORCE como el Tipo de registro.
- Haz clic en Siguiente.
- Especifica valores para los siguientes parámetros de entrada:
- Nombre de host de la API: Ingresa el nombre de host de tu instancia de Salesforce (por ejemplo,
acme.my.salesforce.com).
- Nombre de host de la API: Ingresa el nombre de host de tu instancia de Salesforce (por ejemplo,
* **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.
Para obtener el contenido de la clave privada, haz lo siguiente:
```bash
cat salesforce_private.key
```
Copia todo el resultado, incluidas las líneas de encabezado y pie de página.
* **Asset namespace**: The [asset namespace](/chronicle/docs/investigation/asset-namespaces).
* **Ingestion labels**: The label to be applied to the events from this feed.
- Haz clic en Siguiente.
- Revisa la nueva configuración del feed en la pantalla Finalizar y, luego, haz clic en Enviar.
Referencia de tipos de instancias de Salesforce
Los valores del extremo y el público del JWT de OAuth dependen del tipo de instancia de 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.
Tabla de asignación de UDM
| Campo de registro | Asignación de UDM | Lógica |
|---|---|---|
Account.Name |
target.resource.name |
Es el valor de Account.Name del registro sin procesar. |
AccountId |
target.resource.id |
Es el valor de AccountId del registro sin procesar. |
Action |
security_result.description |
Es el valor de Action del registro sin procesar. |
AdditionalInfo |
- | No se asignó al objeto de IDM. |
ApiType |
target.application |
Es el valor de ApiType del registro sin procesar. |
ApiVersion |
- | No se asignó al objeto de IDM. |
Application |
principal.application |
Es el valor de Application del registro sin procesar, "Navegador" para LoginAsEvent, "Token de JWT de integración" para LoginEvent, "SfdcSiqActivityPlatform" para LoginHistory con el tipo de objeto LoginHistory, "N/A" para ApiEvent o "Navegador" para LoginAsEventStream. |
attributes.url |
target.url |
Es el valor de attributes.url del registro sin procesar o las URLs específicas de varios tipos de eventos del registro sin procesar. |
attributes.type |
metadata.product_event_type |
Es el valor de attributes.type del registro sin procesar. |
AuthSessionId |
network.session_id |
Es el valor de AuthSessionId del registro sin procesar. |
Browser |
principal.resource.name |
Es el valor de Browser del registro sin procesar o "Unknown" si Browser no está disponible en el registro sin procesar y Application es "Insights", o "Java (Salesforce.com)" para LoginHistory con ApiType como "Socio de SOAP", o "Unknown" para LoginHistory con Application como "SfdcSiqActivityPlatform", o de data.properties.Browser.str para LoginAsEventStream. |
Case.Subject |
target.resource.name |
Es el valor de Case.Subject del registro sin procesar. |
CaseId |
target.resource.id |
Es el valor de CaseId del registro sin procesar. |
cat |
metadata.product_event_type |
Es el valor de cat del registro sin procesar. |
City |
principal.location.city |
Valor de City del registro sin procesar o de LoginGeo.City para LoginHistory. |
Client |
principal.labels |
El valor de Client del registro sin procesar, con el formato de una etiqueta. |
CLIENT_IP |
principal.ip, principal.asset.ip |
Es el valor de CLIENT_IP del registro sin procesar. |
ClientVersion |
- | No se asignó al objeto de IDM. |
CipherSuite |
network.tls.cipher |
Es el valor de CipherSuite del registro sin procesar. |
ColumnHeaders |
principal.labels |
El valor de ColumnHeaders del registro sin procesar, con el formato de una etiqueta. |
ConnectedAppId |
principal.labels |
El valor de ConnectedAppId del registro sin procesar, con el formato de una etiqueta. |
Contact.Name |
target.resource.name |
Es el valor de Contact.Name del registro sin procesar. |
ContactId |
target.resource.id |
Es el valor de ContactId del registro sin procesar. |
Country |
principal.location.country_or_region |
Es el valor de Country del registro sin procesar o LoginGeo.Country para LoginHistory. |
CreatedByContext |
principal.user.userid |
Es el valor de CreatedByContext del registro sin procesar. |
CreatedById |
principal.resource.attribute.labels |
El valor de CreatedById del registro sin procesar, con el formato de una etiqueta. |
CreatedDate |
metadata.collected_timestamp |
Es el valor de CreatedDate del registro sin procesar o la marca de tiempo actual si no está disponible. |
CPU_TIME |
target.resource.attribute.labels |
El valor de CPU_TIME del registro sin procesar, con el formato de una etiqueta. |
data |
- | Contiene varios campos que se extraen y asignan de forma individual. |
DATASET_IDS |
target.resource.name |
Es el valor de DATASET_IDS del registro sin procesar. |
DelegatedOrganizationId |
target.administrative_domain |
Es el valor de DelegatedOrganizationId del registro sin procesar. |
DelegatedUsername |
observer.user.userid |
Es el valor de DelegatedUsername del registro sin procesar. |
Description |
metadata.description |
Es el valor de Description del registro sin procesar. |
DevicePlatform |
principal.resource.type |
Valor de DevicePlatform del registro sin procesar, analizado para extraer el tipo de recurso. |
Display |
metadata.description |
Es el valor de Display del registro sin procesar. |
DOWNLOAD_FORMAT |
target.resource.attribute.labels |
El valor de DOWNLOAD_FORMAT del registro sin procesar, con el formato de una etiqueta. |
Duration |
target.resource.attribute.labels |
El valor de Duration del registro sin procesar, con el formato de una etiqueta. |
ENTITY_NAME |
target.resource.attribute.labels |
El valor de ENTITY_NAME del registro sin procesar, con el formato de una etiqueta. |
ErrorCode |
security_result.action |
Es el valor de ErrorCode del registro sin procesar, transformado en ALLOW o BLOCK. |
EventDate |
timestamp |
Es el valor de EventDate del registro sin procesar, o data.properties.TIMESTAMP_DERIVED.str si está disponible, o data.properties.TIMESTAMP_DERIVED_FIRST.str si está disponible, o @timestamp si está disponible, o created_date si está disponible, o timestamp si está disponible, o LoginTime para LoginHistory. |
EventIdentifier |
metadata.product_log_id |
Es el valor de EventIdentifier del registro sin procesar. |
EventType |
metadata.product_event_type |
Es el valor de EventType del registro sin procesar. |
Id |
principal.user.userid |
Es el valor de Id del registro sin procesar o metadata.product_log_id para SetupAuditTrail y otros eventos. |
IdentityUsed |
principal.user.email_addresses |
Es el valor de IdentityUsed del registro sin procesar. |
Lead.Name |
target.resource.name |
Es el valor de Lead.Name del registro sin procesar. |
LeadId |
target.resource.id |
Es el valor de LeadId del registro sin procesar. |
LoginAsCategory |
- | No se asignó al objeto de IDM. |
LoginGeo.Country |
principal.location.country_or_region |
Es el valor de LoginGeo.Country del registro sin procesar. |
LoginHistoryId |
- | No se asignó al objeto de IDM. |
LoginKey |
principal.user.userid, network.session_id |
Es el valor de LoginKey del registro sin procesar o CreatedByContext para SetupAuditTrail. |
LoginTime |
timestamp |
Es el valor de LoginTime del registro sin procesar. |
LoginType |
security_result.description |
Valor de LoginType del registro sin procesar o "Otra API de Apex" para LoginHistory con ApiType como "Socio de SOAP", o "Acceso remoto 2.0" para LoginHistory con Application como "SfdcSiqActivityPlatform". |
LoginUrl |
target.url, principal.url |
Es el valor de LoginUrl del registro sin procesar. |
LogFile |
principal.resource.attribute.labels |
El valor de LogFile del registro sin procesar, con el formato de una etiqueta. |
LogFileContentType |
principal.resource.attribute.labels |
El valor de LogFileContentType del registro sin procesar, con el formato de una etiqueta. |
LogFileLength |
principal.resource.attribute.labels |
El valor de LogFileLength del registro sin procesar, con el formato de una etiqueta. |
Message |
- | No se asignó al objeto de IDM. |
METHOD |
network.http.method |
Es el valor de METHOD del registro sin procesar. |
Name |
target.application |
Es el valor de Name del registro sin procesar. |
NewValue |
- | Se usa junto con OldValue para generar security_result.summary. |
NUMBER_FIELDS |
target.resource.attribute.labels |
El valor de NUMBER_FIELDS del registro sin procesar, con el formato de una etiqueta. |
OldValue |
- | Se usa junto con NewValue para generar security_result.summary. |
Operation |
security_result.description, target.resource.attribute.labels |
Es el valor de Operation del registro sin procesar o Display para SetupAuditTrail. |
OperationStatus |
security_result.action |
Es el valor de OperationStatus del registro sin procesar, transformado en ALLOW o BLOCK. |
ORGANIZATION_ID |
target.administrative_domain |
Es el valor de ORGANIZATION_ID del registro sin procesar. |
OsName |
principal.platform |
Es el valor de OsName del registro sin procesar. |
OsVersion |
principal.platform_version |
Es el valor de OsVersion del registro sin procesar. |
Platform |
principal.platform |
Es el valor de Platform del registro sin procesar, de data.properties.OsName.str para LightningUriEventStream o de data.properties.OsName.str para LoginEventStream. |
QueriedEntities |
target.resource.name, principal.labels |
El valor de QueriedEntities del registro sin procesar o component_name para UriEvent y ApiEvent. |
Query |
target.process.command_line, principal.labels |
Es el valor de Query del registro sin procesar. |
RecordId |
target.resource.id |
Es el valor de RecordId del registro sin procesar. |
Records |
principal.labels |
El valor de Records del registro sin procesar, con el formato de una etiqueta. |
REQUEST_ID |
metadata.product_log_id, target.resource.product_object_id |
Es el valor de REQUEST_ID del registro sin procesar. |
REQUEST_SIZE |
network.sent_bytes |
Es el valor de REQUEST_SIZE del registro sin procesar. |
REQUEST_STATUS |
security_result.summary |
Es el valor de REQUEST_STATUS del registro sin procesar. |
RESPONSE_SIZE |
network.received_bytes |
Es el valor de RESPONSE_SIZE del registro sin procesar. |
RowsProcessed |
target.resource.attribute.labels |
El valor de RowsProcessed del registro sin procesar, con el formato de una etiqueta. |
RUN_TIME |
target.resource.attribute.labels |
El valor de RUN_TIME del registro sin procesar, con el formato de una etiqueta. |
SamlEntityUrl |
- | No se asignó al objeto de IDM. |
SdkAppType |
- | No se asignó al objeto de IDM. |
SdkAppVersion |
- | No se asignó al objeto de IDM. |
SdkVersion |
- | No se asignó al objeto de IDM. |
Section |
security_result.summary |
Es el valor de Section del registro sin procesar. |
SessionKey |
network.session_id |
Es el valor de SessionKey del registro sin procesar. |
SessionLevel |
target.resource.attribute.labels |
El valor de SessionLevel del registro sin procesar, con el formato de una etiqueta. |
SourceIp |
principal.ip, principal.asset.ip |
Es el valor de SourceIp del registro sin procesar. |
src |
principal.ip, principal.asset.ip |
Es el valor de src del registro sin procesar. |
SsoType |
target.resource.attribute.labels |
El valor de SsoType del registro sin procesar, con el formato de una etiqueta. |
STATUS_CODE |
network.http.response_code |
Es el valor de STATUS_CODE del registro sin procesar. |
Status |
security_result.action, security_result.action_details |
Es el valor de Status del registro sin procesar, transformado en ALLOW o BLOCK, o bien se usa como detalles de la acción para LoginEventStream. |
Subject |
target.resource.name |
Es el valor de Subject del registro sin procesar. |
TargetUrl |
- | No se asignó al objeto de IDM. |
TIMESTAMP |
metadata.collected_timestamp |
Es el valor de TIMESTAMP del registro sin procesar. |
TIMESTAMP_DERIVED |
timestamp |
Es el valor de TIMESTAMP_DERIVED del registro sin procesar. |
TlsProtocol |
network.tls.version_protocol |
Es el valor de TlsProtocol del registro sin procesar. |
URI |
target.url |
Es el valor de URI del registro sin procesar. |
USER_AGENT |
network.http.user_agent |
Es el valor de USER_AGENT del registro sin procesar. |
USER_ID |
principal.user.userid |
Es el valor de USER_ID del registro sin procesar. |
USER_ID_DERIVED |
principal.user.product_object_id, target.resource.attribute.labels |
Es el valor de USER_ID_DERIVED del registro sin procesar. |
UserId |
principal.user.userid |
Es el valor de UserId del registro sin procesar. |
USER_TYPE |
target.resource.attribute.labels |
El valor de USER_TYPE del registro sin procesar, con el formato de una etiqueta. |
Username |
principal.user.userid, principal.user.email_addresses, target.user.email_addresses |
Es el valor de Username del registro sin procesar, src_email para varios eventos, IdentityUsed para IdentityProviderEventStore, data.properties.Email.str para Search y SearchAlert, o data.properties.Username.str para LoginAsEventStream y LoginEventStream. |
UserType |
target.resource.attribute.labels |
El valor de UserType del registro sin procesar, con el formato de una etiqueta. |
usrName |
principal.user.userid, principal.user.email_addresses, target.user.email_addresses |
Es el valor de usrName del registro sin procesar. |
VerificationMethod |
target.resource.attribute.labels |
El valor de VerificationMethod del registro sin procesar, con el formato de una etiqueta. |
| Lógica del analizador | metadata.event_type |
Se deriva en función de los campos event_id y operation, o se establece en "USER_LOGIN" para LoginEventStream, "USER_LOGOUT" para Logout y LogoutEvent, "USER_RESOURCE_UPDATE_CONTENT" para varios eventos, "USER_RESOURCE_UPDATE_PERMISSIONS" para PlatformEncryption, "RESOURCE_READ" para QueuedExecution, ApexExecution, LightningInteraction, LightningPerformance, LightningPageView, URI, RestApi, API, AuraRequest, ApexCallout, OneCommerceUsage, Sites, MetadataApiOperation, OneCommerceUsage, VisualforceRequest, Dashboard, Search, ListViewEvent, "RESOURCE_CREATION" para UriEvent y TimeBasedWorkflow con Operation como "Create" o "INSERT", "RESOURCE_WRITTEN" para UriEvent y LightningUriEvent con Operation como "Update", "RESOURCE_DELETION" para UriEvent con Operation como "Delete" o "ROLLBACK", "USER_UNCATEGORIZED" para SetupAuditTrail y AuditTrail, "USER_CHANGE_PASSWORD" para SetupAuditTrail con operation como "namedCredentialEncryptedFieldChange", "GENERIC_EVENT" para ApiEventStream y LightningUriEventStream, o en función de la presencia de la red y la principal. |
| Lógica del analizador | metadata.ingestion_labels |
Son etiquetas que indican la fuente del evento, ya sea "Archivo de registro de eventos", "Supervisión de eventos en tiempo real" o "SetupAuditTrail". |
| Lógica del analizador | metadata.log_type |
Siempre se establece en "SALESFORCE". |
| Lógica del analizador | metadata.product_name |
Siempre se establece en "SALESFORCE". |
| Lógica del analizador | metadata.vendor_name |
Siempre se establece en "SALESFORCE". |
| Lógica del analizador | metadata.url_back_to_product |
Se construye a partir de varios campos, como LoginUrl, attributes.url, data.properties.PageUrl.str y data.properties.LoginUrl.str. |
| Lógica del analizador | network.application_protocol |
Se establece en "HTTPS" si el campo uri comienza con "http". |
| Lógica del analizador | network.http.referral_url |
Se extrae del campo user_agent si contiene "Referer=". |
| Lógica del analizador | network.http.response_code |
Se deriva de request_status para varios eventos. |
| Lógica del analizador | network.http.user_agent |
Es el valor de user_agent del registro sin procesar, de data.properties.UserAgent.str para ApiEventStream y LoginEventStream, de los eventos Sites o "User-Agent" de los eventos Sites. |
| Lógica del analizador | network.session_id |
El valor de session_key o SESSION_KEY del registro sin procesar, o bien construido a partir de otros campos, como LoginKey o AuthSessionId. |
| Lógica del analizador | network.tls.version |
Es el valor de tls_protocol del registro sin procesar o de data.properties.TlsProtocol.str para LoginEventStream. |
| Lógica del analizador | principal.application |
Es el valor de application del registro sin procesar, "Salesforce for Outlook" para los eventos de acceso correcto, "Insights" para los eventos de acceso correcto sin aplicación o extraído de device_platform para los eventos de Lightning. |
| Lógica del analizador | principal.asset.hostname |
Valor de client_ip si es un nombre de host. |
| Lógica del analizador | principal.asset.ip |
Es el valor de client_ip, src_ip, SourceIp o CLIENT_IP si se trata de una dirección IP. |
| Lógica del analizador | principal.hostname |
Valor de client_ip si es un nombre de host. |
| Lógica del analizador | principal.ip |
Es el valor de client_ip, src_ip, SourceIp o CLIENT_IP si se trata de una dirección IP. |
| Lógica del analizador | principal.labels |
Son etiquetas creadas a partir de varios campos, como FederationIdentifier, ApiType, OrgId y channel. |
| Lógica del analizador | principal.location.city |
Valor de geoip_src.city_name, City o LoginGeo.City del registro sin procesar. |
| Lógica del analizador | principal.location.country_or_region |
Valor de geoip_src.country_name, Country, LoginGeo.Country o client_geo del registro sin procesar. |
| Lógica del analizador | principal.location.region_latitude |
Es el valor de data.properties.LoginLatitude.number del registro sin procesar. |
| Lógica del analizador | principal.location.region_longitude |
Es el valor de data.properties.LoginLongitude.number del registro sin procesar. |
| Lógica del analizador | principal.location.state |
Es el valor de geoip_src.region_name del registro sin procesar. |
| Lógica del analizador | principal.platform |
El valor de Platform, OsName o os_name del registro sin procesar, o bien "WINDOWS" para LoginEventStream con Platform que contiene "Windows". |
| Lógica del analizador | principal.platform_version |
El valor de OsVersion o os_version del registro sin procesar, o bien extraído de Platform para LoginEventStream con Platform que contiene "Windows". |
| Lógica del analizador | principal.resource.attribute.labels |
Son etiquetas creadas a partir de varios campos, como CreatedById, ApiVersion, LogFile, LogFileContentType y LogFileLength. |
| Lógica del analizador | principal.resource.name |
El valor de Browser o browser_name del registro sin procesar, o bien "Java (Salesforce.com)" para LoginHistory con ApiType como "Socio de SOAP". |
| Lógica del analizador | principal.resource.type |
Se extrae de device_platform para los eventos de Lightning o "Navegador" para LoginAsEvent y LoginAsEventStream. |
| Lógica del analizador | principal.url |
Es el valor de LoginUrl del registro sin procesar. |
| Lógica del analizador | principal.user.email_addresses |
Es el valor de usrName, Username, src_email, IdentityUsed, data.properties.Username.str o data.properties.Email.str del registro sin procesar. |
| Lógica del analizador | principal.user.product_object_id |
Es el valor de attrs.USER_ID_DERIVED o data.properties.USER_ID_DERIVED.str del registro sin procesar. |
| Lógica del analizador | principal.user.userid |
Valor de usrName, Username, user_id, UserId, USER_ID, Id, LoginKey, CreatedByContext, data.properties.Username.str, data.properties.USER_ID.str o data.properties.LoginKey.str del registro sin procesar. |
| Lógica del analizador | security_result.action |
Se deriva de Status, OperationStatus, ErrorCode, action o operation_status del registro sin procesar y se transforma en ALLOW o BLOCK. |
| Lógica del analizador | security_result.action_details |
Es el valor de Status del registro sin procesar de LoginEventStream. |
| Lógica del analizador | security_result.description |
Es el valor de LoginType, logintype, Operation, Action o Display del registro sin procesar. |
| Lógica del analizador | security_result.rule_name |
Es el valor de Policy o rule_name del registro sin procesar. |
| Lógica del analizador | security_result.summary |
Se construye a partir de NewValue y OldValue, o REQUEST_STATUS, o Section, o forecastcategory del registro sin procesar. |
| Lógica del analizador | target.administrative_domain |
Valor de ORGANIZATION_ID, DelegatedOrganizationId, organization_id o data.properties.OrgName.str del registro sin procesar. |
| Lógica del analizador | target.application |
Es el valor de Application, app_name, ApiType, Name o data.properties.Application.str del registro sin procesar. |
| Lógica del analizador | target.asset.hostname |
Es el valor de target_hostname extraído del campo uri. |
| Lógica del analizador | target.asset.ip |
Es el valor de data.properties.CLIENT_IP.str del registro sin procesar. |
| Lógica del analizador | target.asset_id |
Se construye a partir de device_id o REQUEST_ID. |
| Lógica del analizador | target.file.mime_type |
Es el valor de file_type del registro sin procesar. |
| Lógica del analizador | target.file.size |
Es el valor de size_bytes del registro sin procesar. |
| Lógica del analizador | target.hostname |
Es el valor de target_hostname extraído del campo uri. |
| Lógica del analizador | target.process.command_line |
Valor de query_exec, Query o data.properties.Query.str del registro sin procesar. |
| Lógica del analizador | target.process.pid |
Es el valor de job_id del registro sin procesar. |
| Lógica del analizador | target.resource.attribute.labels |
Etiquetas creadas a partir de varios campos, como 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 y SessionLevel. |
| Lógica del analizador | target.resource.id |
Es el valor de REQUEST_ID, RecordId, caseid, leadid, contactid, opportunityid o accountid del registro sin procesar. |
| Lógica del analizador | target.resource.name |
Es el valor de QueriedEntities, resource_name, component_name, DATASET_IDS, field, StageName o Subject del registro sin procesar. |
| Lógica del analizador | target.resource.product_object_id |
Es el valor de REQUEST_ID del registro sin procesar. |
| Lógica del analizador | target.resource.resource_type |
Se establece en "ACCESS_POLICY" para ApexCallout y PlatformEncryption, en "DATABASE" para ApexTrigger, en "FILE" para ContentTransfer o en "TABLE" para ApiEvent. |
| Lógica del analizador | target.resource.type |
Se establece en "BATCH" para QueuedExecution y ApexExecution, en "FILE" para ContentTransfer, en "DATABASE_TRIGGER" para ApexTrigger, o en "Case", "Lead", "Contact", "Opportunity" o "Account" según la presencia de los campos de ID correspondientes. |
| Lógica del analizador | target.url |
Es el valor de LoginUrl, URI, attributes.url, login_url o uri del registro sin procesar. |
| Lógica del analizador | target.user.email_addresses |
Valor de Username, attrs.usrName o email_address del registro sin procesar. |
| Lógica del analizador | target.user.user_display_name |
Valor de target_user_display_name, user_name o username del registro sin procesar. |
| Lógica del analizador | target.user.userid |
Valor de target_user_name, data.properties.UserId.str o data.properties.CreatedById.str del registro sin procesar. |
| Lógica del analizador | extensions.auth.auth_details |
Se establece en "ACTIVE" si Status no es "Success"; de lo contrario, se establece en "UNKNOWN_AUTHENTICATION_STATUS". |
| Lógica del analizador | extensions.auth.mechanism |
Se establece en "REMOTE" para los eventos de acceso: Éxito y Acceso con logintype que contiene "Remote", o "USERNAME_PASSWORD" para LoginEventStream, o "MECHANISM_OTHER" para los eventos con login_url presente, o "AUTHTYPE_UNSPECIFIED" para los eventos de acceso: Éxito y Salida. |
| Lógica del analizador | extensions.auth.type |
Se establece en "SSO" para Login, Logout, LogoutEvent, LoginAs, IdentityProviderEventStore, LoginHistory, LoginAsEvent con LoginType como "SSO iniciado por SAML de Sfdc", o bien en "AUTHTYPE_UNSPECIFIED" para Login: Success, Logout, LoginAsEvent con LoginType como "Application". |
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.