Recolha registos do Cisco Stealthwatch

Compatível com:

Este documento explica como recolher registos do Cisco Secure Network Analytics (anteriormente Stealthwatch) para o Google Security Operations através do Bindplane. O analisador processa dois formatos de registos do Cisco Stealthwatch: um com informações de IP e pacotes de cliente/servidor e outro com o ID do dispositivo e as contagens de bytes. Extrai campos, converte-os nos tipos de dados adequados, mapeia-os para o UDM e define campos de metadados, como fornecedor, produto e tipo de evento, com base no conteúdo e no formato do registo.

Antes de começar

  • Certifique-se de que tem uma instância do Google Security Operations.
  • Certifique-se de que está a usar o Windows 2016 ou posterior, ou um anfitrião Linux com systemd.
  • Se estiver a executar o serviço através de um proxy, certifique-se de que as portas da firewall estão abertas.
  • Certifique-se de que tem acesso privilegiado ao Cisco Stealthwatch.

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

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: '/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 de cliente real.

  5. 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.

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 Services ou introduzir o seguinte comando:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Configure o Syslog do Cisco Secure Network Analytics (anteriormente Stealthwatch)

  1. Inicie sessão na IU Web da consola de gestão.
  2. Aceda a Configuração > Gestão de respostas.
  3. Editar formato Syslog:

    • Nome: introduza um nome para o formato syslog.
    • Descrição: indique uma descrição para o formato.
    • Instalação: definida como Local 0
    • Gravidade: definida 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. Aceda a Gestão de respostas > Ações > Adicionar mensagem Syslog.

  6. Configure o encaminhador de Syslog:

    • Nome: introduza o nome do encaminhador do Google SecOps Bindplane.
    • Descrição: introduza a descrição do encaminhador do Google SecOps Bindplane.
    • Endereço IP: introduza o endereço IP do agente do Bindplane.
    • Porta: introduza o número da porta do agente do Bindplane; por exemplo, 514.
    • Formato: selecione o formato criado no passo 3.
  7. Clique em OK.

Configure nomes de regras para o Cisco Secure Network Analytics (anteriormente Stealthwatch)

  1. Aceda a Configuração > Gestão 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 Regra, faça o seguinte:
    • Nome: introduza um nome para a regra.
    • Esta regra é acionada se: selecione Qualquer, Gravidade e Informativo nas respetivas listas.
  7. Clique em OK.
  8. Selecione Ações > Adicionar.
  9. Selecione a ação que criou anteriormente.
  10. Clique em OK e, de seguida, em OK.
  11. Repita os passos anteriores para mudar o nome das seguintes três opções na secção Regra:
    • Mecanismo de recolha de registos suportado: Syslog
    • Mecanismo de recolha de registos preferencial: Syslog
    • Diagrama lógico do fluxo de eventos – Servidor Syslog remoto do SMC

Tabela de mapeamento da UDM

Campo de registo Mapeamento de UDM Lógica
Alarm_ID additional.fields[?key=='Alarm_ID'].value.string_value O valor de Alarm_ID do registo não processado é colocado numa estrutura additional.fields aninhada na chave Alarm_ID.
ClientBytes network.sent_bytes ClientBytes do registo não processado é convertido num número inteiro sem sinal e mapeado.
ClientIP principal.ip ClientIP do registo não processado é mapeado.
ClientPort principal.port ClientPort do registo não processado é convertido num número inteiro e mapeado.
CPayload Não mapeado Este campo não é usado no UDM final.
DestIPv4Address target.ip DestIPv4Address do registo não processado é mapeado.
DestPort target.port DestPort do registo não processado é convertido num número inteiro e mapeado.
details security_result.summary O valor de details do registo não processado, com as aspas duplas removidas, é mapeado.
FC intermediary.ip FC do registo não processado é mapeado.
host.country principal.location.country_or_region host.country do registo não processado é mapeado.
host.hostGroupNames about.group.group_display_name Cada elemento na matriz host.hostGroupNames do registo não processado é precedido de host: e mapeado como um objeto about separado.
host.ipAddress principal.ip host.ipAddress do registo não processado é mapeado.
hostBytes network.sent_bytes hostBytes do registo não processado é convertido num número inteiro sem sinal e mapeado.
InPackets additional.fields[?key=='InPackets'].value.string_value O valor de InPackets do registo não processado é colocado numa estrutura additional.fields aninhada na chave InPackets.
inputSNMPIface additional.fields[?key=='inputSNMPIface'].value.string_value O valor de inputSNMPIface do registo não processado é colocado numa estrutura additional.fields aninhada na chave inputSNMPIface.
LastTime Não mapeado Este campo é analisado para a data/hora do evento em alguns casos, mas não é mapeado diretamente para a UDM.
MessageSourceAddress principal.ip MessageSourceAddress do registo não processado é mapeado.
method network.http.method method do registo não processado é mapeado.
outputSNMPIface additional.fields[?key=='outputSNMPIface'].value.string_value O valor de outputSNMPIface do registo não processado é colocado numa estrutura additional.fields aninhada na chave outputSNMPIface.
PAAppID Não mapeado Este campo não é usado no UDM final.
peer.country target.location.country_or_region peer.country do registo não processado é mapeado.
peer.hostGroupNames about.group.group_display_name Cada elemento na matriz peer.hostGroupNames do registo não processado é precedido de peer: e mapeado como um objeto about separado.
peer.ipAddress target.ip peer.ipAddress do registo não processado é mapeado.
peerBytes network.received_bytes peerBytes do registo não processado é convertido num número inteiro sem sinal e mapeado.
peerPackets Não mapeado Este campo não é usado no UDM final.
Protocol Não mapeado Este campo é analisado para determinar o network.ip_protocol, mas não é mapeado diretamente.
ProtocolIdentifier Não mapeado Este campo é usado para derivar network.ip_protocol, mas não é mapeado diretamente.
reportName metadata.product_event_type reportName do registo não processado é mapeado.
ServerBytes network.received_bytes ServerBytes do registo não processado é convertido num número inteiro sem sinal e mapeado.
ServerIP target.ip ServerIP do registo não processado é mapeado.
ServerPort target.port ServerPort do registo não processado é convertido num número inteiro e mapeado.
Service Não mapeado Este campo não é usado no UDM final.
sid target.user.windows_sid sid do registo não processado é mapeado.
SourceModuleName target.resource.name SourceModuleName do registo não processado é mapeado.
SourceModuleType observer.application SourceModuleType do registo não processado é mapeado.
SourcePort principal.port SourcePort do registo não processado é convertido num número inteiro e mapeado.
sourceIPv4Address principal.ip sourceIPv4Address do registo não processado é mapeado.
SPayload Não mapeado Este campo não é usado no UDM final.
src_ip principal.ip src_ip do registo não processado é mapeado.
StartTime Não mapeado Este campo é analisado para a data/hora do evento em alguns casos, mas não é mapeado diretamente para a UDM.
time Não mapeado Este campo é analisado para a data/hora do evento em alguns casos, mas não é mapeado diretamente para a UDM.
timestamp Não mapeado Este campo é analisado para a data/hora do evento, mas não é mapeado diretamente para os dados unificados do utilizador.
UserName principal.user.user_display_name UserName do registo não processado é mapeado.
Version metadata.product_version Version do registo não processado é convertido numa string e mapeado.
N/A metadata.event_timestamp A data/hora do evento é derivada de vários campos (LastTime, time, timestamp, StartTime) consoante o formato do registo ou do campo create_time, se não estiver disponível outra data/hora.
N/A metadata.log_type Está sempre definido como CISCO_STEALTHWATCH.
N/A metadata.vendor_name Está sempre definido como Cisco.
N/A metadata.event_type Determinado pela lógica do analisador com base no conteúdo do registo. 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 registo não processado é mapeado.
action security_result.action Derivado do campo action. Se action for SUCCESS, este campo é definido como ALLOW; caso contrário, é definido como BLOCK.
category security_result.category_details O valor de category do registo não processado é mapeado.
description security_result.description Se description e file_type estiverem presentes no registo não processado, são concatenados e mapeados.
desc metadata.description O valor de desc do registo não processado, com as aspas duplas removidas, é mapeado.
failuer_reason security_result.summary Se failuer_reason e file_type estiverem presentes no registo não processado, são concatenados e mapeados.
file_path target.file.full_path file_path do registo não processado é mapeado.
file_type target.file.mime_type file_type do registo não processado é mapeado.
hostname principal.hostname hostname do registo não processado é mapeado.
ip principal.ip ip do registo não processado é mapeado.
ipf intermediary.ip ipf do registo não processado é mapeado.
ipt target.ip ipt do registo não processado é mapeado.
process_id target.process.pid process_id do registo não processado é mapeado.
protocol network.application_protocol protocol do registo não processado é mapeado.
security_res.severity security_result.severity Se severity for Minor, este campo é definido como INFORMATIONAL; se severity for Major, é definido como ERROR.
session_id network.session_id session_id do registo não processado é mapeado.
severity Não mapeado Este campo é usado para derivar security_result.severity, mas não é mapeado diretamente.
Source_HG principal.location.country_or_region Source_HG do registo não processado é mapeado.
Source_HostSnapshot principal.url Source_HostSnapshot do registo não processado é mapeado.
Target_HostSnapshot target.url Target_HostSnapshot do registo não processado é mapeado.
user_name principal.user.userid user_name do registo não processado é mapeado.

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