Recolha registos do Imperva FlexProtect
Este documento explica como carregar registos do Imperva FlexProtect para o Google Security Operations através do Bindplane. O analisador primeiro limpa e pré-processa os registos recebidos e, em seguida, tenta extrair dados do formato de evento comum (CEF). Consoante a presença de campos específicos, como "src" e "sip", atribui um tipo de evento UDM e mapeia os campos CEF relevantes para o esquema UDM, enriquecendo finalmente o resultado com campos personalizados adicionais. O Imperva FlexProtect oferece uma implementaçã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
Certifique-se de que cumpre os seguintes pré-requisitos:
- Uma instância do Google SecOps
- Windows 2016 ou posterior, ou um anfitrião Linux com
systemd - Se estiver a executar o agente 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 do Imperva FlexProtect ou às consolas de produtos individuais
Obtenha o ficheiro de autenticação de carregamento do Google SecOps
- Inicie sessão na consola Google SecOps.
- Aceda a Definições do SIEM > Agentes de recolha.
- 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
- Inicie sessão na consola Google SecOps.
- Aceda a Definições do SIEM > Perfil.
- Copie e guarde o ID do cliente da secção Detalhes da organização.
Instale o agente do Bindplane
Instalação do Windows
- Abra a Linha de comandos ou o PowerShell como administrador.
Execute o seguinte 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 raiz ou sudo.
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 este guia de instalação.
Configure o agente Bindplane para carregar o Syslog e enviá-lo para o Google SecOps
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,viou Bloco de notas).
- Localize o ficheiro
Edite o ficheiro
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 de cliente real. - Atualize
/path/to/ingestion-authentication-file.jsonpara 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-agentPara reiniciar o agente do Bindplane no Windows, pode usar a consola Serviços ou introduzir o seguinte comando:
net stop BindPlaneAgent && net start BindPlaneAgent
Configure o encaminhamento do Syslog no Imperva FlexProtect
Para o componente SecureSphere (no local/na nuvem)
- Inicie sessão na Imperva SecureSphere Management Console.
- Aceda a Configuração > Conjuntos de ações.
- Clique em Adicionar para criar um novo conjunto de ações.
Clique em Adicionar ação e faculte os seguintes detalhes de configuração:
- Nome: introduza um nome descritivo (por exemplo,
Google SecOps Syslog). - Tipo de ação: selecione Syslog.
- Anfitrião: introduza o endereço IP do agente do Bindplane.
- Porta: introduza o número da porta do agente Bindplane (predefinição:
514). - Protocolo: selecione UDP ou TCP.
- Nível de registo do Syslog: selecione DEBUG.
- Instalação do Syslog: selecione LOCAL0.
- Formato: selecione CEF (formato de evento comum).
- Nome: introduza um nome descritivo (por exemplo,
Guarde a configuração da ação e aplique-a às políticas de segurança relevantes.
Para o componente Cloud WAF/Incapsula
- Inicie sessão na Imperva Cloud Console.
- Aceda a Registos > Configuração de registos.
- Configure o destino do syslog:
- Anfitrião: introduza o endereço IP do agente do Bindplane.
- Porta: introduza o número da porta do agente Bindplane (predefinição:
514). - Protocolo: selecione UDP ou TCP.
- Formato: selecione CEF.
Tabela de mapeamento da UDM
| Campo de registo | Mapeamento de UDM | Lógica |
|---|---|---|
| agir | read_only_udm.security_result.action_details | Mapeado diretamente a partir do campo act. |
| app | read_only_udm.network.application_protocol | Mapeado diretamente a partir do campo app. |
| ccode | read_only_udm.principal.location.country_or_region | Mapeado diretamente a partir do campo ccode. |
| cicode | read_only_udm.principal.location.city | Mapeado diretamente a partir do campo cicode. |
| cn1 | read_only_udm.network.http.response_code | Mapeado diretamente a partir do campo cn1 após a conversão em número inteiro. |
| cs1 | read_only_udm.additional.fields.value.string_value | Mapeado diretamente a partir do campo cs1. |
| cs2 | read_only_udm.additional.fields.value.string_value | Mapeado diretamente a partir do campo cs2. |
| cs3 | read_only_udm.additional.fields.value.string_value | Mapeado diretamente a partir do campo cs3. |
| cs4 | read_only_udm.additional.fields.value.string_value | Mapeado diretamente a partir do campo cs4. |
| cs5 | read_only_udm.additional.fields.value.string_value | Mapeado diretamente a partir do campo cs5. |
| cs6 | read_only_udm.additional.fields.value.string_value | Mapeado diretamente a partir do campo cs6. |
| cs7 | read_only_udm.additional.fields.value.string_value | Mapeado diretamente a partir do campo cs7. |
| cs8 | read_only_udm.additional.fields.value.string_value | Mapeado diretamente a partir do campo cs8. |
| cs9 | read_only_udm.additional.fields.value.string_value | Mapeado diretamente a partir do campo cs9. |
| cpt | read_only_udm.principal.port | Mapeado diretamente a partir do campo cpt após a conversão em número inteiro. |
| Cliente | read_only_udm.principal.user.user_display_name | Mapeado diretamente a partir 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 a partir do campo deviceFacility. |
| dproc | read_only_udm.target.process.command_line | Mapeado diretamente a partir do campo dproc. |
| fim | read_only_udm.security_result.detection_fields.value | Mapeado diretamente a partir do campo end. |
| fileId | read_only_udm.network.session_id | Mapeado diretamente a partir do campo fileId. |
| filePermission | read_only_udm.about.resource.attribute.permissions.name | Mapeado diretamente a partir do campo filePermission. |
| em | read_only_udm.network.received_bytes | Mapeado diretamente a partir do campo in. |
| qstr | read_only_udm.security_result.detection_fields.value | Mapeado diretamente a partir do campo qstr. |
| pedido | read_only_udm.target.url | Mapeado diretamente a partir do campo request. |
| requestClientApplication | read_only_udm.network.http.user_agent | Mapeado diretamente a partir do campo requestClientApplication. |
| requestMethod | read_only_udm.network.http.method | Mapeado diretamente a partir do campo requestMethod. |
| siteid | read_only_udm.security_result.detection_fields.value | Mapeado diretamente a partir do campo siteid. |
| sip | read_only_udm.target.ip | Mapeado diretamente a partir do campo sip. |
| sourceServiceName | read_only_udm.principal.application | Mapeado diretamente a partir do campo sourceServiceName. |
| spt | read_only_udm.target.port | Mapeado diretamente a partir do campo spt após a conversão em número inteiro. |
| src | read_only_udm.principal.ip | Mapeado diretamente a partir do campo src. |
| iniciar | read_only_udm.security_result.detection_fields.value | Mapeado diretamente a partir do campo start. |
| suid | read_only_udm.principal.user.userid | Mapeado diretamente a partir do campo suid. |
| ver | read_only_udm.network.tls.version | Mapeado diretamente a partir 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 na etiqueta do campo, por exemplo: - cs1Label é mapeado para "Cap Support" - cs2Label é mapeado para "Javascript Support" - cs3Label é mapeado para "CO Support" - cs4Label é mapeado para "VID" - cs5Label é mapeado para "clappsig" - cs6Label é mapeado para "clapp" - cs7Label é mapeado para "latitude" - cs8Label é mapeado para "longitude" - cs9Label é mapeado para "Rule name" |
|
| read_only_udm.metadata.event_timestamp.nanos | Mapeado diretamente a partir do campo collection_time.nanos. |
|
| read_only_udm.metadata.event_timestamp.seconds | Mapeado diretamente a partir 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 é definido como "NETWORK_HTTP". - Se apenas src estiver presente, o valor é definido como "USER_UNCATEGORIZED". - Caso contrário, o valor é 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 está definido estaticamente como "1". | |
| read_only_udm.metadata.vendor_name | O valor está 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á a ser processado. | |
| read_only_udm.security_result.severity | O valor é definido estaticamente como "LOW". | |
| read_only_udm.target.port | Mapeado diretamente a partir do campo spt após a conversão em número inteiro. |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais da Google SecOps.