Recolha registos CEF do Imperva

Suportado em:

Este documento explica como carregar registos CEF da Imperva para o Google Security Operations através do Bindplane. O analisador extrai os registos no formato CEF de mensagens syslog, convertendo-os no formato UDM. Processa vários formatos de registos, extrai pares de chave-valor da carga útil, realiza transformações e enriquecimentos de dados e mapeia os campos extraídos para os campos UDM correspondentes, incluindo informações de rede, detalhes do utilizador, geolocalização e resultados de segurança.

Antes de começar

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

  • Uma instância do Google SecOps
  • Um anfitrião Windows 2016 ou posterior, ou Linux com systemd
  • Se estiver a ser executado através de um proxy, certifique-se de que as portas da firewall estão abertas de acordo com os requisitos do agente Bindplane
  • Acesso privilegiado à consola de gestão ou ao dispositivo Imperva

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 de janelas

  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

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

  1. Aceda ao ficheiro de configuração:

    1. 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.
    2. 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: 'IMPERVA_CEF'
        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 Bindplane no Windows, pode usar a consola Serviços ou introduzir o seguinte comando:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Configure o gateway de WAF (SecureSphere) da Imperva para enviar CEF através do syslog

  1. Na consola do MX, crie um conjunto de ações:

    • Navegue para Políticas > Conjuntos de ações.
    • Clique em Novo e atribua-lhe um nome (por exemplo, Google SecOps CEF).
  2. Adicione a interface de ação syslog CEF:

    • Em Interfaces de ações disponíveis, abra Registo do sistema e adicione um ou mais dos seguintes elementos (conforme necessário):
      • Registe o evento de segurança no registo do sistema (syslog) através da norma CEF
      • Registe o evento de segurança da rede no registo do sistema (syslog) através da norma CEF
      • Registe o evento do sistema no registo do sistema (syslog) através da norma CEF
      • Registe um evento de segurança personalizado no registo do sistema (syslog) através da norma CEF
  3. Configure os parâmetros da interface de ações:

    • Anfitrião Syslog: introduza o endereço IP do agente Bindplane. Para usar uma porta não predefinida, anexe :PORT (a predefinição é 514 se não especificar uma). Exemplo: 10.0.0.10:514.
    • Instalação / Nível de registo: defina de acordo com os requisitos da sua política.
    • Mensagem: deixe as predefinições do fornecedor para CEF, a menos que tenha um mapeamento personalizado.
  4. Anexe o conjunto de ações às políticas:

    • Para eventos de Segurança / Segurança de rede: abra as políticas relevantes e defina Ação seguida para o seu conjunto de ações.
    • Para Eventos do sistema: crie ou valide uma política de Eventos do sistema e defina Ação seguida para o seu conjunto de ações, para que esses eventos também sejam enviados através do CEF.
  5. Opcional: configure alvos específicos da gateway:

    • Se diferentes grupos de gateways tiverem de enviar para diferentes servidores syslog, configure cada grupo de gateways > registador externo e ative a opção "Usar configuração do gateway se existir" na política.

Tabela de mapeamento da UDM

Campo de registo Mapeamento da UDM Lógica
act security_result.action Derivada. Se act for "permitido", "alerta", começar por "REQ_PASSED" ou começar por "REQ_CACHED", então action é "ALLOW". Se act for "deny", "blocked", começar por "REQ_BLOCKED" ou começar por "REQ_CHALLENGE", então action é "BLOCK". Se act corresponder à regex (?i)REQ_BAD, então action é "FAIL". Caso contrário, action é "UNKNOWN_ACTION". Em seguida, security_result.action é definido como o valor de action.
act security_result.action_details Derivada. Com base no valor de act, é gerada uma descrição detalhada. Exemplos: "REQ_CACHED_FRESH: response was returned from the data center's cache" (REQ_CACHED_FRESH: a resposta foi devolvida da cache do centro de dados), "REQ_BLOCKED: the request was blocked" (REQ_BLOCKED: o pedido foi bloqueado).
app network.application_protocol Mapeado diretamente após a conversão para letras maiúsculas.
cs1 security_result.detection_fields.value Mapeado condicionalmente se cs1 não estiver vazio ou for "NA". security_result.detection_fields.key está definido como o valor de cs1Label.
cs1Label security_result.detection_fields.key Mapeado condicionalmente se cs1 não estiver vazio ou for "NA". security_result.detection_fields.value está definido como o valor de cs1.
cs2 security_result.detection_fields.value Mapeado condicionalmente se não estiver vazio. security_result.detection_fields.key está definido como o valor de cs2Label.
cs2Label security_result.detection_fields.key Mapeado condicionalmente se cs2 não estiver vazio. security_result.detection_fields.value está definido como o valor de cs2.
cs3 security_result.detection_fields.value Mapeado condicionalmente se não estiver vazio ou for "-". security_result.detection_fields.key é definido como o valor de cs3Label.
cs3Label security_result.detection_fields.key Mapeado condicionalmente se cs3 não estiver vazio ou for "-". security_result.detection_fields.value é definido como o valor de cs3.
cs4 security_result.detection_fields.value Mapeado condicionalmente se não estiver vazio. security_result.detection_fields.key está definido como o valor de cs4Label.
cs4Label security_result.detection_fields.key Mapeado condicionalmente se cs4 não estiver vazio. security_result.detection_fields.value está definido como o valor de cs4.
cs5 security_result.detection_fields.value Mapeado condicionalmente se não estiver vazio. security_result.detection_fields.key está definido como o valor de cs5Label.
cs5Label security_result.detection_fields.key Mapeado condicionalmente se cs5 não estiver vazio. security_result.detection_fields.value está definido como o valor de cs5.
cs6 security_result.detection_fields.value Mapeado condicionalmente se não estiver vazio. security_result.detection_fields.key está definido como o valor de cs6Label.
cs6Label security_result.detection_fields.key Mapeado condicionalmente se cs6 não estiver vazio. security_result.detection_fields.value está definido como o valor de cs6.
cs7 principal.location.region_latitude Mapeado condicionalmente se cs7Label for "latitude".
cs8 principal.location.region_longitude Mapeado condicionalmente se cs8Label for "longitude".
cn1 security_result.detection_fields.value Mapeado condicionalmente se não estiver vazio e cn1Label não estiver vazio. security_result.detection_fields.key está definido como o valor de cn1Label.
cn1Label security_result.detection_fields.key Mapeado condicionalmente se cn1 e cn1Label não estiverem vazios. security_result.detection_fields.value está definido como o valor de cn1.
fileType security_result.detection_fields.value Mapeado condicionalmente se não estiver vazio. security_result.detection_fields.key está definido como "fileType".
filePermission security_result.detection_fields.value Mapeado condicionalmente se não estiver vazio. security_result.detection_fields.key está definido como "filePermission".
request target.url Mapeado diretamente.
requestClientApplication network.http.user_agent Mapeado condicionalmente se não estiver vazio. Substitui o valor mapeado do campo user_agent extraído dos pares de chave-valor requestContext ou requestClientApplication na carga útil CEF.
requestMethod network.http.method Mapeado diretamente.
siteid security_result.detection_fields.value Mapeado condicionalmente se não estiver vazio. security_result.detection_fields.key está definido como "siteid".
sourceServiceName target.hostname Mapeado diretamente. Substitui o valor de dhost, se estiver presente.
src principal.ip Mapeado diretamente.
start metadata.event_timestamp.seconds Extraído através de um padrão grok e convertido numa data/hora. Usado como alternativa para o deviceReceiptTime se não estiver presente. Se deviceReceiptTime e start estiverem vazios, é usada a data/hora do registo.
suid principal.user.userid Mapeado condicionalmente se não estiver vazio.
N/A metadata.event_type Codificado de forma rígida para "NETWORK_HTTP".
N/A metadata.log_type Mapeado diretamente a partir do campo log_type de nível superior.
N/A metadata.product_event_type Mapeado a partir de csv.event_id se não estiver vazio.
N/A metadata.product_name Codificado de forma rígida para "Firewall de aplicação Web".
N/A metadata.vendor_name Codificado de forma rígida para "Imperva".

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