Nesta página, mostramos exemplos de filtros que podem ser usados com a API Security Command Center e as mensagens para as quais ele é exportado Pub/Sub ou BigQuery Você pode filtrar as notificações por qualquer campo de descoberta, incluindo:
parent
state
resource_name
category
source_properties
security_marks
Você também pode usar operadores padrão como parte da string de filtro:
AND
para incluir campos que contêm todo um conjunto de valoresOR
para 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\"
Como configurar um filtro de fonte
Cada descoberta do Security Command Center inclui o ID da fonte do provedor de fonte
de segurança. Por exemplo, uma descoberta do Security Health Analytics inclui um ID da fonte
exclusivo do Security Health Analytics. O ID de origem é usado em um filtro NotificationConfig
para especificar as descobertas do provedor que você quer enviar para o tópico
do Pub/Sub de notificações ou o conjunto de dados do BigQuery.
Etapa 1: como conseguir o ID da fonte
Use o Console do Google Cloud ou a Google Cloud CLI para receber o ID de origem de um provedor.
Console
- Acesse a página Descobertas do Security Command Center no Console do Google Cloud.
Acessar a página "Descobertas" - Selecione a organização para a qual você quer criar um filtro de notificações. A página Descobertas é aberta.
- No painel Filtros rápidos, role para baixo até a seção Nome de exibição da origem e selecione o nome do provedor que você quer usar para filtrar as notificações. resultados.
- Na coluna Categoria do painel Resultados da consulta de descobertas, exiba o painel de detalhes da descoberta clicando no nome de uma das descobertas.
- No painel de detalhes das descobertas, clique na guia JSON. O JSON completo da descoberta será exibido.
Na caixa de diálogo, copie o valor do atributo
parent
. Exemplo:"parent": "organizations/ORGANIZATION_ID/sources/SOURCE_ID"
Os IDs são representados pelo seguinte:
ORGANIZATION_ID
: o ID da organização do provedor de origem pai.SOURCE_ID
: o ID do provedor de origem pai.
gcloud
Para recuperar um ID de origem, execute o seguinte comando:
gcloud scc sources describe ORGANIZATION_ID --source-display-name="SOURCE_NAME"
Substitua:
- ORGANIZATION_ID: o código da sua organização.
- SOURCE_NAME: o nome do serviço para o qual você quer o ID de origem. Use o nome de qualquer provedor de localização, incluindo os serviços integrados do Security Command Center, o Security Health Analytics, o Web Security Scanner, o Event Threat Detection e o Container Threat Detection.
A saída para o comando da CLI gcloud se parece com o seguinte e inclui o ID de origem:
{
"name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID",
"displayName": "example-source",
"description": "A source that creates findings."
}
Em seguida, use os IDs da organização e da fonte para criar um filtro de notificações.
Etapa 2: como criar um filtro
Para criar um filtro de notificações,
crie um novo
NotificationConfig
.
É possível adicionar um filtro ao arquivo NotificationConfig
para incluir ou excluir
uma fonte específica:
Filtrar descobertas para enviar notificações apenas da fonte especificada:
state = \"ACTIVE\" AND parent = \"organizations/$ORGANIZATION_ID/sources/$SOURCE_ID\"
Filtre as descobertas para enviar notificações de todas as fontes, exceto a especificada:
state = \"ACTIVE\" AND -parent = \"organizations/$ORGANIZATION_ID/sources/$SOURCE_ID\"
Para mais exemplos de filtros que você pode usar, consulte Como listar descobertas de segurança usando a API Security Command Center.
Como filtrar descobertas por categoria e estado ao usar tópicos do Pub/Sub
As seções a seguir fornecem exemplos de como criar um filtro para fontes e tipos específicos e a mensagem de notificação que ele envia ao tópico do Pub/Sub.
Se você estiver usando conjuntos de dados do BigQuery em vez de tópicos do Pub/Sub, as descobertas e campos relacionados são descritos em Exportar as descobertas para o BigQuery para análise.
Security Health Analytics
Este exemplo do Security Health Analytics usa os seguintes filtros:
category = \"OPEN_FIREWALL\" AND state = \"ACTIVE\"
Para mais informações sobre os tipos de descobertas que o Security Health Analytics cria, consulte a página Descobertas do Security Health Analytics.
A mensagem do Pub/Sub para a notificação de descoberta de filtro da Security Health Analytics tem esta aparência:
{
"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"
}
}
Detecção de anomalias
Este exemplo de notificação de detecção de anomalias usa os seguintes filtros:
category = \"resource_involved_in_coin_mining\" AND state = \"ACTIVE\"
Para mais informações sobre os tipos de descobertas que a detecção de anomalias cria, consulte a página Como visualizar vulnerabilidades e ameaças.
A mensagem do Pub/Sub para a notificação de descoberta de filtro de detecção de anomalias é semelhante a esta:
{
"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
Este exemplo do Event Threat Detection usa os seguintes filtros:
category = \"Persistence: Iam Anomalous Grant\" AND state = \"ACTIVE\"
Para mais informações sobre os tipos de descoberta que o Event Threat Detection cria, consulte a página Como visualizar vulnerabilidades e ameaças.
A mensagem do Pub/Sub para a notificação de descoberta de filtro de detecção do Event Threat Detection é semelhante a esta:
{
"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"
}
}
Segurança Forseti
Este exemplo do Forseti usa os seguintes filtros:
category = \"FIREWALL_BLACKLIST_VIOLATION\" AND state = \"ACTIVE\"
Para mais informações sobre os tipos de descobertas que o Forseti cria, visite o site do Forseti (em inglês).
A mensagem do Pub/Sub para a notificação de descoberta de filtro do Forseti tem esta aparência:
{
"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"
}
}
Proteção de dados confidenciais
Este exemplo da Proteção de dados sensíveis usa os seguintes filtros:
category = \"CREDIT_CARD_NUMBER\" AND state = \"ACTIVE\"
Para mais informações sobre os tipos de descoberta que o Event Threat Detection cria, consulte a página Como visualizar vulnerabilidades e ameaças.
A mensagem do Pub/Sub na notificação de descobertas filtradas da Proteção de dados sensíveis é semelhante a esta:
{
"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"
}
}
A seguir
- Saiba mais sobre como acessar o Security Command Center usando uma biblioteca de cliente.
- Saiba como listar descobertas de segurança usando a API Security Command Center.