Coletar registros do McAfee Web Gateway

Compatível com:

Este documento explica como ingerir os registros do McAfee Web Gateway no Google Security Operations usando um agente do Bindplane. O analisador extrai campos dos registros nos formatos SYSLOG + KV (CEF), JSON e brutos. Ele usa filtros grok e CSV para analisar diferentes estruturas de registros e normaliza nomes de campos. Em seguida, ele mapeia os campos extraídos para o esquema do modelo de dados unificado (UDM, na sigla em inglês), processando vários casos extremos e inconsistências de dados para criar uma saída unificada.

Antes de começar

Verifique se você atende aos seguintes pré-requisitos:

  • Instância do Google SecOps
  • Host Windows 2016 ou mais recente ou Linux com systemd
  • Se estiver executando por trás de um proxy, as portas do firewall estarão abertas.
  • Acesso privilegiado ao McAfee Web Gateway

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. Baixe o arquivo de autenticação de ingestão. Salve o arquivo de forma segura 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

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: '/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: MCAFEE_WEBPROXY
                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 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 no 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 McAfee Web Gateway

  1. Faça login na interface da Web do McAfee Web Gateway.
  2. Acesse Política > Conjuntos de regras.
  3. Clique em Processador de registros, expanda o conjunto de regras Padrão e selecione o conjunto de regras aninhado Syslog CEF.
  4. Ative a regra Enviar para Syslog.
  5. Clique em Salvar alterações.
  6. Acesse Configuração > Appliances > Gerenciador de arquivos de registro > Configurações.
  7. Selecione Gravar registro de auditoria no syslog.
  8. Acesse Configuração > Editor de arquivos.
  9. Selecione rsyslog.conf na árvore de arquivos.
  10. Edite o arquivo da seguinte forma:
    • Localize a linha (ou similar): *.info;mail.none;authpriv.none;cron.none /var/log/messages.
    • Adicione um daemon nessa linha e insira um traço (-) antes das informações do caminho: *.info;daemon.!=info;mail.none;authpriv.none;cron.none -/var/log/messages
  11. Adicione uma nova linha na parte de baixo do arquivo para enviar as mensagens de informação ao endereço IP do agente do Bindplane.

    • Para syslog por UDP:

      daemon.info;auth.=info @<bindplane-server-ip>:<bindplane-port>
      
    • Para syslog por TCP:

      daemon.info;auth.=info @@<bindplane-server-ip>:<bindplane-port>
      

Tabela de mapeamento da UDM

Campo de registro Mapeamento do UDM Lógica
application_name principal.application Mapeado diretamente do campo application_name no formato KV ou user_agent_product no formato JSON.
auth_user principal.user.userid Mapeado diretamente do campo auth_user no formato KV.
block_reason security_result.summary Mapeado diretamente do campo block_reason nos formatos JSON e CSV JSON, _block_reason no formato bruto ou block_reason no formato KV.
block_res security_result.action Mapeado do campo block_res no formato chave-valor. Se block_res for DENIED ou contiver Block, a ação será BLOCK. Se block_res for 0 ou contiver Allow, a ação será ALLOW. Valores especiais como 50, 51, 52, 53, 58, 59, 81, 80, 82, 83, 84, 110, 111 são usados para determinar security_result.category.
bytes_from_client network.sent_bytes Mapeado diretamente do campo bytes_from_client no formato KV, sr_bytes no formato bruto ou client_to_server_bytes nos formatos JSON e CSV JSON.
bytes_to_client network.received_bytes Mapeado diretamente do campo bytes_to_client no formato KV, rs_bytes no formato bruto ou server_to_client_bytes nos formatos JSON e CSV JSON.
categories security_result.category_details Mapeado diretamente do campo categories no formato KV, _category no formato bruto ou category nos formatos JSON e CSV JSON.
client_ip principal.ip, intermediary.ip Mapeado diretamente do campo client_ip no formato JSON.
clientIP principal.ip Mapeado diretamente do campo clientIP no formato CEF.
csmethod network.http.method Mapeado diretamente do campo csmethod em formato bruto.
day metadata.event_timestamp Parte do carimbo de data/hora, extraída do campo time_stamp no formato KV.
destination_ip target.ip Mapeado diretamente do campo destination_ip no formato JSON.
destination_port target.port Mapeado diretamente do campo destination_port no formato JSON.
domain target.hostname, target.url Mapeado diretamente do campo domain em formato bruto. Usado para criar o target.url se uri estiver presente.
header intermediary.hostname Extraído do início da mensagem de registro. Usado para extrair intermediary.hostname.
host target.hostname Mapeado diretamente do campo host no formato KV.
hostname principal.hostname Mapeado diretamente do campo hostname no formato JSON.
hour metadata.event_timestamp Parte do carimbo de data/hora, extraída do campo time_stamp no formato KV.
http_action network.http.method Mapeado diretamente do campo http_action no formato JSON.
http_status_code network.http.response_code Mapeado diretamente do campo http_status_code nos formatos JSON e CSV JSON ou status_code nos formatos bruto e KV.
kv_entry.application_name principal.application Mapeado diretamente do campo application_name na entrada de KV.
kv_entry.auth_user principal.user.userid Mapeado diretamente do campo auth_user na entrada de KV.
kv_entry.block_reason security_result.summary Mapeado diretamente do campo block_reason na entrada de KV.
kv_entry.block_res security_result.action, security_result.category Mapeado do campo block_res na entrada de chave-valor. A lógica para determinar a ação e a categoria é a mesma do campo block_res de nível superior.
kv_entry.bytes_from_client network.sent_bytes Mapeado diretamente do campo bytes_from_client na entrada de KV.
kv_entry.bytes_to_client network.received_bytes Mapeado diretamente do campo bytes_to_client na entrada de KV.
kv_entry.categories security_result.category_details Mapeado diretamente do campo categories na entrada de KV.
kv_entry.host target.hostname Mapeado diretamente do campo host na entrada de KV.
kv_entry.method network.http.method Mapeado diretamente do campo method na entrada de KV.
kv_entry.rep_level security_result.severity_details Mapeado diretamente do campo rep_level na entrada de KV.
kv_entry.server_ip target.ip Mapeado diretamente do campo server_ip na entrada de KV.
kv_entry.status_code network.http.response_code Mapeado diretamente do campo status_code na entrada de KV.
kv_entry.time_stamp metadata.event_timestamp Mapeado diretamente do campo time_stamp na entrada de KV.
kv_entry.url target.url Mapeado diretamente do campo url na entrada de KV.
kv_entry.url_port target.port Mapeado diretamente do campo url_port na entrada de KV.
kv_entry.user_agent network.http.parsed_user_agent Mapeado diretamente do campo user_agent na entrada de KV e analisado em um objeto estruturado.
last_rule security_result.rule_name Mapeado diretamente do campo last_rule no formato JSON.
loc principal.location.country_or_region Mapeado diretamente do campo loc extraído de tgt_ip_or_location.
location principal.location.country_or_region Mapeado diretamente do campo location no formato JSON.
log.file.path principal.process.file.full_path Mapeado diretamente do campo log.file.path no formato JSON.
message Vários A mensagem de registro bruta. Analisados de maneira diferente dependendo do formato (bruto, JSON, KV, CEF).
method network.http.method Mapeado diretamente do campo method nos formatos KV e brutos, ou http_action no formato JSON, ou derivado de dados CEF. Se o valor for GET, POST, HEAD, OPTIONS, PUT ou CONNECT, o metadata.event_type será definido como NETWORK_HTTP. Se o valor for - ou CERTVERIFY, o metadata.event_type será definido como NETWORK_CONNECTION.
mins metadata.event_timestamp Parte do carimbo de data/hora, extraída do campo time_stamp no formato KV.
month metadata.event_timestamp Parte do carimbo de data/hora, extraída do campo time_stamp no formato KV ou do campo rt no formato CEF.
monthday metadata.event_timestamp Parte do carimbo de data/hora, extraída do início da mensagem de registro.
protocol network.application_protocol Mapeado diretamente do campo protocol no formato bruto ou uri_scheme no formato JSON ou derivado do campo url no formato KV.
query target.url Mapeado diretamente do campo query em formato bruto. Adicionado ao campo url.
rep_level security_result.severity_details Mapeado diretamente do campo rep_level no formato KV, reputation no formato JSON ou _risk no formato bruto. Usado para determinar security_result.severity.
request target.url Mapeado diretamente do campo request no formato CEF.
requestClientApplication network.http.user_agent Mapeado diretamente do campo requestClientApplication no formato CEF.
requestContext network.http.referral_url Mapeado diretamente do campo requestContext no formato CEF.
requestMethod network.http.method Mapeado diretamente do campo requestMethod no formato CEF.
requested_host target.url Mapeado diretamente do campo requested_host no formato JSON. Usado para criar o target.url se requested_path também estiver presente.
requested_path target.url Mapeado diretamente do campo requested_path no formato JSON. Anexado a requested_host para formar o target.url.
request_timestamp metadata.event_timestamp Mapeado diretamente do campo request_timestamp no formato JSON.
result security_result.action, security_result.category Mapeado diretamente do campo result nos formatos JSON e CSV JSON ou block_res no formato KV. Usado para determinar security_result.action e security_result.category.
rt metadata.event_timestamp Mapeado diretamente do campo rt no formato CEF.
secs metadata.event_timestamp Parte do carimbo de data/hora, extraída do campo time_stamp no formato KV.
server_ip target.ip Mapeado diretamente do campo server_ip no formato KV.
source_ip principal.ip Mapeado diretamente do campo source_ip nos formatos JSON, CSV JSON, bruto e KV, ou src no formato CEF, ou src_ip no formato bruto.
src principal.ip Mapeado diretamente do campo src no formato CEF.
status_code network.http.response_code Mapeado diretamente do campo status_code em formato bruto.
summary security_result.summary Mapeado diretamente do campo summary no formato CSV ou block_reason no formato JSON.
system principal.platform Mapeado diretamente do campo system no formato JSON. Convertido para maiúsculas.
target_ip target.ip Mapeado diretamente do campo target_ip em formato bruto ou dst em formato CEF.
tgtport target.port Mapeado diretamente do campo tgtport em formato bruto.
time metadata.event_timestamp Parte do carimbo de data/hora, extraída do início da mensagem de registro ou do campo rt no formato CEF ou do campo time_stamp no formato KV.
timestamp metadata.event_timestamp Mapeado diretamente do campo @timestamp no formato JSON.
timezone metadata.event_timestamp Parte do carimbo de data/hora, extraída do campo time_stamp no formato KV.
uri target.url Mapeado diretamente do campo uri em formato bruto. Usado para construir o target.url.
uri_scheme network.application_protocol Mapeado diretamente do campo uri_scheme no formato JSON. Convertido para maiúsculas.
url target.url Mapeado diretamente do campo url nos formatos bruto, KV e JSON ou construído com base em domain, uri e query no formato bruto, requested_host e requested_path no formato JSON ou request no formato CEF.
url_port target.port Mapeado diretamente do campo url_port no formato KV.
user principal.user.userid Mapeado diretamente do campo user no formato JSON, username no formato JSON, auth_user no formato KV ou suser no formato bruto.
user_agent network.http.parsed_user_agent Mapeado diretamente do campo user_agent nos formatos bruto e KV, ou user_agent_comment no formato JSON, ou requestClientApplication no formato CEF, ou construído com base em agent.type e agent.version no formato JSON. Analisado em um objeto estruturado.
user_agent_comment network.http.parsed_user_agent Mapeado diretamente do campo user_agent_comment no formato JSON.
user_agent_product principal.application Mapeado diretamente do campo user_agent_product no formato JSON.
username principal.user.userid Mapeado diretamente do campo username no formato JSON.
year metadata.event_timestamp Parte do carimbo de data/hora, extraída do campo time_stamp no formato KV ou do campo rt no formato CEF.
N/A metadata.event_type Determinado pelo analisador com base no campo method. Pode ser NETWORK_HTTP, NETWORK_CONNECTION, GENERIC_EVENT ou STATUS_UPDATE.
N/A metadata.log_type Fixado no código como MCAFEE_WEBPROXY.
N/A metadata.product_name Fixado no código como MCAFEE_WEBPROXY.
N/A metadata.vendor_name Fixado no código como MCAFEE.
N/A network.direction Fixado no código como OUTBOUND.
N/A security_result.action Determinado pelo analisador com base nos campos block_reason ou result. Pode ser ALLOW ou BLOCK.
N/A security_result.category Determinado pelo analisador com base no campo result. Pode ser NETWORK_CATEGORIZED_CONTENT, NETWORK_DENIAL_OF_SERVICE, MAIL_SPAM, AUTH_VIOLATION, SOFTWARE_MALICIOUS, NETWORK_SUSPICIOUS ou NETWORK_MALICIOUS.
N/A security_result.severity Determinado pelo analisador com base no campo risk. Pode ser LOW, MEDIUM ou HIGH.

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