Integrar CSV com o Google SecOps

Neste documento, descrevemos como integrar o CSV ao Google Security Operations.

Este documento explica como integrar o CSV ao Google Security Operations.

Casos de uso

No Google SecOps, a integração de CSV é compatível com os seguintes casos de uso:

  • Busca de ameaças baseada em arquivos: pesquise rapidamente em arquivos de registro CSV locais ou remotos strings específicas ou entidades mal-intencionadas para identificar ameaças registradas no histórico.

  • Geração automatizada de alertas: ingira automaticamente registros de sistemas legados que geram dados no formato CSV, convertendo-os em alertas acionáveis com mapeamento de gravidade personalizado.

  • Portabilidade de dados e relatórios: transforme de forma programática os resultados JSON de outras ações do playbook em formato CSV para exportação simplificada para ferramentas de relatórios externas ou armazenamento local.

  • Enriquecimento automatizado de entidades: use arquivos CSV como uma fonte de inteligência contra ameaças local para enriquecer automaticamente as entidades e marcá-las como suspeitas durante a execução do playbook.

  • Sincronização de dados entre sistemas: processe com eficiência arquivos com várias codificações de caracteres, como formatos legados do Excel, para garantir a consistência dos dados em diferentes ferramentas de segurança.

Antes de começar

Antes de configurar a integração no Google SecOps, verifique se você tem o seguinte:

  • Recursos internos da plataforma: essa integração oferece recursos integrados de processamento de arquivos e não exige chaves de API ou credenciais de terceiros para autenticação.

  • Permissões do sistema de arquivos: se um agente remoto for usado, a integração vai exigir permissões específicas para acessar e gerenciar arquivos no sistema host. Execute o seguinte comando na máquina do agente para conceder as permissões necessárias para o diretório de destino: chown scripting:scripting "directory_path"

Parâmetros de integração

A integração de CSV requer os seguintes parâmetros:

Nome de exibição do parâmetro Tipo Valor padrão É obrigatório Descrição
Nome da instância String N/A Não Nome da instância em que você quer configurar a integração.
Descrição String N/A Não Descrição da instância.
Executar remotamente Caixa de seleção Desmarcado Não Marque o campo para executar a integração configurada remotamente. Depois de marcada, a opção de selecionar o usuário remoto (agente) aparece.

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.

Salvar JSON como CSV

Salvar um objeto JSON em CSV.

Parâmetros

Nome do parâmetro Tipo Valor padrão Obrigatório Descrição
Objeto JSON JSON N/A Sim Especifica o objeto JSON que será salvo como CSV.
Substituir Booleano Falso Não Se ativada, a ação substitui o arquivo atual.
Caminho do arquivo String N/A Sim Especifica o caminho absoluto do arquivo CSV recém-criado. Se apenas o nome do arquivo for fornecido, a ação vai armazenar o arquivo em uma pasta /tmp/.

Corrida

N/A

Resultados da ação

Resultado do script
Nome do resultado do script Valor
is_success Verdadeiro/falso
Resultado JSON
{"filepath": "{file name}"}
Painel de casos

A ação fornece as seguintes mensagens de saída:

Mensagem de resposta Descrição da mensagem
O objeto JSON foi transformado e salvo no caminho de arquivo fornecido. A ação foi concluída.
O arquivo não foi encontrado no caminho fornecido. O arquivo não existe.
Nenhuma atividade foi encontrada para as contas de serviço fornecidas no Google Cloud Policy Intelligence A ação não encontrou dados para nenhuma das contas de serviço listadas.
Erro ao executar a ação "Salvar JSON como CSV".

A ação retornou um erro.

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

Pesquisar por string

Pesquisar strings em arquivos CSV.

Parâmetros

Nome do parâmetro Tipo Valor padrão É obrigatório Descrição
Caminho do CSV String N/A Sim Especifique o caminho do arquivo CSV ou de uma pasta que contenha todos os arquivos CSV. Se a pasta for fornecida, a ação vai iterar todos os arquivos CSV na pasta.
Coluna do CSV String N/A Não Especifique uma lista separada por vírgulas de colunas que podem conter informações de entidade. Se nada for fornecido, a ação vai pesquisar em todas as colunas.
Dias anteriores String 10 Não Especifique quantos dias anteriores devem ser processados nos arquivos CSV.
Pesquisar valor String N/A Não Especifique uma string que precisa ser pesquisada. Se a opção "Pesquisar várias strings" estiver ativada, esse parâmetro será tratado como uma lista separada por vírgulas de strings que precisam ser pesquisadas.
Retorna apenas a primeira linha. Caixa de seleção Desmarcado Não Se ativada, a ação vai retornar apenas uma linha no primeiro arquivo que corresponder à entidade.
Tipos de codificação de arquivo String utf-8, latin-1, iso-8859-1 Sim Uma lista separada por vírgulas de tipos de codificação CSV usados para decodificar seus arquivos CSV, por exemplo, utf-8, latin-1, iso-8859-1, utf-16... A ordem em que os tipos de codificação são fornecidos define a ordem em que eles são usados para decodificar arquivos.Por exemplo, no exemplo acima, utf-8 tem a prioridade mais alta e será usado principalmente para decodificar todos os arquivos. Se houver um arquivo CSV que use outra codificação, o próximo na ordem, latin-1, será usado, e assim por diante, até que a última codificação seja usada.
Pesquisar várias strings Caixa de seleção Desmarcado Não Se ativada, a opção "Valor de pesquisa" vai funcionar como uma lista de valores separada por vírgulas, em vez de uma única string.
Campos a serem retornados CSV N/A Não Especifique uma lista separada por vírgulas de valores que precisam ser retornados.

Casos de uso

Pesquisar strings em arquivos CSV.

Corrida

Essa ação é executada em todas as entidades.

Resultados da ação

Resultado do script
Nome do resultado do script Opções de valor Exemplo
count_rows_csv Qualquer número de linhas count_rows += 1
Resultado JSON
[
    {
        "EntityResult": {
            "Field2": "Value2",
            "Field3": "Value3",
            "Field1": "Value1",
            "Field4": "Value4",
            "Field5": "Value5"
        },
        "Entity": "host"
    }, {
        "EntityResult": {
            "Field2": "Value2",
            "Field3": "Value3",
            "Field1": "Value1",
            "Field4": "Value4",
            "Field5": "Value5"
        }, "Entity": "1.1.1.1"
    }
]
Painel de casos
Tipo de resultado Valor / Descrição Tipo
Mensagem de saída*

Para registros encontrados: "Informações encontradas sobre as seguintes strings: \n (search_string)"

Se nenhum registro for encontrado para algumas strings: "A ação não conseguiu encontrar informações sobre as seguintes strings:"

Se não houver sucesso para todos os registros:"Nenhuma informação foi encontrada para os itens fornecidos."

Se todas as codificações forem inválidas: "Erro ao executar a ação "Pesquisa de CSV por string". As codificações fornecidas são inválidas. Verifique a ortografia."

Geral

Pesquisar por entidade

Pesquise entidades em arquivos CSV e enriqueça-as.

Parâmetros

Nome do parâmetro Tipo Valor padrão É obrigatório Descrição
Caminho do CSV String N/A Sim Especifique o caminho do arquivo CSV ou de uma pasta que contenha todos os arquivos CSV. Se a pasta for fornecida, a ação vai iterar todos os arquivos CSV na pasta.
Coluna do CSV String N/A Sim Especifique uma lista separada por vírgulas de colunas que podem conter informações de entidade. Se nada for fornecido, a ação vai pesquisar em todas as colunas.
Dias anteriores String 10 Sim Especifique quantos dias anteriores devem ser processados nos arquivos CSV.
Marcar como suspeito Caixa de seleção Desmarcado Não Se ativada, a ação vai marcar a entidade como suspeita se ela for encontrada no arquivo.
Retorna apenas a primeira linha. Caixa de seleção Desmarcado Não Se ativada, a ação vai retornar apenas uma linha no primeiro arquivo que corresponder à entidade.
Tipos de codificação de arquivo String utf-8, latin-1, iso-8859-1 Sim Uma lista separada por vírgulas de tipos de codificação CSV usados para decodificar seus arquivos CSV, por exemplo, utf-8, latin-1, iso-8859-1, utf-16... A ordem em que os tipos de codificação são fornecidos define a ordem em que eles são usados para decodificar arquivos.Por exemplo, (no exemplo acima) o utf-8 tem a prioridade mais alta e será usado principalmente para decodificar todos os arquivos. Se houver um arquivo CSV que use outra codificação, o próximo na ordem será usado: codificação latin-1 e assim por diante, até que a última codificação seja usada.
Enriquecer entidades Caixa de seleção Selecionado Não Se ativada, a ação vai adicionar informações do arquivo CSV à tabela de enriquecimento da entidade.
Criar insight Caixa de seleção Selecionado Não Se ativada, a ação vai criar um insight se a entidade for encontrada no arquivo.
Campos a serem retornados CSV N/A Não Especifique uma lista separada por vírgulas de valores que precisam ser retornados.

Corrida

Essa ação é executada em todas as entidades.

Resultados da ação

Resultado do script
Nome do resultado do script Opções de valor Exemplo
count_rows_csv Qualquer número de linhas count_rows += 1
Resultado JSON
[
    {
        "EntityResult": [{
            "domain": "example.dom",
            "fileHash": "cbbc5aea3d4c7ec193aa2ff3b52df36ebb12338b18c9bb53fc4896115efaf78d",
            "reporter": "Symantec Antivirus",
            "app": "Arcsight",
            "id": "1011",
            "eventTime": "9/4/2017 10:00",
            "antivirusAction": "blocked",
            "virusName": "ECAT",
            "rule": "malicious",
            "eventName": "Virus detected",
            "User": "Ziv",
            "eventHostName": "WS-ZivDevComp",
            "File Source Path": "C:\\\\Users\\\\Default\\\\Desktop\\\\stringTimeRaw.csv",
            "machineAddress": "192.168.11.11"
        }, {
            "domain": "SmartCompany.dom",
            "fileHash": "cbbc5aea3d4c7ec193aa2ff3b52df36ebb12338b18c9bb53fc4896115efaf78d",
            "reporter": "Symantec Antivirus",
            "app": "ESM",
            "id": "1012",
            "eventTime": "9/4/2017 10:00",
            "antivirusAction": "allowed",
            "virusName": "ECAT",
            "rule": "malicious",
            "eventName": "Virus detected",
            "User": "GG",
            "eventHostName": "WS-GGDevComp",
            "File Source Path": "C:\\\\Users\\\\Default\\\\Desktop\\\\stringTimeRaw.csv",
            "machineAddress": "192.168.11.11"
        }],
        "Entity": "192.168.11.11"
    }
]
Painel de casos
Tipo de resultado Valor / Descrição Tipo
Mensagem de saída*

Para entidades encontradas: "Encontramos informações sobre as seguintes entidades: \n (entity.identifier)"

Para entidades que não foram encontradas: "Nenhuma informação foi encontrada sobre as seguintes entidades: \n (entity.identifier)"

Se não houver sucesso para todas as entidades: "Nenhuma informação foi encontrada para as entidades fornecidas."

Se todas as codificações forem inválidas: "Erro ao executar a ação 'Pesquisa de CSV por string'. As codificações fornecidas são inválidas. Verifique a ortografia."

Geral

Ping

Teste a conectividade.

Parâmetros

N/A

Corrida

Essa ação é executada em todas as entidades.

Resultados da ação

Resultado do script

N/A

Resultado JSON
N/A

Conectores

Conector CSV

Busque dados de arquivos CSV localizados em uma pasta específica e converta-os em alertas no sistema do Google SecOps.

Este tópico ilustra o mecanismo e a configuração pelos quais o Google SecOps produz arquivos CSV, além dos fluxos de trabalho compatíveis e das ações realizadas na plataforma.

Casos de uso

Um cliente tem CSVs provenientes de um sistema, e os arquivos podem ser de codificações diferentes.

*   Add support for comma-separated encodings in the Encoding field in the
    connector.
    *   The connector should try the different encodings by their order in
        the field (first encoding - highest priority, last - lowest
        priority) with try/except. If no matching encoding was found -
        consider the file as an error and notify.
    *   Put a default value for the fields - a list of most common CSV
        encodings by priority (utf8, latin1, and iso...)

Acesso a arquivos CSV

Acesso do Google SecOps aos arquivos CSV: configure uma pasta para os arquivos CSV.

Encaminhamento de registros CSV para o Google SecOps

Como trabalhar com registros de arquivos CSV

Ao configurar o Google SecOps para trabalhar com arquivos CSV como uma fonte de alerta, você precisará fornecer uma pasta específica de onde os CSVs serão buscados. O Google SecOps vai recuperar qualquer registro em um arquivo CSV e encaminhá-lo para ser traduzido e contextualizado como alertas para casos.

Como mapear a gravidade no conector

Para mapear a gravidade, é necessário especificar qual campo deve ser usado para receber o valor de gravidade no parâmetro "Nome do campo de gravidade". Na resposta, você pode receber três tipos de valores: números inteiros, números de ponto flutuante e strings. Para números inteiros e ponto flutuante, não é necessário fazer nenhuma outra configuração. O conector vai ler esses valores e mapeá-los de acordo com os padrões do Google SecOps. Um lembrete rápido de como os valores inteiros são mapeados:

  • 100: crítico
  • 100 > x >= 80: alta
  • 80 > x >=60 Média
  • 60 > x >=40 Baixa
  • 40 > x Informativo

Se, na resposta, estivermos trabalhando com strings, será necessária uma configuração adicional. Na pasta em que os scripts do conector estão localizados, você terá um nome de arquivo de configuração severity_map_config.json. Esse arquivo define regras de mapeamento para a gravidade.

Inicialmente, o arquivo vai ficar assim: 1 2 3 { "Default": 50 }

Imagine uma situação em que os valores necessários estão localizados em event.severity. event.severity pode conter os seguintes valores: "Malicious", "Benign", "Unknown".

Primeiro, precisamos especificar no parâmetro "Nome do campo de gravidade" que vamos usar event.severity. Em segundo lugar, precisamos atualizar o arquivo de configuração. Depois das mudanças, o arquivo severity_map_config.json vai ficar assim: 1 2 3 4 5 6 7 8 { "event.severity": { "Malicious": 100, "Unknown": 60, "Benign": -1 }, "Default": 50 }

Agora, quando o conector receber um evento com event.severity = "Mal-intencionado", ele vai atribuir a gravidade Crítica.

Configurar o conector CSV no Google SecOps

Para instruções detalhadas sobre como configurar um conector no Google SecOps, consulte Como configurar o conector.

Parâmetros do conector

Use os seguintes parâmetros para configurar o conector:

Nome do parâmetro Tipo Valor padrão É obrigatório Descrição
Nome do campo do produto String device_product Sim O nome do campo usado para determinar o produto do dispositivo.
Nome do campo do evento String nome Não O nome do campo usado para determinar o nome do evento (subtipo).
Tempo limite de script (segundos) String 60 Sim O limite de tempo limite (em segundos) para o processo do Python que executa o script atual.
Caminho da pasta CSV String N/A Sim Caminho da pasta que contém todos os arquivos CSV que precisam ser ingeridos.
Limite de CSV String N/A Não Quantos arquivos CSV serão processados por iteração.
Nome do campo do gerador de regras String N/A Não Nome do campo que contém informações sobre o gerador de regras.
Nome do campo de horário String N/A Não Nome do campo que contém informações sobre o horário do evento.
O CSV tem cabeçalho Caixa de seleção Selecionado Sim Indica se o arquivo CSV tem cabeçalho.
Tipo de codificação de arquivo String utf-8 Sim Defina o tipo de codificação do CSV, por exemplo, iso-8859-1, latin1, utf-8, utf-16.
Nome do campo de alerta String N/A Não Nome do campo que contém informações sobre o nome do alerta.
Nome do campo de gravidade String N/A Não

Nome do campo que contém informações sobre a gravidade.
Observação: é possível mapear a gravidade com base nos valores da resposta. Para isso, acesse a pasta de execução do conector e modifique severity_mapping_config.json. Consulte a documentação para referência.

Regras do conector

Suporte a proxy

O conector não é compatível com proxy.

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