Coletar registros do firewall Juniper NetScreen

Compatível com:

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

  1. Faça login no console do Google SecOps.
  2. Acesse Configurações do SIEM > Agentes de coleta.
  3. 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

  1. Faça login no console do Google SecOps.
  2. Acesse Configurações do SIEM > Perfil.
  3. Copie e salve o ID do cliente na seção Detalhes da organização.

Instalar o agente do Bindplane

Instalação do Windows

  1. Abra o Prompt de Comando ou o PowerShell como administrador.
  2. Execute este comando:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Instalação do Linux

  1. Abra um terminal com privilégios de root ou sudo.
  2. 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

Configurar o agente do Bindplane para ingerir o Syslog e enviar ao Google SecOps

  1. Acesse o arquivo de configuração:

    1. 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.
    2. Abra o arquivo usando um editor de texto (por exemplo, nano, vi ou Bloco de Notas).
  2. 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
    
    
  3. Substitua a porta e o endereço IP conforme necessário na sua infraestrutura.

  4. Substitua <customer_id> pelo ID do cliente real.

  5. 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

  1. Faça login na interface da Web do Juniper NetScreen.
  2. Selecione Configuração > Configurações de relatório > Configurações de registro.
  3. Marque todas as caixas de seleção Gravidade do evento.
  4. Clique em Aplicar.
  5. Selecione Configuração > Configurações de relatório > Syslog.
  6. Marque a caixa de seleção Ativar mensagens do syslog.
  7. Na lista Interface de origem, selecione a interface NetScreen de onde os pacotes syslog precisam ser enviados.
  8. Na seção Servidores Syslog, marque a caixa de seleção Ativar e forneça o seguinte:
    1. IP/nome do host: insira o endereço IP Bindplane.
    2. Porta: digite o número da porta Bindplane.
    3. Instalação MDR: selecione o nível de instalação Local0.
    4. Unidade: selecione o nível Local0.
  9. 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.