Coletar registros do Salesforce
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.
Gere uma chave privada RSA:
openssl genrsa -out salesforce_jwt_private.key 2048Gere uma solicitação de assinatura de certificado (CSR):
openssl req -new -key salesforce_jwt_private.key -out salesforce_jwt.csrGere 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.crtSalve 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
- Faça login no Salesforce como administrador do sistema.
- Acesse Configuração > Apps > Gerenciador de apps.
- Clique em New Connected App.
- 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.
- Nome do app conectado: insira um nome, por exemplo,
- 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.
- Clique em Salvar.
- Clique em Continuar na mensagem de aviso.
- 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.
- Clique em Gerenciar > Editar políticas.
- 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.
- Clique em Salvar.
Criar e configurar um usuário de integração no Salesforce
- Acesse Configuração > Usuários > Usuários.
- Clique em New User.
- 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.
- Nome: insira
- Clique em Salvar.
- 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
- Acesse Configuração > Apps > Apps conectados > Gerenciar apps conectados.
- Clique no app conectado Integração do Google Security Operations que você criou.
- Clique em Gerenciar > Gerenciar perfis ou Gerenciar conjuntos de permissões.
- Selecione o perfil ou conjunto de permissões atribuído ao usuário de integração (por exemplo, Administrador do sistema).
- Clique em Salvar.
Conceder permissões de API e monitoramento de eventos ao usuário de integração
- Acesse Configuração > Usuários > Conjuntos de permissões.
- Clique em Novo.
- Informe os seguintes detalhes de configuração:
- Rótulo: insira
Event Monitoring API Access. - Nome da API: preenchido automaticamente.
- Rótulo: insira
- Clique em Salvar.
- 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.
- Clique em Gerenciar atribuições > Adicionar atribuições.
- Selecione o usuário de integração criado anteriormente.
- Clique em Atribuir > Concluído.
Configurar um feed no Google SecOps para ingerir registros do Salesforce via API
- Acesse Configurações do SIEM > Feeds.
- Clique em + Adicionar novo feed.
- Na próxima página, clique em Configurar um único feed.
- No campo Nome do feed, insira um nome para o feed (por exemplo,
Salesforce logs). - Selecione API de terceiros como o Tipo de fonte.
- Selecione Salesforce como o Tipo de registro.
- Clique em Próxima.
- Selecione Concessão de JWT do OAuth no menu suspenso.
- 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
- Produção:
- 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
- Produção:
- 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-----.
- Endpoint JWT do OAuth: insira o endpoint do token OAuth do Salesforce:
- 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.
- Clique em Próxima.
- 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
- Crie um bucket do Amazon S3 seguindo este guia do usuário: Como criar um bucket
- Salve o Nome e a Região do bucket para referência futura (por exemplo,
salesforce-secops-logs). - Crie um usuário seguindo este guia: Como criar um usuário do IAM.
- Selecione o usuário criado.
- Selecione a guia Credenciais de segurança.
- Clique em Criar chave de acesso na seção Chaves de acesso.
- Selecione Serviço de terceiros como o Caso de uso.
- Clique em Próxima.
- Opcional: adicione uma tag de descrição.
- Clique em Criar chave de acesso.
- Clique em Fazer o download do arquivo CSV para salvar a chave de acesso e a chave de acesso secreta para referência futura.
- Clique em Concluído.
- Selecione a guia Permissões.
- Clique em Adicionar permissões na seção Políticas de permissões.
- Selecione Adicionar permissões.
- Selecione Anexar políticas diretamente.
- Pesquise a política AmazonS3FullAccess.
- Selecione a política.
- Clique em Próxima.
- Clique em Adicionar permissões
Configurar o Amazon AppFlow
- Abra o console do Amazon AppFlow.
- Clique em Criar fluxo.
- 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.
- Nome do fluxo: insira um nome (por exemplo,
- Clique em Próxima.
- 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).
- Clique em Próxima.
- 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/).
- Clique em Próxima.
- 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.
- Clique em Próxima.
- 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.
- Clique em Próxima.
- Para Adicionar filtros (opcional):
- Adicione filtros para limitar os dados transferidos.
- Clique em Próxima.
- Revise a configuração e clique em Criar fluxo.
- Clique em Ativar fluxo para iniciar as transferências programadas.
Configurar um feed no Google SecOps para ingerir registros do Salesforce
- Acesse Configurações do SIEM > Feeds.
- Clique em Adicionar novo feed.
- Na próxima página, clique em Configurar um único feed.
- No campo Nome do feed, insira um nome para o feed, por exemplo, Registros do Salesforce.
- Selecione Amazon S3 V2 como o Tipo de origem.
- Selecione Salesforce como o Tipo de registro.
- Clique em Próxima.
Especifique valores para os seguintes parâmetros de entrada:
- URI do S3: o URI do bucket.
s3://BUCKET_NAMESubstitua:- 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.
- URI do S3: o URI do bucket.
Clique em Próxima.
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/ACSV
"EVENT_TYPE","TIMESTAMP","REQUEST_ID","ORGANIZATION_ID","USER_ID","RUN_TIME","CPU_TIME","URI","SESSION_KEY","LOGIN_KEY","USER_TYPE","REQUEST_STATUS","DB_TOTAL_TIME","METHOD","MEDIA_TYPE","STATUS_CODE","USER_AGENT","ROWS_PROCESSED","NUMBER_FIELDS","DB_BLOCKS","DB_CPU_TIME","REQUEST_SIZE","RESPONSE_SIZE","ENTITY_NAME","EXCEPTION_MESSAGE","TIMESTAMP_DERIVED","USER_ID_DERIVED","CLIENT_IP","URI_ID_DERIVED" "RestApi","20240421120015.367","SLB:sanitized_request_id","00D040000004g6r","005Sv000000CxcD",329,69,"/services/data/v58.0/query","TJestP3qzXKiV/Ud","D/M3fSrc6oTXlmLq","Standard","S",37030739,"GET","application/json;charset=UTF-8",200,9999,840,5,19481,47,10,250361,"EventLogFile",NaN,"2024-04-21T12:00:15.366Z","005Sv000000CxcDIAS","192.0.2.3",NaN
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.