Recopila registros de Salesforce

Se admite en los siguientes sistemas operativos:

En este documento, se explica cómo transferir registros de Salesforce a Google Security Operations con dos métodos: Amazon AppFlow con Amazon S3 o la API de terceros. El analizador controla los registros en formatos LEEF, CSV y JSON. Extrae campos, realiza el procesamiento específico del formato (controla los pares clave-valor de LEEF, las columnas CSV y las estructuras JSON), los asigna al UDM y enriquece los datos con metadatos y campos derivados. El analizador también controla varios tipos de eventos de Salesforce, aplica lógica específica para los accesos, los cierres de sesión y otras acciones, categoriza eventos y establece tipos de eventos del UDM adecuados.

Antes de comenzar

Asegúrate de cumplir con los siguientes requisitos previos:

  • Una instancia de Google SecOps
  • Acceso con privilegios a Salesforce (administrador del sistema o equivalente)

Opción 1: Método de la API de terceros

  • Una licencia de Supervisión de eventos de Shield de Salesforce o el complemento Supervisión de eventos
  • Capacidad de generar y administrar certificados X.509 y pares de clave RSA

Opción 2: Amazon AppFlow con el método de S3

  • Acceso privilegiado a AWS
  • Tu organización utiliza la edición Enterprise, Unlimited o Performance de Salesforce.

Nota importante sobre la licencia: Sin el Monitoreo de eventos de Salesforce Shield, el acceso a la API de EventLogFile se limita a solo 7 tipos de eventos básicos (Inicio de sesión, Cierre de sesión, Uso total de la API, Registro de incumplimiento de CORS, Incumplimiento de CSP, Redireccionamientos de nombre de host y Excepción inesperada de Apex) con un período de retención de 1 día. La mayoría de las organizaciones que no tienen Shield deberían usar el método de Amazon AppFlow (opción 2).

Opción 1: Configura la integración directa de la API de Salesforce con la API de terceros (portador de JWT de OAuth)

Este método establece una conexión directa a la API de Google SecOps a Salesforce con el flujo de portador de JWT de OAuth 2.0 para la autenticación de servidor a servidor.

Requisitos previos para este método:

  • Una licencia de Shield Event Monitoring de Salesforce o el complemento Event Monitoring (necesario para el acceso integral a EventLogFile)
  • Acceso de administrador del sistema en Salesforce
  • Capacidad de generar y administrar certificados X.509 y pares de clave RSA

Genera un par de claves RSA y un certificado X.509

Necesitas una clave privada RSA y el certificado X.509 correspondiente para la autenticación del portador de JWT.

  1. Genera una clave privada RSA:

    openssl genrsa -out salesforce_jwt_private.key 2048
    
  2. Genera una solicitud de firma de certificado (CSR):

    openssl req -new -key salesforce_jwt_private.key -out salesforce_jwt.csr
    
  3. Genera un certificado autofirmado (válido por 1 año):

    openssl x509 -req -days 365 -in salesforce_jwt.csr -signkey salesforce_jwt_private.key -out salesforce_jwt.crt
    
  4. Guarda la clave privada de forma segura. Lo necesitarás para la configuración del feed de Google SecOps.

Crea una aplicación conectada de Salesforce con el flujo de portador de JWT

  1. Accede a Salesforce como administrador del sistema.
  2. Ve a Configuración > Apps > Administrador de apps.
  3. Haz clic en Nueva app conectada.
  4. Proporciona los siguientes detalles de configuración:
    • Connected App Name: Ingresa un nombre (por ejemplo, Google Security Operations Integration).
    • API Name: Se completa automáticamente según el nombre de la app conectada.
    • Correo electrónico de contacto: Ingresa tu dirección de correo electrónico.
  5. En la sección API (Enable OAuth Settings), haz lo siguiente:
    • Selecciona Habilitar configuración de OAuth.
    • URL de devolución de llamada: Ingresa https://login.salesforce.com/services/oauth2/callback (no se usa para el flujo de JWT, pero es obligatorio).
    • Selecciona Usar firmas digitales.
    • Haz clic en Elegir archivo y sube el certificado X.509 (salesforce_jwt.crt) que generaste antes.
    • Selected OAuth Scopes: Agrega los siguientes permisos:
      • Acceder y administrar datos (API)
      • Realizar solicitudes en tu nombre en cualquier momento (refresh_token, offline_access)
    • Require Proof Key for Code Exchange (PKCE) Extension for Supported Authorization Flows: Desmarca esta opción.
  6. Haz clic en Guardar.
  7. Haz clic en Continuar en el mensaje de advertencia.
  8. En la página de detalles de la app conectada, anota la clave de consumidor. Se usará como el emisor de reclamos de JWT en Google SecOps.
  9. Haz clic en Administrar > Editar políticas.
  10. En la sección Políticas de OAuth, haz lo siguiente:
    • Usuarios permitidos: Selecciona Usuarios aprobados por el administrador con autorización previa.
    • Relajación de IP: Selecciona Disminución de las restricciones de IP.
  11. Haz clic en Guardar.

Crea y configura un usuario de integración en Salesforce

  1. Ve a Configuración > Usuarios > Usuarios.
  2. Haz clic en Usuario nuevo.
  3. Proporciona los siguientes detalles de configuración:
    • Nombre: Ingresa Google.
    • Apellido: Ingresa Google SecOps Integration.
    • Correo electrónico: Ingresa una dirección de correo electrónico.
    • Nombre de usuario: Ingresa un nombre de usuario único.
    • Licencia de usuario: Selecciona Salesforce.
    • Perfil: Selecciona Administrador del sistema o crea un perfil personalizado con acceso a la API.
  4. Haz clic en Guardar.
  5. Anota el nombre de usuario exactamente como lo ingresaste. Se usará como el asunto de las reclamaciones del JWT en Google SecOps.

Asigna el usuario de integración a la app conectada

  1. Ve a Configuración > Apps > Apps conectadas > Administrar apps conectadas.
  2. Haz clic en la app conectada Integración de Google Security Operations que creaste.
  3. Haz clic en Administrar > Administrar perfiles o Administrar conjuntos de permisos.
  4. Selecciona el perfil o el conjunto de permisos asignado a tu usuario de integración (por ejemplo, Administrador del sistema).
  5. Haz clic en Guardar.

Otorga permisos de API y de supervisión de eventos al usuario de integración

  1. Ve a Configuración > Usuarios > Conjuntos de permisos.
  2. Haz clic en Nuevo.
  3. Proporciona los siguientes detalles de configuración:
    • Etiqueta: Ingresa Event Monitoring API Access.
    • Nombre de la API: Se completa automáticamente.
  4. Haz clic en Guardar.
  5. En la página de detalles del conjunto de permisos, haz lo siguiente:
    • Haz clic en Permisos del sistema.
    • Haz clic en Editar.
    • Verifica los siguientes permisos:
      • API habilitada
      • Cómo ver los archivos de registro de eventos
      • Ver todos los datos (opcional, pero recomendado para un acceso integral)
    • Haz clic en Guardar.
  6. Haz clic en Administrar tareas > Agregar tareas.
  7. Selecciona el usuario de integración que creaste antes.
  8. Haz clic en Asignar > Listo.

Configura un feed en Google SecOps para transferir registros de Salesforce a través de la API

  1. Ve a Configuración de SIEM > Feeds.
  2. Haz clic en + Agregar feed nuevo.
  3. En la siguiente página, haz clic en Configurar un solo feed.
  4. En el campo Nombre del feed, ingresa un nombre para el feed (por ejemplo, Salesforce logs).
  5. Selecciona API de terceros como el Tipo de origen.
  6. Selecciona Salesforce como el Tipo de registro.
  7. Haz clic en Siguiente.
  8. Selecciona OAuth JWT grant en el menú desplegable.
  9. Especifica valores para los siguientes parámetros de entrada:
    • Extremo de JWT de OAuth: Ingresa el extremo del token de OAuth de Salesforce:
      • Producción: https://login.salesforce.com/services/oauth2/token
      • Zona de pruebas: https://test.salesforce.com/services/oauth2/token
      • Dominio personalizado: https://yourdomain.my.salesforce.com/services/oauth2/token
    • Emisor de reclamaciones de JWT: Ingresa la clave de consumidor de la aplicación conectada.
    • JWT Claims Subject: Ingresa el nombre de usuario del usuario de integración.
    • Público de las declaraciones del JWT: Ingresa la URL base de acceso de Salesforce:
      • Producción: https://login.salesforce.com
      • Zona de pruebas: https://test.salesforce.com
    • Clave privada RSA: Pega todo el contenido de tu clave privada RSA (salesforce_jwt_private.key), incluidas las líneas -----BEGIN PRIVATE KEY----- y -----END PRIVATE KEY-----.
  10. Especifica parámetros adicionales:
    • Espacio de nombres del recurso: Es el espacio de nombres del recurso.
    • Etiquetas de transmisión: Es la etiqueta que se aplicará a los eventos de este feed.
  11. Haz clic en Siguiente.
  12. Revisa la nueva configuración del feed en la pantalla Finalizar y, luego, haz clic en Enviar.

Opción 2: Configura la exportación de registros de Salesforce con Amazon AppFlow y S3

Este método usa Amazon AppFlow para extraer datos de Salesforce y almacenarlos en Amazon S3, que luego Google SecOps ingiere.

Configura el bucket de AWS S3 y el IAM para Google SecOps

  1. Crea un bucket de Amazon S3 siguiendo esta guía del usuario: Cómo crear un bucket
  2. Guarda el Nombre y la Región del bucket para futuras referencias (por ejemplo, salesforce-secops-logs).
  3. Crea un usuario siguiendo esta guía del usuario: Cómo crear un usuario de IAM.
  4. Selecciona el usuario creado.
  5. Selecciona la pestaña Credenciales de seguridad.
  6. Haz clic en Crear clave de acceso en la sección Claves de acceso.
  7. Selecciona Servicio de terceros como el Caso de uso.
  8. Haz clic en Siguiente.
  9. Opcional: Agrega una etiqueta de descripción.
  10. Haz clic en Crear clave de acceso.
  11. Haz clic en Descargar archivo CSV para guardar la clave de acceso y la clave de acceso secreta para consultarlas en el futuro.
  12. Haz clic en Listo.
  13. Selecciona la pestaña Permisos.
  14. Haz clic en Agregar permisos en la sección Políticas de permisos.
  15. Selecciona Agregar permisos.
  16. Selecciona Adjuntar políticas directamente.
  17. Busca la política AmazonS3FullAccess.
  18. Selecciona la política.
  19. Haz clic en Siguiente.
  20. Haz clic en Agregar permisos.

Configura Amazon AppFlow

  1. Abre la consola de Amazon AppFlow.
  2. Haz clic en Crear flujo.
  3. Proporciona los siguientes detalles de configuración:
    • Nombre del flujo: Ingresa un nombre (por ejemplo, Salesforce-to-S3-SecOps).
    • Descripción del flujo: Descripción opcional.
  4. Haz clic en Siguiente.
  5. En Detalles de la fuente, haz lo siguiente:
    • Nombre de la fuente: Selecciona Salesforce.
    • Elige la conexión de Salesforce: Haz clic en Crear conexión nueva.
    • Aparecerá una ventana de acceso de Salesforce. Accede con tus credenciales de Salesforce.
    • Otorga acceso cuando se te solicite.
    • Objeto de Salesforce: Selecciona el objeto que deseas transferir (por ejemplo, EventLogFile si tienes Supervisión de eventos o cualquier otro objeto de auditoría).
  6. Haz clic en Siguiente.
  7. En Detalles del destino, haz lo siguiente:
    • Nombre de destino: Selecciona Amazon S3.
    • Detalles del bucket: Selecciona el bucket de S3 que creaste antes.
    • Prefijo del bucket de S3: Prefijo opcional (por ejemplo, salesforce-logs/).
  8. Haz clic en Siguiente.
  9. Para Activador de flujo:
    • Selecciona Ejecutar según la programación.
    • A partir de: Establece la hora de inicio que prefieras.
    • Repeticiones: Selecciona Por hora o Diariamente según tus requisitos.
  10. Haz clic en Siguiente.
  11. En Map data fields, haz lo siguiente:
    • Selecciona Asignar todos los campos directamente o especifica qué campos deseas asignar.
    • Si realizas la asignación de forma manual, selecciona los campos que deseas transferir.
  12. Haz clic en Siguiente.
  13. Para Agregar filtros (opcional):
    • Agrega los filtros que desees para limitar los datos transferidos.
  14. Haz clic en Siguiente.
  15. Revisa la configuración y haz clic en Crear flujo.
  16. Haz clic en Activar flujo para iniciar las transferencias programadas.

Configura un feed en Google SecOps para transferir registros de Salesforce

  1. Ve a Configuración de SIEM > Feeds.
  2. Haz clic en Agregar feed nuevo.
  3. En la siguiente página, haz clic en Configurar un solo feed.
  4. En el campo Nombre del feed, ingresa un nombre para el feed, por ejemplo, Registros de Salesforce.
  5. Selecciona Amazon S3 V2 como el Tipo de fuente.
  6. Selecciona Salesforce como el Tipo de registro.
  7. Haz clic en Siguiente.
  8. Especifica valores para los siguientes parámetros de entrada:

    • URI de S3: Es el URI del bucket. s3://BUCKET_NAME Reemplaza lo siguiente:
      • BUCKET_NAME: Es el nombre del bucket.
    • Opciones de borrado de la fuente: Selecciona la opción de borrado según tu preferencia.

    • Antigüedad máxima del archivo: Incluye los archivos modificados en la cantidad de días más reciente. El valor predeterminado es de 180 días.

    • ID de clave de acceso: Es la clave de acceso del usuario con acceso al bucket de S3.

    • Clave de acceso secreta: Es la clave secreta del usuario con acceso al bucket de S3.

  9. Haz clic en Siguiente.

  10. Revisa la nueva configuración del feed en la pantalla Finalizar y, luego, haz clic en Enviar.

Formatos de registro de Salesforce admitidos

El analizador de Salesforce admite registros en formatos KV (LEEF) y CSV.

Registros de muestra de Salesforce compatibles

  • 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/A
    
  • CSV

    "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
    

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 IDM.
ApiType target.application Es el valor de ApiType del registro sin procesar.
ApiVersion - No se asignó al objeto 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 "SOAP Partner", 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 formato de etiqueta.
CLIENT_IP principal.ip, principal.asset.ip Es el valor de CLIENT_IP del registro sin procesar.
ClientVersion - No se asignó al objeto 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 formato de etiqueta.
ConnectedAppId principal.labels El valor de ConnectedAppId del registro sin procesar, con formato de 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 formato de 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 formato de 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 Es el 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 formato de etiqueta.
Duration target.resource.attribute.labels El valor de Duration del registro sin procesar, con formato de etiqueta.
ENTITY_NAME target.resource.attribute.labels El valor de ENTITY_NAME del registro sin procesar, con formato de 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 IDM.
LoginGeo.Country principal.location.country_or_region Es el valor de LoginGeo.Country del registro sin procesar.
LoginHistoryId - No se asignó al objeto 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 Es el valor de LoginType del registro sin procesar, "Other Apex API" para LoginHistory con ApiType como "SOAP Partner" o "Remote Access 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 formato de etiqueta.
LogFileContentType principal.resource.attribute.labels El valor de LogFileContentType del registro sin procesar, con formato de etiqueta.
LogFileLength principal.resource.attribute.labels El valor de LogFileLength del registro sin procesar, con formato de etiqueta.
Message - No se asignó al objeto 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 formato de 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 formato de 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 formato de etiqueta.
RUN_TIME target.resource.attribute.labels El valor de RUN_TIME del registro sin procesar, con formato de etiqueta.
SamlEntityUrl - No se asignó al objeto IDM.
SdkAppType - No se asignó al objeto IDM.
SdkAppVersion - No se asignó al objeto IDM.
SdkVersion - No se asignó al objeto 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 formato de 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 formato de 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 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 formato de 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 formato de 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 formato de etiqueta.
Lógica del analizador metadata.event_type Se deriva en función de los campos event_id y operation, o se establece como "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 o "Salesforce for Outlook" para los eventos de acceso correcto, o "Estadísticas" para los eventos de acceso correcto sin aplicación, o bien se extrae 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 Valor de client_ip, src_ip, SourceIp o CLIENT_IP si es 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 Valor de client_ip, src_ip, SourceIp o CLIENT_IP si es 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 Etiquetas creadas a partir de varios campos, como CreatedById, ApiVersion, LogFile, LogFileContentType y LogFileLength.
Lógica del analizador principal.resource.name 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 Es el 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 "Remoto", 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 cierre de sesión.
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.