Coletar registros do Cisco Stealthwatch

Compatível com:

Este documento explica como coletar registros do Cisco Secure Network Analytics (antigo Stealthwatch) para o Google Security Operations usando o Bindplane. O analisador processa dois formatos de registros do Cisco Stealthwatch: um com informações de pacote e IP do cliente/servidor e outro com ID do dispositivo e contagens de bytes. Ele extrai campos, os converte para os tipos de dados apropriados, os mapeia para a UDM e define campos de metadados como fornecedor, produto e tipo de evento com base no conteúdo e formato do registro.

Antes de começar

  • Verifique se você tem uma instância do Google Security Operations.
  • Verifique se você está usando o Windows 2016 ou uma versão mais recente ou um host Linux com systemd.
  • Se estiver executando por trás de um proxy, verifique se as portas do firewall estão abertas.
  • Verifique se você tem acesso privilegiado ao Cisco Stealthwatch.

Receber o arquivo de autenticação de ingestão do Google SecOps

  1. Faça login no console do Google SecOps.
  2. Acesse Configurações do SIEM > Agentes de coleta.
  3. Faça o download do arquivo de autenticação de transferência. Salve o arquivo com segurança no sistema em que o BindPlane será instalado.

Receber o ID de cliente do Google SecOps

  1. Faça login no console do Google SecOps.
  2. Acesse Configurações do SIEM > Perfil.
  3. Copie e salve o ID do cliente na seção Detalhes da organização.

Instalar o agente do Bindplane

Instalação do Windows

  1. Abra o Prompt de Comando ou o PowerShell como administrador.
  2. Execute este 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 este comando:

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

Outros recursos de instalação

Configurar o agente do Bindplane para processar o Syslog e enviar ao Google SecOps

  1. Acesse o arquivo de configuração:

    1. Localize o arquivo config.yaml. Normalmente, ele está no diretório /etc/bindplane-agent/ no Linux ou no diretório de instalação no Windows.
    2. Abra o arquivo usando um editor de texto (por exemplo, nano, vi ou Notepad).
  2. Edite o arquivo 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: '/path/to/ingestion-authentication-file.json'
            # Replace with your actual customer ID from Step 2
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # Add optional ingestion labels for better organization
            ingestion_labels:
                log_type: CISCO_STEALTHWATCH
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. Substitua a porta e o endereço IP conforme necessário na sua infraestrutura.

  4. Substitua <customer_id> pelo ID real do cliente.

  5. Atualize /path/to/ingestion-authentication-file.json para o caminho em que o arquivo de autenticação foi salvo na seção Receber o arquivo de autenticação de transferência do Google SecOps.

Reinicie o agente do Bindplane para aplicar as mudanças

  • 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, use o console Services ou digite o seguinte comando:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Configurar o Syslog do Cisco Secure Network Analytics (antigo Stealthwatch)

  1. Faça login na IU da Web do Console de gerenciamento.
  2. Acesse Configuração > Gerenciamento de respostas.
  3. Editar formato do Syslog:

    • Nome: insira um nome para o formato syslog.
    • Descrição: forneça uma descrição do formato.
    • Instalação: definida como Local 0
    • Gravidade: defina como Informational.
    • No campo Mensagem, cole o seguinte formato:
    Lancope|StealthWatch|time|{time}|target_hostname|{target_hostname}|alarm_severity_id|{alarm_severity_id}|alarm_type_id|{alarm_type_id}|alarm_type_description|{alarm_type_description}|port|{port}|target_ip|{target_ip}|target_mac_address|{target_mac_address}|target_label|{target_label}|alarm_type_name|{alarm_type_name}|source_hostname|{source_hostname}|source_ip|{source_ip}|source_mac_address|{source_mac_address}|source_username|{source_username}|device_ip|{device_ip}|device_name|{device_name}|details|{details}|protocol|{protocol}|alarm_id|{alarm_id}|alarm_category_name|{alarm_category_name}|start_active_time|{start_active_time}| end_active_time|{end_active_time}
    
  4. Clique em OK.

  5. Acesse Gerenciamento de resposta > Ações > Adicionar mensagem de Syslog.

  6. Configure o encaminhador de syslog:

    • Nome: insira o nome do forwarder do Bindplane do Google SecOps.
    • Descrição: insira a descrição do forwarder do Bindplane do Google SecOps.
    • Endereço IP: insira o endereço IP do agente do Bindplane.
    • Porta: insira o número da porta do agente do Bindplane. Por exemplo, 514.
    • Formato: selecione o formato criado na etapa 3.
  7. Clique em OK.

Configurar nomes de regras para o Cisco Secure Network Analytics (antigo Stealthwatch)

  1. Acesse Configuração > Gerenciamento de respostas.
  2. Selecione Regras > Adicionar > Alarmes do sistema SMC.
  3. Clique em OK.
  4. Na caixa de diálogo Tipos de regras, selecione uma regra.
  5. Clique em OK.
  6. Na caixa de diálogo Rule, faça o seguinte:
    • Nome: digite um nome para a regra.
    • Esta regra é acionada se: selecione Qualquer, Gravidade e Informativo nas respectivas listas.
  7. Clique em OK.
  8. Selecione Ações > Adicionar.
  9. Selecione a ação que você criou anteriormente.
  10. Clique em Ok e em Ok.
  11. Repita as etapas anteriores para renomear as três opções a seguir na seção Regra:
    • Mecanismo de coleta de registros com suporte: Syslog
    • Mecanismo de coleta de registros preferencial: Syslog
    • Diagrama lógico do fluxo de eventos: servidor syslog remoto do SMC

Tabela de mapeamento do UDM

Campo de registro Mapeamento do UDM Lógica
Alarm_ID additional.fields[?key=='Alarm_ID'].value.string_value O valor de Alarm_ID do registro bruto é colocado em uma estrutura additional.fields aninhada sob a chave Alarm_ID.
ClientBytes network.sent_bytes ClientBytes do registro bruto é convertido em um número inteiro sem sinal e mapeado.
ClientIP principal.ip O ClientIP do registro bruto é mapeado.
ClientPort principal.port ClientPort do registro bruto é convertido em um número inteiro e mapeado.
CPayload Não mapeado Esse campo não é usado no UDM final.
DestIPv4Address target.ip O DestIPv4Address do registro bruto é mapeado.
DestPort target.port DestPort do registro bruto é convertido em um número inteiro e mapeado.
details security_result.summary O valor de details do registro bruto, com as aspas duplas removidas, é mapeado.
FC intermediary.ip O FC do registro bruto é mapeado.
host.country principal.location.country_or_region O host.country do registro bruto é mapeado.
host.hostGroupNames about.group.group_display_name Cada elemento na matriz host.hostGroupNames do registro bruto é precedido por host: e mapeado como um objeto about separado.
host.ipAddress principal.ip O host.ipAddress do registro bruto é mapeado.
hostBytes network.sent_bytes hostBytes do registro bruto é convertido em um número inteiro sem sinal e mapeado.
InPackets additional.fields[?key=='InPackets'].value.string_value O valor de InPackets do registro bruto é colocado em uma estrutura additional.fields aninhada sob a chave InPackets.
inputSNMPIface additional.fields[?key=='inputSNMPIface'].value.string_value O valor de inputSNMPIface do registro bruto é colocado em uma estrutura additional.fields aninhada sob a chave inputSNMPIface.
LastTime Não mapeado Esse campo é analisado para o carimbo de data/hora do evento em alguns casos, mas não é mapeado diretamente para o UDM.
MessageSourceAddress principal.ip O MessageSourceAddress do registro bruto é mapeado.
method network.http.method O method do registro bruto é mapeado.
outputSNMPIface additional.fields[?key=='outputSNMPIface'].value.string_value O valor de outputSNMPIface do registro bruto é colocado em uma estrutura additional.fields aninhada sob a chave outputSNMPIface.
PAAppID Não mapeado Esse campo não é usado no UDM final.
peer.country target.location.country_or_region O peer.country do registro bruto é mapeado.
peer.hostGroupNames about.group.group_display_name Cada elemento na matriz peer.hostGroupNames do registro bruto é precedido por peer: e mapeado como um objeto about separado.
peer.ipAddress target.ip O peer.ipAddress do registro bruto é mapeado.
peerBytes network.received_bytes peerBytes do registro bruto é convertido em um número inteiro sem sinal e mapeado.
peerPackets Não mapeado Esse campo não é usado no UDM final.
Protocol Não mapeado Esse campo é analisado para determinar o network.ip_protocol, mas não é mapeado diretamente.
ProtocolIdentifier Não mapeado Esse campo é usado para derivar network.ip_protocol, mas não é mapeado diretamente.
reportName metadata.product_event_type O reportName do registro bruto é mapeado.
ServerBytes network.received_bytes ServerBytes do registro bruto é convertido em um número inteiro sem sinal e mapeado.
ServerIP target.ip O ServerIP do registro bruto é mapeado.
ServerPort target.port ServerPort do registro bruto é convertido em um número inteiro e mapeado.
Service Não mapeado Esse campo não é usado no UDM final.
sid target.user.windows_sid O sid do registro bruto é mapeado.
SourceModuleName target.resource.name O SourceModuleName do registro bruto é mapeado.
SourceModuleType observer.application O SourceModuleType do registro bruto é mapeado.
SourcePort principal.port SourcePort do registro bruto é convertido em um número inteiro e mapeado.
sourceIPv4Address principal.ip O sourceIPv4Address do registro bruto é mapeado.
SPayload Não mapeado Esse campo não é usado no UDM final.
src_ip principal.ip O src_ip do registro bruto é mapeado.
StartTime Não mapeado Esse campo é analisado para o carimbo de data/hora do evento em alguns casos, mas não é mapeado diretamente para o UDM.
time Não mapeado Esse campo é analisado para o carimbo de data/hora do evento em alguns casos, mas não é mapeado diretamente para o UDM.
timestamp Não mapeado Esse campo é analisado para o carimbo de data/hora do evento, mas não é mapeado diretamente para a UDM.
UserName principal.user.user_display_name O UserName do registro bruto é mapeado.
Version metadata.product_version Version do registro bruto é convertido em uma string e mapeado.
N/A metadata.event_timestamp O carimbo de data/hora do evento é derivado de vários campos (LastTime, time, timestamp, StartTime) dependendo do formato do registro ou do campo create_time se nenhum outro carimbo de data/hora estiver disponível.
N/A metadata.log_type Sempre defina como CISCO_STEALTHWATCH.
N/A metadata.vendor_name Sempre defina como Cisco.
N/A metadata.event_type Determinado pela lógica do analisador com base no conteúdo do registro. Pode ser NETWORK_CONNECTION, USER_STATS, USER_UNCATEGORIZED, FILE_OPEN, FILE_DELETION ou FILE_UNCATEGORIZED.
N/A network.ip_protocol Determinado pela lógica do analisador com base nos campos Protocol ou ProtocolIdentifier. Pode ser TCP, UDP ou ICMP.
action security_result.action_details O valor de action do registro bruto é mapeado.
action security_result.action Derivado do campo action. Se action for SUCCESS, esse campo será definido como ALLOW. Caso contrário, ele será definido como BLOCK.
category security_result.category_details O valor de category do registro bruto é mapeado.
description security_result.description Se description e file_type estiverem presentes no registro bruto, eles serão concatenados e mapeados.
desc metadata.description O valor de desc do registro bruto, com as aspas duplas removidas, é mapeado.
failuer_reason security_result.summary Se failuer_reason e file_type estiverem presentes no registro bruto, eles serão concatenados e mapeados.
file_path target.file.full_path O file_path do registro bruto é mapeado.
file_type target.file.mime_type O file_type do registro bruto é mapeado.
hostname principal.hostname O hostname do registro bruto é mapeado.
ip principal.ip O ip do registro bruto é mapeado.
ipf intermediary.ip O ipf do registro bruto é mapeado.
ipt target.ip O ipt do registro bruto é mapeado.
process_id target.process.pid O process_id do registro bruto é mapeado.
protocol network.application_protocol O protocol do registro bruto é mapeado.
security_res.severity security_result.severity Se severity for Minor, esse campo será definido como INFORMATIONAL. Se severity for Major, ele será definido como ERROR.
session_id network.session_id O session_id do registro bruto é mapeado.
severity Não mapeado Esse campo é usado para derivar security_result.severity, mas não é mapeado diretamente.
Source_HG principal.location.country_or_region O Source_HG do registro bruto é mapeado.
Source_HostSnapshot principal.url O Source_HostSnapshot do registro bruto é mapeado.
Target_HostSnapshot target.url O Target_HostSnapshot do registro bruto é mapeado.
user_name principal.user.userid O user_name do registro bruto é mapeado.

Alterações

2024-10-29

Melhoria:

  • Adicionamos suporte para processar registros JSON.

2024-09-26

Melhoria:

  • Foi adicionado suporte para analisar registros de formato CEF.

2024-06-11

Melhoria:

  • O padrão Grok foi atualizado para analisar o valor emc1502 e mapeá-lo para principal.hostname.

2023-06-19

Melhoria:

  • sourceIPv4Address foi mapeado para principal.ip.
  • SourceModuleType foi mapeado para observer.application.
  • SourceModuleName foi mapeado para target.resource.name.
  • MessageSourceAddress foi mapeado para principal.ip.
  • SourcePort foi mapeado para principal.port.
  • Version foi mapeado para metadata.product_version.
  • DestPort foi mapeado para target.port.
  • DestIPv4Address foi mapeado para target.ip.
  • ProtocolIdentifier foi mapeado para network.ip_protocol.
  • Mapeamos inputSNMPIface, outputSNMPIface e InPackets para additional.fields.

2023-02-10

Correção de bugs:

  • Foram adicionados novos padrões Grok para analisar registros de tipo de protocolo NFS e SMB.

2022-07-06

Melhoria:

  • Foram adicionados mapeamentos para registros não analisados (auditoria, alarme).
  • FC_Name mapeado para principal.user.userid.
  • src mapeado para principal.ip.
  • dst mapeado para target.ip.
  • Source_HG foi mapeado para principal.location.country_or_region.
  • categoria mapeada para security_result.category_details.
  • detalhes mapeados para metadata.description.
  • vendor_severity Minor mapeado para security_result.severity (INFORMATIONAL).
  • vendor_severity Major mapeado para security_result.severity (ERROR).
  • Adicionado Event_type USER_UNCATEGORIZED para registro não analisado.
  • Adicionamos o campo Alarm_ID.

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