Recolha registos de VPN da Cisco

Compatível com:

Este documento explica como carregar registos de VPN do Cisco ASA para o Google Security Operations usando o Bindplane. O analisador extrai campos das mensagens syslog através de padrões grok, processando formatos syslog padrão e estruturas de mensagens alternativas. Em seguida, mapeia os campos extraídos para o modelo de dados unificado (UDM), categoriza os eventos com base nos IDs e nas informações extraídas e enriquece os dados com metadados, como o fornecedor, o produto e o tipo de evento. O analisador também processa IDs de eventos específicos, aplicando padrões grok e lógica adicionais para extrair detalhes relevantes e mapeá-los para campos UDM adequados.

Antes de começar

Certifique-se de que tem os seguintes pré-requisitos:

  • Instância do Google SecOps
  • Um anfitrião Windows 2016 ou posterior, ou um anfitrião Linux com systemd
  • Se estiver a ser executado através de um proxy, as portas da firewall estão abertas
  • Acesso privilegiado ao Cisco ASA

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

Instale o agente do Bindplane no seu sistema operativo Windows ou Linux de acordo com as seguintes instruções.

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

Para ver opções de instalação adicionais, consulte o guia de instalação.

Configure o agente Bindplane para carregar o Syslog e enviá-lo para o Google SecOps

  1. 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).
  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_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_VPN'
            raw_log_field: body
            ingestion_labels:
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    

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 Serviços ou introduzir o seguinte comando:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Configure o Syslog para a VPN Cisco ASA

  1. Abra o Cisco ASDM.
  2. Aceda a Configuração > Funcionalidades > Propriedades > Registo > Configuração do registo.
  3. Selecione a caixa de verificação Ativar registo para ativar o syslog.
  4. Selecione Servidores Syslog em Registo e clique em Adicionar.
  5. Introduza os seguintes detalhes de configuração na janela Adicionar servidor Syslog:
    • Interface: selecione a interface para a comunicação de saída.
    • Endereço IP: introduza o endereço IP do agente Bindplane.
    • Protocolo: selecione UDP.
    • Porta: introduza o número da porta do agente do Bindplane.
    • Clique em OK.
  6. Selecione Filtros de registo na secção Registo.
  7. Selecione Servidores Syslog e clique em Editar.
  8. Selecione Informativo na lista como o Filtro na gravidade.
  9. Clique em OK.
  10. Clique em Aplicar.

Tabela de mapeamento do UDM

Campo de registo Mapeamento de UDM Lógica
accesslist target.resource.name Extraído de message_info quando eventtype é "ASA-4-106103". Representa o nome da lista de acesso.
action security_result.action Derivada pelo analisador com base nas palavras-chave na mensagem de registo (por exemplo, "Recusar", "Rejeitar", "Permitir", "Aceitar"). Mapeia para PERMITIR ou BLOQUEAR.
action security_result.action_details O valor da string não processada da ação realizada (por exemplo, "permitted", "denied", "disconnected").
app_name principal.application O nome da aplicação usada pelo principal (por exemplo, "CLI"). Extraído de message_details para o ID do evento 111008, 111009 e 111010.
assigned_ipv4 N/A Embora seja analisado, este campo não está mapeado para o objeto IDM no UDM.
assigned_ipv6 N/A Embora seja analisado, este campo não está mapeado para o objeto IDM no UDM.
bytes_rcv network.received_bytes O número de bytes recebidos na sessão. Extraído de log_mssg para o ID do evento 113019.
bytes_sent network.sent_bytes O número de bytes enviados na sessão. Extraído de log_mssg para o ID do evento 113019.
cipher network.tls.cipher A cifra usada para a sessão SSL. Extraído de message_info para o tipo de evento 725012.
cisco_message_number security_result.rule_name O número da mensagem da Cisco, extraído do campo eventtype.
cisco_severity security_result.severity_details O nível de gravidade da Cisco não processado, extraído do campo eventtype.
command N/A Embora seja analisado, este campo não está mapeado para o objeto IDM no UDM.
cumulative_total_count.key security_result.outcomes.key A chave "cumulative_total_count" é adicionada à matriz security_result.outcomes.
cumulative_total_count.value security_result.outcomes.value O valor da contagem total cumulativa, extraído de message_info.
current_average_rate.key security_result.outcomes.key A chave "current_average_rate" é adicionada à matriz security_result.outcomes.
current_average_rate.value security_result.outcomes.value O valor da taxa média atual, extraído de message_info.
current_burst_rate.key security_result.outcomes.key A chave "current_burst_rate" é adicionada à matriz security_result.outcomes.
current_burst_rate.value security_result.outcomes.value O valor da taxa de rajada atual, extraído de message_info.
desc metadata.description Descrição do evento, extraída da mensagem de registo. Usado quando não está disponível uma descrição mais específica.
description metadata.description Uma descrição mais detalhada do evento, extraída da mensagem de registo quando disponível.
destination_ip target.ip, target.asset.ip Endereço IP de destino, extraído de vários formatos de mensagens de registo.
destination_ip_port target.port ou network.application_protocol Porta de destino, extraída de vários formatos de mensagens de registo. Se o valor extraído não for um número, é tratado como o protocolo de aplicação.
dst_email target.user.email_addresses ou target.user.userid Endereço de email ou ID do utilizador de destino, extraído de message_info. Se o valor corresponder a um formato de email, é adicionado a email_addresses; caso contrário, é usado como userid.
dst_host target.hostname Nome de anfitrião de destino, extraído de message_info.
dst_ip target.ip, target.asset.ip Endereço IP de destino, extraído do padrão grok principal ou de outros padrões específicos.
dst_port target.port Porto de destino, extraído do padrão grok principal ou de outros padrões específicos.
duration network.session_duration Duração da sessão, extraída de message_details e convertida em segundos.
event_date @timestamp A data e a hora do evento, construídas a partir de vários campos de data/hora no registo não processado e analisadas através do filtro date.
event_id metadata.product_event_type (parte de) Usado em combinação com event_severity para formar o campo metadata.product_event_type.
event_name metadata.product_event_type (parte de) Usado em combinação com event_severity e event_type para formar o campo metadata.product_event_type quando disponível.
event_severity metadata.product_event_type (parte de), security_result.severity, is_alert, is_significant Usado em combinação com event_id ou event_name e event_type para formar o campo metadata.product_event_type. Também é usado para derivar os campos security_result.severity, is_alert e is_significant.
event_type metadata.product_event_type (parte de) Usado em combinação com event_name e event_severity para formar o campo metadata.product_event_type quando disponível.
eventtype metadata.product_event_type, security_result.rule_name, security_result.severity_details, security_result.severity A string do tipo de evento, usada para derivar os campos metadata.product_event_type, security_result.rule_name, security_result.severity_details e security_result.severity.
fragment_id security_result.about.resource.id ID do fragmento de IP, extraído de message_details para o ID do evento 209005.
group principal.group.group_display_name, principal.user.group_identifiers, target.user.group_identifiers Nome do grupo, extraído de vários formatos de mensagens de registo.
group_name principal.group.group_display_name Nome do grupo extraído do campo group quando é um nome de anfitrião.
has_principal_ip N/A Variável interna usada para lógica, não mapeada para UDM.
has_target_ip N/A Variável interna usada para lógica, não mapeada para UDM.
hostname principal.hostname, principal.asset.hostname Nome do anfitrião do principal, extraído de vários formatos de mensagens de registo.
hostname2 principal.hostname, principal.asset.hostname Nome do anfitrião do principal, extraído como alternativa quando hostname não está disponível.
icmp_code N/A Embora seja analisado, este campo não está mapeado para o objeto IDM no UDM.
icmp_dst_ip target.ip, target.asset.ip Endereço IP de destino de uma mensagem de erro ICMP.
icmp_id N/A Embora seja analisado, este campo não está mapeado para o objeto IDM no UDM.
icmp_src_ip principal.ip, principal.asset.ip Endereço IP de origem de uma mensagem de erro ICMP.
icmp_type N/A Embora seja analisado, este campo não está mapeado para o objeto IDM no UDM.
intermediary_ip principal.ip, principal.asset.ip Endereço IP intermediário, extraído de message_info para o ID do evento 111010.
invalid_ip N/A Variável interna usada para lógica, não mapeada para UDM.
ip_1 principal.ip, principal.asset.ip Endereço IP de origem extraído como alternativa quando os IPs de origem e destino são os mesmos.
ip_2 target.ip, target.asset.ip Endereço IP de destino extraído como alternativa quando os IPs de origem e destino são os mesmos.
ipprotocol network.ip_protocol Protocolo IP, extraído de vários formatos de mensagens de registo e convertido em maiúsculas.
issuer network.tls.client.certificate.issuer Emissor do certificado de pares, extraído de message_details para o ID do evento 717037.
local_proxy_ip intermediary.ip Endereço IP do proxy local, extraído de message_details para o ID do evento 713041.
log_mssg security_result.description, sr.action Usado para preencher o campo security_result.description e para extrair ações de autenticação.
login security_result.summary Estado de início de sessão, extraído de message_info.
max_configured_rate.key security_result.outcomes.key A chave "max_configured_rate" é adicionada à matriz security_result.outcomes.
max_configured_rate.value security_result.outcomes.value O valor da taxa máxima configurada, extraído de message_info.
message_details Vários campos A parte principal da mensagem de registo, que contém detalhes sobre o evento. Analisado através de vários padrões grok, consoante o ID do evento.
message_info metadata.description Usado para preencher o campo metadata.description quando disponível.
observer observer.hostname ou observer.ip Nome do anfitrião ou endereço IP do observador, extraído da mensagem de registo.
observer_ip observer.ip Endereço IP do observador, extraído do campo observer.
peer_type N/A Embora seja analisado, este campo não está mapeado para o objeto IDM no UDM.
policy target.resource.name Nome da política, extraído de message_details para o ID do evento 113003.
policy_name target.resource.name Nome da política, extraído de message_details para os IDs de eventos 113009 e 113011.
principal_ip principal.ip, principal.asset.ip Endereço IP principal, extraído de message_details para o ID do evento 113009.
privilege_level_from N/A Embora seja analisado, este campo não está mapeado para o objeto IDM no UDM.
privilege_level_to N/A Embora seja analisado, este campo não está mapeado para o objeto IDM no UDM.
process principal.process.command_line Nome do processo, extraído de message_details para o ID do evento 711004.
protocol network.ip_protocol ou network.application_protocol Protocolo usado no evento, extraído de vários formatos de mensagens de registo. Se o protocolo for um protocolo IP padrão (ICMP, TCP, UDP, ESP), é mapeado para network.ip_protocol; caso contrário, é mapeado para network.application_protocol.
reason security_result.description Motivo do evento, extraído de message_details para o ID do evento 113016.
remote_proxy_ip intermediary.ip Endereço IP do proxy remoto, extraído de message_details para o ID do evento 713041.
retrieved_file target.file.full_path Caminho para o ficheiro obtido, extraído de message_info.
security_action security_result.action Ação de segurança, derivada pelo analisador com base no contexto do evento.
security_category security_result.category Categoria de segurança, derivada pelo analisador com base no contexto do evento.
security_result.description security_result.description Descrição do resultado de segurança, extraído ou derivado da mensagem de registo.
security_result.severity security_result.severity Gravidade do resultado de segurança, derivada do campo event_severity.
security_result.summary security_result.summary Resumo do resultado de segurança, extraído ou derivado da mensagem de registo.
sent_bytes network.sent_bytes Número de bytes enviados, extraídos de message_info.
ses_id network.session_id ID da sessão, extraído de message_info.
session_id network.session_id ID da sessão, extraído de message_info.
sess_type principal.hostname, principal.asset.hostname Tipo de sessão, extraído de log_mssg e usado como nome de anfitrião quando hostname não está disponível.
source_ip principal.ip, principal.asset.ip Endereço IP de origem, extraído de vários formatos de mensagens de registo.
source_ip_port principal.port Porta de origem, extraída de vários formatos de mensagens de registo.
src_email principal.user.email_addresses ou principal.user.userid Endereço de email ou ID do utilizador de origem, extraído do message_info. Se o valor corresponder a um formato de email, é adicionado a email_addresses; caso contrário, é usado como userid.
src_ip principal.ip, principal.asset.ip Endereço IP de origem, extraído do padrão grok principal ou de outros padrões específicos.
src_port principal.port Porta de origem, extraída do padrão grok principal ou de outros padrões específicos.
src_user principal.user.user_display_name Nome a apresentar do utilizador de origem, extraído de message_details para os IDs de eventos 713049 e 713120.
subject network.tls.client.certificate.subject Assunto do certificado de pares, extraído de message_details para o ID do evento 717037.
summary security_result.summary Resumo do evento, extraído de message_details para o ID do evento 113016.
target_host target.hostname Nome do anfitrião de destino, extraído de message_details para o ID do evento 113004.
target_ip target.ip, target.asset.ip Endereço IP de destino, extraído de message_details para o ID do evento 113004.
target_user target.user.userid User-ID de destino, extraído de message_details para o ID do evento 113003.
task_duration N/A Embora seja analisado, este campo não está mapeado para o objeto IDM no UDM.
tcp_dst_ip target.ip, target.asset.ip Endereço IP de destino da carga útil TCP original de uma mensagem de erro ICMP.
tcp_dst_port N/A Embora seja analisado, este campo não está mapeado para o objeto IDM no UDM.
tcp_src_ip principal.ip, principal.asset.ip Endereço IP de origem da carga útil TCP original de uma mensagem de erro ICMP.
tcp_src_port N/A Embora seja analisado, este campo não está mapeado para o objeto IDM no UDM.
threshold N/A Embora seja analisado, este campo não está mapeado para o objeto IDM no UDM.
tls_version network.tls.version Versão de TLS, extraída de message_details para o ID do evento 725002.
ts @timestamp Data/hora do evento, analisada através do filtro date.
ts_day @timestamp (parte de) Dia do mês da data/hora, usado para construir o campo @timestamp.
ts_month @timestamp (parte de) Mês da data/hora, usado para construir o campo @timestamp.
ts_time @timestamp (parte de) Hora a partir da data/hora, usada para construir o campo @timestamp.
ts_year @timestamp (parte de) Ano da data/hora, usado para construir o campo @timestamp.
tunnel_type N/A Embora seja analisado, este campo não está mapeado para o objeto IDM no UDM.
user principal.user.userid, target.user.userid ID do utilizador, extraído de vários formatos de mensagens de registo.
user_agent network.http.user_agent String do agente do utilizador, extraída de message_details para o ID do evento 722055.
user_attr.key principal.user.attribute.labels.key Chave de um atributo do utilizador, extraída de message_details para os IDs de eventos 734003 e 734001.
user_attr.value principal.user.attribute.labels.value Valor de um atributo do utilizador, extraído de message_details para os IDs de eventos 734003 e 734001.
userid principal.user.userid User-ID, extraído de message_details para o ID do evento 106103.
username principal.user.userid Nome de utilizador, extraído de message_details para os IDs de eventos 111008, 111009, 111010 e 113008.
N/A metadata.vendor_name Codificado como "CISCO".
N/A metadata.product_name Codificado como "ASA VPN" ou "VPN".
N/A metadata.event_type Determinado pela lógica do analisador com base na presença de determinados campos e IDs de eventos. Pode ser GENERIC_EVENT, NETWORK_CONNECTION, STATUS_UPDATE, NETWORK_FTP, USER_LOGIN, USER_LOGOUT, NETWORK_UNCATEGORIZED, USER_UNCATEGORIZED ou NETWORK_FLOW.
N/A metadata.log_type Codificado de forma rígida para "CISCO_VPN".
N/A metadata.event_timestamp Copiado do campo @timestamp analisado.
N/A extensions.auth.type Definido como "VPN", "AUTHTYPE_UNSPECIFIED" ou "MACHINE", consoante o contexto do evento.
N/A security_result.about.resource.type Definido como "PACKET FRAGMENT" para o ID do evento 209005.
N/A is_alert Definido como verdadeiro para eventos de gravidade elevada (event_severity 0 ou 1).
N/A is_significant Definido como verdadeiro para eventos de gravidade elevada (event_severity 0 ou 1).

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