Coletar registros do Imperva FlexProtect

Compatível com:

Este documento explica como ingerir registros do Imperva FlexProtect no Google Security Operations usando o Bindplane. Primeiro, o analisador limpa e pré-processa os registros recebidos e tenta extrair dados do formato de evento comum (CEF, na sigla em inglês). Dependendo da presença de campos específicos, como "src" e "sip", ele atribui um tipo de evento do UDM e mapeia os campos relevantes do CEF para o esquema do UDM, enriquecendo a saída com outros campos personalizados. O Imperva FlexProtect oferece implantação flexível de soluções de segurança da Imperva (SecureSphere, Cloud WAF, Bot Protection) em ambientes de nuvem híbrida.

Antes de começar

Verifique se você tem os pré-requisitos a seguir:

  • Uma 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 de acordo com os requisitos do agente Bindplane.
  • Acesso privilegiado ao console de gerenciamento do Imperva FlexProtect ou aos consoles de produtos individuais

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

Configurar o agente do Bindplane para ingerir o Syslog e enviar ao Google SecOps

  1. Acesse o arquivo de configuração:

    1. 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.
    2. 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: 'IMPERVA_FLEXPROTECT'
        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 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 encaminhamento do Syslog no Imperva FlexProtect

Para o componente SecureSphere (local/nuvem)

  1. Faça login no console de gerenciamento do Imperva SecureSphere.
  2. Acesse Configuração > Conjuntos de ações.
  3. Clique em Adicionar para criar um novo conjunto de ações.
  4. Clique em Adicionar ação e informe os seguintes detalhes de configuração:

    • Nome: insira um nome descritivo, por exemplo, Google SecOps Syslog.
    • Tipo de ação: selecione Syslog.
    • Host: insira o endereço IP do agente do Bindplane.
    • Porta: insira o número da porta do agente Bindplane (padrão 514).
    • Protocolo: selecione UDP ou TCP.
    • Nível de registro do Syslog: selecione DEBUG.
    • Facilidade do Syslog: selecione LOCAL0.
    • Formato: selecione CEF (Common Event Format).
  5. Salve a configuração da ação e aplique-a às políticas de segurança relevantes.

Para o componente Cloud WAF/Incapsula

  1. Faça login no Imperva Cloud Console (link em inglês).
  2. Acesse Registros > Configuração de registros.
  3. Configurar o destino do syslog:
    • Host: insira o endereço IP do agente do Bindplane.
    • Porta: insira o número da porta do agente Bindplane (padrão 514).
    • Protocolo: selecione UDP ou TCP.
    • Formato: selecione CEF.

Tabela de mapeamento do UDM

Campo de registro Mapeamento do UDM Lógica
age read_only_udm.security_result.action_details Mapeado diretamente do campo act.
app read_only_udm.network.application_protocol Mapeado diretamente do campo app.
ccode read_only_udm.principal.location.country_or_region Mapeado diretamente do campo ccode.
cicode read_only_udm.principal.location.city Mapeado diretamente do campo cicode.
cn1 read_only_udm.network.http.response_code Mapeado diretamente do campo cn1 após a conversão para número inteiro.
cs1 read_only_udm.additional.fields.value.string_value Mapeado diretamente do campo cs1.
cs2 read_only_udm.additional.fields.value.string_value Mapeado diretamente do campo cs2.
cs3 read_only_udm.additional.fields.value.string_value Mapeado diretamente do campo cs3.
cs4 read_only_udm.additional.fields.value.string_value Mapeado diretamente do campo cs4.
cs5 read_only_udm.additional.fields.value.string_value Mapeado diretamente do campo cs5.
cs6 read_only_udm.additional.fields.value.string_value Mapeado diretamente do campo cs6.
cs7 read_only_udm.additional.fields.value.string_value Mapeado diretamente do campo cs7.
cs8 read_only_udm.additional.fields.value.string_value Mapeado diretamente do campo cs8.
cs9 read_only_udm.additional.fields.value.string_value Mapeado diretamente do campo cs9.
cpt read_only_udm.principal.port Mapeado diretamente do campo cpt após a conversão para número inteiro.
Cliente read_only_udm.principal.user.user_display_name Mapeado diretamente do campo Customer.
deviceExternalId read_only_udm.about.asset.asset_id O valor é derivado da concatenação de "Incapsula.SIEMintegration:" com o campo deviceExternalId.
deviceFacility read_only_udm.principal.location.city Mapeado diretamente do campo deviceFacility.
dproc read_only_udm.target.process.command_line Mapeado diretamente do campo dproc.
end read_only_udm.security_result.detection_fields.value Mapeado diretamente do campo end.
fileId read_only_udm.network.session_id Mapeado diretamente do campo fileId.
filePermission read_only_udm.about.resource.attribute.permissions.name Mapeado diretamente do campo filePermission.
em read_only_udm.network.received_bytes Mapeado diretamente do campo in.
qstr read_only_udm.security_result.detection_fields.value Mapeado diretamente do campo qstr.
solicitação read_only_udm.target.url Mapeado diretamente do campo request.
requestClientApplication read_only_udm.network.http.user_agent Mapeado diretamente do campo requestClientApplication.
requestMethod read_only_udm.network.http.method Mapeado diretamente do campo requestMethod.
siteid read_only_udm.security_result.detection_fields.value Mapeado diretamente do campo siteid.
sip read_only_udm.target.ip Mapeado diretamente do campo sip.
sourceServiceName read_only_udm.principal.application Mapeado diretamente do campo sourceServiceName.
spt read_only_udm.target.port Mapeado diretamente do campo spt após a conversão para número inteiro.
src read_only_udm.principal.ip Mapeado diretamente do campo src.
start read_only_udm.security_result.detection_fields.value Mapeado diretamente do campo start.
suid read_only_udm.principal.user.userid Mapeado diretamente do campo suid.
ver read_only_udm.network.tls.version Mapeado diretamente do campo ver.
read_only_udm.about.asset.asset_id O valor é derivado da concatenação de "Incapsula.SIEMintegration:" com o campo deviceExternalId.
read_only_udm.additional.fields.key O valor é determinado pela lógica do analisador com base no rótulo do campo. Por exemplo:
- cs1Label mapeia para "Cap Support"
- cs2Label mapeia para "Javascript Support"
- cs3Label mapeia para "CO Support"
- cs4Label mapeia para "VID"
- cs5Label mapeia para "clappsig"
- cs6Label mapeia para "clapp"
- cs7Label mapeia para "latitude"
- cs8Label mapeia para "longitude"
- cs9Label mapeia para "Rule name"
read_only_udm.metadata.event_timestamp.nanos Mapeado diretamente do campo collection_time.nanos.
read_only_udm.metadata.event_timestamp.seconds Mapeado diretamente do campo collection_time.seconds.
read_only_udm.metadata.event_type O valor é determinado com base na presença dos campos src e sip:
. Se ambos estiverem presentes, o valor será definido como "NETWORK_HTTP".
: se apenas src estiver presente, o valor será definido como "USER_UNCATEGORIZED".
: caso contrário, o valor será definido como "GENERIC_EVENT".
read_only_udm.metadata.product_event_type O valor é derivado da concatenação de "[", o valor numérico do campo de cabeçalho CEF no índice 4, "] - " e a descrição de texto do campo de cabeçalho CEF no índice 4.
read_only_udm.metadata.product_name O valor é definido estaticamente como "SIEMintegration".
read_only_udm.metadata.product_version O valor é definido estaticamente como "1".
read_only_udm.metadata.vendor_name O valor é definido estaticamente como "Incapsula".
read_only_udm.security_result.detection_fields.key O valor é definido estaticamente como "siteid", "event_start_time", "event_end_time" ou "qstr" com base no campo correspondente que está sendo processado.
read_only_udm.security_result.severity O valor é definido estaticamente como "LOW".
read_only_udm.target.port Mapeado diretamente do campo spt após a conversão para número inteiro.

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