Recolha registos do Salesforce
Este documento explica como carregar registos do Salesforce para o Google Security Operations através de dois métodos: Amazon AppFlow com Amazon S3 ou API de terceiros. O analisador processa os registos nos formatos LEEF, CSV e JSON. Extrai campos, realiza o processamento específico do formato (processamento de pares de chave/valor LEEF, colunas CSV e estruturas JSON), mapeia-os para o 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 inícios de sessão, fins de sessão e outras ações, categorizando eventos e definindo tipos de eventos do UDM adequados.
Antes de começar
Certifique-se de que cumpre os seguintes pré-requisitos:
- Uma instância do Google SecOps
- Acesso privilegiado ao Salesforce (administrador do sistema ou equivalente)
Opção 1: método da API de terceiros
- Uma licença do Shield Event Monitoring do Salesforce ou um suplemento do Event Monitoring
- Capacidade de gerar e gerir certificados X.509 e pares de chaves RSA
Opção 2: Amazon AppFlow com o método S3
- Acesso privilegiado à AWS
- A sua organização usa a edição Enterprise, Unlimited ou Performance do Salesforce
Nota importante sobre licenciamento: sem a Monitorização de eventos do Salesforce Shield, o acesso à API EventLogFile está limitado a apenas 7 tipos de eventos básicos (Início de sessão, Fim de sessão, Utilização total da API, Registo de violação de CORS, Violação de CSP, Redirecionamentos de nomes de anfitriões, Exceção inesperada do Apex) com um período de retenção de 1 dia. A maioria das organizações sem o Shield deve usar o método do Amazon AppFlow (opção 2).
Opção 1: configure a integração direta da API Salesforce através da API de terceiros (OAuth JWT Bearer)
Este método estabelece uma ligação API direta do Google SecOps ao Salesforce através do fluxo de portador JWT do OAuth 2.0 para autenticação de servidor a servidor.
Pré-requisitos para este método:
- Uma licença do Shield Event Monitoring do Salesforce ou um suplemento do Event Monitoring (necessário para o acesso abrangente ao EventLogFile)
- Acesso de administrador do sistema no Salesforce
- Capacidade de gerar e gerir certificados X.509 e pares de chaves RSA
Gere um par de chaves RSA e um certificado X.509
Precisa de uma chave privada RSA e de 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 um pedido de assinatura de certificado (CSR):
openssl req -new -key salesforce_jwt_private.key -out salesforce_jwt.csrGere um certificado autoassinado (válido durante 1 ano):
openssl x509 -req -days 365 -in salesforce_jwt.csr -signkey salesforce_jwt_private.key -out salesforce_jwt.crtGuarde a chave privada em segurança. Precisa dele para a configuração do feed do Google SecOps.
Crie uma app associada do Salesforce com o fluxo de portador de JWT
- Inicie sessão no Salesforce como administrador do sistema.
- Aceda a Configuração > Apps > Gestor de apps.
- Clique em Nova app associada.
- Forneça os seguintes detalhes de configuração:
- Nome da app associada: introduza um nome (por exemplo,
Google Security Operations Integration). - Nome da API: preenchido automaticamente com base no nome da app associada.
- Email de contacto: introduza o seu endereço de email.
- Nome da app associada: introduza um nome (por exemplo,
- Na secção API (ativar definições de OAuth):
- Selecione Ativar definições OAuth.
- URL de retorno de chamada: introduza
https://login.salesforce.com/services/oauth2/callback(não é usado para o fluxo JWT, mas é obrigatório). - Selecione Usar assinaturas digitais.
- Clique em Escolher ficheiro e carregue o certificado X.509 (
salesforce_jwt.crt) que gerou anteriormente. - Âmbitos do OAuth selecionados: adicione os seguintes âmbitos:
- Aceda e faça a gestão dos seus dados (API)
- Realizar pedidos em seu nome em qualquer altura (refresh_token, offline_access)
- Exigir a extensão da chave de prova para troca de código (PKCE) para fluxos de autorização suportados: desmarque esta opção.
- Clique em Guardar.
- Clique em Continuar na mensagem de aviso.
- Na página de detalhes da app associada, tome nota da chave do consumidor. Este será usado como o emissor de reivindicações JWT no Google SecOps.
- Clique em Gerir > Editar políticas.
- Na secção Políticas de OAuth:
- Utilizadores permitidos: selecione Os utilizadores aprovados pelo administrador estão pré-autorizados.
- Relaxamento de IP: selecione Relaxar restrições de IP.
- Clique em Guardar.
Crie e configure um utilizador da integração no Salesforce
- Aceda a Configuração > Utilizadores > Utilizadores.
- Clique em Novo utilizador.
- Forneça os seguintes detalhes de configuração:
- First Name: introduza
Google. - Apelido: introduza
Google SecOps Integration. - Email: introduza um endereço de email.
- Nome de utilizador: introduza um nome de utilizador exclusivo.
- Licença de utilizador: selecione Salesforce.
- Perfil: selecione Administrador do sistema ou crie um perfil personalizado com acesso à API.
- First Name: introduza
- Clique em Guardar.
- Registe o nome de utilizador exatamente como foi introduzido. Este valor é usado como o assunto das reivindicações JWT no Google SecOps.
Atribua o utilizador da integração à app ligada
- Aceda a Configuração > Apps > Apps associadas > Gerir apps associadas.
- Clique na app associada Google Security Operations Integration que criou.
- Clique em Gerir > Gerir perfis ou Gerir conjuntos de autorizações.
- Selecione o perfil ou o conjunto de autorizações atribuído ao utilizador de integração (por exemplo, Administrador do sistema).
- Clique em Guardar.
Conceda autorizações de API e de monitorização de eventos ao utilizador de integração
- Aceda a Configuração > Utilizadores > Conjuntos de autorizações.
- Clique em Novo.
- Forneça os seguintes detalhes de configuração:
- Etiqueta: introduza
Event Monitoring API Access. - Nome da API: preenchido automaticamente.
- Etiqueta: introduza
- Clique em Guardar.
- Na página de detalhes do conjunto de autorizações:
- Clique em Autorizações do sistema.
- Clique em Edit.
- Verifique as seguintes autorizações:
- API ativada
- Veja ficheiros de registo de eventos
- Ver todos os dados (opcional, mas recomendado para acesso abrangente)
- Clique em Guardar.
- Clique em Gerir atribuições > Adicionar atribuições.
- Selecione o utilizador de integração que criou anteriormente.
- Clique em Atribuir > Concluído.
Configure um feed no Google SecOps para carregar registos do Salesforce através da API
- Aceda a Definições do SIEM > Feeds.
- Clique em + Adicionar novo feed.
- Na página seguinte, clique em Configurar um único feed.
- No campo Nome do feed, introduza um nome para o feed (por exemplo,
Salesforce logs). - Selecione API de terceiros como o Tipo de origem.
- Selecione Salesforce como o Tipo de registo.
- Clicar em Seguinte.
- Selecione Concessão de JWT OAuth no menu pendente.
- Especifique valores para os seguintes parâmetros de entrada:
- Ponto final JWT do OAuth: introduza o ponto final 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 reivindicações JWT: introduza a chave do consumidor da app associada.
- Assunto das reivindicações JWT: introduza o nome de utilizador do utilizador de integração.
- Público-alvo de reivindicações JWT: introduza o URL base de início de sessão 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-----.
- Ponto final JWT do OAuth: introduza o ponto final do token OAuth do Salesforce:
- Especifique parâmetros adicionais:
- Espaço de nomes do recurso: o espaço de nomes do recurso.
- Etiquetas de carregamento: a etiqueta a aplicar aos eventos deste feed.
- Clicar em Seguinte.
- Reveja a nova configuração do feed no ecrã Finalizar e, de seguida, clique em Enviar.
Opção 2: configure a exportação de registos do Salesforce através do Amazon AppFlow e do S3
Este método usa o Amazon AppFlow para extrair dados do Salesforce e armazená-los no Amazon S3, que o Google SecOps ingere.
Configure o contentor do AWS S3 e o IAM para o Google SecOps
- Crie um contentor do Amazon S3 seguindo este manual do utilizador: Criar um contentor
- Guarde o Nome e a Região do contentor para referência futura (por exemplo,
salesforce-secops-logs). - Crie um utilizador seguindo este guia do utilizador: criar um utilizador do IAM.
- Selecione o utilizador criado.
- Selecione o separador Credenciais de segurança.
- Clique em Criar chave de acesso na secção Chaves de acesso.
- Selecione Serviço de terceiros como o Exemplo de utilização.
- Clicar em Seguinte.
- Opcional: adicione uma etiqueta de descrição.
- Clique em Criar chave de acesso.
- Clique em Transferir ficheiro CSV para guardar a chave de acesso e a chave de acesso secreta para referência futura.
- Clique em Concluído.
- Selecione o separador Autorizações.
- Clique em Adicionar autorizações na secção Políticas de autorizações.
- Selecione Adicionar autorizações.
- Selecione Anexar políticas diretamente.
- Pesquise a política AmazonS3FullAccess.
- Selecione a política.
- Clicar em Seguinte.
- Clique em Adicionar autorizações.
Configure o Amazon AppFlow
- Abra a consola do Amazon AppFlow.
- Clique em Criar fluxo.
- Forneça os seguintes detalhes de configuração:
- Nome do fluxo: introduza um nome (por exemplo,
Salesforce-to-S3-SecOps). - Descrição do fluxo: descrição opcional.
- Nome do fluxo: introduza um nome (por exemplo,
- Clicar em Seguinte.
- Para Detalhes da origem:
- Nome da origem: selecione Salesforce.
- Escolha a associação do Salesforce: clique em Criar nova associação.
- É apresentada uma janela de início de sessão do Salesforce. Inicie sessão com as suas credenciais do Salesforce.
- Conceda acesso quando lhe for pedido.
- Objeto do Salesforce: selecione o objeto que quer transferir (por exemplo, EventLogFile se tiver a Monitorização de eventos ou outros objetos de auditoria).
- Clicar em Seguinte.
- Para Detalhes do destino:
- Nome do destino: selecione Amazon S3.
- Detalhes do contentor: selecione o contentor do S3 que criou anteriormente.
- Prefixo do contentor do S3: prefixo opcional (por exemplo,
salesforce-logs/).
- Clicar em Seguinte.
- Para o Acionador de fluxo:
- Selecione Executar com base numa programação.
- A partir de: defina a sua hora de início preferencial.
- Repetições: selecione A cada hora ou Diariamente com base nos seus requisitos.
- Clicar em Seguinte.
- Para campos de dados do mapa:
- Selecione Mapear todos os campos diretamente ou pode especificar os campos a mapear.
- Se fizer o mapeamento manualmente, selecione os campos que quer transferir.
- Clicar em Seguinte.
- Para Adicionar filtros (opcional):
- Adicione filtros para limitar os dados transferidos.
- Clicar em Seguinte.
- Reveja a configuração e clique em Criar fluxo.
- Clique em Ativar fluxo para iniciar as transferências agendadas.
Configure um feed no Google SecOps para carregar registos do Salesforce
- Aceda a Definições do SIEM > Feeds.
- Clique em Adicionar novo feed.
- Na página seguinte, clique em Configurar um único feed.
- No campo Nome do feed, introduza um nome para o feed; por exemplo, Registos do Salesforce.
- Selecione Amazon S3 V2 como o Tipo de origem.
- Selecione Salesforce como o Tipo de registo.
- Clicar em Seguinte.
Especifique valores para os seguintes parâmetros de entrada:
- URI do S3: o URI do contentor.
s3://BUCKET_NAMESubstitua o seguinte:- BUCKET_NAME: o nome do contentor.
Opções de eliminação de origens: selecione a opção de eliminação de acordo com a sua preferência.
Idade máxima do ficheiro: inclui ficheiros modificados no último número de dias. A predefinição é 180 dias.
ID da chave de acesso: a chave de acesso do utilizador com acesso ao contentor do S3.
Chave de acesso secreta: a chave secreta do utilizador com acesso ao contentor do S3.
- URI do S3: o URI do contentor.
Clicar em Seguinte.
Reveja a nova configuração do feed no ecrã Finalizar e, de seguida, clique em Enviar.
Formatos de registos do Salesforce suportados
O analisador do Salesforce suporta registos nos formatos KV (LEEF) e CSV.
Registos de exemplo do Salesforce suportados
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 da UDM
| Campo de registo | Mapeamento da UDM | Lógica |
|---|---|---|
Account.Name |
target.resource.name |
O valor de Account.Name do registo não processado. |
AccountId |
target.resource.id |
O valor de AccountId do registo não processado. |
Action |
security_result.description |
O valor de Action do registo não processado. |
AdditionalInfo |
- | Não está mapeado para o objeto IDM. |
ApiType |
target.application |
O valor de ApiType do registo não processado. |
ApiVersion |
- | Não está mapeado para o objeto IDM. |
Application |
principal.application |
O valor de Application do registo não processado, "Navegador" para LoginAsEvent, "Token JWT de integração" para LoginEvent, "SfdcSiqActivityPlatform" para LoginHistory com objecttype LoginHistory, "N/A" para ApiEvent ou "Navegador" para LoginAsEventStream. |
attributes.url |
target.url |
O valor de attributes.url do registo não processado ou URLs específicos para vários tipos de eventos do registo não processado. |
attributes.type |
metadata.product_event_type |
O valor de attributes.type do registo não processado. |
AuthSessionId |
network.session_id |
O valor de AuthSessionId do registo não processado. |
Browser |
principal.resource.name |
O valor de Browser do registo não processado ou "Desconhecido" se Browser não estiver disponível no registo não processado e Application for "Estatísticas" ou "Java (Salesforce.com)" para LoginHistory com ApiType como "SOAP Partner" ou "Desconhecido" 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 registo não processado. |
CaseId |
target.resource.id |
O valor de CaseId do registo não processado. |
cat |
metadata.product_event_type |
O valor de cat do registo não processado. |
City |
principal.location.city |
O valor de City do registo não processado ou de LoginGeo.City para LoginHistory. |
Client |
principal.labels |
O valor de Client do registo não processado, formatado como uma etiqueta. |
CLIENT_IP |
principal.ip, principal.asset.ip |
O valor de CLIENT_IP do registo não processado. |
ClientVersion |
- | Não está mapeado para o objeto IDM. |
CipherSuite |
network.tls.cipher |
O valor de CipherSuite do registo não processado. |
ColumnHeaders |
principal.labels |
O valor de ColumnHeaders do registo não processado, formatado como uma etiqueta. |
ConnectedAppId |
principal.labels |
O valor de ConnectedAppId do registo não processado, formatado como uma etiqueta. |
Contact.Name |
target.resource.name |
O valor de Contact.Name do registo não processado. |
ContactId |
target.resource.id |
O valor de ContactId do registo não processado. |
Country |
principal.location.country_or_region |
O valor de Country a partir do registo não processado ou LoginGeo.Country para LoginHistory. |
CreatedByContext |
principal.user.userid |
O valor de CreatedByContext do registo não processado. |
CreatedById |
principal.resource.attribute.labels |
O valor de CreatedById do registo não processado, formatado como uma etiqueta. |
CreatedDate |
metadata.collected_timestamp |
O valor de CreatedDate do registo não processado ou a data/hora atual, se não estiver disponível. |
CPU_TIME |
target.resource.attribute.labels |
O valor de CPU_TIME do registo não processado, formatado como uma etiqueta. |
data |
- | Contém vários campos que são extraídos e mapeados individualmente. |
DATASET_IDS |
target.resource.name |
O valor de DATASET_IDS do registo não processado. |
DelegatedOrganizationId |
target.administrative_domain |
O valor de DelegatedOrganizationId do registo não processado. |
DelegatedUsername |
observer.user.userid |
O valor de DelegatedUsername do registo não processado. |
Description |
metadata.description |
O valor de Description do registo não processado. |
DevicePlatform |
principal.resource.type |
O valor de DevicePlatform do registo não processado, analisado para extrair o tipo de recurso. |
Display |
metadata.description |
O valor de Display do registo não processado. |
DOWNLOAD_FORMAT |
target.resource.attribute.labels |
O valor de DOWNLOAD_FORMAT do registo não processado, formatado como uma etiqueta. |
Duration |
target.resource.attribute.labels |
O valor de Duration do registo não processado, formatado como uma etiqueta. |
ENTITY_NAME |
target.resource.attribute.labels |
O valor de ENTITY_NAME do registo não processado, formatado como uma etiqueta. |
ErrorCode |
security_result.action |
O valor de ErrorCode do registo não processado, transformado em ALLOW ou BLOCK. |
EventDate |
timestamp |
O valor de EventDate do registo não processado ou data.properties.TIMESTAMP_DERIVED.str, se disponível, ou data.properties.TIMESTAMP_DERIVED_FIRST.str, se disponível, ou @timestamp, se disponível, ou created_date, se disponível, ou timestamp, se disponível, ou LoginTime para LoginHistory. |
EventIdentifier |
metadata.product_log_id |
O valor de EventIdentifier do registo não processado. |
EventType |
metadata.product_event_type |
O valor de EventType do registo não processado. |
Id |
principal.user.userid |
O valor de Id do registo não processado ou metadata.product_log_id para SetupAuditTrail e outros eventos. |
IdentityUsed |
principal.user.email_addresses |
O valor de IdentityUsed do registo não processado. |
Lead.Name |
target.resource.name |
O valor de Lead.Name do registo não processado. |
LeadId |
target.resource.id |
O valor de LeadId do registo não processado. |
LoginAsCategory |
- | Não está mapeado para o objeto IDM. |
LoginGeo.Country |
principal.location.country_or_region |
O valor de LoginGeo.Country do registo não processado. |
LoginHistoryId |
- | Não está mapeado para o objeto IDM. |
LoginKey |
principal.user.userid, network.session_id |
O valor de LoginKey a partir do registo não processado ou CreatedByContext para SetupAuditTrail. |
LoginTime |
timestamp |
O valor de LoginTime do registo não processado. |
LoginType |
security_result.description |
O valor de LoginType do registo não processado ou "Outra API Apex" para LoginHistory com ApiType como "SOAP Partner" ou "Acesso remoto 2.0" para LoginHistory com Application como "SfdcSiqActivityPlatform". |
LoginUrl |
target.url, principal.url |
O valor de LoginUrl do registo não processado. |
LogFile |
principal.resource.attribute.labels |
O valor de LogFile do registo não processado, formatado como uma etiqueta. |
LogFileContentType |
principal.resource.attribute.labels |
O valor de LogFileContentType do registo não processado, formatado como uma etiqueta. |
LogFileLength |
principal.resource.attribute.labels |
O valor de LogFileLength do registo não processado, formatado como uma etiqueta. |
Message |
- | Não está mapeado para o objeto IDM. |
METHOD |
network.http.method |
O valor de METHOD do registo não processado. |
Name |
target.application |
O valor de Name do registo não processado. |
NewValue |
- | Usado em conjunto com OldValue para gerar security_result.summary. |
NUMBER_FIELDS |
target.resource.attribute.labels |
O valor de NUMBER_FIELDS do registo não processado, formatado como uma etiqueta. |
OldValue |
- | Usado em conjunto com NewValue para gerar security_result.summary. |
Operation |
security_result.description, target.resource.attribute.labels |
O valor de Operation a partir do registo não processado ou Display para SetupAuditTrail. |
OperationStatus |
security_result.action |
O valor de OperationStatus do registo não processado, transformado em ALLOW ou BLOCK. |
ORGANIZATION_ID |
target.administrative_domain |
O valor de ORGANIZATION_ID do registo não processado. |
OsName |
principal.platform |
O valor de OsName do registo não processado. |
OsVersion |
principal.platform_version |
O valor de OsVersion do registo não processado. |
Platform |
principal.platform |
O valor de Platform do registo não processado 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 registo não processado ou component_name para UriEvent e ApiEvent. |
Query |
target.process.command_line, principal.labels |
O valor de Query do registo não processado. |
RecordId |
target.resource.id |
O valor de RecordId do registo não processado. |
Records |
principal.labels |
O valor de Records do registo não processado, formatado como uma etiqueta. |
REQUEST_ID |
metadata.product_log_id, target.resource.product_object_id |
O valor de REQUEST_ID do registo não processado. |
REQUEST_SIZE |
network.sent_bytes |
O valor de REQUEST_SIZE do registo não processado. |
REQUEST_STATUS |
security_result.summary |
O valor de REQUEST_STATUS do registo não processado. |
RESPONSE_SIZE |
network.received_bytes |
O valor de RESPONSE_SIZE do registo não processado. |
RowsProcessed |
target.resource.attribute.labels |
O valor de RowsProcessed do registo não processado, formatado como uma etiqueta. |
RUN_TIME |
target.resource.attribute.labels |
O valor de RUN_TIME do registo não processado, formatado como uma etiqueta. |
SamlEntityUrl |
- | Não está mapeado para o objeto IDM. |
SdkAppType |
- | Não está mapeado para o objeto IDM. |
SdkAppVersion |
- | Não está mapeado para o objeto IDM. |
SdkVersion |
- | Não está mapeado para o objeto IDM. |
Section |
security_result.summary |
O valor de Section do registo não processado. |
SessionKey |
network.session_id |
O valor de SessionKey do registo não processado. |
SessionLevel |
target.resource.attribute.labels |
O valor de SessionLevel do registo não processado, formatado como uma etiqueta. |
SourceIp |
principal.ip, principal.asset.ip |
O valor de SourceIp do registo não processado. |
src |
principal.ip, principal.asset.ip |
O valor de src do registo não processado. |
SsoType |
target.resource.attribute.labels |
O valor de SsoType do registo não processado, formatado como uma etiqueta. |
STATUS_CODE |
network.http.response_code |
O valor de STATUS_CODE do registo não processado. |
Status |
security_result.action, security_result.action_details |
O valor de Status do registo não processado, transformado em ALLOW ou BLOCK, ou usado como detalhes da ação para LoginEventStream. |
Subject |
target.resource.name |
O valor de Subject do registo não processado. |
TargetUrl |
- | Não está mapeado para o objeto IDM. |
TIMESTAMP |
metadata.collected_timestamp |
O valor de TIMESTAMP do registo não processado. |
TIMESTAMP_DERIVED |
timestamp |
O valor de TIMESTAMP_DERIVED do registo não processado. |
TlsProtocol |
network.tls.version_protocol |
O valor de TlsProtocol do registo não processado. |
URI |
target.url |
O valor de URI do registo não processado. |
USER_AGENT |
network.http.user_agent |
O valor de USER_AGENT do registo não processado. |
USER_ID |
principal.user.userid |
O valor de USER_ID do registo não processado. |
USER_ID_DERIVED |
principal.user.product_object_id, target.resource.attribute.labels |
O valor de USER_ID_DERIVED do registo não processado. |
UserId |
principal.user.userid |
O valor de UserId do registo não processado. |
USER_TYPE |
target.resource.attribute.labels |
O valor de USER_TYPE do registo não processado, formatado como uma etiqueta. |
Username |
principal.user.userid, principal.user.email_addresses, target.user.email_addresses |
O valor de Username do registo não processado, ou src_email para vários eventos, ou IdentityUsed para IdentityProviderEventStore, ou 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 registo não processado, formatado como uma etiqueta. |
usrName |
principal.user.userid, principal.user.email_addresses, target.user.email_addresses |
O valor de usrName do registo não processado. |
VerificationMethod |
target.resource.attribute.labels |
O valor de VerificationMethod do registo não processado, formatado como uma etiqueta. |
| Parser Logic | 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. |
| Parser Logic | metadata.ingestion_labels |
Etiquetas que indicam a origem do evento, "Ficheiro de registo de eventos", "Monitorização de eventos em tempo real" ou "SetupAuditTrail". |
| Parser Logic | metadata.log_type |
Está sempre definido como "SALESFORCE". |
| Parser Logic | metadata.product_name |
Está sempre definido como "SALESFORCE". |
| Parser Logic | metadata.vendor_name |
Está sempre definido como "SALESFORCE". |
| Parser Logic | metadata.url_back_to_product |
Construído a partir de vários campos, como LoginUrl, attributes.url, data.properties.PageUrl.str e data.properties.LoginUrl.str. |
| Parser Logic | network.application_protocol |
Definido como "HTTPS" se o campo uri começar por "http". |
| Parser Logic | network.http.referral_url |
Extraído do campo user_agent se contiver "Referer=". |
| Parser Logic | network.http.response_code |
Derivados de request_status para vários eventos. |
| Parser Logic | network.http.user_agent |
O valor de user_agent do registo não processado ou de data.properties.UserAgent.str para ApiEventStream e LoginEventStream, ou de eventos Sites, ou "User-Agent" de eventos Sites. |
| Parser Logic | network.session_id |
O valor de session_key ou SESSION_KEY do registo não processado ou construído a partir de outros campos, como LoginKey ou AuthSessionId. |
| Parser Logic | network.tls.version |
O valor de tls_protocol do registo não processado ou de data.properties.TlsProtocol.str para LoginEventStream. |
| Parser Logic | principal.application |
O valor de application do registo não processado ou "Salesforce for Outlook" para eventos Login: Success, ou "Insights" para eventos Login: Success sem Application, ou extraído de device_platform para eventos Lightning. |
| Parser Logic | principal.asset.hostname |
O valor de client_ip se for um nome de anfitrião. |
| Parser Logic | principal.asset.ip |
O valor de client_ip ou src_ip ou SourceIp ou CLIENT_IP, se for um endereço IP. |
| Parser Logic | principal.hostname |
O valor de client_ip se for um nome de anfitrião. |
| Parser Logic | principal.ip |
O valor de client_ip ou src_ip ou SourceIp ou CLIENT_IP, se for um endereço IP. |
| Parser Logic | principal.labels |
Etiquetas criadas a partir de vários campos, como FederationIdentifier, ApiType, OrgId e channel. |
| Parser Logic | principal.location.city |
O valor de geoip_src.city_name, City ou LoginGeo.City do registo não processado. |
| Parser Logic | principal.location.country_or_region |
O valor de geoip_src.country_name, Country, LoginGeo.Country ou client_geo do registo não processado. |
| Parser Logic | principal.location.region_latitude |
O valor de data.properties.LoginLatitude.number do registo não processado. |
| Parser Logic | principal.location.region_longitude |
O valor de data.properties.LoginLongitude.number do registo não processado. |
| Parser Logic | principal.location.state |
O valor de geoip_src.region_name do registo não processado. |
| Parser Logic | principal.platform |
O valor de Platform, OsName ou os_name do registo não processado, ou "WINDOWS" para LoginEventStream com Platform a conter "Windows". |
| Parser Logic | principal.platform_version |
O valor de OsVersion ou os_version do registo não processado ou extraído de Platform para LoginEventStream com Platform a conter "Windows". |
| Parser Logic | principal.resource.attribute.labels |
Etiquetas criadas a partir de vários campos, como CreatedById, ApiVersion, LogFile, LogFileContentType e LogFileLength. |
| Parser Logic | principal.resource.name |
O valor de Browser ou browser_name do registo não processado, ou "Java (Salesforce.com)" para LoginHistory com ApiType como "SOAP Partner". |
| Parser Logic | principal.resource.type |
Extraído de device_platform para eventos Lightning ou "Navegador" para LoginAsEvent e LoginAsEventStream. |
| Parser Logic | principal.url |
O valor de LoginUrl do registo não processado. |
| Parser Logic | 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 registo não processado. |
| Parser Logic | principal.user.product_object_id |
O valor de attrs.USER_ID_DERIVED ou data.properties.USER_ID_DERIVED.str do registo não processado. |
| Parser Logic | 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 registo não processado. |
| Parser Logic | security_result.action |
Derivado de Status ou OperationStatus ou ErrorCode ou action ou operation_status do registo não processado, transformado em ALLOW ou BLOCK. |
| Parser Logic | security_result.action_details |
O valor de Status do registo não processado para LoginEventStream. |
| Parser Logic | security_result.description |
O valor de LoginType, logintype, Operation, Action ou Display do registo não processado. |
| Parser Logic | security_result.rule_name |
O valor de Policy ou rule_name do registo não processado. |
| Parser Logic | security_result.summary |
Construído a partir de NewValue e OldValue ou REQUEST_STATUS ou Section ou forecastcategory do registo não processado. |
| Parser Logic | target.administrative_domain |
O valor de ORGANIZATION_ID, DelegatedOrganizationId, organization_id ou data.properties.OrgName.str do registo não processado. |
| Parser Logic | target.application |
O valor de Application, app_name, ApiType, Name ou data.properties.Application.str do registo não processado. |
| Parser Logic | target.asset.hostname |
O valor de target_hostname extraído do campo uri. |
| Parser Logic | target.asset.ip |
O valor de data.properties.CLIENT_IP.str do registo não processado. |
| Parser Logic | target.asset_id |
Construído a partir de device_id ou REQUEST_ID. |
| Parser Logic | target.file.mime_type |
O valor de file_type do registo não processado. |
| Parser Logic | target.file.size |
O valor de size_bytes do registo não processado. |
| Parser Logic | target.hostname |
O valor de target_hostname extraído do campo uri. |
| Parser Logic | target.process.command_line |
O valor de query_exec, Query ou data.properties.Query.str do registo não processado. |
| Parser Logic | target.process.pid |
O valor de job_id do registo não processado. |
| Parser Logic | target.resource.attribute.labels |
Etiquetas criadas a partir de 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, session_level, rows_processed, sso_type, dashboard_type, Operation, SessionLevel. |
| Parser Logic | target.resource.id |
O valor de REQUEST_ID ou RecordId ou caseid ou leadid ou contactid ou opportunityid ou accountid do registo não processado. |
| Parser Logic | target.resource.name |
O valor de QueriedEntities ou resource_name ou component_name ou DATASET_IDS ou field ou StageName ou Subject do registo não processado. |
| Parser Logic | target.resource.product_object_id |
O valor de REQUEST_ID do registo não processado. |
| Parser Logic | target.resource.resource_type |
Definido como "ACCESS_POLICY" para ApexCallout e PlatformEncryption, ou "DATABASE" para ApexTrigger, ou "FILE" para ContentTransfer, ou "TABLE" para ApiEvent. |
| Parser Logic | target.resource.type |
Definido como "BATCH" para QueuedExecution e ApexExecution, ou "FILE" para ContentTransfer, ou "DATABASE_TRIGGER" para ApexTrigger, ou "Case", "Lead", "Contact", "Opportunity", "Account" com base na presença dos campos de ID correspondentes. |
| Parser Logic | target.url |
O valor de LoginUrl, URI, attributes.url, login_url ou uri do registo não processado. |
| Parser Logic | target.user.email_addresses |
O valor de Username, attrs.usrName ou email_address do registo não processado. |
| Parser Logic | target.user.user_display_name |
O valor de target_user_display_name, user_name ou username do registo não processado. |
| Parser Logic | target.user.userid |
O valor de target_user_name, data.properties.UserId.str ou data.properties.CreatedById.str do registo não processado. |
| Parser Logic | extensions.auth.auth_details |
Definido como "ACTIVE" se Status não for "Success". Caso contrário, é definido como "UNKNOWN_AUTHENTICATION_STATUS". |
| Parser Logic | extensions.auth.mechanism |
Definido como "REMOTE" para eventos Login: Success e Login com logintype que contenham "Remote", ou "USERNAME_PASSWORD" para LoginEventStream, ou "MECHANISM_OTHER" para eventos com login_url presente, ou "AUTHTYPE_UNSPECIFIED" para eventos Login: Success e Logout. |
| Parser Logic | 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 da Google SecOps.