Recolha registos do WAF da Radware
Este documento explica como recolher os registos da firewall de aplicações Web (WAF) da Radware através de um encaminhador do Google Security Operations.
O analisador extrai campos de mensagens syslog da firewall da Radware através de padrões grok e mapeia-os para o UDM. Processa vários formatos de registo, preenche os campos de resultados de segurança com base nos detalhes do ataque e categoriza os eventos com base no attack_id
, enriquecendo os dados para carregamento no Google SecOps.
Antes de começar
- Certifique-se de que tem uma instância do Google Security Operations.
- Certifique-se de que está a usar o Windows 2016 ou posterior, ou um anfitrião Linux com
systemd
. - Se estiver a executar o serviço através de um proxy, certifique-se de que as portas da firewall estão abertas.
- Certifique-se de que o Radware Vision Reporter está instalado e configurado no AppWall.
- Certifique-se de que tem acesso privilegiado ao portal da WAF da Radware.
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 agente do 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
,vi
ou Bloco de notas).
- Localize o ficheiro
Edite o ficheiro
config.yaml
da seguinte forma:receivers: udplog: # Replace with your specific IP and port listen_address: "0.0.0.0:514" exporters: chronicle/chronicle_w_labels: compression: gzip # Path to the ingestion authentication file creds: '/path/to/your/ingestion-auth.json' # Your Chronicle customer ID customer_id: 'your_customer_id' endpoint: malachiteingestion-pa.googleapis.com ingestion_labels: log_type: SYSLOG namespace: radware_waf raw_log_field: body 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.json
para 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 Bindplane no Linux, execute o seguinte comando:
sudo systemctl restart bindplane-agent
Para 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 WAF Radware AppWall
Para concluir as tarefas, faça as três configurações seguintes:
- Configure o AppWall autónomo através do Vision Reporter.
- Configure a AppWall integrada no Alteon através do Vision Reporter (inclua dados de pedidos HTTP nos detalhes do evento).
- Configure o Vision Reporter para enviar registos para o agente Bindplane.
Configure o AppWall Standalone com o Vision Reporter
- Inicie sessão na consola do Radware WAF com as credenciais de administrador.
- Aceda a Configuração > Serviços > Apoio técnico de visão > Vision Reporter.
- Ative o registo selecionando a caixa de verificação Enviar eventos para o Vision Reporter.
- Endereço do Vision Reporter: introduza o endereço IP do Vision Reporter.
- Porta: introduza o número da porta.
- Protocolo: selecione UDP ou TCP.
- Para incluir dados de resposta HTTP, selecione a caixa de verificação Enviar respostas para o Vision Reporter.
- Clique em Guardar.
Configure o AppWall integrado no Alteon através do Vision Reporter (preferível para o registo de dados de pedidos HTTP)
- Inicie sessão na consola do WAF da Radware com as credenciais de administrador.
- Aceda a Configuração > Segurança > Segurança Web > Vision Reporter.
- Ative o registo selecionando a caixa de verificação Enviar eventos para o Vision Reporter.
- Selecione a caixa de verificação Enviar eventos para o Vision Reporter.
- Endereço IP do Vision Reporter: introduza o endereço IP do Vision Reporter.
- Porta: introduza um número de porta elevado.
- Segurança: selecione UDP ou TCP.
- Clique em Guardar.
Configure o Vision Reporter para enviar registos para o agente do Bindplane
- Inicie sessão na consola do administrador do Radware Vision Reporter.
- Aceda a Configuração > SIEM e registo externo.
- Clique em + Adicionar novo destino SIEM.
- Nome do destino: introduza Encaminhador do Google SecOps.
- Tipo de exportação de registos: selecione Syslog (formato RFC 5424) para registos estruturados.
- IP do servidor Syslog remoto introduza o endereço IP do agente Bindplane.
- Porta: introduza uma porta que o agente Bindplane escute (por exemplo, 514 para UDP, 601 para TCP).
- Protocolo: selecione UDP ou TCP, consoante a configuração do Bindplane.
- Clique em Guardar.
Tabela de mapeamento da UDM
Campo de registo | Mapeamento de UDM | Lógica |
---|---|---|
action |
event.idm.read_only_udm.security_result.action |
Se action for "drop", defina como "BLOCK". |
attack_desc |
event.idm.read_only_udm.security_result.description |
Mapeado diretamente. |
attack_type |
event.idm.read_only_udm.security_result.threat_name |
Mapeado diretamente. |
command |
event.idm.read_only_udm.principal.process.command_line |
Mapeado diretamente. |
description |
event.idm.read_only_udm.security_result.description |
Mapeado diretamente se attack_desc estiver vazio. |
dst_ip |
event.idm.read_only_udm.target.ip |
Mapeado diretamente. |
dst_port |
event.idm.read_only_udm.target.port |
Mapeado diretamente, convertido em número inteiro. Definido como "MACHINE" se username estiver presente e command não estiver. Copiado do campo collection_time do registo não processado. A predefinição é "NETWORK_CONNECTION". Definido como "GENERIC_EVENT" se src_ip ou dst_ip estiverem em falta. Definido como "USER_LOGIN" se username estiver presente e command não estiver presente. Pode ser substituído por lógica baseada em attack_id . Definido como "RADWARE_FIREWALL". Mapeado a partir do campo product . Defina como "Radware". |
intermediary_ip |
event.idm.read_only_udm.intermediary.ip |
Mapeado diretamente. |
obv_ip |
event.idm.read_only_udm.observer.ip |
Mapeado diretamente. |
product |
event.idm.read_only_udm.metadata.product_name |
Mapeado diretamente. |
protocol_number_src |
event.idm.read_only_udm.network.ip_protocol |
Analisado através da lógica parse_ip_protocol.include . |
rule_id |
event.idm.read_only_udm.security_result.rule_id |
Mapeado diretamente. Derivada com base no valor de attack_id . Os valores incluem "ACL_VIOLATION", "NETWORK_DENIAL_OF_SERVICE", "NETWORK_SUSPICIOUS" e "NETWORK_RECON". |
src_ip |
event.idm.read_only_udm.principal.ip |
Mapeado diretamente. |
src_port |
event.idm.read_only_udm.principal.port |
Mapeado diretamente, convertido em número inteiro. |
ts |
event.idm.read_only_udm.metadata.event_timestamp |
Analisado e convertido em indicação de tempo. |
username |
event.idm.read_only_udm.target.user.userid |
Mapeado diretamente se command não estiver presente. |
username |
event.idm.read_only_udm.principal.user.userid |
Mapeado diretamente se command estiver presente. |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais da Google SecOps.