Recolha registos da plataforma do Cisco DNA Center

Compatível com:

Este documento explica como introduzir registos da plataforma do Cisco DNA Center no Google Security Operations através de duas abordagens diferentes. Escolha a opção que melhor se adapta ao seu ambiente e requisitos. O analisador transforma os registos SYSLOG+JSON do Cisco DNA Center num modelo de dados unificado (UDM). Extrai campos da mensagem de registo não processada e do payload de JSON, mapeia-os para atributos da UDM correspondentes e enriquece os dados com etiquetas e contexto de segurança com base nas caraterísticas dos eventos, como a gravidade e as entidades envolvidas.

Antes de começar

Certifique-se de que cumpre os seguintes pré-requisitos:

  • Uma instância do Google SecOps
  • Acesso privilegiado à consola de gestão da plataforma Cisco DNA Center
  • Escolha o seu método de integração preferido:
    • Para a opção 2: conetividade de rede entre o Cisco DNA Center e o ponto final do webhook do Google SecOps
    • Para a Opção 1: Windows 2016 ou posterior, ou um anfitrião Linux com systemd para a instalação do agente Bindplane

Opção 1: integração do Syslog através do agente Bindplane

Esta opção usa o encaminhamento de syslog do Cisco DNA Center para o Bindplane, que, em seguida, encaminha os registos estruturados para o Google SecOps.

Obtenha o ficheiro de autenticação de carregamento do Google SecOps

  1. Inicie sessão na consola Google SecOps.
  2. Aceda a Definições do SIEM > Agentes de recolha.
  3. Transfira o ficheiro de autenticação de carregamento. Guarde o ficheiro de forma segura no sistema onde o Bindplane vai ser instalado.

Obtenha o ID de cliente do Google SecOps

  1. Inicie sessão na consola Google SecOps.
  2. Aceda a Definições do SIEM > Perfil.
  3. Copie e guarde o ID do cliente da secção Detalhes da organização.

Instale o agente do Bindplane

Instale o agente do Bindplane no seu sistema operativo Windows ou Linux de acordo com as seguintes instruções.

Instalação do Windows

  1. Abra a Linha de comandos ou o PowerShell como administrador.
  2. Execute o seguinte comando:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Instalação do Linux

  1. Abra um terminal com privilégios de raiz ou sudo.
  2. Execute o seguinte comando:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    

Recursos de instalação adicionais

Configure o agente Bindplane para carregar o Syslog e enviá-lo para o Google SecOps

  1. Aceda ao ficheiro de configuração:

    1. Localize o ficheiro config.yaml. Normalmente, encontra-se no diretório /etc/bindplane-agent/ no Linux ou no diretório de instalação no Windows.
    2. Abra o ficheiro com um editor de texto (por exemplo, nano, vi ou Bloco de notas).
  2. Edite o ficheiro config.yaml da seguinte forma:

    receivers:
      udplog:
        # Replace the port and IP address as required
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/chronicle_w_labels:
        compression: gzip
        # Adjust the path to the credentials file you downloaded in Step 1
        creds_file_path: '/path/to/ingestion-authentication-file.json'
        # Replace with your actual customer ID from Step 2
        customer_id: YOUR_CUSTOMER_ID
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: 'CISCO_DNAC'
        raw_log_field: body
    
    service:
      pipelines:
        logs/source0__chronicle_w_labels-0:
          receivers:
            - udplog
          exporters:
            - chronicle/chronicle_w_labels
    
    • Substitua a porta e o endereço IP conforme necessário na sua infraestrutura.
    • Substitua <YOUR_CUSTOMER_ID> pelo ID de cliente real.
    • Atualize /path/to/ingestion-authentication-file.json para o caminho onde o ficheiro de autenticação foi guardado na secção Obtenha o ficheiro de autenticação de carregamento do Google SecOps.
    • Esta configuração usa o recetor Syslog (UDP) do agente Bindplane para recolher mensagens syslog estruturadas do DNA Center.

Reinicie o agente do Bindplane para aplicar as alterações

  • Para reiniciar o agente do Bindplane no Linux, execute o seguinte comando:

    sudo systemctl restart bindplane-agent
    
  • Para reiniciar o agente do Bindplane no Windows, pode usar a consola Serviços ou introduzir o seguinte comando:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Configure o encaminhamento de Syslog na plataforma Cisco DNA Center

  1. Inicie sessão na plataforma Cisco DNA Center.
  2. Aceda a Sistema > Definições > Serviços externos > Destinos > Syslog.
  3. Clique em + Adicionar para criar um novo destino syslog.
  4. Indique os seguintes detalhes de configuração:
    • Nome: introduza um nome descritivo (por exemplo, Google SecOps BindPlane).
    • Anfitrião: introduza o endereço IP do agente BindPlane.
    • Porta: introduza 514 (ou a porta configurada no BindPlane).
    • Protocolo: selecione UDP ou TCP, consoante a configuração do BindPlane.
    • Instalação: selecione a instalação adequada (por exemplo, Local0).
    • Gravidade: selecione Informações para capturar todos os níveis de eventos.
  5. Clique em Guardar.

Opção 2: integração de webhook em tempo real

Esta opção usa as capacidades de webhook nativas do Cisco DNA Center para fornecer eventos JSON estruturados diretamente ao Google SecOps em tempo real.

Vista geral

O Cisco DNA Center suporta nativamente notificações de webhook para a entrega de eventos em tempo real. Esta opção fornece payloads JSON estruturados com um contexto de eventos avançado, enviando eventos diretamente para o Google SecOps sem necessitar do Bindplane como intermediário.

Configure o feed de webhook do Google SecOps

  1. No Google SecOps, aceda a Definições do SIEM > Feeds.
  2. Clique em + Adicionar novo feed.
  3. No campo Nome do feed, introduza um nome para o feed (por exemplo, Cisco DNA Center Webhook).
  4. Selecione Webhook como o Tipo de origem.
  5. Selecione Cisco DNA Center Platform como o Tipo de registo.
  6. Clicar em Seguinte.
  7. Especifique valores para os seguintes parâmetros de entrada:
    • Delimitador de divisão: opcional \n.
    • Espaço de nomes do recurso: o espaço de nomes do recurso.
    • Etiquetas de carregamento: a etiqueta a aplicar aos eventos deste feed.
  8. Clicar em Seguinte.
  9. Reveja a configuração do feed e clique em Enviar.
  10. Clique em Gerar chave secreta para gerar uma chave secreta para autenticar este feed.
  11. Copie e guarde a chave secreta, uma vez que não pode ver este segredo novamente.
  12. Aceda ao separador Detalhes.
  13. Copie o URL do ponto final do feed do campo Informações do ponto final.
  14. Clique em Concluído.

Crie uma chave da API para o feed de webhook

  1. Aceda à página Credenciais da consola Google Cloud.
  2. Clique em Criar credenciais e, de seguida, selecione Chave de API.
  3. Restrinja o acesso da chave da API à API Google SecOps.

Configure o destino do webhook no Cisco DNA Center

  1. Inicie sessão na plataforma Cisco DNA Center.
  2. Aceda a Sistema > Definições > Serviços externos > Destinos > Webhook.
  3. Clique em + Adicionar para criar um novo destino de webhook.
  4. Indique os seguintes detalhes de configuração:
    • Nome: introduza um nome descritivo (por exemplo, Google SecOps Webhook).
    • Descrição: introduza uma descrição para o webhook.
    • URL: introduza o URL do ponto final do webhook do Google SecOps do passo anterior.
    • Método: selecione POST.
    • Certificado de confiança: selecione Não se estiver a usar certificados autoassinados.
    • Cabeçalhos: adicione os cabeçalhos necessários:
      • Content-Type: application/json
      • X-goog-api-key: a sua Google Cloud chave da API
      • X-Webhook-Access-Key: a chave secreta do seu feed do Google SecOps
  5. Clique em Testar ligação para verificar a conetividade.
  6. Clique em Guardar.

Subscreva eventos para receber notificações de webhook

  1. No Cisco DNA Center, aceda a Plataforma > Developer Toolkit > Notificações de eventos.
  2. Clique em + Subscrever.
  3. Indique os seguintes detalhes de configuração:
    • Nome da subscrição: introduza um nome descritivo (por exemplo, Google SecOps Events).
    • Tipo de conetor: selecione Ponto final REST.
    • Destino: selecione o destino do webhook criado no passo anterior.
  4. Selecione os tipos de eventos que quer monitorizar:
    • Eventos de rede: dispositivo inacessível, interface inativa, alterações de configuração.
    • Eventos de segurança: violações da política de segurança, falhas de autenticação.
    • Eventos do sistema: eventos da plataforma, atualizações de software e manutenção.
    • Eventos de garantia: degradação do desempenho, problemas de conetividade.
  5. Configure filtros de eventos, se necessário:
    • Gravidade: selecione o nível de gravidade mínimo (por exemplo, P1, P2).
    • Domínio: filtre por domínios específicos (por exemplo, Conetividade, Desempenho).
  6. Clique em Subscrever.

Tabela de mapeamento da UDM

Campo de registo Mapeamento de UDM Lógica
categoria security_result.severity_details Mapeado diretamente a partir do campo category no registo não processado.
ciscoDnaEventLink target.url Mapeado diretamente a partir do campo ciscoDnaEventLink no registo não processado.
date_time metadata.event_timestamp Extraído da mensagem de registo não processada através do padrão grok e convertido para o formato de data/hora.
details.Assurance_Issue_Category security_result.about.resource.attribute.labels[].value Mapeado diretamente a partir do campo details.Assurance_Issue_Category no registo não processado. A chave desta etiqueta é "Assurance_Issue_Category".
details.Assurance_Issue_Details security_result.summary Mapeado diretamente a partir do campo details.Assurance_Issue_Details no registo não processado.
details.Assurance_Issue_Name security_result.about.resource.attribute.labels[].value Mapeado diretamente a partir do campo details.Assurance_Issue_Name no registo não processado. A chave desta etiqueta é "Assurance_Issue_Name".
details.Assurance_Issue_Priority security_result.about.resource.attribute.labels[].value Mapeado diretamente a partir do campo details.Assurance_Issue_Priority no registo não processado. A chave desta etiqueta é "Assurance_Issue_Priority".
details.Assurance_Issue_Status security_result.about.resource.attribute.labels[].value Mapeado diretamente a partir do campo details.Assurance_Issue_Status no registo não processado. A chave desta etiqueta é "Assurance_Issue_Status".
details.Device target.ip OU target.hostname Mapeado a partir do campo details.Device no registo não processado. Se o valor for um endereço IP, é mapeado para target.ip. Caso contrário, é mapeado para target.hostname.
dnacIp target.ip Mapeado diretamente a partir do campo dnacIp no registo não processado, se for um endereço IP.
domínio additional.fields[].value.string_value Mapeado diretamente a partir do campo domain no registo não processado. A chave para este campo é "domain".
eventId metadata.product_event_type Mapeado diretamente a partir do campo eventId no registo não processado.
instanceId target.resource.product_object_id Mapeado diretamente a partir do campo instanceId no registo não processado.
nome target.resource.attribute.labels[].value Mapeado diretamente a partir do campo name no registo não processado. A chave desta etiqueta é "name".
espaço de nome target.namespace Mapeado diretamente a partir do campo namespace no registo não processado.
network.deviceId target.asset.asset_id Mapeado diretamente a partir do campo network.deviceId no registo não processado e com o prefixo "deviceId: ".
nota additional.fields[].value.string_value Mapeado diretamente a partir do campo note no registo não processado. A chave para este campo é "note".
metadata.event_type Determinado com base na presença e nos valores dos campos has_principal, has_target e userId. Valores possíveis: NETWORK_CONNECTION, USER_UNCATEGORIZED, STATUS_UPDATE, GENERIC_EVENT.
is_alert Verdadeiro se a gravidade for 0 ou 1, Falso caso contrário.
is_significant Verdadeiro se a gravidade for 0 ou 1, Falso caso contrário.
gravidade Usado para determinar o valor de security_result.severity, is_alert e is_significant.
fonte target.resource.attribute.labels[].value Mapeado diretamente a partir do campo source no registo não processado. A chave desta etiqueta é "source".
src_ip principal.ip Extraído da mensagem de registo não processada através do padrão grok.
subDomain additional.fields[].value.string_value Mapeado diretamente a partir do campo subDomain no registo não processado. A chave para este campo é "subDomain".
tntId target.resource.attribute.labels[].value Mapeado diretamente a partir do campo tntId no registo não processado. A chave desta etiqueta é "tntId".
escrever target.resource.attribute.labels[].value Mapeado diretamente a partir do campo type no registo não processado. A chave desta etiqueta é "type".
userId target.user.userid Mapeado diretamente a partir do campo userId no registo não processado.
versão metadata.product_version Mapeado diretamente a partir do campo version no registo não processado.

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