Coletar registros do Cisco Firepower NGFW
Neste documento, explicamos como ingerir registros do firewall de próxima geração (NGFW) do Cisco Firepower no Google Security Operations usando o Bindplane. O analisador extrai os registros de vários formatos (syslog, JSON e combinações deles), normaliza o carimbo de data/hora e mapeia os campos relevantes para o modelo de dados unificado (UDM). Ele processa mensagens syslog convencionais e payloads formatados em JSON nos registros, aproveitando padrões grok e lógica condicional para extrair campos como ID do evento, gravidade e IP do cliente. Em seguida, enriquece os dados com rótulos com base no nome do host HTTP e no URI.
Antes de começar
Verifique se você tem os pré-requisitos a seguir:
- Instância do Google SecOps
- Windows 2016 ou mais recente ou um host Linux com
systemd
- Se você estiver executando por trás de um proxy, verifique se as portas do firewall estão abertas.
- Acesso privilegiado a um dispositivo Cisco Firepower
Receber o arquivo de autenticação de ingestão do Google SecOps
- Faça login no console do Google SecOps.
- Acesse Configurações do SIEM > Agentes de coleta.
- Faça o download do arquivo de autenticação de ingestão.
- Salve o arquivo com segurança no sistema em que o BindPlane será instalado.
Receber o ID do cliente do Google SecOps
- Faça login no console do Google SecOps.
- Acesse Configurações do SIEM > Perfil.
- Copie e salve o ID do cliente na seção Detalhes da organização.
Instalar o agente do Bindplane
Instale o agente do Bindplane no sistema operacional Windows ou Linux de acordo com as instruções a seguir.
Instalação do Windows
- Abra o Prompt de Comando ou o PowerShell como administrador.
Execute este 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 root ou sudo.
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
Para mais opções de instalação, consulte o guia de instalação.
Configurar o agente do Bindplane para ingerir o Syslog e enviar ao Google SecOps
- Acesse o arquivo de configuração:
- Localize o arquivo
config.yaml
. Normalmente, ele fica no diretório/etc/bindplane-agent/
no Linux ou no diretório de instalação no Windows. - Abra o arquivo usando um editor de texto (por exemplo,
nano
,vi
ou Bloco de Notas).
- Localize o arquivo
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_file_path: '/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 log_type: 'CISCO_FIREPOWER_FIREWALL' raw_log_field: body ingestion_labels: 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 do cliente real. - Atualize
/path/to/ingestion-authentication-file.json
para o caminho em que o arquivo de autenticação foi salvo na seção Receber arquivo de autenticação de ingestão do Google SecOps.
Reinicie o agente do Bindplane para aplicar as mudanças
Para reiniciar o agente do Bindplane em Linux, execute o seguinte comando:
sudo systemctl restart bindplane-agent
Para reiniciar o agente do Bindplane no Windows, use o console Serviços ou insira o seguinte comando:
net stop BindPlaneAgent && net start BindPlaneAgent
Configurar o Syslog no dispositivo Cisco FirePower
- Faça login na UI da Web do Firepower Device Manager.
- Acesse Configurações do sistema > Configurações de registro.
- Mude para Ativar a opção Geração de registros de dados.
- Clique no ícone + em Servidores Syslog.
- Clique em Criar novo servidor Syslog. Como alternativa, crie o servidor Syslog em Objetos > Servidores Syslog.
- Informe os seguintes detalhes de configuração:
- Endereço IP: insira o endereço IP do agente do Bindplane.
- Tipo de protocolo: selecione UDP.
- Número da porta: insira o número da porta do agente do Bindplane.
- Selecione Interface de dados ou Interface de gerenciamento.
- Clique em OK.
- Selecione o servidor Syslog recém-criado na lista e clique em OK.
- Clique em Nível de gravidade para filtrar todos os eventos e selecione o nível de registro Informativo na lista.
- Clique em Salvar.
- Clique no ícone Implantar novas configurações > Implantar agora.
- Clique em Políticas na parte de cima da tela.
- Passe o cursor sobre o lado direito da regra de ACP e clique em edit Editar.
- Acesse a guia Logging.
- Selecione Ao final da conexão.
- Abra a lista Selecionar uma configuração de alerta do Syslog.
- selecione o servidor Syslog do Bindplane.
- Clique em OK.
- Clique no ícone Implantar novas configurações > Implantar agora.
Tabela de mapeamento da UDM
Campo de registro | Mapeamento do UDM | Lógica |
---|---|---|
AccessControlRuleAction |
security_result.action |
Mapeado diretamente do registro bruto. Os valores são normalizados para UDM (ALLOW/BLOCK). |
AccessControlRuleName |
security_result.rule_name |
Mapeado diretamente do registro bruto. |
ACPolicy |
security_result.rule_labels.value |
Mapeado diretamente do registro bruto. A chave é definida como "ACPolicy". |
ApplicationProtocol |
network.application_protocol |
Mapeado diretamente do registro bruto. |
Client |
network.http.user_agent |
Mapeado diretamente do registro bruto. |
ClientVersion |
principal.asset.platform_version |
Mapeado diretamente do registro bruto. |
collection_time.nanos |
metadata.event_timestamp.nanos |
Mapeado diretamente do registro bruto. |
collection_time.seconds |
metadata.event_timestamp.seconds |
Mapeado diretamente do registro bruto. |
ConnectionDuration |
network.session_duration.seconds |
Mapeado diretamente do registro bruto e convertido em segundos, se necessário (por exemplo, do formato de duração). |
data |
metadata.description |
Usado em conjunto com eventId para gerar uma descrição mais detalhada. Também usado para extrair outros campos usando grok e expressão regular. |
deviceId |
metadata.product_log_id |
Mapeado diretamente do registro bruto após a renomeação para device_uuid . |
device_uuid |
metadata.product_log_id |
Mapeado diretamente do registro bruto. |
DstIP |
target.asset.ip , target.ip |
Mapeado diretamente do registro bruto. |
DstPort |
target.port |
Mapeado diretamente do registro bruto. |
EgressInterface |
principal.asset.attribute.labels.value |
Mapeado diretamente do registro bruto. A chave está definida como "EgressInterface". |
EgressZone |
target.location.name |
Mapeado diretamente do registro bruto. |
eventId |
metadata.product_event_type |
Mapeado diretamente do registro bruto. Também usado para lógica condicional e filtragem. |
FileAction |
security_result.summary |
Mapeado diretamente do registro bruto. |
FileDirection |
metadata.description |
Mapeado diretamente do registro bruto e anexado à descrição. |
FileName |
target.file.full_path |
Mapeado diretamente do registro bruto. |
FilePolicy |
security_result.rule_name |
Mapeado diretamente do registro bruto. |
FileSize |
target.file.size |
Mapeado diretamente do registro bruto. |
FileSHA256 |
target.file.sha256 |
Mapeado diretamente do registro bruto. |
FileSandboxStatus |
security_result.description |
Mapeado diretamente do registro bruto. |
HTTPReferer |
network.http.referral_url |
Mapeado diretamente do registro bruto. |
HTTPResponse |
network.http.response_code |
Mapeado diretamente do registro bruto. |
HTTP_Hostname |
target.resource.attribute.labels.value |
Mapeado diretamente do registro bruto. A chave é definida como "HTTP_Hostname". |
HTTP_URI |
target.resource.attribute.labels.value |
Mapeado diretamente do registro bruto. A chave é definida como "HTTP_URI". |
IngressInterface |
principal.asset.attribute.labels.value |
Mapeado diretamente do registro bruto. A chave está definida como "IngressInterface". |
IngressZone |
principal.location.name |
Mapeado diretamente do registro bruto. |
InitiatorBytes |
network.received_bytes |
Mapeado diretamente do registro bruto. |
InlineResult |
security_result.action_details |
Mapeado diretamente do registro bruto. |
IntrusionPolicy |
security_result.rule_name |
Mapeado diretamente do registro bruto. |
log_type |
metadata.log_type |
Mapeado diretamente do registro bruto. |
Message |
security_result.description |
Mapeado diretamente do registro bruto, geralmente precedido por "Message : ". |
NAPPolicy |
principal.asset.attribute.labels.value |
Mapeado diretamente do registro bruto. A chave é definida como "NAPPolicy". |
Prefilter Policy |
security_result.rule_labels.value |
Mapeado diretamente do registro bruto. A chave é definida como "Prefilter Policy". |
Priority |
security_result.priority_details |
Mapeado diretamente do registro bruto. |
priorityId |
security_result.priority_details |
Mapeado diretamente do registro bruto. |
product |
metadata.product_name |
Definido como "Firepower Firewall". |
Protocol |
network.ip_protocol |
Mapeado diretamente do registro bruto. Os valores são normalizados para UDM (TCP, UDP, ICMP etc.). |
ResponderBytes |
network.sent_bytes |
Mapeado diretamente do registro bruto. |
Revision |
security_result.about.labels.value |
Mapeado diretamente do registro bruto. A chave está definida como "Signature_Version". |
ruleId |
security_result.rule_id |
Mapeado diretamente do registro bruto. |
security_result.severity |
security_result.severity |
Definido com base no campo severity do registro bruto, usando uma tabela de pesquisa para mapear valores de gravidade da UDM. |
security_result.severity_details |
security_result.severity_details |
Definido com base no campo severity do registro bruto, usando uma tabela de pesquisa para mapeamento com detalhes de gravidade da UDM. |
SID |
security_result.threat_id |
Mapeado diretamente do registro bruto. |
SrcIP |
principal.asset.ip , principal.ip |
Mapeado diretamente do registro bruto. |
SrcPort |
principal.port |
Mapeado diretamente do registro bruto. |
syslog_msg_id |
metadata.product_event_type |
Mapeado diretamente do registro bruto após ser convertido em uma string. Usado para substituir o eventId , se presente. |
syslog_msg_text |
metadata.description , security_result.description |
Mapeado diretamente do registro bruto, às vezes precedido por "Message : ". Usado para substituir a descrição gerada de data e eventId . |
syslog_severity |
security_result.severity |
Mapeado diretamente do registro bruto após ser convertido em uma string. Usado para substituir a gravidade derivada de eventId . Os valores são normalizados para UDM (INFORMATIONAL, WARNING, ERROR etc.). |
sysloghost |
intermediary.hostname |
Mapeado diretamente do registro bruto. |
ThreatName |
security_result.threat_name |
Mapeado diretamente do registro bruto. |
ts |
metadata.event_timestamp |
Analisado do registro bruto usando filtros de data e vários formatos. |
ts_year |
metadata.event_timestamp |
Analisado do registro bruto usando filtros de data e vários formatos. |
URL |
target.url |
Mapeado diretamente do registro bruto. |
URLCategory |
security_result.category_details |
Mapeado diretamente do registro bruto. |
URLReputation |
security_result.confidence_details |
Mapeado diretamente do registro bruto. |
User |
target.user.userid |
Mapeado diretamente do registro bruto. |
UserAgent |
network.http.user_agent |
Mapeado diretamente do registro bruto. |
UserName |
target.user.userid |
Mapeado diretamente do registro bruto. |
user_name |
principal.user.email_addresses |
Mapeado diretamente do registro bruto para tipos de eventos específicos. |
WebApplication |
target.application |
Mapeado diretamente do registro bruto. |
metadata.event_type é definido como um valor padrão de NETWORK_CONNECTION e às vezes é substituído com base no eventId ou em outros campos. |
||
metadata.vendor_name é sempre definido como "Cisco". |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.