Coletar registros do Cisco Firepower NGFW

Compatível com:

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

  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 ingestão.
    • Salve o arquivo com segurança no sistema em que o BindPlane será instalado.

Receber o ID do 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

Instale o agente do Bindplane no sistema operacional Windows ou Linux de acordo com as instruções a seguir.

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 root 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

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

  1. 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).
  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_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

  1. Faça login na UI da Web do Firepower Device Manager.
  2. Acesse Configurações do sistema > Configurações de registro.
  3. Mude para Ativar a opção Geração de registros de dados.
  4. Clique no ícone + em Servidores Syslog.
  5. Clique em Criar novo servidor Syslog. Como alternativa, crie o servidor Syslog em Objetos > Servidores Syslog.
  6. 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.
  7. Clique em OK.
  8. Selecione o servidor Syslog recém-criado na lista e clique em OK.
  9. Clique em Nível de gravidade para filtrar todos os eventos e selecione o nível de registro Informativo na lista.
  10. Clique em Salvar.
  11. Clique no ícone Implantar novas configurações > Implantar agora.
  12. Clique em Políticas na parte de cima da tela.
  13. Passe o cursor sobre o lado direito da regra de ACP e clique em edit Editar.
  14. Acesse a guia Logging.
  15. Selecione Ao final da conexão.
  16. Abra a lista Selecionar uma configuração de alerta do Syslog.
  17. selecione o servidor Syslog do Bindplane.
  18. Clique em OK.
  19. 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.