Esta página mostra exemplos de filtros que pode usar com a funcionalidade de notificações da API Security Command Center e as mensagens que exporta para o Pub/Sub ou o BigQuery. Pode filtrar as notificações por qualquer campo de deteção, incluindo:
parentstateresource_namecategorysource_properties(apenas API v1)security_marks
Também pode usar operadores padrão como parte da string de filtro:
ANDpara incluir campos que contêm todos os valores de um conjuntoORpara incluir campos que contêm um de um conjunto de valores-para excluir campos que contêm um valor específicoParênteses para agrupar um conjunto de valores, por exemplo:
(category = \"BUCKET_LOGGING_DISABLED\" OR category = \"CLUSTER_LOGGING_DISABLED\") AND state = \"ACTIVE\"
Configurar um filtro de origem
Cada descoberta do Security Command Center inclui o ID de origem do fornecedor de origem de segurança. Por exemplo, uma descoberta do Security Health Analytics inclui um ID de origem exclusivo do Security Health Analytics. O ID de origem é usado num filtro NotificationConfig para especificar as conclusões do fornecedor que quer enviar para o tópico do Pub/Sub ou o conjunto de dados do BigQuery.
Passo 1: obter o ID da origem
Use a Google Cloud consola ou a CLI do Google Cloud para obter o ID de origem de um fornecedor.
Consola
- Aceda à página Resultados do Security Command Center na Google Cloud consola.
Aceda à página Resultados - Selecione a organização para a qual quer criar um filtro de notificações. É apresentada a página Resultados.
 - No painel Filtros rápidos, desloque a página para baixo até à secção Nome a apresentar da origem e selecione o nome do fornecedor que quer usar para filtrar os resultados das notificações.
 - Na coluna Categoria do painel Resultados da consulta de conclusões, clique no nome de uma das conclusões para apresentar o painel de detalhes da conclusão.
 - No painel de detalhes das conclusões, clique no separador JSON. O JSON completo para a descoberta é apresentado.
 No JSON, copie o valor do atributo
parent. Por exemplo:"parent": "organizations/ORGANIZATION_ID/sources/SOURCE_ID"
Os IDs são representados pelo seguinte:
ORGANIZATION_ID: o ID da organização do fornecedor de origem principal.SOURCE_ID: o ID do fornecedor de origem principal.
gcloud
Para obter um ID de origem, execute o seguinte comando:
  gcloud scc sources describe ORGANIZATION_ID --source-display-name="SOURCE_NAME"
Substitua o seguinte:
ORGANIZATION_ID: o ID da sua organização.SOURCE_NAME: o nome do serviço para o qual quer o ID da origem. Use o nome de qualquer fornecedor de resultados, incluindo os serviços incorporados do Security Command Center, o Security Health Analytics, o Web Security Scanner, a deteção de ameaças de eventos e a deteção de ameaças de contentores.
O resultado do comando da CLI gcloud é semelhante ao seguinte e inclui o ID da origem:
 {
   "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID",
   "displayName": "example-source",
   "description": "A source that creates findings."
 }
Em seguida, use o ID da organização e o ID da origem para criar um filtro de notificações.
Passo 2: criar um filtro
Para criar um filtro de notificações, crie um novo NotificationConfig.
Pode adicionar um filtro ao ficheiro NotificationConfig para incluir ou excluir
uma origem específica:
Filtre as conclusões para enviar notificações apenas da origem especificada:
state = \"ACTIVE\" AND parent = \"organizations/$ORGANIZATION_ID/sources/$SOURCE_ID\"Filtre as conclusões para enviar notificações de todas as origens, exceto da origem especificada:
state = \"ACTIVE\" AND -parent = \"organizations/$ORGANIZATION_ID/sources/$SOURCE_ID\"
Para ver mais exemplos de filtros que pode usar, consulte o artigo Listar resultados de segurança com a API Security Command Center.
Filtrar resultados por categoria e estado quando usa tópicos do Pub/Sub
As secções seguintes fornecem exemplos de como criar um filtro para origens e tipos de deteção específicos, bem como a mensagem de notificação que envia para o seu tópico do Pub/Sub.
Se estiver a usar conjuntos de dados do BigQuery em vez de tópicos do Pub/Sub, as conclusões e os campos relacionados são descritos no artigo Exporte conclusões para o BigQuery para análise.
Análise do estado de segurança
Este exemplo do Security Health Analytics usa os seguintes filtros:
category = \"OPEN_FIREWALL\" AND state = \"ACTIVE\"
Para mais informações sobre os tipos de resultados que o Security Health Analytics cria, consulte a página Resultados do Security Health Analytics.
A mensagem do Pub/Sub para a notificação de resultados filtrados do Security Health Analytics tem o seguinte aspeto:
{
   "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"
   }
 }
Deteção de anomalias
Este exemplo de notificação de deteção de anomalias usa os seguintes filtros:
category = \"resource_involved_in_coin_mining\" AND state = \"ACTIVE\"
Para mais informações acerca dos tipos de resultados que a Deteção de anomalias cria, consulte a página Ver vulnerabilidades e ameaças.
A mensagem do Pub/Sub para a notificação de deteção de anomalias filtrada tem o seguinte aspeto:
{
   "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": {
         "teste123": "true",
         "sccquery94c23b35ea0b4f8388268415a0dc6c1b": "true"
       }
     },
     "eventTime": "2019-09-20T18:59:00Z",
     "createTime": "2019-05-16T14:16:35.674Z"
   }
 }
Deteção de ameaças de eventos
Este exemplo de deteção de ameaças de eventos usa os seguintes filtros:
category = \"Persistence: Iam Anomalous Grant\" AND state = \"ACTIVE\"
Para mais informações acerca dos tipos de resultados que a Deteção de ameaças de eventos cria, consulte a página Ver vulnerabilidades e ameaças.
A mensagem Pub/Sub para a notificação de descoberta filtrada da Deteção de ameaças de eventos tem o seguinte aspeto:
{
  "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"
  }
}
Proteção de dados confidenciais
Este exemplo de proteção de dados confidenciais usa os seguintes filtros:
category = \"CREDIT_CARD_NUMBER\" AND state = \"ACTIVE\"
Para mais informações acerca dos tipos de resultados que a Deteção de ameaças de eventos cria, consulte a página Ver vulnerabilidades e ameaças.
A mensagem do Pub/Sub para a notificação de registo filtrada da proteção de dados confidenciais tem o seguinte aspeto:
{
   "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"
   }
 }
O que se segue?
- Saiba como aceder ao Security Command Center através de uma biblioteca de cliente.
 - Saiba como listar as conclusões de segurança através da API Security Command Center.