Recolha registos da plataforma do Cisco DNA Center
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
systemdpara 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
- Inicie sessão na consola Google SecOps.
- Aceda a Definições do SIEM > Agentes de recolha.
- 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
- Inicie sessão na consola Google SecOps.
- Aceda a Definições do SIEM > Perfil.
- 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
- Abra a Linha de comandos ou o PowerShell como administrador.
Execute o seguinte comando:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Instalação do Linux
- Abra um terminal com privilégios de raiz ou sudo.
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
- Para ver opções de instalação adicionais, consulte este guia de instalação.
Configure o agente Bindplane para carregar o Syslog e enviá-lo para o Google SecOps
Aceda ao ficheiro de configuração:
- 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. - Abra o ficheiro com um editor de texto (por exemplo,
nano,viou Bloco de notas).
- Localize o ficheiro
Edite o ficheiro
config.yamlda 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.jsonpara 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-agentPara 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
- Inicie sessão na plataforma Cisco DNA Center.
- Aceda a Sistema > Definições > Serviços externos > Destinos > Syslog.
- Clique em + Adicionar para criar um novo destino syslog.
- 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.
- Nome: introduza um nome descritivo (por exemplo,
- 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
- No Google SecOps, aceda a Definições do SIEM > Feeds.
- Clique em + Adicionar novo feed.
- No campo Nome do feed, introduza um nome para o feed (por exemplo,
Cisco DNA Center Webhook). - Selecione Webhook como o Tipo de origem.
- Selecione Cisco DNA Center Platform como o Tipo de registo.
- Clicar em Seguinte.
- 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.
- Delimitador de divisão: opcional
- Clicar em Seguinte.
- Reveja a configuração do feed e clique em Enviar.
- Clique em Gerar chave secreta para gerar uma chave secreta para autenticar este feed.
- Copie e guarde a chave secreta, uma vez que não pode ver este segredo novamente.
- Aceda ao separador Detalhes.
- Copie o URL do ponto final do feed do campo Informações do ponto final.
- Clique em Concluído.
Crie uma chave da API para o feed de webhook
- Aceda à página Credenciais da consola Google Cloud.
- Clique em Criar credenciais e, de seguida, selecione Chave de API.
- Restrinja o acesso da chave da API à API Google SecOps.
Configure o destino do webhook no Cisco DNA Center
- Inicie sessão na plataforma Cisco DNA Center.
- Aceda a Sistema > Definições > Serviços externos > Destinos > Webhook.
- Clique em + Adicionar para criar um novo destino de webhook.
- 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
- Content-Type:
- Nome: introduza um nome descritivo (por exemplo,
- Clique em Testar ligação para verificar a conetividade.
- Clique em Guardar.
Subscreva eventos para receber notificações de webhook
- No Cisco DNA Center, aceda a Plataforma > Developer Toolkit > Notificações de eventos.
- Clique em + Subscrever.
- 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.
- Nome da subscrição: introduza um nome descritivo (por exemplo,
- 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.
- 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).
- 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.