Raccogliere i log di Salesforce
Questo documento spiega come importare i log di Salesforce in Google Security Operations utilizzando due metodi: Amazon AppFlow con Amazon S3 o API di terze parti. Il parser gestisce i log nei formati LEEF, CSV e JSON. Estrae i campi, esegue l'elaborazione specifica per il formato (gestendo le coppie chiave-valore LEEF, le colonne CSV e le strutture JSON), li mappa all'UDM e arricchisce i dati con metadati e campi derivati. Il parser gestisce anche vari tipi di eventi Salesforce, applicando una logica specifica per accessi, disconnessioni e altre azioni, classificando gli eventi e impostando i tipi di eventi UDM appropriati.
Prima di iniziare
Assicurati di soddisfare i seguenti prerequisiti:
- Un'istanza Google SecOps
- Accesso privilegiato a Salesforce (amministratore di sistema o equivalente)
Opzione 1: metodo API di terze parti
- Una licenza Salesforce Shield Event Monitoring o un componente aggiuntivo Event Monitoring
- Possibilità di generare e gestire certificati X.509 e coppie di chiave RSA
Opzione 2: Amazon AppFlow con metodo S3
- Accesso privilegiato ad AWS
- La tua organizzazione utilizza Enterprise, Unlimited o Performance Edition di Salesforce
Nota importante sulla licenza: senza Salesforce Shield Event Monitoring, l'accesso API a EventLogFile è limitato a soli 7 tipi di eventi di base (accesso, disconnessione, utilizzo totale dell'API, record di violazione CORS, violazione CSP, reindirizzamenti del nome host, eccezione imprevista Apex) con un periodo di conservazione di 1 giorno. La maggior parte delle organizzazioni senza Shield deve utilizzare il metodo Amazon AppFlow (opzione 2).
Opzione 1: configura l'integrazione diretta dell'API Salesforce utilizzando l'API di terze parti (OAuth JWT Bearer)
Questo metodo stabilisce una connessione API diretta da Google SecOps a Salesforce utilizzando il flusso di connessione (bearer) JWT OAuth 2.0 per l'autenticazione server-to-server.
Prerequisiti per questo metodo:
- Una licenza Shield Event Monitoring di Salesforce o un componente aggiuntivo Event Monitoring (necessario per l'accesso completo a EventLogFile)
- Accesso come amministratore di sistema in Salesforce
- Possibilità di generare e gestire certificati X.509 e coppie di chiave RSA
Generare la coppia di chiavi RSA e il certificato X.509
Per l'autenticazione di connessione (bearer) JWT, hai bisogno di una chiave privata RSA e del certificato X.509 corrispondente.
Genera una chiave privata RSA:
openssl genrsa -out salesforce_jwt_private.key 2048Genera una richiesta di firma del certificato (CSR):
openssl req -new -key salesforce_jwt_private.key -out salesforce_jwt.csrGenera un certificato autofirmato (valido per un anno):
openssl x509 -req -days 365 -in salesforce_jwt.csr -signkey salesforce_jwt_private.key -out salesforce_jwt.crtSalva la chiave privata in modo sicuro. Ti servirà per la configurazione del feed Google SecOps.
Crea un'app connessa Salesforce con il flusso JWT Bearer
- Accedi a Salesforce come amministratore di sistema.
- Vai a Configurazione > App > Gestione app.
- Fai clic su Nuova app collegata.
- Fornisci i seguenti dettagli di configurazione:
- Nome dell'app collegata: inserisci un nome (ad esempio,
Google Security Operations Integration). - Nome API: compilato automaticamente in base al nome dell'app connessa.
- Email di contatto: inserisci il tuo indirizzo email.
- Nome dell'app collegata: inserisci un nome (ad esempio,
- Nella sezione API (Enable OAuth Settings) (API (Abilita impostazioni OAuth)):
- Seleziona Abilita impostazioni OAuth.
- URL di callback: inserisci
https://login.salesforce.com/services/oauth2/callback(non viene utilizzato per il flusso JWT, ma è obbligatorio). - Seleziona Usa firme digitali.
- Fai clic su Scegli file e carica il certificato X.509 (
salesforce_jwt.crt) che hai generato in precedenza. - Ambiti OAuth selezionati: aggiungi i seguenti ambiti:
- Accedere ai tuoi dati e gestirli (API)
- Eseguire richieste per tuo conto in qualsiasi momento (refresh_token, offline_access)
- Richiedi l'estensione Proof Key for Code Exchange (PKCE) per i flussi di autorizzazione supportati: deseleziona questa opzione.
- Fai clic su Salva.
- Fai clic su Continua nel messaggio di avviso.
- Nella pagina dei dettagli dell'app connessa, prendi nota della Consumer Key. Verrà utilizzato come emittente delle rivendicazioni JWT in Google SecOps.
- Fai clic su Gestisci > Modifica policy.
- Nella sezione OAuth Policies (Policy OAuth):
- Utenti autorizzati: seleziona Gli utenti approvati dall'amministratore sono preautorizzati.
- Rilassamento IP: seleziona Rilassa le restrizioni IP.
- Fai clic su Salva.
Crea e configura un utente di integrazione in Salesforce
- Vai a Configurazione > Utenti > Utenti.
- Fai clic su New User (Nuovo utente).
- Fornisci i seguenti dettagli di configurazione:
- Nome: inserisci
Google. - Cognome: inserisci
Google SecOps Integration. - Email: inserisci un indirizzo email.
- Nome utente: inserisci un nome utente univoco.
- Licenza utente: seleziona Salesforce.
- Profilo: seleziona Amministratore di sistema o crea un profilo personalizzato con accesso API.
- Nome: inserisci
- Fai clic su Salva.
- Prendi nota del nome utente esattamente come è stato inserito. Verrà utilizzato come soggetto delle attestazioni JWT in Google SecOps.
Assegna l'utente di integrazione all'app connessa
- Vai a Configurazione > App > App connesse > Gestisci app connesse.
- Fai clic sull'app collegata Integrazione di Google Security Operations che hai creato.
- Fai clic su Gestisci > Gestisci profili o Gestisci insiemi di autorizzazioni.
- Seleziona il profilo o il set di autorizzazioni assegnato all'utente di integrazione (ad esempio, Amministratore di sistema).
- Fai clic su Salva.
Concedi le autorizzazioni di monitoraggio di API ed eventi all'utente di integrazione
- Vai a Configurazione > Utenti > Set di autorizzazioni.
- Fai clic su New (Nuovo).
- Fornisci i seguenti dettagli di configurazione:
- Etichetta: inserisci
Event Monitoring API Access. - Nome API: compilato automaticamente.
- Etichetta: inserisci
- Fai clic su Salva.
- Nella pagina dei dettagli del set di autorizzazioni:
- Fai clic su Autorizzazioni di sistema.
- Fai clic su Modifica.
- Controlla le seguenti autorizzazioni:
- API abilitata
- Visualizzare i file di log eventi
- Visualizza tutti i dati (facoltativo, ma consigliato per un accesso completo)
- Fai clic su Salva.
- Fai clic su Gestisci assegnazioni > Aggiungi assegnazioni.
- Seleziona l'utente di integrazione che hai creato in precedenza.
- Fai clic su Assegna > Fine.
Configura un feed in Google SecOps per importare i log di Salesforce tramite API
- Vai a Impostazioni SIEM > Feed.
- Fai clic su + Aggiungi nuovo feed.
- Nella pagina successiva, fai clic su Configura un singolo feed.
- Nel campo Nome feed, inserisci un nome per il feed (ad esempio,
Salesforce logs). - Seleziona API di terze parti come Tipo di origine.
- Seleziona Salesforce come Tipo di log.
- Fai clic su Avanti.
- Seleziona Concessione JWT OAuth dal menu a discesa.
- Specifica i valori per i seguenti parametri di input:
- Endpoint JWT OAuth: inserisci l'endpoint del token OAuth di Salesforce:
- Produzione:
https://login.salesforce.com/services/oauth2/token - Sandbox:
https://test.salesforce.com/services/oauth2/token - Dominio personalizzato:
https://yourdomain.my.salesforce.com/services/oauth2/token
- Produzione:
- Emittente delle attestazioni JWT: inserisci la Consumer Key dell'app connessa.
- JWT Claims Subject (Soggetto delle attestazioni JWT): inserisci il Nome utente dell'utente di integrazione.
- JWT Claims Audience (Pubblico delle rivendicazioni JWT): inserisci l'URL di base di accesso a Salesforce:
- Produzione:
https://login.salesforce.com - Sandbox:
https://test.salesforce.com
- Produzione:
- Chiave privata RSA: incolla l'intero contenuto della chiave privata RSA (
salesforce_jwt_private.key), incluse le righe-----BEGIN PRIVATE KEY-----e-----END PRIVATE KEY-----.
- Endpoint JWT OAuth: inserisci l'endpoint del token OAuth di Salesforce:
- Specifica parametri aggiuntivi:
- Spazio dei nomi dell'asset: lo spazio dei nomi dell'asset.
- Etichette di importazione: l'etichetta da applicare agli eventi di questo feed.
- Fai clic su Avanti.
- Controlla la nuova configurazione del feed nella schermata Finalizza e poi fai clic su Invia.
Opzione 2: configura l'esportazione dei log di Salesforce utilizzando Amazon AppFlow e S3
Questo metodo utilizza Amazon AppFlow per estrarre i dati da Salesforce e archiviarli in Amazon S3, che poi vengono importati da Google SecOps.
Configura il bucket AWS S3 e IAM per Google SecOps
- Crea un bucket Amazon S3 seguendo questa guida utente: Creazione di un bucket
- Salva il nome e la regione del bucket per riferimento futuro (ad esempio,
salesforce-secops-logs). - Crea un utente seguendo questa guida utente: Creazione di un utente IAM.
- Seleziona l'utente creato.
- Seleziona la scheda Credenziali di sicurezza.
- Fai clic su Crea chiave di accesso nella sezione Chiavi di accesso.
- Seleziona Servizio di terze parti come Caso d'uso.
- Fai clic su Avanti.
- (Facoltativo) Aggiungi un tag di descrizione.
- Fai clic su Crea chiave di accesso.
- Fai clic su Scarica file CSV per salvare la chiave di accesso e la chiave di accesso segreta per riferimento futuro.
- Fai clic su Fine.
- Seleziona la scheda Autorizzazioni.
- Fai clic su Aggiungi autorizzazioni nella sezione Criteri per le autorizzazioni.
- Seleziona Aggiungi autorizzazioni.
- Seleziona Collega direttamente i criteri.
- Cerca la norma AmazonS3FullAccess.
- Seleziona la policy.
- Fai clic su Avanti.
- Fai clic su Aggiungi autorizzazioni.
Configura Amazon AppFlow
- Apri la console Amazon AppFlow.
- Fai clic su Crea flusso.
- Fornisci i seguenti dettagli di configurazione:
- Nome flusso: inserisci un nome (ad esempio
Salesforce-to-S3-SecOps). - Descrizione del flusso: descrizione facoltativa.
- Nome flusso: inserisci un nome (ad esempio
- Fai clic su Avanti.
- Per Dettagli origine:
- Nome origine: seleziona Salesforce.
- Scegli la connessione Salesforce: fai clic su Crea nuova connessione.
- Viene visualizzata una finestra di accesso a Salesforce. Accedi con le tue credenziali Salesforce.
- Concedi l'accesso quando richiesto.
- Oggetto Salesforce: seleziona l'oggetto da trasferire (ad esempio EventLogFile se hai Event Monitoring o altri oggetti di controllo).
- Fai clic su Avanti.
- Per Dettagli destinazione:
- Nome destinazione: seleziona Amazon S3.
- Dettagli bucket: seleziona il bucket S3 che hai creato in precedenza.
- Prefisso bucket S3: prefisso facoltativo (ad esempio,
salesforce-logs/).
- Fai clic su Avanti.
- Per Trigger di flusso:
- Seleziona Esegui in base a pianificazione.
- A partire dalle ore: imposta l'ora di inizio che preferisci.
- Si ripete: seleziona Ogni ora o Ogni giorno in base alle tue esigenze.
- Fai clic su Avanti.
- Per Mappa i campi dati:
- Seleziona Mappa tutti i campi direttamente oppure specifica i campi da mappare.
- Se esegui la mappatura manualmente, seleziona i campi da trasferire.
- Fai clic su Avanti.
- Per Aggiungi filtri (facoltativo):
- Aggiungi eventuali filtri per limitare i dati trasferiti.
- Fai clic su Avanti.
- Rivedi la configurazione e fai clic su Crea flusso.
- Fai clic su Attiva flusso per avviare i trasferimenti pianificati.
Configura un feed in Google SecOps per importare i log di Salesforce
- Vai a Impostazioni SIEM > Feed.
- Fai clic su Aggiungi nuovo feed.
- Nella pagina successiva, fai clic su Configura un singolo feed.
- Nel campo Nome feed, inserisci un nome per il feed, ad esempio Log di Salesforce.
- Seleziona Amazon S3 V2 come Tipo di origine.
- Seleziona Salesforce come Tipo di log.
- Fai clic su Avanti.
Specifica i valori per i seguenti parametri di input:
- URI S3: l'URI del bucket.
s3://BUCKET_NAMESostituisci quanto segue:- BUCKET_NAME: il nome del bucket.
Opzioni di eliminazione dell'origine: seleziona l'opzione di eliminazione in base alle tue preferenze.
Età massima del file: include i file modificati nell'ultimo numero di giorni. Il valore predefinito è 180 giorni.
ID chiave di accesso: la chiave di accesso utente con accesso al bucket S3.
Chiave di accesso segreta: la chiave segreta dell'utente con accesso al bucket S3.
- URI S3: l'URI del bucket.
Fai clic su Avanti.
Controlla la nuova configurazione del feed nella schermata Finalizza e poi fai clic su Invia.
Formati dei log di Salesforce supportati
Il parser Salesforce supporta i log nei formati KV (LEEF) e CSV.
Log di esempio di Salesforce supportati
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
Tabella di mappatura UDM
| Campo log | Mappatura UDM | Logic |
|---|---|---|
Account.Name |
target.resource.name |
Il valore di Account.Name dal log non elaborato. |
AccountId |
target.resource.id |
Il valore di AccountId dal log non elaborato. |
Action |
security_result.description |
Il valore di Action dal log non elaborato. |
AdditionalInfo |
- | Non mappato all'oggetto IDM. |
ApiType |
target.application |
Il valore di ApiType dal log non elaborato. |
ApiVersion |
- | Non mappato all'oggetto IDM. |
Application |
principal.application |
Il valore di Application dal log non elaborato o "Browser" per LoginAsEvent o "Integration JWT Token" per LoginEvent o "SfdcSiqActivityPlatform" per LoginHistory con objecttype LoginHistory o "N/A" per ApiEvent o "Browser" per LoginAsEventStream. |
attributes.url |
target.url |
Il valore di attributes.url dal log non elaborato o URL specifici per vari tipi di eventi dal log non elaborato. |
attributes.type |
metadata.product_event_type |
Il valore di attributes.type dal log non elaborato. |
AuthSessionId |
network.session_id |
Il valore di AuthSessionId dal log non elaborato. |
Browser |
principal.resource.name |
Il valore di Browser dal log non elaborato o "Sconosciuto" se Browser non è disponibile nel log non elaborato e Application è "Approfondimenti", o "Java (Salesforce.com)" per LoginHistory con ApiType come "SOAP Partner", o "Sconosciuto" per LoginHistory con Application come "SfdcSiqActivityPlatform", o da data.properties.Browser.str per LoginAsEventStream. |
Case.Subject |
target.resource.name |
Il valore di Case.Subject dal log non elaborato. |
CaseId |
target.resource.id |
Il valore di CaseId dal log non elaborato. |
cat |
metadata.product_event_type |
Il valore di cat dal log non elaborato. |
City |
principal.location.city |
Il valore di City dal log non elaborato o da LoginGeo.City per LoginHistory. |
Client |
principal.labels |
Il valore di Client dal log non elaborato, formattato come etichetta. |
CLIENT_IP |
principal.ip, principal.asset.ip |
Il valore di CLIENT_IP dal log non elaborato. |
ClientVersion |
- | Non mappato all'oggetto IDM. |
CipherSuite |
network.tls.cipher |
Il valore di CipherSuite dal log non elaborato. |
ColumnHeaders |
principal.labels |
Il valore di ColumnHeaders dal log non elaborato, formattato come etichetta. |
ConnectedAppId |
principal.labels |
Il valore di ConnectedAppId dal log non elaborato, formattato come etichetta. |
Contact.Name |
target.resource.name |
Il valore di Contact.Name dal log non elaborato. |
ContactId |
target.resource.id |
Il valore di ContactId dal log non elaborato. |
Country |
principal.location.country_or_region |
Il valore di Country dal log non elaborato o LoginGeo.Country per LoginHistory. |
CreatedByContext |
principal.user.userid |
Il valore di CreatedByContext dal log non elaborato. |
CreatedById |
principal.resource.attribute.labels |
Il valore di CreatedById dal log non elaborato, formattato come etichetta. |
CreatedDate |
metadata.collected_timestamp |
Il valore di CreatedDate dal log non elaborato o il timestamp corrente, se non disponibile. |
CPU_TIME |
target.resource.attribute.labels |
Il valore di CPU_TIME dal log non elaborato, formattato come etichetta. |
data |
- | Contiene vari campi estratti e mappati singolarmente. |
DATASET_IDS |
target.resource.name |
Il valore di DATASET_IDS dal log non elaborato. |
DelegatedOrganizationId |
target.administrative_domain |
Il valore di DelegatedOrganizationId dal log non elaborato. |
DelegatedUsername |
observer.user.userid |
Il valore di DelegatedUsername dal log non elaborato. |
Description |
metadata.description |
Il valore di Description dal log non elaborato. |
DevicePlatform |
principal.resource.type |
Il valore di DevicePlatform dal log non elaborato, analizzato per estrarre il tipo di risorsa. |
Display |
metadata.description |
Il valore di Display dal log non elaborato. |
DOWNLOAD_FORMAT |
target.resource.attribute.labels |
Il valore di DOWNLOAD_FORMAT dal log non elaborato, formattato come etichetta. |
Duration |
target.resource.attribute.labels |
Il valore di Duration dal log non elaborato, formattato come etichetta. |
ENTITY_NAME |
target.resource.attribute.labels |
Il valore di ENTITY_NAME dal log non elaborato, formattato come etichetta. |
ErrorCode |
security_result.action |
Il valore di ErrorCode dal log non elaborato, trasformato in ALLOW o BLOCK. |
EventDate |
timestamp |
Il valore di EventDate dal log non elaborato o data.properties.TIMESTAMP_DERIVED.str se disponibile o data.properties.TIMESTAMP_DERIVED_FIRST.str se disponibile o @timestamp se disponibile o created_date se disponibile o timestamp se disponibile o LoginTime per LoginHistory. |
EventIdentifier |
metadata.product_log_id |
Il valore di EventIdentifier dal log non elaborato. |
EventType |
metadata.product_event_type |
Il valore di EventType dal log non elaborato. |
Id |
principal.user.userid |
Il valore di Id dal log non elaborato o metadata.product_log_id per SetupAuditTrail e altri eventi. |
IdentityUsed |
principal.user.email_addresses |
Il valore di IdentityUsed dal log non elaborato. |
Lead.Name |
target.resource.name |
Il valore di Lead.Name dal log non elaborato. |
LeadId |
target.resource.id |
Il valore di LeadId dal log non elaborato. |
LoginAsCategory |
- | Non mappato all'oggetto IDM. |
LoginGeo.Country |
principal.location.country_or_region |
Il valore di LoginGeo.Country dal log non elaborato. |
LoginHistoryId |
- | Non mappato all'oggetto IDM. |
LoginKey |
principal.user.userid, network.session_id |
Il valore di LoginKey dal log non elaborato o CreatedByContext per SetupAuditTrail. |
LoginTime |
timestamp |
Il valore di LoginTime dal log non elaborato. |
LoginType |
security_result.description |
Il valore di LoginType dal log non elaborato o "Altra API Apex" per LoginHistory con ApiType come "SOAP Partner" o "Remote Access 2.0" per LoginHistory con Application come "SfdcSiqActivityPlatform". |
LoginUrl |
target.url, principal.url |
Il valore di LoginUrl dal log non elaborato. |
LogFile |
principal.resource.attribute.labels |
Il valore di LogFile dal log non elaborato, formattato come etichetta. |
LogFileContentType |
principal.resource.attribute.labels |
Il valore di LogFileContentType dal log non elaborato, formattato come etichetta. |
LogFileLength |
principal.resource.attribute.labels |
Il valore di LogFileLength dal log non elaborato, formattato come etichetta. |
Message |
- | Non mappato all'oggetto IDM. |
METHOD |
network.http.method |
Il valore di METHOD dal log non elaborato. |
Name |
target.application |
Il valore di Name dal log non elaborato. |
NewValue |
- | Utilizzato insieme a OldValue per generare security_result.summary. |
NUMBER_FIELDS |
target.resource.attribute.labels |
Il valore di NUMBER_FIELDS dal log non elaborato, formattato come etichetta. |
OldValue |
- | Utilizzato insieme a NewValue per generare security_result.summary. |
Operation |
security_result.description, target.resource.attribute.labels |
Il valore di Operation dal log non elaborato o Display per SetupAuditTrail. |
OperationStatus |
security_result.action |
Il valore di OperationStatus dal log non elaborato, trasformato in ALLOW o BLOCK. |
ORGANIZATION_ID |
target.administrative_domain |
Il valore di ORGANIZATION_ID dal log non elaborato. |
OsName |
principal.platform |
Il valore di OsName dal log non elaborato. |
OsVersion |
principal.platform_version |
Il valore di OsVersion dal log non elaborato. |
Platform |
principal.platform |
Il valore di Platform dal log non elaborato o da data.properties.OsName.str per LightningUriEventStream o da data.properties.OsName.str per LoginEventStream. |
QueriedEntities |
target.resource.name, principal.labels |
Il valore di QueriedEntities dal log non elaborato o component_name per UriEvent e ApiEvent. |
Query |
target.process.command_line, principal.labels |
Il valore di Query dal log non elaborato. |
RecordId |
target.resource.id |
Il valore di RecordId dal log non elaborato. |
Records |
principal.labels |
Il valore di Records dal log non elaborato, formattato come etichetta. |
REQUEST_ID |
metadata.product_log_id, target.resource.product_object_id |
Il valore di REQUEST_ID dal log non elaborato. |
REQUEST_SIZE |
network.sent_bytes |
Il valore di REQUEST_SIZE dal log non elaborato. |
REQUEST_STATUS |
security_result.summary |
Il valore di REQUEST_STATUS dal log non elaborato. |
RESPONSE_SIZE |
network.received_bytes |
Il valore di RESPONSE_SIZE dal log non elaborato. |
RowsProcessed |
target.resource.attribute.labels |
Il valore di RowsProcessed dal log non elaborato, formattato come etichetta. |
RUN_TIME |
target.resource.attribute.labels |
Il valore di RUN_TIME dal log non elaborato, formattato come etichetta. |
SamlEntityUrl |
- | Non mappato all'oggetto IDM. |
SdkAppType |
- | Non mappato all'oggetto IDM. |
SdkAppVersion |
- | Non mappato all'oggetto IDM. |
SdkVersion |
- | Non mappato all'oggetto IDM. |
Section |
security_result.summary |
Il valore di Section dal log non elaborato. |
SessionKey |
network.session_id |
Il valore di SessionKey dal log non elaborato. |
SessionLevel |
target.resource.attribute.labels |
Il valore di SessionLevel dal log non elaborato, formattato come etichetta. |
SourceIp |
principal.ip, principal.asset.ip |
Il valore di SourceIp dal log non elaborato. |
src |
principal.ip, principal.asset.ip |
Il valore di src dal log non elaborato. |
SsoType |
target.resource.attribute.labels |
Il valore di SsoType dal log non elaborato, formattato come etichetta. |
STATUS_CODE |
network.http.response_code |
Il valore di STATUS_CODE dal log non elaborato. |
Status |
security_result.action, security_result.action_details |
Il valore di Status dal log non elaborato, trasformato in ALLOW o BLOCK oppure utilizzato come dettagli dell'azione per LoginEventStream. |
Subject |
target.resource.name |
Il valore di Subject dal log non elaborato. |
TargetUrl |
- | Non mappato all'oggetto IDM. |
TIMESTAMP |
metadata.collected_timestamp |
Il valore di TIMESTAMP dal log non elaborato. |
TIMESTAMP_DERIVED |
timestamp |
Il valore di TIMESTAMP_DERIVED dal log non elaborato. |
TlsProtocol |
network.tls.version_protocol |
Il valore di TlsProtocol dal log non elaborato. |
URI |
target.url |
Il valore di URI dal log non elaborato. |
USER_AGENT |
network.http.user_agent |
Il valore di USER_AGENT dal log non elaborato. |
USER_ID |
principal.user.userid |
Il valore di USER_ID dal log non elaborato. |
USER_ID_DERIVED |
principal.user.product_object_id, target.resource.attribute.labels |
Il valore di USER_ID_DERIVED dal log non elaborato. |
UserId |
principal.user.userid |
Il valore di UserId dal log non elaborato. |
USER_TYPE |
target.resource.attribute.labels |
Il valore di USER_TYPE dal log non elaborato, formattato come etichetta. |
Username |
principal.user.userid, principal.user.email_addresses, target.user.email_addresses |
Il valore di Username dal log non elaborato o src_email per vari eventi o IdentityUsed per IdentityProviderEventStore o data.properties.Email.str per Search e SearchAlert o data.properties.Username.str per LoginAsEventStream e LoginEventStream. |
UserType |
target.resource.attribute.labels |
Il valore di UserType dal log non elaborato, formattato come etichetta. |
usrName |
principal.user.userid, principal.user.email_addresses, target.user.email_addresses |
Il valore di usrName dal log non elaborato. |
VerificationMethod |
target.resource.attribute.labels |
Il valore di VerificationMethod dal log non elaborato, formattato come etichetta. |
| Parser Logic | metadata.event_type |
Derivato in base ai campi event_id e operation oppure impostato su "USER_LOGIN" per LoginEventStream, "USER_LOGOUT" per Logout e LogoutEvent, "USER_RESOURCE_UPDATE_CONTENT" per vari eventi, "USER_RESOURCE_UPDATE_PERMISSIONS" per PlatformEncryption, "RESOURCE_READ" per QueuedExecution, ApexExecution, LightningInteraction, LightningPerformance, LightningPageView, URI, RestApi, API, AuraRequest, ApexCallout, OneCommerceUsage, Sites, MetadataApiOperation, OneCommerceUsage, VisualforceRequest, Dashboard, Search, ListViewEvent, "RESOURCE_CREATION" per UriEvent e TimeBasedWorkflow con Operation come "Create" o "INSERT", "RESOURCE_WRITTEN" per UriEvent e LightningUriEvent con Operation come "Update", "RESOURCE_DELETION" per UriEvent con Operation come "Delete" o "ROLLBACK", "USER_UNCATEGORIZED" per SetupAuditTrail e AuditTrail, "USER_CHANGE_PASSWORD" per SetupAuditTrail con operation come "namedCredentialEncryptedFieldChange", "GENERIC_EVENT" per ApiEventStream e LightningUriEventStream oppure in base alla presenza di rete e principal. |
| Parser Logic | metadata.ingestion_labels |
Etichette che indicano l'origine dell'evento, ovvero "File di log eventi", "Monitoraggio eventi in tempo reale" o "SetupAuditTrail". |
| Parser Logic | metadata.log_type |
È sempre impostato su "SALESFORCE". |
| Parser Logic | metadata.product_name |
È sempre impostato su "SALESFORCE". |
| Parser Logic | metadata.vendor_name |
È sempre impostato su "SALESFORCE". |
| Parser Logic | metadata.url_back_to_product |
Costruito a partire da vari campi come LoginUrl, attributes.url, data.properties.PageUrl.str, data.properties.LoginUrl.str. |
| Parser Logic | network.application_protocol |
Imposta "HTTPS" se il campo uri inizia con "http". |
| Parser Logic | network.http.referral_url |
Estratto dal campo user_agent se contiene "Referer=". |
| Parser Logic | network.http.response_code |
Derivato da request_status per vari eventi. |
| Parser Logic | network.http.user_agent |
Il valore di user_agent dal log non elaborato o da data.properties.UserAgent.str per ApiEventStream e LoginEventStream o dagli eventi Sites o "User-Agent" dagli eventi Sites. |
| Parser Logic | network.session_id |
Il valore di session_key o SESSION_KEY dal log non elaborato o creato da altri campi come LoginKey o AuthSessionId. |
| Parser Logic | network.tls.version |
Il valore di tls_protocol dal log non elaborato o da data.properties.TlsProtocol.str per LoginEventStream. |
| Parser Logic | principal.application |
Il valore di application dal log non elaborato o "Salesforce for Outlook" per gli eventi Accesso: riuscito o "Approfondimenti" per gli eventi Accesso: riuscito senza applicazione o estratto da device_platform per gli eventi Lightning. |
| Parser Logic | principal.asset.hostname |
Il valore di client_ip se è un nome host. |
| Parser Logic | principal.asset.ip |
Il valore di client_ip o src_ip o SourceIp o CLIENT_IP se è un indirizzo IP. |
| Parser Logic | principal.hostname |
Il valore di client_ip se è un nome host. |
| Parser Logic | principal.ip |
Il valore di client_ip o src_ip o SourceIp o CLIENT_IP se è un indirizzo IP. |
| Parser Logic | principal.labels |
Etichette create da vari campi come FederationIdentifier, ApiType, OrgId, channel. |
| Parser Logic | principal.location.city |
Il valore di geoip_src.city_name o City o LoginGeo.City dal log non elaborato. |
| Parser Logic | principal.location.country_or_region |
Il valore di geoip_src.country_name o Country o LoginGeo.Country o client_geo dal log non elaborato. |
| Parser Logic | principal.location.region_latitude |
Il valore di data.properties.LoginLatitude.number dal log non elaborato. |
| Parser Logic | principal.location.region_longitude |
Il valore di data.properties.LoginLongitude.number dal log non elaborato. |
| Parser Logic | principal.location.state |
Il valore di geoip_src.region_name dal log non elaborato. |
| Parser Logic | principal.platform |
Il valore di Platform o OsName o os_name dal log non elaborato oppure "WINDOWS" per LoginEventStream con Platform contenente "Windows". |
| Parser Logic | principal.platform_version |
Il valore di OsVersion o os_version dal log non elaborato o estratto da Platform per LoginEventStream con Platform contenente "Windows". |
| Parser Logic | principal.resource.attribute.labels |
Etichette create da vari campi come CreatedById, ApiVersion, LogFile, LogFileContentType, LogFileLength. |
| Parser Logic | principal.resource.name |
Il valore di Browser o browser_name dal log non elaborato oppure "Java (Salesforce.com)" per LoginHistory con ApiType come "SOAP Partner". |
| Parser Logic | principal.resource.type |
Estratto da device_platform per gli eventi Lightning o "Browser" per LoginAsEvent e LoginAsEventStream. |
| Parser Logic | principal.url |
Il valore di LoginUrl dal log non elaborato. |
| Parser Logic | principal.user.email_addresses |
Il valore di usrName o Username o src_email o IdentityUsed o data.properties.Username.str o data.properties.Email.str dal log non elaborato. |
| Parser Logic | principal.user.product_object_id |
Il valore di attrs.USER_ID_DERIVED o data.properties.USER_ID_DERIVED.str dal log non elaborato. |
| Parser Logic | principal.user.userid |
Il valore di usrName o Username o user_id o UserId o USER_ID o Id o LoginKey o CreatedByContext o data.properties.Username.str o data.properties.USER_ID.str o data.properties.LoginKey.str dal log non elaborato. |
| Parser Logic | security_result.action |
Derivato da Status o OperationStatus o ErrorCode o action o operation_status dal log non elaborato, trasformato in ALLOW o BLOCK. |
| Parser Logic | security_result.action_details |
Il valore di Status dal log non elaborato per LoginEventStream. |
| Parser Logic | security_result.description |
Il valore di LoginType o logintype o Operation o Action o Display dal log non elaborato. |
| Parser Logic | security_result.rule_name |
Il valore di Policy o rule_name dal log non elaborato. |
| Parser Logic | security_result.summary |
Costruito a partire da NewValue e OldValue o REQUEST_STATUS o Section o forecastcategory dal log non elaborato. |
| Parser Logic | target.administrative_domain |
Il valore di ORGANIZATION_ID o DelegatedOrganizationId o organization_id o data.properties.OrgName.str dal log non elaborato. |
| Parser Logic | target.application |
Il valore di Application o app_name o ApiType o Name o data.properties.Application.str dal log non elaborato. |
| Parser Logic | target.asset.hostname |
Il valore di target_hostname estratto dal campo uri. |
| Parser Logic | target.asset.ip |
Il valore di data.properties.CLIENT_IP.str dal log non elaborato. |
| Parser Logic | target.asset_id |
Costruito a partire da device_id o REQUEST_ID. |
| Parser Logic | target.file.mime_type |
Il valore di file_type dal log non elaborato. |
| Parser Logic | target.file.size |
Il valore di size_bytes dal log non elaborato. |
| Parser Logic | target.hostname |
Il valore di target_hostname estratto dal campo uri. |
| Parser Logic | target.process.command_line |
Il valore di query_exec o Query o data.properties.Query.str dal log non elaborato. |
| Parser Logic | target.process.pid |
Il valore di job_id dal log non elaborato. |
| Parser Logic | target.resource.attribute.labels |
Etichette create da vari campi come 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 |
Il valore di REQUEST_ID o RecordId o caseid o leadid o contactid o opportunityid o accountid dal log non elaborato. |
| Parser Logic | target.resource.name |
Il valore di QueriedEntities o resource_name o component_name o DATASET_IDS o field o StageName o Subject dal log non elaborato. |
| Parser Logic | target.resource.product_object_id |
Il valore di REQUEST_ID dal log non elaborato. |
| Parser Logic | target.resource.resource_type |
Imposta "ACCESS_POLICY" per ApexCallout e PlatformEncryption, "DATABASE" per ApexTrigger, "FILE" per ContentTransfer o "TABLE" per ApiEvent. |
| Parser Logic | target.resource.type |
Imposta "BATCH" per QueuedExecution e ApexExecution, "FILE" per ContentTransfer, "DATABASE_TRIGGER" per ApexTrigger o "Case", "Lead", "Contact", "Opportunity", "Account" in base alla presenza dei campi ID corrispondenti. |
| Parser Logic | target.url |
Il valore di LoginUrl o URI o attributes.url o login_url o uri dal log non elaborato. |
| Parser Logic | target.user.email_addresses |
Il valore di Username o attrs.usrName o email_address dal log non elaborato. |
| Parser Logic | target.user.user_display_name |
Il valore di target_user_display_name o user_name o username dal log non elaborato. |
| Parser Logic | target.user.userid |
Il valore di target_user_name o data.properties.UserId.str o data.properties.CreatedById.str dal log non elaborato. |
| Parser Logic | extensions.auth.auth_details |
Impostato su "ACTIVE" se Status non è "Success", altrimenti impostato su "UNKNOWN_AUTHENTICATION_STATUS". |
| Parser Logic | extensions.auth.mechanism |
Imposta "REMOTE" per gli eventi Accesso: riuscito e Accesso con logintype contenente "Remote", "USERNAME_PASSWORD" per LoginEventStream, "MECHANISM_OTHER" per gli eventi con login_url presente o "AUTHTYPE_UNSPECIFIED" per gli eventi Accesso: riuscito e Disconnessione. |
| Parser Logic | extensions.auth.type |
Imposta "SSO" per Login, Logout, LogoutEvent, LoginAs, IdentityProviderEventStore, LoginHistory, LoginAsEvent con LoginType come "SAML Sfdc Initiated SSO" o "AUTHTYPE_UNSPECIFIED" per Login: Success, Logout, LoginAsEvent con LoginType come "Application". |
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.