Configurare i campi calcolati

Supportato in:

Questa guida è destinata agli analisti della sicurezza e ai responsabili del SOC che vogliono automatizzare l'arricchimento dei dati all'interno delle loro operazioni di sicurezza. Spiega come creare e gestire i campi calcolati utilizzando formule logiche per derivare nuovi valori dai dati esistenti di casi e avvisi. Se segui questo metodo, puoi eliminare l'inserimento manuale dei dati e assicurarti che le metriche critiche vengano aggiornate in tempo reale. Il completamento riuscito migliora le funzionalità di analisi della piattaforma e accelera la valutazione degli incidenti tramite il popolamento automatico dei campi.

Con i campi calcolati, puoi derivare dinamicamente nuovi punti dati all'interno di casi e avvisi di Google Security Operations. Definendo formule logiche, puoi calcolare i valori in base a campi di sistema o personalizzati esistenti. Il valore calcolato viene valutato e memorizzato automaticamente in tempo reale in un campo personalizzato preesistente selezionato dall'utente (etichettato come Campo di destinazione).

Casi d'uso comuni

Gli scenari seguenti rappresentano i modi più frequenti in cui le organizzazioni sfruttano i campi calcolati per migliorare l'efficienza operativa e la chiarezza dei dati.

Scoring del rischio automatizzato

  • Obiettivo: classifica le richieste in base al volume di eventi o ai livelli di priorità.
  • Valore: standardizza la valutazione e garantisce che gli incidenti ad alto rischio siano immediatamente visibili al team.

Normalizzazione dei dati

  • Obiettivo: contrassegna gli avvisi come Test o Produzione in base alle convenzioni di denominazione.
  • Valore: riduce il rumore consentendo agli analisti di filtrare i dati di test non critici dalla visualizzazione principale.

Terminologia chiave

  • Formula: un'espressione logica basata su testo che definisci utilizzando funzioni, operatori e riferimenti ai campi per calcolare un valore.
  • Campo di destinazione: un campo personalizzato esistente (di tipo Testo libero) in cui viene memorizzato il calcolo del risultato della formula.
  • Dipendenze: i campi a cui viene fatto riferimento nella formula. Quando il valore di un campo di dipendenza cambia, il campo calcolato viene rivalutato in modo sincrono.

Prima di iniziare

Prima di creare un calcolo, assicurati che il tuo ambiente soddisfi i seguenti requisiti tecnici:

  • Autorizzazioni: devi disporre dell'accesso amministrativo al menu Impostazioni e delle autorizzazioni per gestire i dati delle richieste.
  • Controllo dell'ambiente: assicurati di avere campi personalizzati (di tipo Testo libero) esistenti e attivi da utilizzare come campi di destinazione.

Assicurati di avere campi personalizzati esistenti da utilizzare come campi di destinazione nel tuo sistema. In caso contrario, segui questi passaggi:

  1. Vai a Impostazioni > Dati della richiesta > Campi personalizzati.
  2. Crea un nuovo campo personalizzato e imposta il tipo su Testo libero.

Per saperne di più sui campi personalizzati, consulta Creare un campo personalizzato.

Vincoli tecnici e regole di convalida

Prima di definire un calcolo, assicurati che i campi e la logica di destinazione rispettino questi vincoli di sistema. Queste regole regolano il modo in cui il motore Google SecOps convalida e salva i risultati delle formule.

Criteri di convalida dei campi

Il motore di calcolo applica rigorosamente i seguenti requisiti per qualsiasi campo designato come Campo target:

  • Tipo di dati: il campo deve essere di tipo Testo libero.
  • Stato operativo: il campo deve essere Attivo; il sistema non può scrivere nei campi eliminati o invalidati.
  • Mappatura delle dipendenze: per evitare la logica circolare, un campo non può essere un target se è già una dipendenza per un altro campo calcolato.

Definizione dell'ambito dei campi

Quando crei un campo personalizzato con un ambito Both, il sistema genera voci univoche per ogni contesto. In questo modo puoi mantenere una logica separata per casi e avvisi all'interno della stessa categoria logica.

Nel menu Campo target, devi selezionare l'ambito specifico pertinente alla tua formula:

  • Ambito della richiesta: etichettata come CaseCustom.YourField (ad esempio, CaseCustom.RiskLevel)
  • Ambito dell'avviso: etichettato come AlertCustom.YourField (ad esempio, AlertCustom.RiskLevel)

Creare e gestire campi calcolati

Questa sezione descrive come definire un nuovo calcolo e risolvere i problemi comuni durante la procedura di configurazione.

Crea un nuovo calcolo

Per creare un nuovo calcolo:

  1. Vai a Impostazioni > Dati caso > Campi calcolati.
  2. Fai clic su Aggiungi Aggiungi.
  3. Nel campo Nome campo calcolato, inserisci un nome e una descrizione univoci per il calcolo.
  4. Nell'area Campo target, seleziona il Campo personalizzato esistente in cui memorizzare il risultato.

    1. Errore previsto: il campo selezionato non viene visualizzato nel menu.
    2. Passaggio correttivo: verifica che il campo personalizzato sia attivo, impostato su Testo libero e non sia già una dipendenza per un altro calcolo.
  5. Nell'editor di testo, crea la formula utilizzando le funzioni, gli operatori e la sintassi supportati. Crea un'espressione logica (ad esempio, IF ([case.priority] == "High") THEN "Urgent" ELSE "Standard"). Per maggiori dettagli, vedi Linguaggio e sintassi delle formule.

  6. Fai clic su Salva.

    1. Errore previsto: il sistema rifiuta il salvataggio e mostra un errore evidenziato in rosso.
    2. Passaggio correttivo: controlla la presenza di errori di sintassi, ad esempio parentesi mancanti intorno alle condizioni IF o parole chiave in minuscolo.

Accedere ad asset e riferimenti avanzati

Le formule devono rispettare regole rigorose di grammatica e sensibilità alle maiuscole e minuscole per tutti gli operatori e le funzioni integrate. Utilizza le seguenti specifiche tecniche per assicurarti che i tuoi calcoli siano validi.

Esempi di formule

I seguenti modelli mostrano come combinare funzioni e operatori per automatizzare l'arricchimento dei dati. Puoi copiare e adattare questi snippet in base ai nomi dei campi e ai requisiti organizzativi specifici.

Esempio 1: impostazione di un livello di rischio

Utilizza questa formula per classificare le richieste in base a parole chiave specifiche trovate nel titolo della richiesta.

  • Campo di destinazione: CaseCustom.risk_level (testo)
  • Obiettivo: assegnare automaticamente lo stato "Alto" agli incidenti urgenti
  • Formula:

    IF (CONTAINS([case.name], "urgent")) THEN "High" ELSE "Medium"

Esempio 2: segnalazione di avvisi di test

Questa logica identifica ed etichetta i dati di test per aiutare gli analisti a filtrare le visualizzazioni principali e a concentrarsi sugli incidenti di produzione.

  • Campo di destinazione: AlertCustom.is_test (testo)
  • Obiettivo: rileva il suffisso -TEST o la stringa TEST nel nome di un avviso
  • Formula:

    IF (CONTAINS([alert.name], "TEST") OR ENDS_WITH([alert.name], "-TEST"))
    THEN "TRUE"
    ELSE "FALSE"
    

Esempio 3: combinazione di condizioni

Questo esempio mostra la logica nidificata per dare la priorità alle revisioni in base sia al volume di eventi sia ai livelli di priorità esistenti.

  • Campo di destinazione: CaseCustom.review_status (testo)
  • Obiettivo: attiva una revisione manuale solo quando la lunghezza del log è significativa e la priorità non è Low.
  • Formula:

    IF (LENGTH(\[AlertCustom.event\_details\]) \> 100 AND NOT IS(\[case.priority\], "Low"))
    THEN "Needs Review"
    ELSE "Auto-Closed"
    

Linguaggio e sintassi delle formule

Il motore di calcolo è sensibile alle maiuscole per tutti gli operatori, le parole chiave e le funzioni integrate. Devi scrivere le parole chiave (ad esempio IF, THEN, ELSE, AND, OR, NOT) e i nomi delle funzioni (ad esempio CONTAINS, LENGTH, STARTS_WITH, ENDS_WITH, IS, IS_NOT, DOES_NOT_CONTAIN) in maiuscolo. Tuttavia, il test delle stringhe di testo all'interno delle funzioni e degli operatori di uguaglianza non fa distinzione tra maiuscole e minuscole. Ad esempio, la ricerca di "phishing" troverà corrispondenza con "PHISHING" o "Phishing".

Tipi di dati e valori letterali

Un valore letterale è un valore fisso utilizzato nelle espressioni. Ti consigliamo di assicurarti che gli argomenti delle operazioni e delle funzioni utilizzino tipi compatibili.

Tipo Sintassi e regole Esempio
STRING Testo racchiuso tra virgolette doppie. "critical", "N/A"
NUMBER Numeri interi o decimali. 100, 3.14
BOOLEAN Deve essere in maiuscolo. TRUE, FALSE
NULL Rappresenta un valore vuoto. NULL

Riferimenti ai campi

Per utilizzare il valore di un altro campo, racchiudi il nome del campo tra parentesi quadre, ad esempio [object.field_name].

  • Regola di sintassi:devi utilizzare un prefisso con i riferimenti ai campi. Devi utilizzare un prefisso (ad esempio case. o AlertCustom.) seguito da un punto e dal nome del campo. Il nome del campo può contenere lettere, numeri, trattini bassi e spazi. Ad esempio: [case.name], [alert.priority], [AlertCustom.my_custom_field].
  • Puoi utilizzare i seguenti campi di sistema: case.name, case.stage, case.priority, alert.name, alert.priority, alert.rule_generator.
  • Puoi fare riferimento a tutti i campi personalizzati definiti dall'utente.
  • Una formula di campo calcolato non può fare riferimento a un altro campo calcolato.

Operatori

Utilizza gli operatori per i confronti e le operazioni logiche. Utilizza le parentesi () per ignorare la precedenza predefinita e raggruppare le espressioni

  • Operatori di confronto: ==, !=, >, >=, <, <=
  • Operatori logici: AND, OR, NOT
  • Precedenza degli operatori: NOT, >, >=, <, <=, AND, OR,

Espressioni condizionali

Il sistema supporta la logica condizionale utilizzando la sintassi IF (condition) THEN expression1 ELSE expression2. La parte ELSE è facoltativa; se la ometti e la condizione è FALSE, il risultato viene impostato su NULL per impostazione predefinita.

La condizione deve essere un'espressione che restituisce TRUE o FALSE.

Ad esempio, IF ( [CaseCustom.score] > 75 ) THEN "High Risk" ELSE "Low Risk".

Funzioni

Le funzioni sono operazioni predefinite che devono essere scritte interamente in maiuscolo. La tabella seguente elenca le funzioni supportate per la manipolazione e la valutazione dei dati.

Funzione Descrizione Sintassi Tipo restituito
CONTAINS(field, substring) Verifica se un campo di testo contiene una sottostringa (senza distinzione tra maiuscole e minuscole) CONTAINS([case.name], "phishing") BOOLEAN
DOES_NOT_CONTAIN(field, substring) Controlla se un campo di testo non contiene una sottostringa (senza distinzione tra maiuscole e minuscole) DOES_NOT_CONTAIN([case.name], "test") BOOLEAN
LENGTH(field) Restituisce il numero di caratteri in un campo LENGTH([case.name]) NUMBER
STARTS_WITH(field, prefix) Verifica se il campo inizia con un prefisso (senza distinzione tra maiuscole e minuscole) STARTS_WITH([CaseCustom.hostname], "srv-") BOOLEAN
ENDS_WITH(field, suffix) Controlla se il campo termina con un suffisso (senza distinzione tra maiuscole e minuscole) ENDS_WITH([AlertCustom.filename], ".exe") BOOLEAN
IS(field, literal) Controlla se il valore del campo è uguale al valore letterale (senza distinzione tra maiuscole e minuscole) IS([alert.priority], "High") BOOLEAN
IS_NOT(field, literal) Controlla se il valore del campo NON è uguale al valore letterale (senza distinzione tra maiuscole e minuscole) IS_NOT([alert.priority], "Low") BOOLEAN

Parole chiave e identificatori riservati

Il motore di calcolo riserva parole specifiche per operazioni e funzioni logiche. Non puoi utilizzare questi termini come nomi di campi personalizzati o altri identificatori all'interno di una formula:

  • Logico: AND, OR, NOT, IF, THEN, ELSE
  • Valori: NULL, TRUE, FALSE
  • Funzioni: CONTAINS, LENGTH, STARTS_WITH, ENDS_WITH, IS, IS_NOT, DOES_NOT_CONTAIN

Compatibilità dei tipi di dati

Per garantire una valutazione riuscita, verifica che tutte le operazioni e gli argomenti della funzione utilizzino tipi compatibili. I tipi supportati includono STRING, NUMBER, BOOLEAN e NULL.

L'output finale della formula deve corrispondere al tipo previsto del campo target. Poiché i campi target sono limitati a "Testo libero", la formula deve alla fine restituire una stringa o un valore che può essere convertito implicitamente nel formato del target.

Formattazione e spazio vuoto

Sebbene gli spazi, le tabulazioni e i ritorni a capo vengano generalmente ignorati tra i token, sono strettamente necessari per separare le parole chiave dagli identificatori. Utilizza gli spazi bianchi in modo strategico per strutturare formule complesse su più righe per una migliore gestibilità e revisione tra colleghi.

Scrivere formule efficaci

Sebbene il motore di calcolo sia flessibile con gli spazi bianchi, segui questi standard di formattazione per evitare errori logici e semplificare la risoluzione dei problemi.

  • Raggruppamento esplicito: utilizza le parentesi per definire chiaramente l'ordine delle operazioni, anche quando ti affidi alla precedenza standard. In questo modo si evita l'ambiguità logica.
  • Struttura visiva: applica spazi intorno agli operatori (==, AND, OR) e inserisci nuove righe per le istruzioni IF/THEN nidificate per rendere la logica scansionabile.
  • Convalida del tipo: verifica sempre che l'output finale della formula corrisponda al tipo previsto del campo target per evitare errori di valutazione.

    IF (
        (IS([CaseCustom.event_count], "100") AND NOT IS([case.priority], "Low"))
        OR CONTAINS([case.name], "Critical")
    )
    THEN "Needs Immediate Review"
    ELSE "Standard Review"
    

Risoluzione dei problemi

Questa sezione descrive le aspettative di rendimento e fornisce soluzioni self-service per i problemi di deployment comuni riscontrati durante la creazione o la gestione delle formule.

Latenza e limiti

I campi calcolati vengono valutati in modo sincrono ogni volta che un campo di dipendenza cambia. Per mantenere le prestazioni del sistema, un campo calcolato non può fare riferimento a un altro campo calcolato; il sistema blocca queste dipendenze a catena per evitare la ricorsione e i ritardi di elaborazione.

Correzione degli errori

Quando scrivi le formule manualmente, possono verificarsi errori dovuti a mancate corrispondenze di sintassi o tipo di dati. Utilizza la seguente tabella per mappare i codici di errore specifici relativi al percorso ai relativi correzioni esatte e attuabili.

Tipo di errore Problema Correggi
Sintassi La formula viola le regole grammaticali, ad esempio parentesi non corrispondenti o parole chiave in minuscolo. Racchiudi tutte le condizioni IF tra parentesi e verifica che tutte le parole chiave siano in MAIUSCOLO.
Convalida La formula fa riferimento a un campo sconosciuto (ad esempio [\case.typo]) o genera un mancato riscontro del tipo. Verifica i nomi dei campi tra parentesi quadre e conferma che l'output corrisponda al tipo di campo di destinazione.
Valutazione La formula è valida, ma non viene eseguita e spesso viene visualizzato #ERRORE!. Verifica la presenza di problemi di runtime, ad esempio il passaggio di un valore non stringa a una funzione come LENGTH().

Modificare o eliminare i campi target

Il sistema protegge attivamente i campi su cui si basano le formule per mantenere l'integrità dei dati. Se tenti di eliminare o modificare un campo personalizzato utilizzato come campo target, il sistema blocca l'azione e mostra un avviso che indica il suo utilizzo attivo in un campo calcolato.

Convalida e test

Dopo aver salvato un nuovo calcolo, verifica i risultati accedendo a un caso o a un avviso e aggiornando un campo di dipendenza. Verifica che il campo Target venga compilato con il valore previsto in tempo reale.

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