Raccogli i log di Oracle Cloud Infrastructure - Oracle Cloud Guard
Questo documento spiega come configurare Oracle Cloud Infrastructure Cloud Guard per inviare i log a Google Security Operations utilizzando i webhook.
Oracle Cloud Guard è un servizio di sicurezza nativo del cloud che monitora, identifica e contribuisce a mantenere una solida postura di sicurezza su Oracle Cloud Infrastructure (OCI). Cloud Guard esamina le risorse OCI per individuare punti deboli della sicurezza relativi alla configurazione e rileva attività anomale. Quando Cloud Guard rileva una deviazione da una regola del rilevatore, crea un evento Problema che fornisce un monitoraggio completo della sicurezza nella tua tenancy OCI. Questa integrazione utilizza OCI Events Service e OCI Functions per inoltrare gli eventi relativi ai problemi di Cloud Guard a Google SecOps quasi in tempo reale.
Prima di iniziare
Assicurati di soddisfare i seguenti prerequisiti:
- Un'istanza Google SecOps
- Una tenancy Oracle Cloud Infrastructure attiva con Cloud Guard abilitato
- Accesso amministrativo a Oracle Cloud Infrastructure Console
- Autorizzazioni per creare e gestire applicazioni OCI Functions
- Autorizzazioni per creare regole di OCI Events e argomenti di Notifications
- Accesso a OCI Cloud Shell o a un ambiente locale con Fn Project CLI installata
- Docker installato (per creare funzioni OCI localmente)
- Accesso alla Google Cloud Console (per la creazione della chiave API)
Crea un feed webhook in Google SecOps
Crea il feed
- Vai a Impostazioni SIEM > Feed.
- Fai clic su Aggiungi nuovo feed di notizie.
- Nella pagina successiva, fai clic su Configura un singolo feed.
- Nel campo Nome feed, inserisci un nome per il feed (ad esempio
OCI Cloud Guard Problems). - Seleziona Webhook come Tipo di origine.
- Seleziona Oracle Cloud Infrastructure - Oracle Cloud Guard come Tipo di log.
- Fai clic su Avanti.
- Specifica i valori per i seguenti parametri di input:
- Delimitatore di suddivisione (facoltativo): lascia vuoto (ogni chiamata della funzione invia un singolo evento).
- 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 di notizie nella schermata Finalizza, quindi fai clic su Invia.
Genera e salva la chiave segreta
Dopo aver creato il feed, devi generare una chiave segreta per l'autenticazione:
- Nella pagina dei dettagli del feed, fai clic su Genera chiave segreta.
- Una finestra di dialogo mostra la chiave segreta.
- Copia e salva la chiave segreta in modo sicuro.
Importante: la chiave segreta viene visualizzata una sola volta e non può essere recuperata in un secondo momento. Se la perdi, devi generare una nuova chiave segreta.
Ottieni l'URL dell'endpoint del feed
- Vai alla scheda Dettagli del feed.
- Nella sezione Endpoint Information (Informazioni sull'endpoint), copia l'URL dell'endpoint del feed.
Il formato dell'URL è:
https://{region}-chronicle.googleapis.com/v1/{parent}/logs:importDove
{region}è la regione dell'istanza Google SecOps (ad esempious,europeoasia-southeast1) e{parent}è il percorso della risorsa nel formatoprojects/<PROJECT_ID>/locations/<LOCATION>/instances/<INSTANCE_ID>/logTypes/<LOG_TYPE>.Salva questo URL per i passaggi successivi.
Fai clic su Fine.
Crea una chiave API Google Cloud
Chronicle richiede una chiave API per l'autenticazione. Crea una chiave API con limitazioni nella Google Cloud Console.
Creare la chiave API
- Vai alla pagina Credenziali della console Google Cloud.
- Seleziona il tuo progetto (il progetto associato alla tua istanza di Chronicle).
- Fai clic su Crea credenziali > Chiave API.
- Viene creata una chiave API e visualizzata in una finestra di dialogo.
- Fai clic su Modifica chiave API per limitare la chiave.
Limita la chiave API
- Nella pagina delle impostazioni della chiave API:
- Nome: inserisci un nome descrittivo (ad esempio
Chronicle Webhook API Key)
- Nome: inserisci un nome descrittivo (ad esempio
- In Restrizioni API:
- Seleziona Limita chiave.
- Nel menu a discesa Seleziona API, cerca e seleziona API Google SecOps (o API Chronicle).
- Fai clic su Salva.
- Copia il valore della chiave API dal campo Chiave API nella parte superiore della pagina.
Salva la chiave API in modo sicuro.
Abilita Cloud Guard Cloud Event responder
Cloud Guard utilizza il risponditore di eventi Cloud per inviare i dettagli del problema al servizio Eventi OCI. Il risponditore di eventi Cloud fa parte della formula Risponditore e deve essere abilitato e impostato per l'esecuzione automatica.
Abilita la regola Evento Cloud nella formula Responder
- Accedi alla console Oracle Cloud Infrastructure.
- Apri il menu di navigazione e seleziona Identity & Security > Cloud Guard > Recipes.
- Seleziona Responder Recipes (Ricette per i risponditori).
- Fai clic sulla ricetta di risposta associata al tuo target.
- Nella sezione Regole di risposta, individua la regola Eventi cloud.
- Se lo stato è Disattivato:
- Apri il menu Azioni (tre puntini) e seleziona Modifica.
- Cambia lo Stato in Attivato.
- Fai clic su Salva.
Configura l'esecuzione automatica sul target
- Nella console di Oracle Cloud Infrastructure, apri il menu di navigazione e seleziona Identity & Security > Cloud Guard > Configuration > Targets.
- Seleziona il compartimento di destinazione.
- In Risorse, seleziona Responder Recipes.
- Fai clic sul link della ricetta di chi risponde.
- Individua la regola di risposta Cloud Event.
- Apri il menu Azioni (tre puntini) e seleziona Modifica.
- Imposta Attivatore regola su Esegui automaticamente.
- Seleziona la casella di controllo CONFERMA ESECUZIONE AUTOMATICA.
Fai clic su Salva.
Crea un'applicazione OCI Functions
Crea un'applicazione OCI Functions che ospiterà la funzione responsabile dell'inoltro degli eventi di Cloud Guard a Google SecOps.
Crea l'applicazione
- Nella console di Oracle Cloud Infrastructure, apri il menu di navigazione e seleziona Developer Services > Functions > Applications.
- Seleziona il compartimento in cui vuoi creare l'applicazione.
- Fai clic su Crea applicazione.
- Fornisci i seguenti dettagli di configurazione:
- Nome: inserisci
cloudguard-chronicle-forwarder - VCN: seleziona una VCN con accesso a internet (necessario affinché la funzione raggiunga l'endpoint webhook di Chronicle)
- Subnet: seleziona una subnet pubblica o una subnet privata con un gateway NAT configurato.
- Nome: inserisci
- Fai clic su Crea.
Crea ed esegui il deployment della funzione
Utilizza OCI Cloud Shell o un ambiente locale con l'interfaccia a riga di comando di Fn Project per creare ed eseguire il deployment della funzione.
- Apri OCI Cloud Shell dalla console Oracle Cloud Infrastructure (fai clic sull'icona di Cloud Shell nella barra di navigazione in alto).
Configura il contesto Fn per l'applicazione OCI Functions:
fn list context fn use context <your-region-context> fn update context oracle.compartment-id <compartment_OCID> fn update context registry <region-key>.ocir.io/<tenancy-namespace>/cloudguard-chronicleInizializza una nuova funzione Python:
fn init --runtime python cloudguard-to-chronicle cd cloudguard-to-chronicleSostituisci i contenuti del file
func.pycon il seguente codice:import io import json import logging import requests from fdk import response def handler(ctx, data: io.BytesIO = None): """ OCI Function that receives Cloud Guard events from OCI Events Service and forwards them to Google SecOps (Chronicle) webhook endpoint. """ logger = logging.getLogger() try: cfg = ctx.Config() chronicle_endpoint = cfg.get("CHRONICLE_ENDPOINT") chronicle_api_key = cfg.get("CHRONICLE_API_KEY") chronicle_secret = cfg.get("CHRONICLE_SECRET") if not all([chronicle_endpoint, chronicle_api_key, chronicle_secret]): logger.error("Missing required configuration: CHRONICLE_ENDPOINT, CHRONICLE_API_KEY, or CHRONICLE_SECRET") return response.Response( ctx, response_data=json.dumps({"error": "Missing configuration"}), headers={"Content-Type": "application/json"}, status_code=500 ) event_data = json.loads(data.getvalue()) logger.info(f"Received Cloud Guard event: {event_data.get('eventType', 'unknown')}") webhook_url = f"{chronicle_endpoint}?key={chronicle_api_key}&secret={chronicle_secret}" headers = { "Content-Type": "application/json" } resp = requests.post( webhook_url, json=event_data, headers=headers, timeout=30 ) if resp.status_code >= 200 and resp.status_code < 300: logger.info(f"Successfully forwarded event to Chronicle (HTTP {resp.status_code})") else: logger.error(f"Failed to forward event to Chronicle (HTTP {resp.status_code}): {resp.text}") return response.Response( ctx, response_data=json.dumps({"status": resp.status_code}), headers={"Content-Type": "application/json"}, status_code=200 ) except Exception as e: logger.error(f"Error processing Cloud Guard event: {str(e)}") return response.Response( ctx, response_data=json.dumps({"error": str(e)}), headers={"Content-Type": "application/json"}, status_code=500 )Sostituisci i contenuti del file
requirements.txt:fdk>=0.1.0 requests>=2.25.0Esegui il deployment della funzione nell'applicazione:
fn -v deploy --app cloudguard-chronicle-forwarderAttendi il completamento del deployment.
Configura le variabili di ambiente delle funzioni
- Nella console di Oracle Cloud Infrastructure, apri il menu di navigazione e seleziona Developer Services > Functions > Applications.
- Fai clic sull'applicazione cloudguard-chronicle-forwarder.
- In Risorse, seleziona Funzioni.
- Fai clic sulla funzione cloudguard-to-chronicle.
- In Risorse, seleziona Configurazione.
Fai clic su Modifica e aggiungi le seguenti coppie chiave-valore:
Chiave Valore CHRONICLE_ENDPOINTL'URL dell'endpoint webhook di Chronicle (ad esempio, https://{region}-chronicle.googleapis.com/v1/{parent}/logs:import)CHRONICLE_API_KEYLa chiave API Google Cloud creata per il webhook di Chronicle CHRONICLE_SECRETLa chiave segreta del webhook di Chronicle Fai clic su Salva.
Crea policy IAM per OCI Functions
Il servizio OCI Functions e il servizio Events richiedono criteri IAM per richiamare la funzione.
Creare un gruppo dinamico per la funzione
- Nella console di Oracle Cloud Infrastructure, apri il menu di navigazione e seleziona Identity & Security > Domains.
- Seleziona il dominio Predefinito.
- In Risorse del dominio identità, seleziona Gruppi dinamici.
- Fai clic su Crea gruppo dinamico.
Fornisci i seguenti dettagli di configurazione:
- Nome: inserisci
cloudguard-chronicle-functions - Descrizione: inserisci
Dynamic group for Cloud Guard to Chronicle forwarder function - Regole di corrispondenza: inserisci la seguente regola:
ALL {resource.type = 'fnfunc', resource.compartment.id = '<compartment_OCID>'}- Nome: inserisci
Fai clic su Crea.
Crea policy IAM
- Nella console di Oracle Cloud Infrastructure, apri il menu di navigazione e seleziona Identity & Security > Policies.
- Assicurati di trovarti nel compartimento principale.
- Fai clic su Crea criterio.
- Fornisci i seguenti dettagli di configurazione:
- Nome: inserisci
cloudguard-chronicle-policy - Descrizione: inserisci
Allows Events Service to invoke Cloud Guard Chronicle forwarder function - Compartment (Compartimento): assicurati che sia selezionato il compartimento principale.
- Nome: inserisci
- Nella sezione Policy Builder, attiva Mostra editor manuale.
Nel campo Statement (Istruzione), inserisci le seguenti istruzioni della policy:
Allow dynamic-group cloudguard-chronicle-functions to use fn-function in compartment <compartment_name> Allow dynamic-group cloudguard-chronicle-functions to use fn-invocation in compartment <compartment_name> Allow service cloudguardevents to use fn-function in compartment <compartment_name> Allow service cloudguardevents to use fn-invocation in compartment <compartment_name>Fai clic su Crea.
Crea una regola OCI Events per Cloud Guard
Crea una regola Eventi che attiva la funzione OCI quando Cloud Guard rileva, ignora o corregge un problema.
Crea la regola Eventi
Nella console di Oracle Cloud Infrastructure, apri il menu di navigazione e seleziona Observability & Management > Events Service > Rules.
Fai clic su Crea regola.
Fornisci i seguenti dettagli di configurazione:
- Nome visualizzato: inserisci
cloudguard-to-chronicle - Descrizione: inserisci
Forwards Cloud Guard problem events to Google SecOps via OCI Functions
- Nome visualizzato: inserisci
Nella sezione Condizioni della regola:
- Imposta Condizione su Tipo di evento.
- Imposta Nome servizio su Cloud Guard.
- Imposta Tipo di evento su quanto segue (seleziona più opzioni):
- Rilevato - Problema
- Ignorata - Problema
- Corretto - Problema
Nella sezione Azioni:
- Imposta Tipo di azione su Funzioni.
- Imposta Function Compartment (Compartimento funzione) sul compartimento contenente l'applicazione della funzione.
- Imposta Applicazione per le funzioni su cloudguard-chronicle-forwarder.
- Imposta Funzione su cloudguard-to-chronicle.
Fai clic su Crea regola.
(Facoltativo) Filtra per livello di rischio
Per inoltrare solo i problemi con gravità elevata, aggiungi un filtro degli attributi alla regola Eventi:
- Nella sezione Condizioni della regola, fai clic su + Un'altra condizione.
- Imposta Condizione su Attributo.
- Imposta Nome attributo su
riskLevel. Imposta Valori attributo sui livelli di rischio desiderati:
CRITICALHIGH
Verifica l'integrazione
Testa la funzione manualmente
- Nella console Oracle Cloud Infrastructure, apri il menu di navigazione e seleziona Developer Services > Functions > Applications.
- Fai clic sull'applicazione cloudguard-chronicle-forwarder.
- In Risorse, seleziona Funzioni.
- Fai clic sulla funzione cloudguard-to-chronicle.
Fai clic su Richiama per testare la funzione con dati di esempio oppure utilizza OCI Cloud Shell:
echo '{"eventType":"com.oraclecloud.cloudguard.problemdetected","cloudEventsVersion":"0.1","eventID":"test-event-001","data":{"compartmentId":"ocid1.compartment.oc1..example","resourceName":"test-problem","additionalDetails":{"riskLevel":"HIGH","problemDescription":"Test problem for integration verification","status":"OPEN","region":"us-ashburn-1"}}}' | fn invoke cloudguard-chronicle-forwarder cloudguard-to-chronicleVerifica i log delle funzioni andando a Developer Services > Functions > Applications > cloudguard-chronicle-forwarder e selezionando la sezione Logs.
Cerca le voci di log che confermano l'inoltro riuscito:
Received Cloud Guard event: com.oraclecloud.cloudguard.problemdetected Successfully forwarded event to Chronicle (HTTP 200)
Verifica in Google SecOps
- Accedi a Google SecOps.
- Vai a Ricerca ed esegui una query per gli eventi con il tipo di log
OCI_CLOUDGUARD. - Verifica che gli eventi di problemi di Cloud Guard vengano visualizzati nei risultati di ricerca.
Se gli eventi non vengono visualizzati:
- Verifica l'URL dell'endpoint del webhook di Chronicle, la chiave API e la chiave segreta nella configurazione della funzione
- Verifica che la regola Eventi si trovi nella regione OCI corretta (regione di reporting di Cloud Guard)
- Verifica che l'agente di risposta agli eventi Cloud sia abilitato e impostato per l'esecuzione automatica
- Esamina i log delle funzioni per individuare i messaggi di errore
Riferimento ai tipi di eventi di Cloud Guard
Cloud Guard emette i seguenti tipi di eventi tramite il servizio OCI Events:
| Tipo di evento | Trigger |
|---|---|
com.oraclecloud.cloudguard.problemdetected |
Viene rilevato un nuovo problema |
com.oraclecloud.cloudguard.problemdismissed |
Un problema viene ignorato |
com.oraclecloud.cloudguard.problemremediated |
Un problema viene risolto |
com.oraclecloud.cloudguard.sightingdetected |
Viene rilevato un nuovo avvistamento |
Riferimento ai metodi di autenticazione
I feed webhook di Chronicle supportano più metodi di autenticazione. Scegli il metodo supportato dal tuo fornitore.
Metodo 1: intestazioni personalizzate (consigliato)
Se il fornitore supporta le intestazioni HTTP personalizzate, utilizza questo metodo per una maggiore sicurezza.
Formato della richiesta:
POST <ENDPOINT_URL> HTTP/1.1 Content-Type: application/json x-goog-chronicle-auth: <API_KEY> x-chronicle-auth: <SECRET_KEY> { "event": "data", "timestamp": "2025-01-15T10:30:00Z" }
Vantaggi:
- Chiave API e secret non visibili nell'URL
- Più sicuro (le intestazioni non vengono registrate nei log di accesso del server web)
- Metodo preferito quando il fornitore lo supporta
Metodo 2: parametri di query
Se il fornitore non supporta le intestazioni personalizzate, aggiungi le credenziali all'URL.
Formato dell'URL:
<ENDPOINT_URL>?key=<API_KEY>&secret=<SECRET_KEY>Esempio:
https://{region}-chronicle.googleapis.com/v1/{parent}/logs:import?key=AIzaSyD...&secret=abcd1234...Formato della richiesta:
POST <ENDPOINT_URL>?key=<API_KEY>&secret=<SECRET_KEY> HTTP/1.1 Content-Type: application/json { "event": "data", "timestamp": "2025-01-15T10:30:00Z" }
Svantaggi:
- Credenziali visibili nell'URL
- Potrebbero essere registrati nei log di accesso del server web
- Meno sicuro delle intestazioni
Metodo 3: ibrido (URL + intestazione)
Alcune configurazioni utilizzano la chiave API nell'URL e la chiave secret nell'intestazione.
Formato della richiesta:
POST <ENDPOINT_URL>?key=<API_KEY> HTTP/1.1 Content-Type: application/json x-chronicle-auth: <SECRET_KEY> { "event": "data", "timestamp": "2025-01-15T10:30:00Z" }
Nomi delle intestazioni di autenticazione
Chronicle accetta i seguenti nomi di intestazione per l'autenticazione:
Per la chiave API:
x-goog-chronicle-auth(consigliata)X-Goog-Chronicle-Auth(senza distinzione tra maiuscole e minuscole)
Per la chiave segreta:
x-chronicle-auth(consigliata)X-Chronicle-Auth(senza distinzione tra maiuscole e minuscole)
Limiti e best practice per i webhook
Limiti per le richieste
| Limite | Valore |
|---|---|
| Dimensioni massime della richiesta | 4 MB |
| QPS max (query al secondo) | 15.000 |
| Timeout richieste | 30 secondi |
| Comportamento di ripetizione | Automatico con backoff esponenziale |
Tabella di mappatura UDM
| Campo log | Mappatura UDM | Logica |
|---|---|---|
| contentType | additional.fields | Uniti da vari campi aggiuntivi |
| cloudEventsVersion | additional.fields | |
| data.additionalDetails.reason | additional.fields | |
| data.additionalDetails.tenantId | additional.fields | |
| data.additionalDetails.problemType | additional.fields | |
| data.resourceName | additional.fields | |
| data.resourceId | additional.fields | |
| stato | additional.fields | |
| problem_recommendation | additional.fields | |
| compartment_id | additional.fields | |
| compartment_name | additional.fields | |
| product_event | extensions.auth.type | Imposta "AUTHTYPE_UNSPECIFIED" se product_event corrisponde all'accesso |
| data.additionalDetails.problemDescription | metadata.description | Valore di data.additionalDetails.problemDescription se non vuoto, altrimenti data.additionalDetails.description |
| data.additionalDetails.description | metadata.description | |
| has_user | metadata.event_type | Impostato su USER_RESOURCE_ACCESS se has_user e has_target_resource, USER_UNCATEGORIZED se has_user, USER_LOGIN se product_event corrisponde all'accesso, STATUS_UPDATE se has_principal, altrimenti GENERIC_EVENT |
| has_target_resource | metadata.event_type | |
| product_event | metadata.event_type | |
| has_principal | metadata.event_type | |
| eventType | metadata.product_event_type | Valore di eventType se non è vuoto, altrimenti product_event |
| product_event | metadata.product_event_type | |
| eventID | metadata.product_log_id | Valore copiato direttamente |
| versione | metadata.product_version | Valore copiato direttamente |
| osservatore | observer.domain.name | Dominio estratto dall'osservatore utilizzando grok |
| observer | observer.hostname | Valore dell'osservatore se non è un IP |
| osservatore | observer.ip | Valore dell'osservatore se IP |
| entità | principal.administrative_domain | Dominio estratto da principal o principal_host utilizzando grok |
| principal_host | principal.administrative_domain | |
| data.additionalDetails.problemAdditionalDetails.public_ips | principal.asset.ip | Valore di data.additionalDetails.problemAdditionalDetails.public_ips se non è vuoto, altrimenti vnicDetails.0.vnicPublicIp se non è vuoto, altrimenti da principal se IP, altrimenti principal_host se IP |
| vnicDetails.0.vnicPublicIp | principal.asset.ip | |
| entità | principal.asset.ip | |
| principal_host | principal.asset.ip | |
| entità | principal.hostname | Valore di principal se non è un IP, altrimenti principal_host se non è un IP |
| principal_host | principal.hostname | |
| data.additionalDetails.problemAdditionalDetails.public_ips | principal.ip | Valore di data.additionalDetails.problemAdditionalDetails.public_ips se non vuoto, altrimenti vnicDetails.0.vnicPublicIp se non vuoto, altrimenti da principal se IP, altrimenti principal_host se IP |
| vnicDetails.0.vnicPublicIp | principal.ip | |
| entità | principal.ip | |
| principal_host | principal.ip | |
| data.additionalDetails.region | principal.location.name | Valore copiato direttamente |
| principal_port | principal.port | Convertito in numero intero da principal_port |
| data.additionalDetails.resourceName | principal.resource.name | Valore di data.additionalDetails.resourceName se non è vuoto, altrimenti data.additionalDetails.principalResourceName |
| data.additionalDetails.principalResourceName | principal.resource.name | |
| data.additionalDetails.resourceId | principal.resource.product_object_id | Valore di data.additionalDetails.resourceId se non è vuoto, altrimenti data.additionalDetails.principalResourceId |
| data.additionalDetails.principalResourceId | principal.resource.product_object_id | |
| data.additionalDetails.resourceType | principal.resource.resource_subtype | Valore di data.additionalDetails.resourceType se non è vuoto, altrimenti data.additionalDetails.principalResourceType |
| data.additionalDetails.principalResourceType | principal.resource.resource_subtype | |
| data.additionalDetails.resourceName | principal.user.userid | Valore di data.additionalDetails.resourceName se data.additionalDetails.resourceType == "User", altrimenti di data.additionalDetails.principalResourceName se data.additionalDetails.principalResourceType == "User" |
| data.additionalDetails.principalResourceName | principal.user.userid | |
| azione | security_result.action | Impostato su BLOCK se l'azione corrisponde al blocco, ALLOW se l'azione ha esito positivo, FAIL se l'azione non va a buon fine, altrimenti UNKNOWN |
| azione | security_result.action_details | Valore copiato direttamente |
| data.additionalDetails.tacticName | security_result.attack_details.tactics | Valore copiato direttamente in tactic_data.name, poi unito |
| data.additionalDetails.techniqueName | security_result.attack_details.techniques | Valore copiato direttamente in technique_data.name, poi unito |
| data.additionalDetails.confidence | security_result.confidence_score | Valore copiato direttamente |
| sightingType | security_result.detection_fields | Uniti dalle etichette sightingType, sightingScore e riskScore |
| sightingScore | security_result.detection_fields | |
| riskScore | security_result.detection_fields | |
| data.additionalDetails.detectorRuleId | security_result.rule_id | Valore copiato direttamente |
| data.additionalDetails.detectorRuleType | security_result.rule_name | Valore copiato direttamente |
| gravità | security_result.severity | Impostato su INFORMATIONAL se la gravità è INFO, LOW se è bassa, MEDIUM se è WARN, HIGH se è alta, CRITICAL se è critica |
| gravità | security_result.severity_details | Valore copiato direttamente |
| destinazione | target.administrative_domain | Dominio estratto da target o target_host utilizzando grok |
| target_host | target.administrative_domain | |
| destinazione | target.hostname | Valore della destinazione se non è un IP, altrimenti target_host se non è un IP |
| target_host | target.hostname | |
| destinazione | target.ip | Valore di target se IP, altrimenti target_host se IP |
| target_host | target.ip | |
| target_port | target.port | Convertito in numero intero da target_port |
| targetId | target.resource.attribute.labels | Uniti da vari campi di etichette |
| etichette | target.resource.attribute.labels | |
| vnicAttachmentId | target.resource.attribute.labels | |
| vnicAttachmentDisplayName | target.resource.attribute.labels | |
| subnets | target.resource.attribute.labels | |
| instance_ocid | target.resource.attribute.labels | |
| route_table_ocids | target.resource.attribute.labels | |
| security_list_ocids | target.resource.attribute.labels | |
| data.additionalDetails.impactedResourceName | target.resource.name | Valore di data.additionalDetails.impactedResourceName se non è vuoto, altrimenti vnicDetails.0.vnicDisplayName |
| vnicDetails.0.vnicDisplayName | target.resource.name | |
| data.additionalDetails.impactedResourceId | target.resource.product_object_id | Valore di data.additionalDetails.impactedResourceId se non è vuoto, altrimenti vnicDetails.0.vnicId |
| vnicDetails.0.vnicId | target.resource.product_object_id | |
| data.additionalDetails.impactedResourceType | target.resource.resource_subtype | Valore copiato direttamente |
| target_url | target.url | Valore copiato direttamente |
| target_user | target.user.userid | Valore copiato direttamente |
| prodotto | metadata.product_name | Valore copiato direttamente |
| vendor | metadata.vendor_name | Valore copiato direttamente |
data.additionalDetails.tacticName |
security_result.attack_details.tactics.name |
Mappato dal log delle modifiche |
data.additionalDetails.techniqueName |
security_result.attack_details.techniques.name |
Mappato dal log delle modifiche |
Log delle modifiche
Visualizza il log delle modifiche per questo parser
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.