Coletar registros do Salesforce

Compatível com:

Este documento explica como ingerir registros do Salesforce no Google Security Operations usando dois métodos: Amazon AppFlow com Amazon S3 ou API de terceiros. O analisador processa os registros nos formatos LEEF, CSV e JSON. Ele extrai campos, realiza o processamento específico do formato (processando pares de chave-valor LEEF, colunas CSV e estruturas JSON), mapeia-os para a UDM e enriquece os dados com metadados e campos derivados. O analisador também processa vários tipos de eventos do Salesforce, aplicando uma lógica específica para logins, saídas e outras ações, categorizando eventos e definindo tipos de eventos da UDM adequados.

Antes de começar

Verifique se você tem os pré-requisitos a seguir:

  • Uma instância do Google SecOps
  • Acesso privilegiado ao Salesforce (administrador do sistema ou equivalente)

Opção 1: método de API de terceiros

  • Uma licença do Shield Event Monitoring do Salesforce ou o complemento Event Monitoring
  • Capacidade de gerar e gerenciar certificados X.509 e pares de Chave RSA

Opção 2: Amazon AppFlow com método do S3

  • Acesso privilegiado à AWS
  • Sua organização usa o Salesforce Enterprise, Unlimited ou Performance Edition

Observação importante sobre licenciamento: sem o Salesforce Shield Event Monitoring, o acesso à API do EventLogFile é limitado a apenas sete tipos de eventos básicos (Login, Logout, API Total Usage, CORS Violation Record, CSP Violation, Hostname Redirects, Apex Unexpected Exception) com retenção de um dia. A maioria das organizações sem o Shield deve usar o método do Amazon AppFlow (opção 2).

Opção 1: configurar a integração da API Direct do Salesforce usando a API de terceiros (portador JWT OAuth)

Esse método estabelece uma conexão direta de API do Google SecOps com o Salesforce usando o fluxo de portador JWT OAuth 2.0 para autenticação de servidor para servidor.

Pré-requisitos para este método:

  • Uma licença do Shield Event Monitoring do Salesforce ou o complemento Event Monitoring (necessário para acesso abrangente ao EventLogFile)
  • Acesso de administrador do sistema no Salesforce
  • Capacidade de gerar e gerenciar certificados X.509 e pares de Chave RSA

Gerar par de chaves RSA e certificado X.509

Você precisa de uma chave privada RSA e um certificado X.509 correspondente para a autenticação de portador JWT.

  1. Gere uma chave privada RSA:

    openssl genrsa -out salesforce_jwt_private.key 2048
    
  2. Gere uma solicitação de assinatura de certificado (CSR):

    openssl req -new -key salesforce_jwt_private.key -out salesforce_jwt.csr
    
  3. Gere um certificado autoassinado (válido por um ano):

    openssl x509 -req -days 365 -in salesforce_jwt.csr -signkey salesforce_jwt_private.key -out salesforce_jwt.crt
    
  4. Salve a chave privada com segurança. Você vai precisar dele para a configuração do feed do Google SecOps.

Criar um app conectado do Salesforce com o fluxo de portador JWT

  1. Faça login no Salesforce como administrador do sistema.
  2. Acesse Configuração > Apps > Gerenciador de apps.
  3. Clique em New Connected App.
  4. Informe os seguintes detalhes de configuração:
    • Nome do app conectado: insira um nome, por exemplo, Google Security Operations Integration.
    • Nome da API: preenchido automaticamente com base no nome do app conectado.
    • E-mail de contato: digite seu endereço de e-mail.
  5. Na seção API (ativar configurações do OAuth):
    • Selecione Ativar configurações do OAuth.
    • URL de callback: insira https://login.salesforce.com/services/oauth2/callback. Isso não é usado no fluxo do JWT, mas é obrigatório.
    • Selecione Usar assinaturas digitais.
    • Clique em Escolher arquivo e faça upload do certificado X.509 (salesforce_jwt.crt) gerado anteriormente.
    • Escopos OAuth selecionados: adicione os seguintes escopos:
      • Acessar e gerenciar seus dados (API)
      • Faça solicitações em seu nome a qualquer momento (refresh_token, offline_access)
    • Exigir extensão de chave de prova para troca de código (PKCE) para fluxos de autorização compatíveis: desmarque essa opção.
  6. Clique em Salvar.
  7. Clique em Continuar na mensagem de aviso.
  8. Na página de detalhes do app conectado, anote a chave do consumidor. Ele será usado como o emissor de declarações JWT no Google SecOps.
  9. Clique em Gerenciar > Editar políticas.
  10. Na seção Políticas do OAuth:
    • Usuários permitidos: selecione Os usuários aprovados pelo administrador são pré-autorizados.
    • Relaxamento de IP: selecione Relaxar restrições de IP.
  11. Clique em Salvar.

Criar e configurar um usuário de integração no Salesforce

  1. Acesse Configuração > Usuários > Usuários.
  2. Clique em New User.
  3. Informe os seguintes detalhes de configuração:
    • Nome: insira Google.
    • Sobrenome: insira Google SecOps Integration.
    • E-mail: insira um endereço de e-mail.
    • Nome de usuário: insira um nome de usuário exclusivo.
    • Licença de usuário: selecione Salesforce.
    • Perfil: selecione Administrador do sistema ou crie um perfil personalizado com acesso à API.
  4. Clique em Salvar.
  5. Anote o Nome de usuário exatamente como foi inserido. Ele será usado como o assunto das declarações JWT no Google SecOps.

Atribuir o usuário de integração ao app conectado

  1. Acesse Configuração > Apps > Apps conectados > Gerenciar apps conectados.
  2. Clique no app conectado Integração do Google Security Operations que você criou.
  3. Clique em Gerenciar > Gerenciar perfis ou Gerenciar conjuntos de permissões.
  4. Selecione o perfil ou conjunto de permissões atribuído ao usuário de integração (por exemplo, Administrador do sistema).
  5. Clique em Salvar.

Conceder permissões de API e monitoramento de eventos ao usuário de integração

  1. Acesse Configuração > Usuários > Conjuntos de permissões.
  2. Clique em Novo.
  3. Informe os seguintes detalhes de configuração:
    • Rótulo: insira Event Monitoring API Access.
    • Nome da API: preenchido automaticamente.
  4. Clique em Salvar.
  5. Na página de detalhes do conjunto de permissões:
    • Clique em Permissões do sistema.
    • Clique em Editar.
    • Verifique as seguintes permissões:
      • API ativada
      • Ver arquivos de registro de eventos
      • Ver todos os dados (opcional, mas recomendado para acesso abrangente)
    • Clique em Salvar.
  6. Clique em Gerenciar atribuições > Adicionar atribuições.
  7. Selecione o usuário de integração criado anteriormente.
  8. Clique em Atribuir > Concluído.

Configurar um feed no Google SecOps para ingerir registros do Salesforce via API

  1. Acesse Configurações do SIEM > Feeds.
  2. Clique em + Adicionar novo feed.
  3. Na próxima página, clique em Configurar um único feed.
  4. No campo Nome do feed, insira um nome para o feed (por exemplo, Salesforce logs).
  5. Selecione API de terceiros como o Tipo de fonte.
  6. Selecione Salesforce como o Tipo de registro.
  7. Clique em Próxima.
  8. Selecione Concessão de JWT do OAuth no menu suspenso.
  9. Especifique valores para os seguintes parâmetros de entrada:
    • Endpoint JWT do OAuth: insira o endpoint do token OAuth do Salesforce:
      • Produção: https://login.salesforce.com/services/oauth2/token
      • Sandbox: https://test.salesforce.com/services/oauth2/token
      • Domínio personalizado: https://yourdomain.my.salesforce.com/services/oauth2/token
    • Emissor de declarações JWT: insira a Chave de cliente do app conectado.
    • Assunto das declarações do JWT: insira o Nome de usuário do usuário de integração.
    • Público-alvo das declarações JWT: digite o URL base de login do Salesforce:
      • Produção: https://login.salesforce.com
      • Sandbox: https://test.salesforce.com
    • Chave privada RSA: cole todo o conteúdo da sua chave privada RSA (salesforce_jwt_private.key), incluindo as linhas -----BEGIN PRIVATE KEY----- e -----END PRIVATE KEY-----.
  10. Especifique outros parâmetros:
    • Namespace do recurso: o namespace do recurso.
    • Rótulos de ingestão: o rótulo a ser aplicado aos eventos deste feed.
  11. Clique em Próxima.
  12. Revise a nova configuração do feed na tela Finalizar e clique em Enviar.

Opção 2: configurar a exportação de registros do Salesforce usando o Amazon AppFlow e o S3

Esse método usa o Amazon AppFlow para extrair dados do Salesforce e armazená-los no Amazon S3, que o Google SecOps ingere.

Configurar o bucket do AWS S3 e o IAM para o Google SecOps

  1. Crie um bucket do Amazon S3 seguindo este guia do usuário: Como criar um bucket
  2. Salve o Nome e a Região do bucket para referência futura (por exemplo, salesforce-secops-logs).
  3. Crie um usuário seguindo este guia: Como criar um usuário do IAM.
  4. Selecione o usuário criado.
  5. Selecione a guia Credenciais de segurança.
  6. Clique em Criar chave de acesso na seção Chaves de acesso.
  7. Selecione Serviço de terceiros como o Caso de uso.
  8. Clique em Próxima.
  9. Opcional: adicione uma tag de descrição.
  10. Clique em Criar chave de acesso.
  11. Clique em Fazer o download do arquivo CSV para salvar a chave de acesso e a chave de acesso secreta para referência futura.
  12. Clique em Concluído.
  13. Selecione a guia Permissões.
  14. Clique em Adicionar permissões na seção Políticas de permissões.
  15. Selecione Adicionar permissões.
  16. Selecione Anexar políticas diretamente.
  17. Pesquise a política AmazonS3FullAccess.
  18. Selecione a política.
  19. Clique em Próxima.
  20. Clique em Adicionar permissões

Configurar o Amazon AppFlow

  1. Abra o console do Amazon AppFlow.
  2. Clique em Criar fluxo.
  3. Informe os seguintes detalhes de configuração:
    • Nome do fluxo: insira um nome (por exemplo, Salesforce-to-S3-SecOps).
    • Descrição do fluxo: descrição opcional.
  4. Clique em Próxima.
  5. Em Detalhes da origem:
    • Nome da origem: selecione Salesforce.
    • Escolher conexão do Salesforce: clique em Criar nova conexão.
    • Uma janela de login do Salesforce vai aparecer. Faça login com suas credenciais do Salesforce.
    • Conceda acesso quando solicitado.
    • Objeto do Salesforce: selecione o objeto que você quer transferir (por exemplo, EventLogFile se você tiver o Event Monitoring ou outros objetos de auditoria).
  6. Clique em Próxima.
  7. Em Detalhes do destino:
    • Nome do destino: selecione Amazon S3.
    • Detalhes do bucket: selecione o bucket do S3 que você criou anteriormente.
    • Prefixo do bucket do S3: prefixo opcional (por exemplo, salesforce-logs/).
  8. Clique em Próxima.
  9. Para Gatilho de fluxo:
    • Selecione Executar na programação.
    • A partir de: defina o horário de início de sua preferência.
    • Repetições: selecione Por hora ou Diariamente com base nos seus requisitos.
  10. Clique em Próxima.
  11. Para Mapear campos de dados:
    • Selecione Mapear todos os campos diretamente ou especifique quais campos mapear.
    • Se você estiver mapeando manualmente, selecione os campos que quer transferir.
  12. Clique em Próxima.
  13. Para Adicionar filtros (opcional):
    • Adicione filtros para limitar os dados transferidos.
  14. Clique em Próxima.
  15. Revise a configuração e clique em Criar fluxo.
  16. Clique em Ativar fluxo para iniciar as transferências programadas.

Configurar um feed no Google SecOps para ingerir registros do Salesforce

  1. Acesse Configurações do SIEM > Feeds.
  2. Clique em Adicionar novo feed.
  3. Na próxima página, clique em Configurar um único feed.
  4. No campo Nome do feed, insira um nome para o feed, por exemplo, Registros do Salesforce.
  5. Selecione Amazon S3 V2 como o Tipo de origem.
  6. Selecione Salesforce como o Tipo de registro.
  7. Clique em Próxima.
  8. Especifique valores para os seguintes parâmetros de entrada:

    • URI do S3: o URI do bucket. s3://BUCKET_NAME Substitua:
      • BUCKET_NAME: o nome do bucket.
    • Opções de exclusão da fonte: selecione a opção de exclusão de acordo com sua preferência.

    • Idade máxima do arquivo: inclui arquivos modificados nos últimos dias. O padrão é de 180 dias.

    • ID da chave de acesso: a chave de acesso do usuário com acesso ao bucket do S3.

    • Chave de acesso secreta: a chave secreta do usuário com acesso ao bucket do S3.

  9. Clique em Próxima.

  10. Revise a nova configuração do feed na tela Finalizar e clique em Enviar.

Formatos de registro do Salesforce compatíveis

O analisador do Salesforce é compatível com registros nos formatos KV (LEEF) e CSV.

Registros de amostra do Salesforce compatíveis

  • 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
    

Tabela de mapeamento do UDM

Campo de registro Mapeamento do UDM Lógica
Account.Name target.resource.name O valor de Account.Name do registro bruto.
AccountId target.resource.id O valor de AccountId do registro bruto.
Action security_result.description O valor de Action do registro bruto.
AdditionalInfo - Não mapeado para o objeto IDM.
ApiType target.application O valor de ApiType do registro bruto.
ApiVersion - Não mapeado para o objeto IDM.
Application principal.application O valor de Application do registro bruto ou "Browser" para LoginAsEvent, "Integration JWT Token" para LoginEvent, "SfdcSiqActivityPlatform" para LoginHistory com objecttype LoginHistory, "N/A" para ApiEvent ou "Browser" para LoginAsEventStream.
attributes.url target.url O valor de attributes.url do registro bruto ou URLs específicos para vários tipos de eventos do registro bruto.
attributes.type metadata.product_event_type O valor de attributes.type do registro bruto.
AuthSessionId network.session_id O valor de AuthSessionId do registro bruto.
Browser principal.resource.name O valor de Browser do registro bruto ou "Unknown" se Browser não estiver disponível no registro bruto e Application for "Insights", ou "Java (Salesforce.com)" para LoginHistory com ApiType como "SOAP Partner", ou "Unknown" para LoginHistory com Application como "SfdcSiqActivityPlatform", ou de data.properties.Browser.str para LoginAsEventStream.
Case.Subject target.resource.name O valor de Case.Subject do registro bruto.
CaseId target.resource.id O valor de CaseId do registro bruto.
cat metadata.product_event_type O valor de cat do registro bruto.
City principal.location.city O valor de City do registro bruto ou de LoginGeo.City para LoginHistory.
Client principal.labels O valor de Client do registro bruto, formatado como um rótulo.
CLIENT_IP principal.ip, principal.asset.ip O valor de CLIENT_IP do registro bruto.
ClientVersion - Não mapeado para o objeto IDM.
CipherSuite network.tls.cipher O valor de CipherSuite do registro bruto.
ColumnHeaders principal.labels O valor de ColumnHeaders do registro bruto, formatado como um rótulo.
ConnectedAppId principal.labels O valor de ConnectedAppId do registro bruto, formatado como um rótulo.
Contact.Name target.resource.name O valor de Contact.Name do registro bruto.
ContactId target.resource.id O valor de ContactId do registro bruto.
Country principal.location.country_or_region O valor de Country do registro bruto ou LoginGeo.Country para "LoginHistory".
CreatedByContext principal.user.userid O valor de CreatedByContext do registro bruto.
CreatedById principal.resource.attribute.labels O valor de CreatedById do registro bruto, formatado como um rótulo.
CreatedDate metadata.collected_timestamp O valor de CreatedDate do registro bruto ou o carimbo de data/hora atual, se não estiver disponível.
CPU_TIME target.resource.attribute.labels O valor de CPU_TIME do registro bruto, formatado como um rótulo.
data - Contém vários campos extraídos e mapeados individualmente.
DATASET_IDS target.resource.name O valor de DATASET_IDS do registro bruto.
DelegatedOrganizationId target.administrative_domain O valor de DelegatedOrganizationId do registro bruto.
DelegatedUsername observer.user.userid O valor de DelegatedUsername do registro bruto.
Description metadata.description O valor de Description do registro bruto.
DevicePlatform principal.resource.type O valor de DevicePlatform do registro bruto, analisado para extrair o tipo de recurso.
Display metadata.description O valor de Display do registro bruto.
DOWNLOAD_FORMAT target.resource.attribute.labels O valor de DOWNLOAD_FORMAT do registro bruto, formatado como um rótulo.
Duration target.resource.attribute.labels O valor de Duration do registro bruto, formatado como um rótulo.
ENTITY_NAME target.resource.attribute.labels O valor de ENTITY_NAME do registro bruto, formatado como um rótulo.
ErrorCode security_result.action O valor de ErrorCode do registro bruto, transformado em ALLOW ou BLOCK.
EventDate timestamp O valor de EventDate do registro bruto ou data.properties.TIMESTAMP_DERIVED.str, data.properties.TIMESTAMP_DERIVED_FIRST.str, @timestamp, created_date, timestamp ou LoginTime, se disponível, para LoginHistory.
EventIdentifier metadata.product_log_id O valor de EventIdentifier do registro bruto.
EventType metadata.product_event_type O valor de EventType do registro bruto.
Id principal.user.userid O valor de Id do registro bruto ou metadata.product_log_id para SetupAuditTrail e outros eventos.
IdentityUsed principal.user.email_addresses O valor de IdentityUsed do registro bruto.
Lead.Name target.resource.name O valor de Lead.Name do registro bruto.
LeadId target.resource.id O valor de LeadId do registro bruto.
LoginAsCategory - Não mapeado para o objeto IDM.
LoginGeo.Country principal.location.country_or_region O valor de LoginGeo.Country do registro bruto.
LoginHistoryId - Não mapeado para o objeto IDM.
LoginKey principal.user.userid, network.session_id O valor de LoginKey do registro bruto ou CreatedByContext para SetupAuditTrail.
LoginTime timestamp O valor de LoginTime do registro bruto.
LoginType security_result.description O valor de LoginType do registro bruto ou "Outra API do Apex" para LoginHistory com ApiType como "SOAP Partner" ou "Remote Access 2.0" para LoginHistory com Application como "SfdcSiqActivityPlatform".
LoginUrl target.url, principal.url O valor de LoginUrl do registro bruto.
LogFile principal.resource.attribute.labels O valor de LogFile do registro bruto, formatado como um rótulo.
LogFileContentType principal.resource.attribute.labels O valor de LogFileContentType do registro bruto, formatado como um rótulo.
LogFileLength principal.resource.attribute.labels O valor de LogFileLength do registro bruto, formatado como um rótulo.
Message - Não mapeado para o objeto IDM.
METHOD network.http.method O valor de METHOD do registro bruto.
Name target.application O valor de Name do registro bruto.
NewValue - Usado com OldValue para gerar security_result.summary.
NUMBER_FIELDS target.resource.attribute.labels O valor de NUMBER_FIELDS do registro bruto, formatado como um rótulo.
OldValue - Usado com NewValue para gerar security_result.summary.
Operation security_result.description, target.resource.attribute.labels O valor de Operation do registro bruto ou Display para SetupAuditTrail.
OperationStatus security_result.action O valor de OperationStatus do registro bruto, transformado em ALLOW ou BLOCK.
ORGANIZATION_ID target.administrative_domain O valor de ORGANIZATION_ID do registro bruto.
OsName principal.platform O valor de OsName do registro bruto.
OsVersion principal.platform_version O valor de OsVersion do registro bruto.
Platform principal.platform O valor de Platform do registro bruto ou de data.properties.OsName.str para LightningUriEventStream ou de data.properties.OsName.str para LoginEventStream.
QueriedEntities target.resource.name, principal.labels O valor de QueriedEntities do registro bruto ou component_name para UriEvent e ApiEvent.
Query target.process.command_line, principal.labels O valor de Query do registro bruto.
RecordId target.resource.id O valor de RecordId do registro bruto.
Records principal.labels O valor de Records do registro bruto, formatado como um rótulo.
REQUEST_ID metadata.product_log_id, target.resource.product_object_id O valor de REQUEST_ID do registro bruto.
REQUEST_SIZE network.sent_bytes O valor de REQUEST_SIZE do registro bruto.
REQUEST_STATUS security_result.summary O valor de REQUEST_STATUS do registro bruto.
RESPONSE_SIZE network.received_bytes O valor de RESPONSE_SIZE do registro bruto.
RowsProcessed target.resource.attribute.labels O valor de RowsProcessed do registro bruto, formatado como um rótulo.
RUN_TIME target.resource.attribute.labels O valor de RUN_TIME do registro bruto, formatado como um rótulo.
SamlEntityUrl - Não mapeado para o objeto IDM.
SdkAppType - Não mapeado para o objeto IDM.
SdkAppVersion - Não mapeado para o objeto IDM.
SdkVersion - Não mapeado para o objeto IDM.
Section security_result.summary O valor de Section do registro bruto.
SessionKey network.session_id O valor de SessionKey do registro bruto.
SessionLevel target.resource.attribute.labels O valor de SessionLevel do registro bruto, formatado como um rótulo.
SourceIp principal.ip, principal.asset.ip O valor de SourceIp do registro bruto.
src principal.ip, principal.asset.ip O valor de src do registro bruto.
SsoType target.resource.attribute.labels O valor de SsoType do registro bruto, formatado como um rótulo.
STATUS_CODE network.http.response_code O valor de STATUS_CODE do registro bruto.
Status security_result.action, security_result.action_details O valor de Status do registro bruto, transformado em ALLOW ou BLOCK, ou usado como detalhes da ação para LoginEventStream.
Subject target.resource.name O valor de Subject do registro bruto.
TargetUrl - Não mapeado para o objeto IDM.
TIMESTAMP metadata.collected_timestamp O valor de TIMESTAMP do registro bruto.
TIMESTAMP_DERIVED timestamp O valor de TIMESTAMP_DERIVED do registro bruto.
TlsProtocol network.tls.version_protocol O valor de TlsProtocol do registro bruto.
URI target.url O valor de URI do registro bruto.
USER_AGENT network.http.user_agent O valor de USER_AGENT do registro bruto.
USER_ID principal.user.userid O valor de USER_ID do registro bruto.
USER_ID_DERIVED principal.user.product_object_id, target.resource.attribute.labels O valor de USER_ID_DERIVED do registro bruto.
UserId principal.user.userid O valor de UserId do registro bruto.
USER_TYPE target.resource.attribute.labels O valor de USER_TYPE do registro bruto, formatado como um rótulo.
Username principal.user.userid, principal.user.email_addresses, target.user.email_addresses O valor de Username do registro bruto, src_email para vários eventos, IdentityUsed para IdentityProviderEventStore, data.properties.Email.str para Search e SearchAlert ou data.properties.Username.str para LoginAsEventStream e LoginEventStream.
UserType target.resource.attribute.labels O valor de UserType do registro bruto, formatado como um rótulo.
usrName principal.user.userid, principal.user.email_addresses, target.user.email_addresses O valor de usrName do registro bruto.
VerificationMethod target.resource.attribute.labels O valor de VerificationMethod do registro bruto, formatado como um rótulo.
Lógica do analisador metadata.event_type Derivado com base nos campos event_id e operation ou definido como "USER_LOGIN" para LoginEventStream, "USER_LOGOUT" para Logout e LogoutEvent, "USER_RESOURCE_UPDATE_CONTENT" para vários 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 e TimeBasedWorkflow com Operation como "Create" ou "INSERT", "RESOURCE_WRITTEN" para UriEvent e LightningUriEvent com Operation como "Update", "RESOURCE_DELETION" para UriEvent com Operation como "Delete" ou "ROLLBACK", "USER_UNCATEGORIZED" para SetupAuditTrail e AuditTrail, "USER_CHANGE_PASSWORD" para SetupAuditTrail com operation como "namedCredentialEncryptedFieldChange", "GENERIC_EVENT" para ApiEventStream e LightningUriEventStream ou com base na presença de rede e principal.
Lógica do analisador metadata.ingestion_labels Rótulos que indicam a origem do evento, como "Arquivo de registro de eventos", "Monitoramento de eventos em tempo real" ou "SetupAuditTrail".
Lógica do analisador metadata.log_type Sempre definido como "SALESFORCE".
Lógica do analisador metadata.product_name Sempre definido como "SALESFORCE".
Lógica do analisador metadata.vendor_name Sempre definido como "SALESFORCE".
Lógica do analisador metadata.url_back_to_product Construído com base em vários campos, como LoginUrl, attributes.url, data.properties.PageUrl.str e data.properties.LoginUrl.str.
Lógica do analisador network.application_protocol Definido como "HTTPS" se o campo uri começar com "http".
Lógica do analisador network.http.referral_url Extraído do campo user_agent se ele contiver "Referer=".
Lógica do analisador network.http.response_code Derivado de request_status para vários eventos.
Lógica do analisador network.http.user_agent O valor de user_agent do registro bruto ou de data.properties.UserAgent.str para ApiEventStream e LoginEventStream, ou de eventos Sites, ou "User-Agent" de eventos Sites.
Lógica do analisador network.session_id O valor de session_key ou SESSION_KEY do registro bruto ou construído com base em outros campos, como LoginKey ou AuthSessionId.
Lógica do analisador network.tls.version O valor de tls_protocol do registro bruto ou de data.properties.TlsProtocol.str para LoginEventStream.
Lógica do analisador principal.application O valor de application do registro bruto ou "Salesforce para Outlook" para eventos de login: sucesso ou "Insights" para eventos de login: sucesso sem aplicativo ou extraído de device_platform para eventos do Lightning.
Lógica do analisador principal.asset.hostname O valor de client_ip se for um nome de host.
Lógica do analisador principal.asset.ip O valor de client_ip ou src_ip ou SourceIp ou CLIENT_IP se for um endereço IP.
Lógica do analisador principal.hostname O valor de client_ip se for um nome de host.
Lógica do analisador principal.ip O valor de client_ip ou src_ip ou SourceIp ou CLIENT_IP se for um endereço IP.
Lógica do analisador principal.labels Rótulos criados com base em vários campos, como FederationIdentifier, ApiType, OrgId, channel.
Lógica do analisador principal.location.city O valor de geoip_src.city_name, City ou LoginGeo.City do registro bruto.
Lógica do analisador principal.location.country_or_region O valor de geoip_src.country_name, Country, LoginGeo.Country ou client_geo do registro bruto.
Lógica do analisador principal.location.region_latitude O valor de data.properties.LoginLatitude.number do registro bruto.
Lógica do analisador principal.location.region_longitude O valor de data.properties.LoginLongitude.number do registro bruto.
Lógica do analisador principal.location.state O valor de geoip_src.region_name do registro bruto.
Lógica do analisador principal.platform O valor de Platform, OsName ou os_name do registro bruto ou "WINDOWS" para LoginEventStream com Platform contendo "Windows".
Lógica do analisador principal.platform_version O valor de OsVersion ou os_version do registro bruto ou extraído de Platform para LoginEventStream com Platform contendo "Windows".
Lógica do analisador principal.resource.attribute.labels Rótulos criados com base em vários campos, como CreatedById, ApiVersion, LogFile, LogFileContentType, LogFileLength.
Lógica do analisador principal.resource.name O valor de Browser ou browser_name do registro bruto ou "Java (Salesforce.com)" para LoginHistory com ApiType como "SOAP Partner".
Lógica do analisador principal.resource.type Extraído de device_platform para eventos do Lightning ou "Browser" para LoginAsEvent e LoginAsEventStream.
Lógica do analisador principal.url O valor de LoginUrl do registro bruto.
Lógica do analisador principal.user.email_addresses O valor de usrName ou Username ou src_email ou IdentityUsed ou data.properties.Username.str ou data.properties.Email.str do registro bruto.
Lógica do analisador principal.user.product_object_id O valor de attrs.USER_ID_DERIVED ou data.properties.USER_ID_DERIVED.str do registro bruto.
Lógica do analisador principal.user.userid O valor de usrName ou Username ou user_id ou UserId ou USER_ID ou Id ou LoginKey ou CreatedByContext ou data.properties.Username.str ou data.properties.USER_ID.str ou data.properties.LoginKey.str do registro bruto.
Lógica do analisador security_result.action Derivado de Status ou OperationStatus ou ErrorCode ou action ou operation_status do registro bruto, transformado em ALLOW ou BLOCK.
Lógica do analisador security_result.action_details O valor de Status do registro bruto para LoginEventStream.
Lógica do analisador security_result.description O valor de LoginType ou logintype ou Operation ou Action ou Display do registro bruto.
Lógica do analisador security_result.rule_name O valor de Policy ou rule_name do registro bruto.
Lógica do analisador security_result.summary Construído com base em NewValue e OldValue ou REQUEST_STATUS ou Section ou forecastcategory do registro bruto.
Lógica do analisador target.administrative_domain O valor de ORGANIZATION_ID, DelegatedOrganizationId, organization_id ou data.properties.OrgName.str do registro bruto.
Lógica do analisador target.application O valor de Application ou app_name ou ApiType ou Name ou data.properties.Application.str do registro bruto.
Lógica do analisador target.asset.hostname O valor de target_hostname extraído do campo uri.
Lógica do analisador target.asset.ip O valor de data.properties.CLIENT_IP.str do registro bruto.
Lógica do analisador target.asset_id Construído com device_id ou REQUEST_ID.
Lógica do analisador target.file.mime_type O valor de file_type do registro bruto.
Lógica do analisador target.file.size O valor de size_bytes do registro bruto.
Lógica do analisador target.hostname O valor de target_hostname extraído do campo uri.
Lógica do analisador target.process.command_line O valor de query_exec, Query ou data.properties.Query.str do registro bruto.
Lógica do analisador target.process.pid O valor de job_id do registro bruto.
Lógica do analisador target.resource.attribute.labels Rótulos criados com vários 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, ��, rows_processed, sso_type, dashboard_type, Operation e SessionLevel.session_level
Lógica do analisador target.resource.id O valor de REQUEST_ID ou RecordId ou caseid ou leadid ou contactid ou opportunityid ou accountid do registro bruto.
Lógica do analisador target.resource.name O valor de QueriedEntities ou resource_name ou component_name ou DATASET_IDS ou field ou StageName ou Subject do registro bruto.
Lógica do analisador target.resource.product_object_id O valor de REQUEST_ID do registro bruto.
Lógica do analisador target.resource.resource_type Definido como "ACCESS_POLICY" para ApexCallout e PlatformEncryption, "DATABASE" para ApexTrigger, "FILE" para ContentTransfer ou "TABLE" para ApiEvent.
Lógica do analisador target.resource.type Defina como "BATCH" para QueuedExecution e ApexExecution, "FILE" para ContentTransfer, "DATABASE_TRIGGER" para ApexTrigger ou "Case", "Lead", "Contact", "Opportunity", "Account" com base na presença dos campos de ID correspondentes.
Lógica do analisador target.url O valor de LoginUrl ou URI ou attributes.url ou login_url ou uri do registro bruto.
Lógica do analisador target.user.email_addresses O valor de Username, attrs.usrName ou email_address do registro bruto.
Lógica do analisador target.user.user_display_name O valor de target_user_display_name, user_name ou username do registro bruto.
Lógica do analisador target.user.userid O valor de target_user_name, data.properties.UserId.str ou data.properties.CreatedById.str do registro bruto.
Lógica do analisador extensions.auth.auth_details Definido como "ACTIVE" se Status não for "Success". Caso contrário, definido como "UNKNOWN_AUTHENTICATION_STATUS".
Lógica do analisador extensions.auth.mechanism Definido como "REMOTE" para eventos de login: sucesso e login com logintype contendo "Remote", ou "USERNAME_PASSWORD" para LoginEventStream, ou "MECHANISM_OTHER" para eventos com login_url presente, ou "AUTHTYPE_UNSPECIFIED" para eventos de login: sucesso e logout.
Lógica do analisador extensions.auth.type Definido como "SSO" para Login, Logout, LogoutEvent, LoginAs, IdentityProviderEventStore, LoginHistory, LoginAsEvent com LoginType como "SAML Sfdc Initiated SSO" ou "AUTHTYPE_UNSPECIFIED" para Login: Success, Logout, LoginAsEvent com LoginType como "Application".

Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.