Nesta página, descrevemos como fazer streaming de descobertas novas e atualizadas para um conjunto de dados do BigQuery usando a função de exportação do Security Command Center para o BigQuery. As descobertas atuais não são enviadas ao BigQuery, a menos que sejam atualizadas.
O BigQuery é o data warehouse para análise totalmente gerenciado, em escala de petabyte e econômico do Google Cloudque permite executar análises em grandes volumes de dados quase em tempo real. É possível usar o BigQuery para executar consultas em descobertas novas e atualizadas, filtrar dados para encontrar o que você precisa e gerar relatórios personalizados. Para saber mais sobre o BigQuery, consulte a documentação do BigQuery.
Visão geral
Quando você ativa esse recurso, novas descobertas gravadas no Security Command Center são exportadas para uma tabela do BigQuery quase em tempo real. Em seguida, é possível integrar os dados em fluxos de trabalho existentes e criar análises personalizadas. Você pode ativar esse recurso no nível da organização, da pasta e do projeto para exportar as descobertas com base nos seus requisitos.
Esse recurso é a forma recomendada de exportar as descobertas do Security Command Center para o BigQuery, porque ele é totalmente gerenciado e não requer a execução de operações manuais ou a escrita de um código personalizado.
Estrutura do conjunto de dados
Esse recurso adiciona cada nova descoberta e as atualizações seguintes como
novas linhas na tabela findings
, que é agrupada por source_id
,
finding_id
e event_time
.
Quando uma descoberta é atualizada, esse recurso cria vários registros de descoberta com
os mesmos valores source_id
e finding_id
, mas com valores event_time
diferentes. Essa estrutura de conjunto de dados permite ver como o estado de cada descoberta muda
ao longo do tempo.
Pode haver entradas duplicadas no conjunto de dados. Para analisá-las, use a cláusula DISTINCT
, conforme mostrado no primeiro exemplo de consulta.
Cada conjunto de dados contém uma tabela findings
com os seguintes campos:
Campo | Descrição |
---|---|
source_id |
Um identificador exclusivo que o Security Command Center atribui à origem de uma descoberta. Por exemplo, todas as descobertas da origem da Detecção de anomalias do Cloud têm o mesmo valor source_id. Exemplo: |
finding_id | Identificador exclusivo que representa a descoberta. É único dentro de uma fonte para uma organização. É alfanumérico e tem no máximo 32 caracteres. |
event_time |
A hora em que o evento ocorreu ou a hora em que uma atualização da
descoberta ocorreu. Por exemplo, se a descoberta representar um firewall aberto, o Exemplo: |
finding |
Um registro de dados de avaliação, como segurança, risco, integridade ou privacidade, que é ingerido no Security Command Center para apresentação, notificação, análise, teste de políticas e aplicação. Por exemplo, uma vulnerabilidade de scripting em vários locais (XSS) em um aplicativo do App Engine é uma descoberta.
Para mais informações sobre os campos aninhados, consulte a referência da API
do objeto
|
recurso |
Informações relacionadas ao recurso Google Cloud associado a essa descoberta.
Para mais informações sobre os campos aninhados, consulte a referência da API
do objeto
|
Custo
Você vai receber cobranças do BigQuery relacionadas a esse recurso. Para mais informações, consulte Preços do BigQuery.
Antes de começar
Conclua as etapas abaixo antes de ativar esse recurso.
Configurar permissões
Para concluir este guia, você precisa ter os seguintes papéis de gerenciamento de identidade e acesso (IAM):
Na organização, na pasta ou no projeto de onde você quer exportar descobertas, uma das seguintes opções:
- Editor do BigQuery Exports na Central de segurança
(
roles/securitycenter.bigQueryExportsEditor
) - Administrador da Central de segurança
(
roles/securitycenter.admin
).
Para saber mais sobre os papéis do Security Command Center, consulte Controle de acesso.
- Editor do BigQuery Exports na Central de segurança
(
No conjunto de dados do BigQuery, o proprietário de dados do BigQuery (
roles/bigquery.dataOwner
).
Criar um conjunto de dados do BigQuery
Crie um conjunto de dados do BigQuery. Para mais informações, consulte Como criar conjuntos de dados.
Planejar a residência de dados
Se a residência de dados estiver ativada para o Security Command Center, as configurações que definem as exportações de streaming para o BigQuery (recursos BigQueryExport
) estarão sujeitas ao controle de residência de dados e serão armazenadas em um local do Security Command Center selecionado.
Para exportar as descobertas de um local do Security Command Center para o BigQuery, configure a exportação do BigQuery no mesmo local do Security Command Center que as descobertas.
Como os filtros usados nas exportações do BigQuery podem conter dados sujeitos a controles de residência, especifique o local correto antes de criar os filtros. O Security Command Center não restringe o local em que você cria exportações.
As exportações do BigQuery são armazenadas apenas no local em que são criadas e não podem ser visualizadas ou editadas em outros locais.
Depois de criar uma exportação do BigQuery, não é possível mudar o local dela. Para mudar o local, exclua a exportação do BigQuery e recrie-a no novo local.
Para extrair uma exportação do BigQuery usando chamadas de API, é necessário especificar o local no nome completo do recurso do bigQueryExport
.
Exemplo:
GET https://securitycenter.googleapis.com/v2/organizations/123/locations/eu/bigQueryExports/my-export-01
Da mesma forma, para extrair uma exportação do BigQuery usando a
CLI gcloud, é necessário especificar o local usando a
flag --location
. Exemplo:
gcloud scc bqexports get myBigQueryExport --organization=123 \
--location=us
Exportar descobertas do Security Command Center para o BigQuery
Para exportar descobertas, primeiro ative a API Security Command Center.
Como ativar a API Security Command Center
Para ativar a API Security Command Center, faça o seguinte:
Acesse a página Biblioteca de APIs no Google Cloud console.
Selecione o projeto em que você quer ativar a API Security Command Center.
Na caixa Pesquisa, digite
Security Command Center
e clique no Security Command Center nos resultados da pesquisa.Na página da API exibida, clique em Ativar.
A API Security Command Center está ativada no seu projeto. Em seguida, use a CLI gcloud para criar uma nova configuração de exportação para o BigQuery.
Como conceder acesso de perímetro no VPC Service Controls
Se você usa o VPC Service Controls e seu conjunto de dados do BigQuery faz parte de um projeto dentro de um perímetro de serviço, é necessário conceder acesso a projetos para exportar as descobertas.
Para conceder acesso a projetos, crie
regras de entrada e saída para
os principais e os projetos de onde você está exportando as descobertas. As regras
permitem o acesso a recursos protegidos e permitem que o BigQuery verifique se
os usuários têm a permissão setIamPolicy
no conjunto de dados do
BigQuery.
Antes de configurar uma nova exportação para o BigQuery
Console
-
No Google Cloud console, acesse a página VPC Service Controls.
- Selecione a organização ou o projeto.
- Se você selecionou uma organização, clique em Selecionar uma política de acesso e selecione a política de acesso associada ao perímetro que você quer atualizar.
-
Clique no nome do perímetro que você quer atualizar.
Para encontrar o perímetro de serviço que você precisa modificar, verifique nos registros as entradas que mostram violações
RESOURCES_NOT_IN_SAME_SERVICE_PERIMETER
. Nessas entradas, verifique o camposervicePerimeterName
:accessPolicies/ACCESS_POLICY_ID/servicePerimeters/SERVICE_PERIMETER_NAME
- Clique em Editar perímetro.
- Clique em Política de saída.
- Clique em Adicionar uma regra de saída.
-
Na seção DE, defina os seguintes detalhes:
- Em Identidade, selecione Selecionar identidades e grupos.
- Clique em Adicionar identidades.
-
Insira o endereço de e-mail do principal usado para chamar a API Security Command Center.
- Selecione o principal ou pressione ENTER e clique em Adicionar identidades.
-
Na seção TO, defina os seguintes detalhes:
- Em Projeto, selecione Todos os projetos.
- Em Operações ou papéis do IAM, selecione Selecionar operações.
-
Clique em Adicionar operações e adicione as seguintes operações:
- Adicione o serviço bigquery.googleapis.com.
- Clique em Todos os métodos.
- Clique em Adicionar todos os métodos.
- Adicione o serviço bigquery.googleapis.com.
- Clique em Política de entrada.
- Clique em Adicionar uma regra de entrada.
-
Na seção DE, defina os seguintes detalhes:
- Em Identidade, selecione Selecionar identidades e grupos.
- Clique em Adicionar identidades.
-
Insira o endereço de e-mail do principal usado para chamar a API Security Command Center.
- Selecione o principal ou pressione ENTER e clique em Adicionar identidades.
- Em Origens, selecione Todas as origens.
-
Na seção TO, defina os seguintes detalhes:
- Em Projeto, selecione Selecionar projetos.
- Clique em Adicionar projetos e adicione o projeto que contém o conjunto de dados do BigQuery.
- Em Operações ou papéis do IAM, selecione Selecionar operações.
-
Clique em Adicionar operações e adicione as seguintes operações:
- Adicione o serviço bigquery.googleapis.com.
- Clique em Todos os métodos.
- Clique em Adicionar todos os métodos.
- Adicione o serviço bigquery.googleapis.com.
- Clique em Salvar.
gcloud
-
Se um projeto de cota ainda não tiver sido definido, faça isso. Escolha um projeto com a API Access Context Manager ativada.
gcloud config set billing/quota_project QUOTA_PROJECT_ID
Substitua
QUOTA_PROJECT_ID
pelo ID do projeto que você quer usar para faturamento e cota. -
Crie um arquivo chamado
egress-rule.yaml
com o seguinte conteúdo:- egressFrom: identities: - PRINCIPAL_ADDRESS egressTo: operations: - serviceName: bigquery.googleapis.com methodSelectors: - method: '*' resources: - '*'
Substitua
PRINCIPAL_ADDRESS
pelo endereço do principal usado para chamar a API Security Command Center. -
Crie um arquivo chamado
ingress-rule.yaml
com o seguinte conteúdo:- ingressFrom: identities: - PRINCIPAL_ADDRESS sources: - accessLevel: '*' ingressTo: operations: - serviceName: bigquery.googleapis.com methodSelectors: - method: '*' resources: - '*'
Substitua
PRINCIPAL_ADDRESS
pelo endereço do principal usado para chamar a API Security Command Center. -
Adicione a regra de saída ao perímetro:
gcloud access-context-manager perimeters update PERIMETER_NAME \ --set-egress-policies=egress-rule.yaml
Substitua:
-
PERIMETER_NAME
: o nome do perímetro. Por exemplo:accessPolicies/1234567890/servicePerimeters/example_perimeter
Para encontrar o perímetro de serviço que você precisa modificar, verifique nos registros as entradas que mostram violações
RESOURCES_NOT_IN_SAME_SERVICE_PERIMETER
. Nessas entradas, verifique o camposervicePerimeterName
:accessPolicies/ACCESS_POLICY_ID/servicePerimeters/SERVICE_PERIMETER_NAME
-
-
Adicione a regra de entrada ao perímetro:
gcloud access-context-manager perimeters update PERIMETER_NAME \ --set-ingress-policies=ingress-rule.yaml
Substitua:
-
PERIMETER_NAME
: o nome do perímetro. Por exemplo:accessPolicies/1234567890/servicePerimeters/example_perimeter
Para encontrar o perímetro de serviço que você precisa modificar, verifique nos registros as entradas que mostram violações
RESOURCES_NOT_IN_SAME_SERVICE_PERIMETER
. Nessas entradas, verifique o camposervicePerimeterName
:accessPolicies/ACCESS_POLICY_ID/servicePerimeters/SERVICE_PERIMETER_NAME
-
Consulte Regras de entrada e saída para mais informações.
Configurar uma nova exportação para o BigQuery
Nesta etapa, você vai criar uma configuração de exportação para exportar as descobertas para uma instância do BigQuery. Você pode criar configurações de exportação no nível do projeto, da pasta ou da organização. Por exemplo, se você quiser exportar as descobertas de um projeto para um conjunto de dados do BigQuery, crie uma configuração de exportação no nível do projeto para exportar somente as descobertas relacionadas a esse projeto. Também é possível especificar filtros para exportar apenas determinadas descobertas.
Certifique-se de criar as configurações de exportação no nível apropriado. Por
exemplo, se você criar uma configuração de exportação no Projeto B para exportar descobertas
do Projeto A e definir filtros como
resource.project_display_name: project-a-id
, a configuração não vai exportar
nenhuma descoberta.
É possível criar no máximo 500 configurações de exportação para o BigQuery na organização. Você pode usar o mesmo conjunto de dados para várias configurações de exportação. Se você usar o mesmo conjunto de dados, todas as atualizações serão feitas na mesma tabela de descobertas.
Quando você cria a primeira configuração de exportação, uma conta de serviço é
criada automaticamente. Essa conta de serviço é necessária para criar ou atualizar a tabela de descobertas em um conjunto de dados e exportar as descobertas para a tabela.
Ela tem o formato service-org-ORGANIZATION_ID@gcp-sa-scc-notification.iam.gservicaccount.com
e recebe o papel de editor de dados do BigQuery (roles/bigquery.dataEditor
) no nível do conjunto de dados do BigQuery.
No console Google Cloud , alguns recursos BigQueryExport
podem ter um rótulo Legacy, o que indica que eles foram criados com a API Security Command Center v1. É possível gerenciar esses
recursos BigQueryExport
com o console Google Cloud , a CLI gcloud, a API Security Command Center v1 ou as bibliotecas de cliente v1 do Security Command Center.
Para gerenciar esses recursos BigQueryExport
com a CLI gcloud, não especifique
um local ao executar o comando da CLI gcloud.
gcloud
Acesse o console do Google Cloud .
Selecione o projeto para o qual você ativou a API Security Command Center.
Clique em Ativar o Cloud Shell.
Para criar uma nova configuração de exportação, execute este comando:
gcloud scc bqexports create BIGQUERY_EXPORT \ --dataset=DATASET_NAME \ --folder=FOLDER_ID | --organization=ORGANIZATION_ID | --project=PROJECT_ID \ --location=LOCATION \ [--description=DESCRIPTION] \ [--filter=FILTER]
Substitua:
BIGQUERY_EXPORT
por um nome para esta configuração de exportação.DATASET_NAME
pelo nome do conjunto de dados do BigQuery, por exemplo,projects/PROJECT_ID/datasets/DATASET_ID
.FOLDER_ID
,ORGANIZATION_ID
ouPROJECT_ID
pelo nome da pasta, organização ou projeto. Defina uma dessas opções. Para pastas e organizações, o nome é o ID da pasta ou da organização. Para projetos, o nome é o número ou o ID do projeto.LOCATION
: se a residência de dados estiver ativada, o local do Security Command Center em que uma configuração de exportação será criada. Se a residência de dados não estiver ativada, use o valorglobal
.DESCRIPTION
com uma descrição legível da configuração de exportação. Essa variável é opcional.FILTER
por uma expressão que define quais descobertas serão incluídas na exportação. Por exemplo, se você quiser filtrar a categoria XSS_SCRIPTING, digite"category=\"XSS_SCRIPTING\"
. Essa variável é opcional.
Terraform
Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform. Para mais informações, consulte a documentação de referência do provedor Terraform.
Crie uma configuração de exportação para uma organização:
Crie uma configuração de exportação para uma pasta:
Crie uma configuração de exportação para um projeto:
Java
Para autenticar no Security Command Center, configure o Application Default Credentials. Para mais informações, consulte Configurar o ADC para um ambiente de desenvolvimento local.
Python
Para autenticar no Security Command Center, configure o Application Default Credentials. Para mais informações, consulte Configurar o ADC para um ambiente de desenvolvimento local.
Você vai encontrar as descobertas no seu conjunto de dados do BigQuery cerca de 15 minutos depois de criar a configuração de exportação. Depois que a tabela do BigQuery é criada, todas as descobertas novas e atualizadas que correspondem ao filtro e escopo aparecem quase em tempo real na tabela.
Para conferi-las, consulte Conferir descobertas.
Criar uma regra de entrada para a nova exportação para o BigQuery
Se você usa o VPC Service Controls e o conjunto de dados do BigQuery faz parte de um projeto dentro de um perímetro de serviço, é necessário criar uma regra de entrada para uma nova exportação para o BigQuery.
Console
-
Abra novamente o perímetro de serviço da seção anterior.
- Clique em Política de entrada.
- Clique em Adicionar uma regra de entrada.
-
Na seção DE, defina os seguintes detalhes:
- Em Identidade, selecione Selecionar identidades e grupos.
- Clique em Adicionar identidades.
-
Digite o endereço de e-mail do agente de serviço de configuração de exportação do BigQuery. O endereço do agente de serviço tem o seguinte formato:
service-org-ORGANIZATION_ID@gcp-sa-scc-notification.iam.gserviceaccount.com
Substitua
ORGANIZATION_ID
pelo ID da organização. - Selecione o agente de serviço ou pressione ENTER e clique em Adicionar identidades.
- Em Origens, selecione Todas as origens.
-
Na seção TO, defina os seguintes detalhes:
- Em Projeto, selecione Selecionar projetos.
- Clique em Adicionar projetos e adicione o projeto que contém o conjunto de dados do BigQuery.
- Em Operações ou papéis do IAM, selecione Selecionar operações.
-
Clique em Adicionar operações e adicione as seguintes operações:
- Adicione o serviço bigquery.googleapis.com.
- Clique em Todos os métodos.
- Clique em Adicionar todos os métodos.
- Adicione o serviço bigquery.googleapis.com.
- Clique em Salvar.
gcloud
-
Se um projeto de cota ainda não tiver sido definido, faça isso. Escolha um projeto com a API Access Context Manager ativada.
gcloud config set billing/quota_project QUOTA_PROJECT_ID
Substitua
QUOTA_PROJECT_ID
pelo ID do projeto que você quer usar para faturamento e cota. -
Crie um arquivo chamado
ingress-rule.yaml
com o seguinte conteúdo:- ingressFrom: identities: - serviceAccount:service-org-ORGANIZATION_ID@gcp-sa-scc-notification.iam.gserviceaccount.com sources: - accessLevel: '*' ingressTo: operations: - serviceName: bigquery.googleapis.com methodSelectors: - method: '*' resources: - '*'
Substitua
ORGANIZATION_ID
pelo ID da organização. -
Adicione a regra de entrada ao perímetro:
gcloud access-context-manager perimeters update PERIMETER_NAME \ --set-ingress-policies=ingress-rule.yaml
Substitua:
-
PERIMETER_NAME
: o nome do perímetro. Por exemplo:accessPolicies/1234567890/servicePerimeters/example_perimeter
Para encontrar o perímetro de serviço que você precisa modificar, verifique nos registros as entradas que mostram violações
RESOURCES_NOT_IN_SAME_SERVICE_PERIMETER
. Nessas entradas, verifique o camposervicePerimeterName
:accessPolicies/ACCESS_POLICY_ID/servicePerimeters/SERVICE_PERIMETER_NAME
-
Consulte Regras de entrada e saída para mais informações.
Os projetos, usuários e contas de serviço selecionados agora podem acessar os recursos protegidos e exportar resultados.
Se você seguiu todas as etapas deste guia e as exportações estão funcionando corretamente, agora é possível excluir o seguinte:
- A regra de entrada do principal
- A regra de saída para a principal
Essas regras só eram necessárias para configurar a exportação. No entanto, para que as configurações de exportação continuem funcionando, mantenha a regra de entrada criada anteriormente, que permite que o Security Command Center exporte descobertas para seu conjunto de dados do BigQuery atrás do perímetro de serviço.
Ver os detalhes de uma configuração de exportação
gcloud
Acesse o console do Google Cloud .
Selecione o projeto para o qual você ativou a API Security Command Center.
Clique em Ativar o Cloud Shell.
Para verificar os detalhes da configuração de exportação, execute este comando:
gcloud scc bqexports get BIGQUERY_EXPORT \ --folder=FOLDER_ID | --organization=ORGANIZATION_ID | --project=PROJECT_ID \ --location=LOCATION
Substitua:
BIGQUERY_EXPORT
pelo nome desta configuração de exportação.FOLDER_ID
,ORGANIZATION_ID
ouPROJECT_ID
pelo nome da pasta, organização ou projeto. Defina uma dessas opções. Para pastas e organizações, o nome é o ID da pasta ou da organização. Para projetos, o nome é o número ou o ID do projeto.LOCATION
: se a residência de dados estiver ativada, o local do Security Command Center em que uma configuração de exportação será criada. Se a residência de dados não estiver ativada, use o valorglobal
.Por exemplo, para receber uma configuração de exportação chamada
my-bq-export
de uma organização com um ID da organização definido como123
, execute:gcloud scc bqexports get my-bq-export \ --organization=123 \ --location=global
Atualizar uma configuração de exportação
Quando necessário, é possível modificar o filtro, o conjunto de dados e a descrição de uma configuração de exportação existente. Não é possível mudar o nome da configuração de exportação.
gcloud
Acesse o console do Google Cloud .
Selecione o projeto para o qual você ativou a API Security Command Center.
Clique em Ativar o Cloud Shell.
Para atualizar uma configuração de exportação, execute este comando:
gcloud scc bqexports update BIGQUERY_EXPORT \ --dataset=DATASET_NAME \ --folder=FOLDER_ID | --organization=ORGANIZATION_ID | --project=PROJECT_ID \ --location=LOCATION \ [--description=DESCRIPTION] \ [--filter=FILTER]
Substitua:
BIGQUERY_EXPORT
pelo nome da configuração de exportação que você quer atualizar.DATASET_NAME
pelo nome do conjunto de dados do BigQuery, por exemplo,projects/PROJECT_ID/datasets/DATASET_ID
.FOLDER_ID
,ORGANIZATION_ID
ouPROJECT_ID
pelo nome da pasta, organização ou projeto. Defina uma dessas opções. Para pastas e organizações, o nome é o ID da pasta ou da organização. Para projetos, o nome é o número ou o ID do projeto.LOCATION
: se a residência de dados estiver ativada, o local do Security Command Center em que a configuração de exportação será atualizada. Se a residência de dados não estiver ativada, use o valorglobal
.DESCRIPTION
com uma descrição legível da configuração de exportação. Essa variável é opcional.FILTER
por uma expressão que define quais descobertas serão incluídas na exportação. Por exemplo, se você quiser filtrar a categoria XSS_SCRIPTING, digite"category=\"XSS_SCRIPTING\"
. Essa variável é opcional.
Ver todas as configurações de exportação
Você pode conferir todas as configurações de exportação na organização, na pasta ou no projeto.
gcloud
Acesse o console do Google Cloud .
Selecione o projeto para o qual você ativou a API Security Command Center.
Clique em Ativar o Cloud Shell.
Para listar as configurações de exportação, execute este comando:
gcloud scc bqexports list \ --folder=FOLDER_ID | --organization=ORGANIZATION_ID | --project=PROJECT_ID \ --location=LOCATION \ [--limit=LIMIT] \ [--page-size=PAGE_SIZE]
Substitua:
FOLDER_ID
,ORGANIZATION_ID
ouPROJECT_ID
pelo nome da pasta, organização ou projeto. Defina uma dessas opções. Para pastas e organizações, o nome é o ID da pasta ou da organização. Para projetos, o nome é o número ou o ID do projeto.Se você especificar um ID da organização, a lista vai incluir todas as configurações de exportação definidas nessa organização, inclusive as de níveis da pasta e do projeto. Se você especificar um ID de pasta, a lista vai incluir todas as configurações de exportação definidas no nível da pasta e nos projetos dentro dela. Se você especificar um número ou ID de projeto, a lista vai incluir todas as configurações de exportação apenas para esse projeto.
LOCATION
: se a residência de dados estiver ativada, o local do Security Command Center em que as configurações de exportação serão listadas. Se a residência de dados não estiver ativada, use o valorglobal
.LIMIT
pelo número de configurações de exportação que você quer ver. Essa variável é opcional.PAGE_SIZE
por um valor de tamanho de página. Essa variável é opcional.
Java
Para autenticar no Security Command Center, configure o Application Default Credentials. Para mais informações, consulte Configurar o ADC para um ambiente de desenvolvimento local.
Python
Para autenticar no Security Command Center, configure o Application Default Credentials. Para mais informações, consulte Configurar o ADC para um ambiente de desenvolvimento local.
Excluir uma configuração de exportação
Se você não precisar mais de uma configuração de exportação, será possível excluí-la.
gcloud
Acesse o console do Google Cloud .
Selecione o projeto para o qual você ativou a API Security Command Center.
Clique em Ativar o Cloud Shell.
Para excluir uma configuração de exportação, execute este comando:
gcloud scc bqexports delete BIGQUERY_EXPORT \ --folder=FOLDER_ID | --organization=ORGANIZATION_ID | --project=PROJECT_ID \ --location=LOCATION
Substitua:
BIGQUERY_EXPORT
pelo nome da configuração de exportação que você quer excluir.FOLDER_ID
,ORGANIZATION_ID
ouPROJECT_ID
pelo nome da pasta, organização ou projeto. Defina uma dessas opções. Para pastas e organizações, o nome é o ID da pasta ou da organização. Para projetos, o nome é o número ou o ID do projeto.LOCATION
: se a residência de dados estiver ativada, o local do Security Command Center em que a configuração de exportação será excluída. Se a residência de dados não estiver ativada, use o valorglobal
.Por exemplo, para excluir uma configuração de exportação chamada
my-bq-export
de uma organização com um ID da organização definido como123
, execute:gcloud scc bqexports delete my-bq-export \ --organization=123 \ --location=global
Java
Para autenticar no Security Command Center, configure o Application Default Credentials. Para mais informações, consulte Configurar o ADC para um ambiente de desenvolvimento local.
Python
Para autenticar no Security Command Center, configure o Application Default Credentials. Para mais informações, consulte Configurar o ADC para um ambiente de desenvolvimento local.
Depois de excluir a configuração de exportação, é possível remover os dados do Looker Studio. Para ver mais informações, consulte Remover, excluir e restaurar uma fonte de dados.
Analisar descobertas no BigQuery
Depois que você cria uma configuração de exportação, as novas descobertas são exportadas para o conjunto de dados do BigQuery no projeto especificado.
Para analisar as descobertas no BigQuery, faça o seguinte:
Acesse o projeto no BigQuery.
Selecione um projeto.
No painel Explorer, expanda o nó do projeto.
Expanda seu conjunto de dados.
Clique na tabela findings.
Na guia aberta, clique em Visualizar. Um conjunto de dados de amostra é exibido.
Consultas úteis
Nesta seção, você vai ver exemplos de consultas
para analisar os dados das descobertas. Nos exemplos a seguir, substitua
DATASET
pelo nome atribuído ao conjunto de dados e
PROJECT_ID
pelo nome do projeto do conjunto de dados.
Para resolver qualquer erro, consulte Mensagens de erro.
O número de novas descobertas criadas e atualizadas diariamente
SELECT
FORMAT_DATETIME("%Y-%m-%d", event_time) AS date,
count(DISTINCT finding_id)
FROM `PROJECT_ID.DATASET.findings`
GROUP BY date
ORDER BY date DESC
O registro mais recente de cada descoberta
SELECT
* EXCEPT(row)
FROM (
SELECT *, ROW_NUMBER() OVER(
PARTITION BY finding_id
ORDER BY event_time DESC, finding.mute_update_time DESC
) AS row
FROM `PROJECT_ID.DATASET.findings`
)
WHERE row = 1
Descobertas atuais que estão ativas, ordenadas por tempo
WITH latestFindings AS (
SELECT * EXCEPT(row)
FROM (
SELECT *, ROW_NUMBER() OVER(
PARTITION BY finding_id
ORDER BY event_time DESC, finding.mute_update_time DESC
) AS row
FROM `PROJECT_ID.DATASET.findings`
) WHERE row = 1
)
SELECT finding_id, event_time, finding
FROM latestFindings
WHERE finding.state = "ACTIVE"
ORDER BY event_time DESC
Descobertas atuais em um projeto
WITH latestFindings AS (
SELECT * EXCEPT(row)
FROM (
SELECT *, ROW_NUMBER() OVER(
PARTITION BY finding_id
ORDER BY event_time DESC, finding.mute_update_time DESC
) AS row
FROM `PROJECT_ID.DATASET.findings`
) WHERE row = 1
)
SELECT finding_id, event_time, finding, resource
FROM latestFindings
WHERE resource.project_display_name = 'PROJECT'
Substitua PROJECT
pelo nome do projeto.
Descobertas atuais em uma pasta
WITH latestFindings AS(
SELECT * EXCEPT(row)
FROM (
SELECT *, ROW_NUMBER() OVER(
PARTITION BY finding_id
ORDER BY event_time DESC, finding.mute_update_time DESC
) AS row
FROM `PROJECT_ID.DATASET.findings`
) WHERE row = 1
)
SELECT finding_id, event_time, finding, resource
FROM latestFindings
CROSS JOIN UNNEST(resource.folders) AS folder
WHERE folder.resource_folder_display_name = 'FOLDER'
Substitua FOLDER
pelo nome da pasta.
Descobertas atuais do scanner Logging Scanner
WITH latestFindings AS (
SELECT * EXCEPT(row)
FROM (
SELECT *, ROW_NUMBER() OVER(
PARTITION BY finding_id
ORDER BY event_time DESC, finding.mute_update_time DESC
) AS row
FROM `PROJECT_ID.DATASET.findings`
) WHERE row = 1
)
SELECT finding_id, event_time, finding
FROM latestFindings
CROSS JOIN UNNEST(finding.source_properties) AS source_property
WHERE source_property.key = "ScannerName"
AND source_property.value = "LOGGING_SCANNER"
Descobertas ativas atuais do tipo Persistence: IAM Anomalous Grant
WITH latestFindings AS(
SELECT * EXCEPT(row)
FROM (
SELECT *, ROW_NUMBER() OVER(
PARTITION BY finding_id
ORDER BY event_time DESC, finding.mute_update_time DESC
) AS row
FROM `PROJECT_ID.DATASET.findings`
) WHERE row = 1
)
SELECT finding_id, event_time, finding
FROM latestFindings
WHERE finding.state = "ACTIVE"
AND finding.category = "Persistence: IAM Anomalous Grant"
Correlacionar descobertas ativas de um determinado tipo com os Registros de auditoria do Cloud
Este exemplo de consulta ajuda a investigar descobertas de concessão de IAM anômalas da detecção de ameaças de eventos usando os registros de auditoria do Cloud, mostrando a sequência de ações de atividade do administrador durante a janela de tempo que precede e sucede a ação de concessão de IAM anômala. A consulta a seguir correlaciona os registros de atividade do administrador entre 1 hora antes e 1 hora depois do carimbo de data/hora da descoberta.
WITH latestFindings AS(
SELECT * EXCEPT(row)
FROM (
SELECT *, ROW_NUMBER() OVER(
PARTITION BY finding_id
ORDER BY event_time DESC, finding.mute_update_time DESC
) AS row
FROM `PROJECT_ID.DATASET.findings`
) WHERE row = 1
)
SELECT
finding_id,
ANY_VALUE(event_time) as event_time,
ANY_VALUE(finding.access.principal_email) as grantor,
JSON_VALUE_ARRAY(ANY_VALUE(finding.source_properties_json), '$.properties.sensitiveRoleGrant.members') as grantees,
ARRAY_AGG(
STRUCT(
timestamp,
IF(timestamp < event_time, 'before', 'after') as timeline,
protopayload_auditlog.methodName,
protopayload_auditlog.resourceName,
protopayload_auditlog.serviceName
)
ORDER BY timestamp ASC
) AS recent_activity
FROM (
SELECT
f.*,
a.*,
FROM latestFindings AS f
LEFT JOIN `PROJECT_ID.DATASET.cloudaudit_googleapis_com_activity` AS a
ON a.protopayload_auditlog.authenticationInfo.principalEmail = f.finding.access.principal_email
WHERE f.finding.state = "ACTIVE"
AND f.finding.category = "Persistence: IAM Anomalous Grant"
AND a.timestamp >= TIMESTAMP_SUB(f.event_time, INTERVAL 1 HOUR)
AND a.timestamp <= TIMESTAMP_ADD(f.event_time, INTERVAL 1 HOUR)
)
GROUP BY
finding_id
ORDER BY
event_time DESC
O resultado será assim:

Criar gráficos no Looker Studio
O Looker Studio permite criar relatórios e painéis interativos.
Em geral, são cobrados os custos de uso do BigQuery ao acessar o BigQuery pelo Looker Studio. Saiba mais em Como visualizar dados do BigQuery com o Looker Studio.
Para criar um gráfico que visualize os dados de descobertas por gravidade e categoria, faça o seguinte:
- Abra o Looker Studio e faça login.
- Se solicitado, forneça informações adicionais e configure outras preferências. Leia os Termos de Serviço e, se você concordar, prossiga.
- Clique em Relatório em branco.
- Na guia Conectar aos dados, clique no card BigQuery.
- Se necessário, autorize o Looker Studio a acessar projetos do BigQuery.
Conecte-se aos dados de descoberta:
- Em Projeto, selecione o projeto para o conjunto de dados. Ou, na guia Meus projetos, insira o ID do projeto para pesquisar.
- Em Conjunto de dados, clique no nome do conjunto de dados.
- Em Tabela, clique em findings.
- Clique em Add.
- Na caixa de diálogo, clique em Adicionar ao relatório.
Após adicionar o relatório, clique em Adicionar um gráfico.
Clique em Gráfico de colunas empilhadas e depois na área em que você quer colocar o gráfico.
No painel Gráfico > Barra, na guia Dados, defina os seguintes campos:
- No campo Dimensão, selecione finding.severity.
- No campo Dimensão de detalhamento, selecione finding.category.
O relatório é atualizado para mostrar várias colunas com descobertas divididas por gravidade e categoria.
A seguir
Saiba como executar uma consulta no BigQuery.