Recolha registos de NAC do Forescout

Compatível com:

Este documento explica como carregar registos do Forescout Network Access Control (NAC) para o Google Security Operations através do Bindplane. O analisador processa registos formatados syslog e CEF do Forescout NAC. Extrai campos através de padrões grok, mapeia-os para o modelo de dados unificado (UDM) e categoriza eventos com base em palavras-chave e campos extraídos, processando o início/fim de sessão, as ligações de rede, os eventos de correio e as atualizações do estado do sistema. É implementada uma lógica específica para processar eventos "CounterACT" e "Virtual Firewall", incluindo o mapeamento da gravidade e o enriquecimento do contexto do utilizador.

Antes de começar

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

  • Instância do Google SecOps
  • 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
  • Deve ter instalada a versão 8.0 ou a versão mais recente do ForeScout CounterAct
  • O plugin Syslog v3.5 do módulo de extensão principal do ForeScout CounterAct deve estar instalado
  • Acesso privilegiado ao dispositivo Forescout e ao plug-in CounterACT

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
            ingestion_labels:
                log_type: 'FORESCOUT_NAC'
                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
    

Instale o plugin Syslog do CounterACT

  1. Aceda à página Forescount Base Plugins e transfira o ficheiro do plug-in .fpi.
  2. Guarde o ficheiro no computador onde a CounterACT Console está instalada.
  3. Inicie sessão na CounterACT Console.
  4. Selecione Opções > Plug-ins > Instalar.
  5. Procure e selecione o ficheiro FPI do plug-in guardado.
  6. Clique em Instalar.
  7. Aceite o contrato de licença para continuar.
  8. Quando a instalação estiver concluída, clique em Fechar.
  9. Selecione o plug-in no painel Plug-in e clique em Iniciar.
  10. Selecione os CounterACT Appliances nos quais iniciar o plug-in (é recomendado executar o plug-in em todos os Appliances no ambiente).
  11. Clique em OK.
  12. Clique em Fechar.

Configure o Syslog no plugin Syslog do Forescout CounterACT

  1. No painel Plug-ins, clique em Syslog > Configurar.
  2. Selecione qualquer dispositivo ou o Enterprise Manager na caixa de diálogo e clique em OK.
  3. Em Enviar eventos para, clique em Adicionar.
  4. Indique os seguintes detalhes de configuração:
    • Endereço do servidor: introduza o endereço IP do agente do Bindplane.
    • Porta do servidor: introduza o número da porta do agente Bindplane (por exemplo, 514 para UDP).
    • Protocolo do servidor: selecione UDP.
    • Identidade: campo de texto livre para identificar a mensagem syslog.
    • Opcional: Instalação: instalação de mensagens Syslog transmitida como parte do campo de prioridade da mensagem. Se o valor da instalação não for mencionado, é definido como local5.
    • Gravidade: selecione Informações.
  5. Aceda ao separador Acionador Syslog.
  6. Não selecione a caixa de verificação Apenas enviar mensagens geradas pela ação "Enviar mensagem para Syslog".
  7. Selecione apenas a caixa de verificação Incluir data/hora e identificador do dispositivo CounterACT em todas as mensagens.
  8. Clique em Opções para definir que tipos de eventos acionam mensagens syslog:
    • Incluir registos de políticas de NAC.
    • Inclua eventos de correspondência/não correspondência da política de NAC.
    • Se estiverem disponíveis, selecione outros eventos.
  9. Aceda ao separador Configuração da ação predefinida.
  10. Indique os seguintes detalhes de configuração:
    • Endereço do servidor: introduza o endereço IP do agente do Bindplane.
    • Porta do servidor: introduza o número da porta do agente Bindplane (por exemplo, 514 para UDP).
    • Protocolo do servidor: selecione UDP.
    • Identidade da mensagem: campo de texto livre para identificar a mensagem Syslog.
    • Opcional: Facility: funcionalidade de mensagem Syslog que é transmitida como parte do campo Priority da mensagem. Se o valor da instalação não for mencionado, é definido como local5.
    • Gravidade: selecione Informações.
  11. Clique em OK.

Tabela de mapeamento da UDM

Campo de registo Mapeamento de UDM Lógica
act security_result.action_details Mapeado diretamente a partir do campo act nos registos CEF.
app network.application_protocol Mapeado diretamente a partir do campo app nos registos CEF.
Available_memory additional.fields Extraído de kv_data quando event_type é "Estatísticas do sistema". A chave é "Memória disponível" e o valor é a string extraída.
Available_swap additional.fields Extraído de kv_data quando event_type é "Estatísticas do sistema". A chave é "Available swap" e o valor é a string extraída.
application_status additional.fields Extraído de kv_data quando event_type é "Estado da candidatura". A chave é "Estado da candidatura" e o valor é a string extraída.
Assigned_hosts additional.fields Extraído de kv_log_data quando event_type é "Estado da candidatura". A chave é "Anfitriões atribuídos" e o valor é a string extraída.
Category security_result.description Parte do security_result.description quando et_lower é "nac policy log". Concatenado com outros detalhes.
command principal.process.command_line Extraído do campo rnmsg nos registos CEF quando começa com "command:".
Connected_clients additional.fields Extraído de kv_log_data quando event_type é "Estado da candidatura". A chave é "Connected clients" e o valor é a string extraída.
CPU_usage additional.fields Extraído de kv_data quando event_type é "Estatísticas do sistema". A chave é "Utilização da CPU" e o valor é a string extraída.
cs1 additional.fields Mapeado diretamente a partir do campo cs1 nos registos CEF. A chave é "Nome da política de conformidade".
cs2 additional.fields Mapeado diretamente a partir do campo cs2 nos registos CEF. A chave é "Compliancy Policy Subrule Name".
cs3 additional.fields Mapeado diretamente a partir do campo cs3 nos registos CEF. A chave é "Host Compliancy Status".
cs4 additional.fields Mapeado diretamente a partir do campo cs4 nos registos CEF. A chave é "Compliancy Event Trigger".
data security_result.description Usado em várias partes do analisador para extrair informações e contribuir para os campos finais da UDM. Não mapeado diretamente para um único campo de dados do utilizador.
details security_result.description Usado para preencher security_result.description em vários casos, incluindo quando analisa eventos "Log" e alterações na sessão do utilizador. Pode ser analisado mais detalhadamente para obter informações específicas.
Destination target.ip, target.hostname Analisado a partir de kv_data ou data. Se puder ser convertido num endereço IP, é mapeado para target.ip. Caso contrário, é mapeado para target.hostname.
deviceExternalId about.asset.asset_id Mapeado diretamente a partir do campo deviceExternalId nos registos CEF, com o prefixo "Forescout.CommandCenter:".
dhost target.hostname Mapeado diretamente a partir do campo dhost nos registos CEF.
dmac target.mac Mapeado diretamente a partir do campo dmac nos registos CEF.
dntdom target.administrative_domain Mapeado diretamente a partir do campo dntdom nos registos CEF.
dst target.ip Mapeado diretamente a partir do campo dst nos registos CEF.
dpt target.port Mapeado diretamente a partir do campo dpt nos registos CEF.
duser target.user.user_display_name Mapeado diretamente a partir do campo duser nos registos CEF.
dvc about.ip Mapeado diretamente a partir do campo dvc nos registos CEF.
dvchost about.hostname Mapeado diretamente a partir do campo dvchost nos registos CEF.
EM_connection_status additional.fields Extraído de kv_log_data quando event_type é "Estado da candidatura". A chave é "EM connection status" e o valor é a string extraída.
Engine_status additional.fields Extraído de kv_log_data quando event_type é "Estado da candidatura". A chave é "Estado do motor" e o valor é a string extraída.
event_type metadata.description, security_result.summary Analisado a partir da mensagem de registo. Usado para determinar o tipo de evento da UDM e outros campos. Se o evento for um "GENERIC_EVENT", também é usado para a descrição.
eventtype additional.fields Mapeado diretamente a partir do campo eventtype nos registos CEF. A chave é "eventtype".
externalId metadata.product_log_id Mapeado diretamente a partir do campo externalId nos registos CEF.
from\[...\] to\[...\] principal.ip, target.ip Extrai os IPs de origem e destino do padrão "from[...] to[...]".
Host principal.ip, principal.hostname Analisado a partir de kv_data quando et_lower é "block event". Se for conversível num IP, é mapeado para principal.ip; caso contrário, para principal.hostname.
Hostname principal.hostname, principal.asset.hostname Mapeado para principal.hostname e principal.asset.hostname quando presentes em eventos de alteração da propriedade detetados.
Installed_Plugins additional.fields Extraído de kv_log_data quando event_type é "Estado da candidatura". A chave é "Installed Plugins" e o valor é a string extraída.
iporhost intermediary.ip, intermediary.hostname Analisado a partir de header_data. Se for conversível num IP, é mapeado para intermediary.ip; caso contrário, para intermediary.hostname.
Is Virtual Firewall blocking rule security_result.action, security_result.rule_name Se for "true", define security_result.action como "BLOCK" e security_result.rule_name como "Virtual Firewall blocking".
log_description security_result.summary Mapeado diretamente para security_result.summary quando presente.
log_type metadata.log_type Definido para o valor constante "FORESCOUT_NAC".
MAC principal.mac Analisado a partir de kv_data em eventos de alteração de propriedades detetados e formatado como um endereço MAC.
mail_from network.email.from Mapeado diretamente a partir do campo mail_from extraído de mail_details.
mail_subject network.email.subject Mapeado diretamente a partir do campo mail_subject extraído de mail_details.
mail_to network.email.to Mapeado diretamente a partir do campo mail_to extraído de mail_details.
Match security_result.rule_name Mapeado diretamente a partir do campo Match quando et_lower é "registo da política de NAC".
metadata.event_type metadata.event_type Determinada por várias condições no analisador, incluindo a presença de campos e palavras-chave específicos na mensagem de registo. A predefinição é GENERIC_EVENT e é atualizada com base nos dados analisados. Os exemplos incluem USER_LOGIN, USER_LOGOUT, NETWORK_CONNECTION, SCAN_NETWORK, STATUS_UPDATE, EMAIL_TRANSACTION e USER_UNCATEGORIZED.
metadata.product_name metadata.product_name Definido como "FORESCOUT NAC" para a maioria dos eventos ou para o valor do campo product, se existir. Para eventos CEF, está definido como "CounterAct".
metadata.vendor_name metadata.vendor_name Definido como "FORESCOUT" para a maioria dos eventos. Para eventos CEF, é retirado do campo cs1Label, se existir, ou definido como "ForeScout Technologies".
msg metadata.description Mapeado diretamente a partir do campo msg nos registos CEF.
pid intermediary.process.pid Mapeado diretamente a partir do campo pid extraído de header_data.
policy_details security_result.description Parte do security_result.description quando et_lower é "nac policy log". Concatenado com outros detalhes.
product metadata.product_name Mapeado diretamente para metadata.product_name quando presente.
proto network.ip_protocol Mapeado diretamente a partir do campo proto nos registos CEF.
Reason security_result.description Mapeado diretamente a partir do campo Reason quando et_lower é "block event".
resource principal.resource.name Mapeado diretamente a partir do campo resource nos registos CEF.
rnmsg security_result.description, principal.process.command_line Se começar por "command:", a parte após "command:" é mapeada para principal.process.command_line. Caso contrário, é mapeado para security_result.description.
rt metadata.event_timestamp Mapeado diretamente a partir do campo rt nos registos CEF, convertido numa data/hora.
Rule security_result.rule_id Mapeado diretamente a partir do campo Rule quando et_lower é "registo da política de NAC".
security_result.severity security_result.severity Derivado do campo severity_level. 0 a 3 corresponde a BAIXO, 4 a 6 corresponde a MÉDIO, 7 a 8 corresponde a ELEVADO e 9 a 10 corresponde a CRÍTICO.
security_result.severity_details security_result.severity_details Mapeado diretamente a partir do campo severity nos registos CEF.
Service target.port, network.ip_protocol Analisado para extrair a porta e o protocolo. A porta está mapeada para target.port e o protocolo para network.ip_protocol.
session_id network.session_id Mapeado diretamente a partir do campo session_id.
severity security_result.severity_details Mapeado diretamente a partir do campo severity nos registos CEF.
severity_level security_result.severity Usado para determinar o security_result.severity.

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