Creare estensioni del parser con Gemini

Supportato in:

Questa guida spiega come gli analisti della sicurezza e gli ingegneri di rilevamento possono utilizzare i prompt in linguaggio naturale per aumentare i parser dei log predefiniti. Utilizzando la funzionalità Estensione del parser AI, puoi estrarre rapidamente campi aggiuntivi, applicare la logica condizionale e mappare i log non elaborati al modello UDM (Unified Data Model) senza scrivere sintassi del parser o espressioni regolari complesse.

Quando un parser dei log predefinito in Google SecOps analizza la tua sorgente log, potrebbe omettere attributi personalizzati specifici del cliente, campi facoltativi o telemetria specializzata. L'utilizzo della funzionalità Estensione del parser AI ti consente di:

  • Estrarre campi aggiuntivi dai log non elaborati e mappali ai campi UDM standard o a additional.fields personalizzati.
  • Applicare la logica condizionale e le trasformazioni dei valori, ad esempio la mappatura delle azioni delle stringhe ai tipi enumerati UDM.
  • Perfezionare le estensioni generate in modo interattivo nelle sessioni di chat a più turni senza dover ricominciare da zero.

Terminologia chiave

  • Modello UDM (Unified Data Model): la struttura dei dati standard utilizzata in Google SecOps per archiviare e analizzare i dati dei log.

Prima di iniziare

Prima di iniziare, verifica che siano soddisfatti i seguenti prerequisiti:

  • Quote di utilizzo: puoi eseguire un massimo di 10 sessioni di generazione dell'estensione del parser AI per finestra di 24 ore, con un massimo di 5 messaggi per sessione.

Best practice per la creazione di prompt

Per ottenere estensioni del parser accurate al primo tentativo, segui queste linee guida per i prompt:

  1. Specifica esplicitamente l'origine e la destinazione: indica chiaramente quale parte del log non elaborato estrarre e quale percorso esatto del campo UDM popolare, ad esempio principal.ip, target.user.email_addresses o security_result.action.
  2. Utilizza le virgolette per i valori letterali a corrispondenza esatta: quando fai riferimento a stringhe letterali, delimitatori o valori di esempio nei log non strutturati, racchiudili tra virgolette, ad esempio "198.51.100.0" o "allow".
  3. Gestisci i campi personalizzati utilizzando additional.fields: per gli attributi proprietari o specifici del fornitore che non hanno un campo UDM dedicato, chiedi all'AI di mapparli in additional.fields con un nome chiave chiaro, ad esempio additional.fields["application"].

Generare un'estensione del parser

Puoi avviare il flusso di lavoro dell'estensione del parser da una delle seguenti posizioni in Google SecOps:

  • Pagina delle impostazioni dei parser: vai alla pagina Parser per selezionare ed estendere qualsiasi parser dei log esistente.
  • Pagina di ricerca: quando esamini i log nella pagina Ricerca, apri il flusso di creazione dell'estensione direttamente da un evento con campi non analizzati.

Per generare un'estensione del parser dalla pagina delle impostazioni Parser:

  1. In Google SecOps, vai alla pagina delle impostazioni Parser.
  2. Cerca il tipo di log che vuoi estendere.
  3. Fai clic sul menu accanto al parser e seleziona l'opzione per estenderlo.
  4. Nel campo LOG NON ELABORATO, incolla un esempio del log che vuoi analizzare.
  5. Nella sezione Metodo di estensione, seleziona la scheda Genera con l'AI.
  6. Nel campo del prompt, inserisci una descrizione in inglese semplice dell'estrazione.
  7. Fai clic su Conferma.

    Il sistema genera il codice dell'estensione e aggiorna l'output UDM.

Perfezionare l'estensione del parser

Puoi creare e perfezionare l'estensione del parser in modo iterativo nelle sessioni di chat a più turni. Quando invii un prompt di follow-up, l'AI applica le nuove istruzioni all'estensione generata in precedenza. Le mappature e la logica condizionale esistenti dei turni precedenti vengono mantenute automaticamente, a meno che tu non chieda esplicitamente di sostituirle o rimuoverle.

  1. Nel campo del prompt, inserisci un'istruzione di follow-up per modificare il codice generato.
  2. Fai clic su Conferma.
  3. Dopo ogni prompt, visualizza l'anteprima del codice dell'estensione generato, esamina gli output UDM di esempio e conferma o modifica la logica.

Il seguente flusso di lavoro di esempio mostra come il perfezionamento iterativo crea un'estensione del parser in più turni:

  1. Turno 1 (estrazione iniziale):
    • Prompt dell'utente: "Extract source IP '198.51.100.0' to principal.ip and destination IP '198.51.100.1' to target.ip."
    • Risultato: l'AI genera un'estensione che mappa principal.ip e target.ip.
  2. Turno 2 (mappatura additiva):
    • Prompt dell'utente: "Also map virtual system string 'vsys1' to observer.administrative_domain."
    • Risultato: l'AI aggiorna l'estensione per mappare observer.administrative_domain mantenendo le mappature IP del turno 1.
  3. Turno 3 (perfezionamento condizionale):
    • Prompt dell'utente: "In addition, map action string 'allow' to security_result[0].action as ALLOW."
    • Risultato: l'AI incorpora la mappatura dell'enumerazione delle azioni condizionali su tutte le estrazioni precedenti.

Convalidare l'estensione del parser

  1. Fai clic su Convalida.
  2. Esamina le metriche di convalida al termine della procedura.

Accedere alle informazioni di riferimento

Utilizza i seguenti esempi per creare prompt accurati.

Prompt per i log strutturati

Per i log strutturati in cui i dati sono organizzati in chiavi, attributi o tag XML denominati, specifica i nomi o i percorsi dei campi nel prompt.

Esempio di log strutturato - formato JSON

{
  "insertId": "u0mlpdesys",
  "logName": "projects/sample-project-id/logs/cloudaudit.googleapis.com%2Fdata_access",
  "protoPayload": {
    "authenticationInfo": {
      "principalEmail": "analyst@example-domain.com"
    },
    "methodName": "GenerateAccessToken",
    "requestMetadata": {
      "callerIp": "203.0.113.195",
      "callerSuppliedUserAgent": "google-cloud-sdk gcloud/392.0.0"
    },
    "resourceName": "projects/-/serviceAccounts/110649196922301550006",
    "serviceName": "iamcredentials.googleapis.com"
  }
}

Esempi di prompt per i log strutturati

Istruzione del prompt Campo o chiave di origine Campo UDM di destinazione
"Map principalEmail to principal.user.email_addresses." principalEmail principal.user.email_addresses
"Extract callerIp to principal.ip and methodName to metadata.product_event_type." callerIp, methodName principal.ip, metadata.product_event_type
"Map resourceName to target.resource.name and serviceName to target.application." resourceName, serviceName target.resource.name, target.application
"From XML tags, map /Event/System/Hostname to principal.hostname." /Event/System/Hostname principal.hostname

Prompt per i log non strutturati

Per i log non strutturati, specifica i valori letterali direttamente dal log di esempio, i riferimenti posizionali o le etichette descrittive.

Esempio di messaggio syslog non strutturato

<14>Nov  9 18:52:45 198.51.100.1 1,2021/11/09 18:52:45,007051000184334,TRAFFIC,start,2561,2021/11/09 18:52:45,198.51.100.0,198.51.100.1,0.0.0.0,0.0.0.0,any allow,,,ping,vsys1,LAN,LAN,ethernet1/2,ethernet1/2,LFPpan,2021/11/09 18:52:45,9729,6,0,0,2048,0,0x100000,icmp,allow,444,444,0,6

Esempi di prompt per i log non strutturati

Istruzione del prompt Valore letterale o descrizione di esempio Campo UDM di destinazione
"Extract source IP '198.51.100.0' to principal.ip and destination IP '198.51.100.1' to target.ip." '198.51.100.0', '198.51.100.1' principal.ip, target.ip
"Extract the application string 'ping' from the log and map it to additional.fields['application']." 'ping' additional.fields["application"]
"Map rule name 'any allow' to security_result.rule_id." 'any allow' security_result[0].rule_id
"Extract sent bytes and received bytes into network.sent_bytes and network.received_bytes." Contatori di byte numerici nel log network.sent_bytes, network.received_bytes

Prompt per la logica condizionale

Descrivi la logica condizionale per normalizzare i valori dei log non elaborati in enumerazioni UDM specifiche.

  • Normalizzazione dell'enumerazione: "If the firewall action in the log is 'allow', set security_result.action to ALLOW; otherwise set security_result.action to BLOCK."
  • Mappatura dei campi condizionali: "If the protocol is 'icmp', map the ICMP type and code into network.icmp.type and network.icmp.code."
  • Mappatura dello stato: "When the log status contains 'success' or '0', set security_result.severity to INFO; if it contains 'error', set it to ERROR."

Limiti di utilizzo

Per mantenere prestazioni ottimali e disponibilità delle risorse, la funzionalità Estensione del parser AI applica le seguenti quote di utilizzo:

  • 10 sessioni ogni 24 ore: a ogni cliente viene assegnato un massimo di 10 sessioni di generazione dell'estensione del parser AI per finestra di 24 ore.
  • 5 messaggi per sessione: in una singola sessione, puoi inviare fino a 5 messaggi, inclusi il prompt iniziale e i turni di perfezionamento successivi, per creare e perfezionare l'estensione del parser.

Se raggiungi il limite di messaggi della sessione, puoi salvare l'estensione corrente o avviare una nuova sessione.

Passaggi successivi

Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.