Coletar registros do firewall Juniper NetScreen
Este documento explica como configurar os registros do firewall Juniper NetScreen para serem enviados ao Google Security Operations. O analisador extrai campos usando padrões grok, processando vários formatos de syslog e payloads JSON. Em seguida, ele mapeia esses campos extraídos para a UDM, categorizando os eventos como conexões de rede, logins de usuários, atualizações de status ou eventos genéricos com base na presença de campos específicos, como endereços IP, nomes de usuário e portas.
Antes de começar
- Verifique se você tem acesso administrativo ao firewall Juniper NetScreen.
- Verifique se você tem uma instância do Google Security Operations.
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 do 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
,vi
ou Bloco de Notas).
- Localize o arquivo
Edite o arquivo
config.yaml
da seguinte forma:receivers: tcplog: # Replace the port and IP address as required listen_address: "0.0.0.0:54525" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds: '/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 ingestion_labels: log_type: SYSLOG namespace: juniper_firewall raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - tcplog 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 firewall NetScreen da Juniper Networks
- Faça login na interface da Web do Juniper NetScreen.
- Selecione Configuração > Configurações de relatório > Configurações de registro.
- Marque todas as caixas de seleção Gravidade do evento.
- Clique em Aplicar.
- Selecione Configuração > Configurações de relatório > Syslog.
- Marque a caixa de seleção Ativar mensagens do syslog.
- Na lista Interface de origem, selecione a interface NetScreen de onde os pacotes syslog precisam ser enviados.
- Na seção Servidores Syslog, marque a caixa de seleção Ativar e forneça o seguinte:
- IP/nome do host: insira o endereço IP
Bindplane
. - Porta: digite o número da porta
Bindplane
. - Instalação MDR: selecione o nível de instalação Local0.
- Unidade: selecione o nível Local0.
- IP/nome do host: insira o endereço IP
- Clique em Aplicar.
Tabela de mapeamento do UDM
Campo de registro | Mapeamento do UDM | Lógica |
---|---|---|
ACTION |
security_result.action_details |
Mapeado diretamente do campo ACTION extraído usando filtros GROK e KV. |
APPLICATION |
principal.application |
Mapeado diretamente do campo APPLICATION extraído usando filtros GROK e KV. |
application |
target.application |
Mapeado diretamente do campo application extraído via GROK. |
attack-name |
security_result.threat_name |
Mapeado diretamente do campo attack-name extraído via GROK. |
bytes-from-client |
network.sent_bytes |
Mapeado diretamente do campo bytes-from-client extraído via GROK. |
bytes-from-server |
network.received_bytes |
Mapeado diretamente do campo bytes-from-server extraído via GROK. |
command |
target.process.command_line |
Mapeado diretamente do campo command extraído via GROK. |
destination-address |
target.ip |
Mapeado diretamente do campo destination-address extraído via GROK. |
destination-port |
target.port |
Mapeado diretamente do campo destination-port extraído via GROK. |
destination-zone |
additional.fields[].value.string_value |
Mapeado diretamente do campo destination-zone extraído usando filtros GROK e KV. O key está definido como destination-zone . |
destination_zone-name |
security_result.detection_fields[].value |
Mapeado diretamente do campo destination_zone-name extraído via GROK. O key está definido como dstzone . |
dst-nat-rule-name |
security_result.detection_fields[].value |
Mapeado diretamente do campo dst-nat-rule-name extraído via GROK. O key está definido como dst-nat-rule-name . |
dst-nat-rule-type |
security_result.detection_fields[].value |
Mapeado diretamente do campo dst-nat-rule-type extraído via GROK. O key está definido como dst-nat-rule-type . |
elapsed-time |
network.session_duration.seconds |
Mapeado diretamente do campo elapsed-time extraído via GROK. |
encrypted |
security_result.detection_fields[].value |
Mapeado diretamente do campo encrypted extraído via GROK. O key está definido como encrypted . |
event_time |
metadata.event_timestamp |
O carimbo de data/hora é extraído do registro bruto usando vários padrões GROK, priorizando event_time , depois TIMESTAMP_ISO8601 e, por fim, SYSLOGTIMESTAMP . Em seguida, ele é convertido em um objeto de carimbo de data/hora. |
host |
principal.hostname , intermediary.hostname |
Se type for NetScreen , mapeado para intermediary.hostname . Caso contrário, será mapeado para principal.hostname . |
host_ip |
intermediary.ip |
Mapeado diretamente do campo host_ip extraído via GROK. |
icmp-type |
network.icmp_type |
Mapeado diretamente do campo icmp-type extraído via GROK. |
ident |
target.application |
Mapeado diretamente do campo ident extraído por filtros GROK e JSON. |
inbound-bytes |
network.received_bytes |
Mapeado diretamente do campo inbound-bytes extraído via GROK. |
inbound-packets |
network.received_packets |
Mapeado diretamente do campo inbound-packets extraído via GROK. |
ip |
principal.ip , intermediary.ip |
Se type for NetScreen , mapeado para intermediary.ip . Caso contrário, será mapeado para principal.hostname . |
message |
security_result.description |
Se a mensagem for JSON e o campo log_message_data não estiver presente, o campo message será usado como a descrição. |
msg_data |
security_result.summary |
Mapeado diretamente do campo msg_data extraído via GROK. |
nat-destination-address |
target.nat_ip |
Mapeado diretamente do campo nat-destination-address extraído via GROK. |
nat-destination-port |
target.nat_port |
Mapeado diretamente do campo nat-destination-port extraído via GROK. |
nat-source-address |
principal.nat_ip |
Mapeado diretamente do campo nat-source-address extraído via GROK. |
nat-source-port |
principal.nat_port |
Mapeado diretamente do campo nat-source-port extraído via GROK. |
outbound-bytes |
network.sent_bytes |
Mapeado diretamente do campo outbound-bytes extraído via GROK. |
outbound-packets |
network.sent_packets |
Mapeado diretamente do campo outbound-packets extraído via GROK. |
packets-from-client |
network.sent_packets |
Mapeado diretamente do campo packets-from-client extraído via GROK. |
packets-from-server |
network.received_packets |
Mapeado diretamente do campo packets-from-server extraído via GROK. |
packet-incoming-interface |
security_result.detection_fields[].value |
Mapeado diretamente do campo packet-incoming-interface extraído via GROK. O key está definido como packet-incoming-interface . |
pid |
target.process.pid |
Mapeado diretamente do campo pid extraído por filtros GROK e JSON. |
policy-name |
security_result.rule_name |
Mapeado diretamente do campo policy-name extraído via GROK. |
PROFILE |
additional.fields[].value.string_value |
Mapeado diretamente do campo PROFILE extraído usando filtros GROK e KV. O key está definido como PROFILE . |
protocol-id , protocol-name |
network.ip_protocol |
Mapeado do campo protocol-id ou protocol-name extraído via GROK. O valor é convertido na enumeração do protocolo IP correspondente. |
REASON |
additional.fields[].value.string_value |
Mapeado diretamente do campo REASON extraído usando filtros GROK e KV. O key está definido como REASON . |
reason |
security_result.description |
Mapeado diretamente do campo reason extraído via GROK. |
rule-name |
security_result.rule_name |
Mapeado diretamente do campo rule-name extraído via GROK. |
SESSION_ID |
network.session_id |
Mapeado diretamente do campo SESSION_ID extraído usando filtros GROK e KV. |
service-name |
security_result.detection_fields[].value |
Mapeado diretamente do campo service-name extraído via GROK. O key está definido como srvname . |
source-address |
principal.ip |
Mapeado diretamente do campo source-address extraído via GROK. |
source-port |
principal.port |
Mapeado diretamente do campo source-port extraído via GROK. |
source-zone |
additional.fields[].value.string_value |
Mapeado diretamente do campo source-zone extraído usando filtros GROK e KV. O key está definido como source-zone . |
source_zone-name |
security_result.detection_fields[].value |
Mapeado diretamente do campo source_zone-name extraído via GROK. O key está definido como srczone . |
src-nat-rule-name |
security_result.detection_fields[].value |
Mapeado diretamente do campo src-nat-rule-name extraído via GROK. O key está definido como src-nat-rule-name . |
src-nat-rule-type |
security_result.detection_fields[].value |
Mapeado diretamente do campo src-nat-rule-type extraído via GROK. O key está definido como src-nat-rule-type . |
subtype |
metadata.product_event_type |
Mapeado diretamente do campo subtype extraído via GROK. |
threat-severity |
security_result.severity_details |
Mapeado diretamente do campo threat-severity extraído via GROK. |
time |
metadata.event_timestamp |
Mapeado diretamente do campo time extraído por filtros GROK e JSON. Convertido em objeto de carimbo de data/hora. |
username |
target.user.userid |
Mapeado diretamente do campo username extraído via GROK. |
metadata.log_type |
Fixado no código como JUNIPER_FIREWALL . Codificado como JUNIPER_FIREWALL ou NetScreen com base no campo type . Fixado no código como JUNIPER_FIREWALL . Definido como ALLOW ou BLOCK com base na lógica do analisador. Defina como LOW, MEDIUM, HIGH, INFORMATIONAL ou CRITICAL com base nos campos subtype e severity_details . |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.