Gestire le esclusioni delle regole
Questo documento spiega come gestire a livello di programmazione le esclusioni delle regole in Google Security Operations utilizzando l'API. Le esclusioni fungono da filtri che definisci in base ai campi Unified Data Model (UDM) per impedire che rilevamenti specifici generino avvisi. Identificando le attività note o sicure, questi filtri bloccano il rumore non necessario nella dashboard.
Creare un'esclusione con filtri dei risultati
Puoi creare una nuova regola di esclusione a livello di programmazione per eliminare risultati di rilevamento specifici che corrispondono ai criteri definiti, riducendo così il rumore e dando la priorità agli avvisi ad alta fedeltà.
Utilizza l'endpoint POST per definire la logica di eliminazione. Tutti i filtri con l'array outcomeFilters sono collegati da una clausola AND implicita.
Metodo: POST
Endpoint:
https://REGION-chronicle.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID
Sostituisci quanto segue:
REGION: la Google Cloud regione dell'istanza Google SecOps.
PROJECT_ID: l' Google Cloud ID progetto.
LOCATION: la località dell'istanza Google SecOps (spesso la stessa della regione).
INSTANCE_ID: l'ID dell'istanza Google SecOps.
Esempio:
POST https://us-chronicle.googleapis.com/v1/projects/my-project/locations/us/instances/my-instance/findingsRefinements
Corpo della richiesta:
{
"displayName": "Exclusion with outcome filters",
"type": "DETECTION_EXCLUSION",
"query": "principal.hostname = \"altostrat.com\"",
"outcomeFilters": [
{
"outcome_variable": "ip",
"outcome_value": "127.0.01",
"outcome_filter_operator": "EQUAL"
},
{
"outcome_variable": "hostnames",
"outcome_value": "altostrat.com",
"outcome_filter_operator": "CONTAINS"
}
]
}
L'esempio mostra come definire la logica di eliminazione in cui più filtri nell'array outcomeFilters sono collegati da una clausola AND implicita.
Campi obbligatori: displayName, type, query
Campi generati dal sistema: non specificare name, createTime o updateTime.
Questi campi sono gestiti dal sistema e vengono ignorati o causano errori se inclusi nella richiesta.
La logica di eliminazione segue una relazione AND. La richiesta crea un'esclusione che elimina tutti i rilevamenti che hanno un evento con quanto segue:
"altostrat.com" come nome host principale
Una variabile di risultato
ipcon un valore di127.0.0.1Una variabile di risultato
hostnamescon almeno uno dei suoi valori aggregatialtostrat.com.
Tutti i filtri specificati nell'esclusione sono collegati implicitamente da una clausola AND.
Risposta API: l'API restituisce il nome della risorsa FindingsRefinement.
La risorsa FindingsRefinement contiene la logica di eliminazione principale (la query e i filtri dei risultati). Il nome della risorsa (ID) viene utilizzato per le operazioni successive sull'esclusione.
Accedere a un'esclusione
Utilizza l'endpoint GET per:
Visualizzare i dettagli di una singola definizione di esclusione in base al suo ID univoco.
Quando hai un
refinement-idspecifico e devi verificare la query esatta o i filtri dei risultati che contiene.
Metodo: GET
Endpoint:
https://REGION-chronicle.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/findingsRefinements
Sostituisci quanto segue:
REGION: la Google Cloud regione dell'istanza Google SecOps.
PROJECT_ID: l' Google Cloud ID progetto.
LOCATION: la località dell'istanza Google SecOps (spesso la stessa della regione).
INSTANCE_ID: l'ID dell'istanza Google SecOps.
Esempio:
GET https://us-chronicle.googleapis.com/v1/projects/0123456789/locations/us/instances/01234567-89ab-cdef-fedc-ba9876543210/findingsRefinements/fr_00001111-2222-3333-4444-555566667777
Applicare un'esclusione a una regola o a un set di regole
Devi applicare l'esclusione a regole specifiche o a set di regole curati.
Quando applichi l'esclusione a una regola o a un set di regole, viene creata una risorsa FindingsRefinementDeployment. Puoi utilizzare questa risorsa per determinare le regole personalizzate, le regole curate o i set di regole curati che si applicano alla risorsa FindingsRefinement. Puoi quindi specificare il parametro update_mask nella richiesta API per indicare i campi in FindingsRefinementDeployment da aggiornare.
Metodo: PATCH
Endpoint:
https://REGION-chronicle.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/findingsRefinements/REFINEMENT_ID
Sostituisci quanto segue:
REGION: la Google Cloud regione dell'istanza Google SecOps.
PROJECT_ID: l' Google Cloud ID progetto.
LOCATION: la località dell'istanza Google SecOps (spesso la stessa della regione).
INSTANCE_ID: l'ID dell'istanza Google SecOps.
REFINEMENT_ID: l'ID univoco del perfezionamento dei risultati.
Esempio:
PATCH https://us-chronicle.googleapis.com/v1/projects/0123456789/locations/us/instances/01234567-89ab-cdef-fedc-ba9876543210/findingsRefinements/fr_00001111-2222-3333-4444-555566667777?update_mask=enabled,detectionExclusionApplication
Corpo della richiesta:
{
"name": "projects/0123456789/locations/us/instances/01234567-89ab-cdef-fedc-ba9876543210/findingsRefinements/fr_00001111-2222-3333-4444-555566667777"
"enabled": true,
"detectionExclusionApplication": {
"curatedRuleSets": [
...list curated rule set resource names
],
"curatedRules": [
...list curated rule resource names
],
"rules": [
...list rule resource names
],
}
}
Quando applichi l'esclusione a una regola o a un set di regole, il sistema crea una risorsa FindingsRefinementDeployment. Questa risorsa determina le regole personalizzate, le regole curate e i set di regole curati che si applicano alla risorsa FindingsRefinement. Puoi anche includere il parametro update_mask nella richiesta API per specificare i campi in FindingsRefinementDeployment da aggiornare.
Accedere al deployment per l'esclusione
Dopo aver creato o aggiornato un'esclusione, utilizza questo endpoint per verificare le regole o i set di regole a cui è stato eseguito il deployment di questa esclusione specifica.
Metodo: GET
Endpoint:
https://REGION-chronicle.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/findingsRefinements/REFINEMENT_ID
Sostituisci quanto segue:
REGION: la Google Cloud regione dell'istanza Google SecOps.
PROJECT_ID: l' Google Cloud ID progetto.
LOCATION: la località dell'istanza Google SecOps (spesso la stessa della regione).
INSTANCE_ID: l'ID dell'istanza Google SecOps.
REFINEMENT_ID: l'ID univoco del perfezionamento dei risultati.
Esempio:
GET https://us-chronicle.googleapis.com/v1/projects/0123456789/locations/us/instances/01234567-89ab-cdef-fedc-ba9876543210/findingsRefinements/fr_00001111-2222-3333-4444-555566667777/deployment
Elencare tutte le esclusioni
Utilizza questo endpoint per recuperare l'elenco delle risorse findingsRefinements.
Metodo: GET
Endpoint:
https://REGION-chronicle.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/findingsRefinements
Sostituisci quanto segue:
REGION: la Google Cloud regione dell'istanza Google SecOps.
PROJECT_ID: l' Google Cloud ID progetto.
LOCATION: la località dell'istanza Google SecOps (spesso la stessa della regione).
INSTANCE_ID: l'ID dell'istanza Google SecOps.
Esempio:
GET https://us-chronicle.googleapis.com/v1/projects/0123456789/locations/us/instances/01234567-89ab-cdef-fedc-ba9876543210/findingsRefinements
Parametri di query facoltativi: pageSize, pageToken
Puoi utilizzare i parametri facoltativi per elencare più risultati simili ad altri endpoint di elenco all'interno dell'API.
Elencare tutti i deployment di esclusione
Utilizza questo endpoint per ottenere l'elenco delle risorse FindingsRefinement create all'interno dell'istanza.
Metodo: GET
Endpoint:
https://REGION-chronicle.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/findingsRefinements
Sostituisci quanto segue:
REGION: la Google Cloud regione dell'istanza Google SecOps.
PROJECT_ID: l' Google Cloud ID progetto.
LOCATION: la località dell'istanza Google SecOps (spesso la stessa della regione).
INSTANCE_ID: l'ID dell'istanza Google SecOps.
Esempio:
GET https://us-chronicle.googleapis.com/v1/projects/0123456789/locations/us/instances/01234567-89ab-cdef-fedc-ba9876543210:listAllFindingsRefinementDeployments
Parametri di query facoltativi:
Utilizza i parametri
pageSizeepageTokenper elencare più risultati simili ad altri endpoint di elenco all'interno dell'API.Utilizza il parametro
filterper filtrare le regole o i set di regole a cui sono state applicate le esclusioni.
Testare un'esclusione utilizzando l'API
Questo endpoint testa l'esclusione rispetto ai rilevamenti delle regole e dei set di regole specificati, quindi convalida l'efficacia dell'esclusione nell'eliminazione dei rilevamenti indesiderati. L'interfaccia utente utilizza gli ultimi 30 giorni di rilevamenti per i test.
Metodo: POST
Endpoint:
https://REGION-chronicle.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID:testFindingsRefinement
Sostituisci quanto segue:
REGION: la Google Cloud regione dell'istanza Google SecOps.
PROJECT_ID: l' Google Cloud ID progetto.
LOCATION: la località dell'istanza Google SecOps (spesso la stessa della regione).
INSTANCE_ID: l'ID dell'istanza Google SecOps.
Esempio:
POST https://us-chronicle.googleapis.com/v1/projects/0123456789/locations/us/instances/01234567-89ab-cdef-fedc-ba9876543210:testFindingsRefinement
Corpo della richiesta:
{
"type": "DETECTION_EXCLUSION",
"query": "principal.hostname = \"altostrat.com\"",
"outcomeFilters": [
{
"outcome_variable": "ip",
"outcome_value": "127.0.01",
"outcome_filter_operator": "EQUAL",
},
{
"outcome_variable": "hostnames",
"outcome_value": "altostrat.com",
"outcome_filter_operator": "CONTAINS",
},
]
"interval": {
"start_time": {
"seconds": 1756684800, // Sep. 1 2025 00:00 UTC
},
"end_time": {
"seconds": 1759276800, // Oct. 1 2025 00:00 UTC
},
},
"detectionExclusionApplication": {
"curatedRuleSets": [
...curated rule set resource names
],
"curatedRules": [
...curated rule resource names
],
"rules": [
...rule resource names
],
}
}
Questo endpoint testa l'esclusione rispetto ai rilevamenti generati nelle regole e nei set di regole specificati nella richiesta. Aiuta a determinare l'efficacia dell'esclusione nell'eliminazione dei rilevamenti che non devono essere generati. Il sistema utilizza gli ultimi 30 giorni di rilevamenti come intervallo di tempo per testare le esclusioni.
Limitazioni
Tutte le esclusioni (con o senza filtri dei risultati) devono specificare un campo
query. Per creare un'esclusione con solooutcomeFilters, specifica un'espressione regolarematch-all....other fields in FindingsRefinement query: "principal.hostname = /.*/" outcomeFilters: [ your outcome filters ]L'espressione regolare corrisponde a qualsiasi nome host. Pertanto, questa query corrisponde a tutti i rilevamenti. Di conseguenza, il filtro efficace è determinato esclusivamente dai filtri dei risultati.
Le esclusioni non supportano una configurazione della durata (TTL). Tuttavia, puoi creare una TTL una tantum calcolando il tempo di scadenza specifico e aggiungendo una condizione di timestamp nella definizione dell'esclusione. Ad esempio, per impostare la scadenza di un'esclusione alla fine dell'anno, specifica la query nel seguente modo:
...other fields in FindingsRefinement query: "metadata.event_timestamp.seconds < 1767225600" // Jan 1 2026 00:00 UTC outcomeFilters: [your outcome filters]Questo esempio conferma che vengono eliminati solo i rilevamenti creati da eventi con un timestamp precedente alla fine dell'anno.
Nota: questa operazione potrebbe non essere visualizzata correttamente nella finestra Modifica esclusioni dell'interfaccia utente perché supporta solo i campi
string.Regole composte: le esclusioni dei campi UDM vengono valutate in base agli eventi non elaborati. Se stai tentando di escludere valori UDM specifici da una regola composta (che si attiva in base ad altri rilevamenti anziché a eventi non elaborati), devi applicare l'esclusione alle regole sottostanti fondamentali che alimentano la regola composta.
Per trovare la regola fondamentale, puoi esaminare la definizione della regola composta nella console Google SecOps (in Content Hub > Rilevamenti curati) e rivedere la sezione
events:della logica YARA-L per identificare i nomi delle regole fondamentali.
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.