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 di risultato
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 per l'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 di risultato). 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 di risultato 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 per l'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 insieme di regole
Devi applicare l'esclusione a regole specifiche o a insiemi di regole curati.
Quando applichi l'esclusione a una regola o a un insieme di regole, viene creata una risorsa FindingsRefinementDeployment. Puoi utilizzare questa risorsa per determinare le regole personalizzate, le regole curate o gli insiemi 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 per l'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 di Findings Refinement.
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 insieme di regole, il sistema crea una risorsa FindingsRefinementDeployment. Questa risorsa determina le regole personalizzate, le regole curate e gli insiemi 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 gli insiemi 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 per l'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 di Findings Refinement.
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 per l'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 per l'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 gli insiemi 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 degli insiemi di regole specificati, quindi ne convalida l'efficacia nell'eliminare i 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 per l'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 negli insiemi di regole specificati nella richiesta. Aiuta a determinare l'efficacia dell'esclusione nell'eliminare i 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 di risultato) 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 di risultato.
Le esclusioni non supportano una configurazione della durata (TTL). Tuttavia, puoi creare una TTL una tantum calcolando l'ora di scadenza specifica 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 impostazione potrebbe non essere visualizzata correttamente nella finestra Modifica esclusioni dell'interfaccia utente perché supporta solo i campi
string.
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.