Filtraggio delle notifiche

Questa pagina mostra i filtri di esempio che puoi utilizzare con l'API Security Command Center delle notifiche e i messaggi in cui esporta Pub/Sub o BigQuery. Puoi filtrare le notifiche in base a qualsiasi campo trovato, tra cui:

  • parent
  • state
  • resource_name
  • category
  • source_properties
  • security_marks

Puoi anche utilizzare operatori standard come parte della stringa di filtro:

  • AND per includere i campi che contengono tutti un insieme di valori
  • OR per includere i campi che contengono uno di un insieme di valori
  • - per escludere i campi che contengono un valore specifico
  • Parentesi per raggruppare un insieme di valori, ad esempio:

    (category = \"BUCKET_LOGGING_DISABLED\" OR category = \"CLUSTER_LOGGING_DISABLED\") AND state = \"ACTIVE\"

Configurare un filtro di origine

Ogni risultato di Security Command Center include l'ID origine dell'origine di sicurezza. o il provider di servizi di terze parti. Ad esempio, un risultato di Security Health Analytics include un ID sorgente esclusivo di Security Health Analytics. L'ID origine viene utilizzato in un filtro NotificationConfig per specificare i risultati del provider che vuoi inviare alle notifiche un argomento Pub/Sub o un set di dati BigQuery.

Passaggio 1: recupera l'ID origine

Utilizza la console Google Cloud o Google Cloud CLI per ottenere un l'ID origine del provider.

Console

  1. Vai alla pagina Risultati di Security Command Center nella console Google Cloud.
    Vai alla pagina Risultati
  2. Seleziona l'organizzazione per cui vuoi creare le notifiche filtro. Si apre la pagina Risultati.
  3. Nel riquadro Filtri rapidi, scorri verso il basso fino al Nome visualizzato dell'origine. e seleziona il nome del provider che vuoi utilizzare per filtrare i risultati delle notifiche.
  4. Nella colonna Categoria del riquadro Risultati query dei risultati, per visualizzare il riquadro dei dettagli del risultato, fai clic sul nome di uno dei i risultati.
  5. Nel riquadro dei dettagli dei risultati, fai clic sulla scheda JSON. Il file JSON completo del risultato.
  6. Nel JSON, copia il valore dell'attributo parent. Ad esempio:

    "parent": "organizations/ORGANIZATION_ID/sources/SOURCE_ID"

    Gli ID sono rappresentati da quanto segue:

    • ORGANIZATION_ID: l'ID dell'organizzazione del fornitore di origine padre.
    • SOURCE_ID: l'ID del fornitore di origine principale.

gcloud

Per recuperare un ID origine, esegui questo comando:

  gcloud scc sources describe ORGANIZATION_ID --source-display-name="SOURCE_NAME"

Sostituisci quanto segue:

  • ORGANIZATION_ID: l'ID della tua organizzazione.
  • SOURCE_NAME: il nome del servizio per il quale vuoi ricevere l'origine ID. Utilizza il nome di qualsiasi provider di risultati, incluso quello di Security Command Center servizi integrati, Security Health Analytics, Web Security Scanner, Event Threat Detection e di Container Threat Detection.

L'output per il comando gcloud CLI è simile al seguente e include l'ID sorgente:

  {
   "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID",
   "displayName": "example-source",
   "description": "A source that creates findings."
  }

Quindi, utilizza l'ID organizzazione e l'ID origine per creare un filtro per le notifiche.

Passaggio 2: crea un filtro

Per creare un filtro per le notifiche, crea un nuovo NotificationConfig.

Puoi aggiungere un filtro al file NotificationConfig per includere o escludere una fonte specifica:

  • Filtra i risultati per inviare notifiche solo dall'origine specificata:

      state = \"ACTIVE\" AND parent = \"organizations/$ORGANIZATION_ID/sources/$SOURCE_ID\"
    
  • Filtra i risultati per inviare notifiche da tutte le origini tranne quelle specificate fonte:

      state = \"ACTIVE\" AND -parent = \"organizations/$ORGANIZATION_ID/sources/$SOURCE_ID\"
    

Per altri esempi di filtri che puoi utilizzare, vedi Elenco dei risultati sulla sicurezza utilizzando l'API Security Command Center.

Filtrare i risultati per categoria e stato quando si utilizzano argomenti Pub/Sub

Le seguenti sezioni forniscono esempi di come creare un filtro per le fonti e i tipi di risultati, oltre al messaggio di notifica che invia Pub/Sub.

Se utilizzi set di dati BigQuery anziché argomenti Pub/Sub, i risultati e i campi correlati sono descritti in Esportare i risultati in BigQuery per l'analisi.

Security Health Analytics

Questo esempio di Security Health Analytics utilizza i seguenti filtri:

category = \"OPEN_FIREWALL\" AND state = \"ACTIVE\"

Per ulteriori informazioni sui tipi di risultati che Security Health Analytics vengono creati, consulta la pagina Risultati di Security Health Analytics.

Il messaggio Pub/Sub per il risultato filtrato di Security Health Analytics ha il seguente aspetto:

{
   "notificationConfigName": "organizations/ORGANIZATION_ID/notificationConfigs/security-health-analytics-active-findings",
   "finding": {
     "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID",
     "parent": "organizations/ORGANIZATION_ID/sources/SOURCE_ID",
     "resourceName": "//compute.googleapis.com/projects/PROJECT_ID/global/firewalls/,
     "state": "ACTIVE",
     "category": "OPEN_FIREWALL",
     "externalUri": "https://console.cloud.google.com/networking/firewalls/details/default-allow-icmp?project\u003PROJECT_ID",
     "sourceProperties": {
       "ReactivationCount": 0.0,
       "Allowed": "[{\"ipProtocol\":\"icmp\"}]",
       "WhitelistInstructions": "Add the security mark \"allow_open_firewall_rule\" to the asset with a value of \"true\" to prevent this finding from being activated again.",
       "Recommendation": "Restrict the firewall rules at: https://console.cloud.google.com/networking/firewalls/details/default-allow-icmp?project\u003PROJECT_ID",
       "AllowedIpRange": "All",
       "ActivationTrigger": "Allows all IP addresses",
       "SourceRange": "[\"0.0.0.0/0\"]",
       "ScanRunId": "2019-04-06T08:50:58.832-07:00",
       "SeverityLevel": "High",
       "ProjectId": "PROJECT_ID",
       "AssetCreationTime": "2019-03-28t17:58:54.409-07:00",
       "ScannerName": "FIREWALL_SCANNER",
       "Explanation": "Firewall rules that allow connections from all IP addresses or on all ports may expose resources to attackers."
     },
     "securityMarks": {
       "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID/securityMarks",
       "marks": {
         "sccquery152cd5aa66ea4bc8a672d8186a125580": "true",
         "sccquerya3cf2270123f4e91b84a3e613d2cac67": "true"
       }
     },
     "eventTime": "2019-09-22T21:26:57.189Z",
     "createTime": "2019-03-29T15:51:26.435Z"
   }
 }

Rilevamento di anomalie

Questo esempio di notifica di Rilevamento di anomalie utilizza i seguenti filtri:

category = \"resource_involved_in_coin_mining\" AND state = \"ACTIVE\"

Per ulteriori informazioni sui tipi di risultati rilevati dal rilevamento di anomalie creati, consulta la pagina Visualizzazione di vulnerabilità e minacce.

Il messaggio Pub/Sub per il risultato filtrato di Rilevamento di anomalie ha il seguente aspetto:

{
   "notificationConfigName": "organizations/ORGANIZATION_ID/notificationConfigs/cloud-anomaly-detection-active-findings",
   "finding": {
     "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID",
     "parent": "organizations/ORGANIZATION_ID/sources/SOURCE_ID",
     "resourceName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
     "state": "ACTIVE",
     "category": "resource_involved_in_coin_mining",
     "sourceProperties": {
       "vm_ips": "35.231.191.191",
       "end_time_usec": "1569003180000000",
       "abuse_target_ips": "54.38.176.231",
       "end_datetime_UTC": "2019-09-20 18:13:00 UTC",
       "urls": "swap2.luckypool.io, bitcash.luckypool.io",
       "vm_host_and_zone_names": "ubuntu-1804-tp100-gminer:us-east1-b",
       "finding_type": "Abuse originating from a resource in your organization.",
       "start_time_usec": "1569002700000000",
       "action_taken": "Notification sent",
       "summary_message": "We have recently detected activity on your Google Cloud Platform/APIs project that violates our Terms of Service or Acceptable Use Policy.",
       "start_datetime_UTC": "2019-09-20 18:05:00 UTC"
     },
     "securityMarks": {
       "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID/securityMarks",
       "marks": {                                                                                                                                                                                             "triage": "required",
         "teste123": "true",
         "sccquery94c23b35ea0b4f8388268415a0dc6c1b": "true"
       }
     },
     "eventTime": "2019-09-20T18:59:00Z",
     "createTime": "2019-05-16T14:16:35.674Z"
   }
 }

Event Threat Detection

Questo esempio di Event Threat Detection utilizza i seguenti filtri:

category = \"Persistence: Iam Anomalous Grant\" AND state = \"ACTIVE\"

Per ulteriori informazioni sui tipi di risultati che Event Threat Detection creati, consulta la pagina Visualizzazione di vulnerabilità e minacce.

Il messaggio Pub/Sub per il risultato filtrato di Event Threat Detection ha il seguente aspetto:

{
  "notificationConfigName": "organizations/ORGANIZATION_ID/notificationConfigs/event-threat-detection-active-findings",
  "finding": {
    "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID",
    "parent": "organizations/ORGANIZATION_ID/sources/SOURCE_ID",
    "resourceName": "//cloudresourcemanager.googleapis.com/organizations/ORGANIZATION_ID",
    "state": "ACTIVE",
    "category": "Persistence: IAM Anomalous Grant",
    "sourceProperties": {
      "sourceId": {
        "organizationNumber": "ORGANIZATION_ID",
        "customerOrganizationNumber": "ORGANIZATION_ID"
      },
      "detectionCategory": {
        "technique": "persistence",
        "indicator": "audit_log",
        "ruleName": "iam_anomalous_grant",
        "subRuleName": "external_member_added_to_policy"
      },
      "detectionPriority": "HIGH",
      "evidence": [{
        "sourceLogId": {
          "timestamp": {
            "seconds": "1601066317",
            "nanos": 4.63E8
          },
          "insertId": "INSERT_ID"
        }
      }],
      "properties": {
        "sensitiveRoleGrant": {
          "principalEmail": "PRINCIPAL_EMAIL@gmail.com",
          "bindingDeltas": [{
            "action": "ADD",
            "role": "roles/owner",
            "member": "user:USER_EMAIL@gmail.com"
          }, {
            "action": "REMOVE",
            "role": "roles/viewer",
            "member": "user:USER_EMAIL@gmail.com"
          }],
          "members": ["USER_EMAIL@gmail.com"]
        }
      },
      "findingId": "FINDING_ID"
    },
    "securityMarks": {
      "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID/securityMarks"
    },
    "eventTime": "2020-09-25T20:38:39.441Z",
    "createTime": "2020-09-25T20:38:40.667Z"
  }
}

Forseti Security

Questo esempio Forseti utilizza i seguenti filtri:

category = \"FIREWALL_BLACKLIST_VIOLATION\" AND state = \"ACTIVE\"

Per ulteriori informazioni sui tipi di risultati che Forseti crea, visita il sito web Forseti)

Il messaggio Pub/Sub per il filtro Forseti di ricerca ha il seguente aspetto:

{
  "notificationConfigName": "organizations/ORGANIZATION_ID/notificationConfigs/forseti-firewall-denylist-active-findings",
  "finding": {
    "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID",
    "parent": "organizations/ORGANIZATION_ID/sources/SOURCE_ID",
    "resourceName": "organization/ORGANIZATION_ID/project/PROJECT_ID/firewall/firewall-id/",
    "state": "ACTIVE",
    "category": "FIREWALL_BLACKLIST_VIOLATION",
    "sourceProperties": {
      "scanner_index_id": 6554388765422,
      "resource_id": "PROJECT_ID",
      "db_source": "table:violations/id:10127",
      "inventory_index_id": 1569189610158079,
      "resource_type": "firewall",
      "rule_index": 1,
      "source": "FORSETI",
      "resource_data": "{\"allowed\": [{\"IPProtocol\": \"ah\"}, {\"IPProtocol\": \"esp\"}, {\"IPProtocol\": \"icmp\"}, {\"IPProtocol\": \"sctp\"}, {\"IPProtocol\": \"tcp\"}, {\"IPProtocol\": \"udp\"}], \"direction\": \"INGRESS\", \"name\": \"gke-range-cluster-890sad\", \"network\": \"https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/default\", \"priority\": 1000, \"sourceRanges\": [\"10.48.0.0/14\"], \"targetTags\": [\"gke-firing-range-cluster-73d1fcce-node\"]}",
      "rule_name": "disallow_all_ports",
      "violation_data": "{\"policy_names\": [\"gke-range-cluster-890sad\"], \"recommended_actions\": {\"DELETE_FIREWALL_RULES\": [\"gke-range-cluster-890sad\"]}}"
    },
    "securityMarks": {
      "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID/securityMarks",
      "marks": {
        "priority": "p1"
      }
    },
    "eventTime": "2019-09-22T22:03:58Z",
    "createTime": "2019-08-14T02:19:58.218Z"
  }
}

Protezione dei dati sensibili

Questo esempio di Sensitive Data Protection utilizza i seguenti filtri:

category = \"CREDIT_CARD_NUMBER\" AND state = \"ACTIVE\"

Per ulteriori informazioni sui tipi di risultati che Event Threat Detection creati, consulta la pagina Visualizzazione di vulnerabilità e minacce.

Il messaggio Pub/Sub per Sensitive Data Protection filtrato di ricerca ha il seguente aspetto:

{
   "notificationConfigName": "organizations/ORGANIZATION_ID/notificationConfigs/dlp-data-discovery-active-findings",
   "finding": {
     "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID",
     "parent": "organizations/ORGANIZATION_ID/sources/SOURCE_ID",
     "resourceName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
     "state": "ACTIVE",
     "category": "CREDIT_CARD_NUMBER",
     "externalUri": "https://console.cloud.google.com/dlp/projects/PROJECT_ID/dlpJobs/i-7536622736814356939;source\u003d5",
     "sourceProperties": {
       "COUNT": 2.0,
       "JOB_NAME": "projects/PROJECT_ID/dlpJobs/i-7536622736814356939",
       "FULL_SCAN": false
     },
     "securityMarks": {
       "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID/securityMarks",
       "marks": {
         "priority": "p1",
         "sccquerya3cf2270123f4e91b84a3e613d2cac67": "true"
       }
     },
     "eventTime": "2019-09-16T23:21:19.650Z",
     "createTime": "2019-04-22T23:18:17.731Z"
   }
 }

Passaggi successivi