Recolha registos do Cisco Stealthwatch
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
- 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
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
,vi
ou Bloco de notas).
- Localize o ficheiro
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
Substitua a porta e o endereço IP conforme necessário na sua infraestrutura.
Substitua
<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.
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)
- Inicie sessão na IU Web da consola de gestão.
- Aceda a Configuração > Gestão de respostas.
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}
Clique em OK.
Aceda a Gestão de respostas > Ações > Adicionar mensagem Syslog.
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.
Clique em OK.
Configure nomes de regras para o Cisco Secure Network Analytics (anteriormente Stealthwatch)
- Aceda a Configuração > Gestão de respostas.
- Selecione Regras > Adicionar > Alarmes do sistema SMC.
- Clique em OK.
- Na caixa de diálogo Tipos de regras, selecione uma regra.
- Clique em OK.
- 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.
- Clique em OK.
- Selecione Ações > Adicionar.
- Selecione a ação que criou anteriormente.
- Clique em OK e, de seguida, em OK.
- 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.