Recolha registos CEF do Imperva
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
- 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
Instale o agente do Bindplane no seu sistema operativo Windows ou Linux de acordo com as seguintes instruções.
Instalação de janelas
- 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_CEF' 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 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
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).
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
- Em Interfaces de ações disponíveis, abra Registo do sistema e adicione um ou mais dos seguintes elementos (conforme necessário):
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.
- Anfitrião Syslog: introduza o endereço IP do agente Bindplane. Para usar uma porta não predefinida, anexe
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.
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.