Coletar registros do Imperva FlexProtect
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
- Faça login no console do Google SecOps.
- Acesse Configurações do SIEM > Agentes de coleta.
- 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
- Faça login no console do Google SecOps.
- Acesse Configurações do SIEM > Perfil.
- Copie e salve o ID do cliente na seção Detalhes da organização.
Instalar o agente do Bindplane
Instalação do Windows
- Abra o Prompt de Comando ou o PowerShell como administrador.
Execute este comando:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Instalação do Linux
- Abra um terminal com privilégios de root ou sudo.
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 este guia de instalação.
Configurar o agente do Bindplane para ingerir o Syslog e enviar ao Google SecOps
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,viou Bloco de Notas).
- Localize o arquivo
Edite o arquivo
config.yamlda 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.jsonpara 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-agentPara 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)
- Faça login no console de gerenciamento do Imperva SecureSphere.
- Acesse Configuração > Conjuntos de ações.
- Clique em Adicionar para criar um novo conjunto de ações.
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).
- Nome: insira um nome descritivo, por exemplo,
Salve a configuração da ação e aplique-a às políticas de segurança relevantes.
Para o componente Cloud WAF/Incapsula
- Faça login no Imperva Cloud Console (link em inglês).
- Acesse Registros > Configuração de registros.
- 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.