Integrar o BigQuery ao Google SecOps

Neste documento, explicamos como integrar o BigQuery ao Google Security Operations.

Casos de uso

A integração do BigQuery usa os recursos do Google SecOps para oferecer suporte aos seguintes casos de uso:

  • Enriquecimento de inteligência contra ameaças: enriqueça automaticamente os alertas de segurança com dados de inteligência contra ameaças armazenados no BigQuery para avaliar a gravidade e a credibilidade de possíveis ameaças.

  • Análise do comportamento do usuário: identifique atividades anômalas do usuário analisando registros históricos armazenados no BigQuery para detectar ameaças internas e contas comprometidas.

  • Análise de data lake de segurança: use os recursos de consulta do BigQuery para analisar grandes volumes de dados de segurança agregados de várias fontes para melhorar a busca de ameaças.

  • Análise avançada de ML/IA: crie modelos personalizados para defesa preditiva e pontuação de riscos automatizada usando dados históricos de segurança e o BigQuery ML.

  • Retenção de dados de longo prazo: arquive dados de incidentes resolvidos no BigQuery para armazenamento de longo prazo econômico, oferecendo suporte a auditorias de conformidade e forenses.

Antes de começar

Antes de configurar a integração do BigQuery no Google SecOps, conclua as seguintes etapas de pré-requisito:

  1. Conceda os papéis necessários do Identity and Access Management à sua conta de serviço.

  2. Crie uma conta de serviço.

  3. Escolha e configure um dos seguintes métodos de autenticação:

Conceder papéis do IAM

Conceder as permissões necessárias à sua conta de serviço permite que a integração execute jobs e acesse seus dados. Os papéis padrão a seguir são gerenciados pelo Google Cloud e são atualizados automaticamente se os requisitos da API mudarem. Para atribuir esses papéis à conta de serviço, siga estas etapas:

  1. No console do Google Cloud , acesse IAM.

    Acessar IAM

  2. Localize sua conta de serviço na lista de principais e clique em Editar principal (editar).

  3. Clique em Adicionar outro papel e selecione o seguinte:

    • Usuário do BigQuery (roles/bigquery.user): permite que a integração execute jobs, incluindo consultas, no projeto.

    • Visualizador de dados do BigQuery (roles/bigquery.dataViewer): permite que a integração leia dados e metadados de conjuntos de dados e tabelas.

    • Consumidor do Service Usage (roles/serviceusage.serviceUsageConsumer): é obrigatório se você configurar Quota Project ID nas configurações de integração.

  4. Clique em Salvar.

Criar uma conta de serviço

  1. No console do Google Cloud , acesse IAM e administrador > Contas de serviço.

    Acessar a página "Contas de serviço"

  2. Clique em addCriar conta de serviço.

  3. Insira um nome e uma descrição e clique em Criar e continuar.

  4. Na etapa Conceder acesso a essa conta de serviço ao projeto, adicione os papéis identificados na etapa anterior.

  5. Clique em Concluído. Anote o endereço de e-mail da conta de serviço.

Configurar credenciais da Identidade da carga de trabalho

A Identidade da carga de trabalho é a abordagem recomendada, porque usa tokens de acesso de curta duração com a identidade temporária de conta de serviço.

Identificar a identidade exclusiva da instância

Para estabelecer uma conexão, é necessário conceder à instância do Google SecOps permissão para personificar sua conta de serviço.

  1. No Google SecOps, acesse Hub de conteúdo > Integrações de resposta.

  2. Selecione a integração do BigQuery e insira o e-mail da conta de serviço no campo Workload Identity Email.

  3. Clique em Salvar > Testar. O teste deve falhar.

  4. Clique no botão close_small ao lado de Teste e localize o e-mail de identidade que começa com gke-init-python@... ou soar-python@....

  5. Copie esse endereço de e-mail exclusivo.

Autorize a identidade da instância em Google Cloud

  1. No console do Google Cloud , acesse IAM e administrador > Contas de serviço.

    Acessar a página "Contas de serviço"

  2. Selecione a conta de serviço de destino e acesse Permissões > Conceder acesso.

  3. Cole o endereço de e-mail exclusivo no campo Novos principais e atribua o papel Criador de token da conta de serviço (roles/iam.serviceAccountTokenCreator).

Configurar uma chave JSON

Os arquivos de chave secreta estáticos e de longa duração exigem rotação manual. Use esse método somente se a autenticação da Identidade da carga de trabalho não estiver disponível.

  1. No console do Google Cloud , acesse IAM e administrador > Contas de serviço e selecione sua conta de serviço.

    Acessar a página "Contas de serviço"

  2. Acesse a guia Chaves e clique em Adicionar chave > Criar nova chave.

  3. Selecione JSON e clique em Criar. O download do arquivo é feito automaticamente no seu computador.

Configurar parâmetros individuais manuais

Se você optar por inserir as credenciais manualmente, mantenha o arquivo de chave JSON salvo aberto em um editor de texto para copiar os valores individuais necessários nas configurações de integração.

Parâmetros de integração

Para estabelecer uma conexão entre o Google SecOps e o BigQuery, configure os parâmetros a seguir. A integração é compatível com três caminhos de autenticação distintos. Escolha um dos métodos a seguir para fornecer credenciais.

  • Identidade da carga de trabalho: usa Workload Identity Email e Quota Project ID.

  • Arquivo JSON da conta de serviço: usa Service Account Json File Content para fornecer a chave inteira de uma só vez.

  • Parâmetros individuais manuais: usa campos separados copiados manualmente de uma chave JSON.

Parâmetro Descrição
API Root

Opcional.

A raiz da API da instância do BigQuery (por exemplo, https://bigquery.googleapis.com).

Workload Identity Email

Opcional.

O endereço de e-mail do cliente da sua conta de serviço. Use isso para autenticação da Identidade da carga de trabalho.

Service Account Json File Content

Opcional.

O conteúdo completo do arquivo JSON da chave da conta de serviço.

Se você configurar esse parâmetro, a integração vai ignorar os parâmetros de credenciais individuais.

Quota Project ID

Opcional.

O ID do projeto usado para uso e faturamento da API. Esse parâmetro é obrigatório ao usar a autenticação da Identidade da carga de trabalho.

Project ID

Opcional.

O ID do projeto de destino no BigQuery.

Verify SSL

Obrigatório.

Valida o certificado SSL da conexão. Ativado por padrão.

Parâmetros de credenciais individuais

Use os parâmetros a seguir apenas se estiver inserindo credenciais manualmente, em vez de usar o conteúdo completo do arquivo JSON ou uma Identidade da carga de trabalho.

Parâmetro Descrição
Account Type

Opcional.

O valor encontrado no campo type da chave JSON (geralmente service_account).

Private Key ID

Opcional.

O valor encontrado no campo private_key_id da chave JSON.

Private Key

Opcional.

O valor encontrado no campo private_key da chave JSON.

Client Email

Opcional.

O valor encontrado no campo client_email da chave JSON.

Client ID

Opcional.

O valor encontrado no campo client_id da chave JSON.

Auth URI

Opcional.

O valor encontrado no campo auth_uri da chave JSON.

O valor padrão é https://accounts.google.com/o/oauth2/auth.

Token URI

Opcional.

O valor encontrado no campo token_uri da chave JSON.

O valor padrão é https://oauth2.googleapis.com/token.

Auth Provider X509 URL

Opcional.

O valor encontrado no campo auth_provider_x509_cert_url da sua chave JSON.

Client X509 URL

Opcional.

O valor encontrado no campo client_x509_cert_url da chave JSON.

Para instruções sobre como configurar uma integração no Google SecOps, consulte Configurar integrações.

Se necessário, você pode fazer mudanças depois. Depois de configurar uma instância de integração, é possível usá-la em playbooks. Para mais informações sobre como configurar e oferecer suporte a várias instâncias, consulte Como oferecer suporte a várias instâncias.

Ações

Para mais informações sobre ações, consulte Responder a ações pendentes na sua mesa de trabalho e Executar uma ação manual no seu caso.

Ping

Use a ação Ping para testar a conectividade com o BigQuery.

Essa ação não é executada em entidades do Google SecOps.

Entradas da ação

Nenhuma.

Saídas da ação

A ação Ping fornece as seguintes saídas:

Tipo de saída da ação Disponibilidade
Anexo do Painel de Casos Indisponível
Link do Painel de Casos Indisponível
Tabela do painel de casos Indisponível
Tabela de enriquecimento Indisponível
Resultado JSON Indisponível
Mensagens de saída Disponível
Resultado do script Disponível
Mensagens de saída

A ação Ping pode retornar as seguintes mensagens de saída:

Mensagem de resposta Descrição da mensagem
Successfully connected to the Google BigQuery server with the provided connection parameters! Ação concluída.
Failed to connect to the Google BigQuery server! Error is ERROR_REASON

Falha na ação.

Verifique a conexão com o servidor, os parâmetros de entrada ou as credenciais.

Resultado do script

A tabela a seguir lista o valor da saída do resultado do script ao usar a ação Ping:

Nome do resultado do script Valor
is_success True ou False

Executar consulta personalizada

Use a ação Executar consulta personalizada para executar consultas personalizadas no BigQuery.

Essa ação não é executada em entidades do Google SecOps.

Entradas da ação

A ação Executar consulta personalizada requer os seguintes parâmetros:

Parâmetros Descrição
Query

Obrigatório.

A consulta SQL a ser executada.

Max Results To Return

Opcional.

O número de resultados a serem retornados para cada resposta.

O valor padrão é 50.

Saídas da ação

A ação Executar consulta personalizada fornece as seguintes saídas:

Tipo de saída da ação Disponibilidade
Anexo do Painel de Casos Indisponível
Link do Painel de Casos Indisponível
Tabela do painel de casos Indisponível
Tabela de enriquecimento Indisponível
Resultado JSON Disponível
Mensagens de saída Disponível
Resultado do script Disponível
Resultado JSON

O exemplo a seguir mostra a saída do resultado JSON recebida ao usar a ação Executar consulta personalizada:

{
    "Airport_Code": "CODE",
    "Airport_Name": "NAME",
    "Time_Label": "2015/05",
    "Time_Month": 5,
    "Time_Month_Name": "May",
    "Time_Year": 2015,
    "Statistics___of_Delays_Carrier": 351,
    "Statistics___of_Delays_Late_Aircraft": 546,
    "Statistics___of_Delays_National_Aviation_System": 292,
    "Statistics___of_Delays_Security": 2,
    "Statistics___of_Delays_Weather": 100,
    "Statistics_Carriers_Names": "Example Air Lines Inc., Example Airlines Co.",
    "Statistics_Carriers_Total": 3,
    "Statistics_Flights_Cancelled": 88,
    "Statistics_Flights_Delayed": 1289,
    "Statistics_Flights_Diverted": 32,
    "Statistics_Flights_On_Time": 6182,
    "Statistics_Flights_Total": 7591,
    "Statistics_Minutes_Delayed_Carrier": 19332,
    "Statistics_Minutes_Delayed_Late_Aircraft": 34376,
    "Statistics_Minutes_Delayed_National_Aviation_System": 12346,
    "Statistics_Minutes_Delayed_Security": 48,
    "Statistics_Minutes_Delayed_Total": 76163,
    "Statistics_Minutes_Delayed_Weather": 100061
}
Mensagens de saída

A ação Executar consulta personalizada pode retornar as seguintes mensagens de saída:

Mensagem de resposta Descrição da mensagem
Successfully executed query in Google BigQuery! Ação concluída.
Error executing action "Run Custom Query". Reason: ERROR_REASON

Falha na ação.

Verifique a conexão com o servidor, os parâmetros de entrada ou as credenciais.

Resultado do script

A tabela a seguir lista o valor da saída do resultado do script ao usar a ação Executar consulta personalizada:

Nome do resultado do script Valor
is_success True ou False

Executar consulta SQL

Use a ação Executar consulta SQL para executar consultas no BigQuery.

Essa ação não é executada em entidades do Google SecOps.

Entradas da ação

A ação Executar consulta SQL requer os seguintes parâmetros:

Parâmetros Descrição
Dataset Name

Obrigatório.

O nome do conjunto de dados a ser usado ao executar consultas.

Query

Obrigatório.

A consulta SQL a ser executada.

Max Results To Return

Opcional.

O número de resultados a serem retornados para cada resposta.

O valor padrão é 50.

Saídas da ação

A ação Executar consulta SQL fornece as seguintes saídas:

Tipo de saída da ação Disponibilidade
Anexo do Painel de Casos Indisponível
Link do Painel de Casos Indisponível
Tabela do painel de casos Indisponível
Tabela de enriquecimento Indisponível
Resultado JSON Indisponível
Mensagens de saída Disponível
Resultado do script Disponível
Resultado JSON

O exemplo a seguir descreve a saída do resultado JSON recebida ao usar a ação Executar consulta SQL:

{
    "Airport_Code": "CODE",
    "Airport_Name": "NAME",
    "Time_Label": "2015/05",
    "Time_Month": 5,
    "Time_Month_Name": "May",
    "Time_Year": 2015,
    "Statistics___of_Delays_Carrier": 351,
    "Statistics___of_Delays_Late_Aircraft": 546,
    "Statistics___of_Delays_National_Aviation_System": 292,
    "Statistics___of_Delays_Security": 2,
    "Statistics___of_Delays_Weather": 100,
    "Statistics_Carriers_Names": "Example Airlines Inc.,Example Airlines Co.",
    "Statistics_Carriers_Total": 3,
    "Statistics_Flights_Cancelled": 88,
    "Statistics_Flights_Delayed": 1289,
    "Statistics_Flights_Diverted": 32,
    "Statistics_Flights_On_Time": 6182,
    "Statistics_Flights_Total": 7591,
    "Statistics_Minutes_Delayed_Carrier": 19332,
    "Statistics_Minutes_Delayed_Late_Aircraft": 34376,
    "Statistics_Minutes_Delayed_National_Aviation_System": 12346,
    "Statistics_Minutes_Delayed_Security": 48,
    "Statistics_Minutes_Delayed_Total": 76163,
    "Statistics_Minutes_Delayed_Weather": 100061
}
Mensagens de saída

A ação Executar consulta SQL pode retornar as seguintes mensagens de saída:

Mensagem de resposta Descrição da mensagem
Successfully executed query in the BigQuery dataset DATASET_NAME. Ação concluída.
Error executing action "Run SQL Query". Reason: ERROR_REASON

Falha na ação.

Verifique a conexão com o servidor, os parâmetros de entrada ou as credenciais.

Resultado do script

A tabela a seguir lista o valor da saída do resultado do script ao usar a ação Executar consulta SQL:

Nome do resultado do script Valor
is_success True ou False

Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.