Recolha registos da firewall Juniper NetScreen

Compatível com:

Este documento explica como configurar os registos da firewall Juniper NetScreen para serem enviados para o Google Security Operations. O analisador extrai campos através de padrões grok, processando vários formatos syslog e payloads JSON. Em seguida, mapeia estes campos extraídos para o UDM, categorizando os eventos como ligações de rede, inícios de sessão de utilizadores, atualizações de estado ou eventos genéricos com base na presença de campos específicos, como endereços IP, nomes de utilizadores e portas.

Antes de começar

  • Certifique-se de que tem acesso administrativo à sua firewall Juniper NetScreen.
  • Certifique-se de que tem uma instância do Google Security Operations.

Obtenha o ficheiro de autenticação de carregamento do Google SecOps

  1. Inicie sessão na consola Google SecOps.
  2. Aceda a Definições do SIEM > Agentes de recolha.
  3. 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

  1. Inicie sessão na consola Google SecOps.
  2. Aceda a Definições do SIEM > Perfil.
  3. Copie e guarde o ID do cliente da secção Detalhes da organização.

Instale o agente do Bindplane

Instalação do Windows

  1. Abra a Linha de comandos ou o PowerShell como administrador.
  2. Execute o seguinte 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 raiz ou sudo.
  2. 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

Configure o agente Bindplane para carregar o Syslog e enviá-lo para o Google SecOps

  1. Aceda ao ficheiro de configuração:

    1. 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.
    2. Abra o ficheiro com um editor de texto (por exemplo, nano, vi ou Bloco de notas).
  2. Edite o ficheiro 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 de cliente real.

  5. 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 do Bindplane no Linux, execute o seguinte comando:

    sudo systemctl restart bindplane-agent
    
  • Para reiniciar o agente do Bindplane no Windows, pode usar a consola Services ou introduzir o seguinte comando:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Configure a firewall NetScreen da Juniper Networks

  1. Inicie sessão na interface Web do Juniper NetScreen.
  2. Selecione Configuração > Definições de relatórios > Definições de registo.
  3. Selecione todas as caixas de verificação Gravidade do evento.
  4. Clique em Aplicar.
  5. Selecione Configuração > Definições de relatórios > Syslog.
  6. Selecione a caixa de verificação Ativar mensagens syslog.
  7. Na lista Interface de origem, selecione a interface NetScreen a partir da qual os pacotes syslog têm de ser enviados.
  8. Na secção Servidores Syslog, selecione a caixa de verificação Ativar e indique o seguinte:
    1. IP/Nome de anfitrião: introduza o Bindplane endereço IP.
    2. Porta: introduza o Bindplane número da porta.
    3. Instalação de MDR: selecione o nível de instalação Local0.
    4. Instalação: selecione o nível de instalação Local0.
  9. Clique em Aplicar.

Tabela de mapeamento da UDM

Campo de registo Mapeamento de UDM Lógica
ACTION security_result.action_details Mapeado diretamente a partir do campo ACTION extraído através de filtros GROK e KV.
APPLICATION principal.application Mapeado diretamente a partir do campo APPLICATION extraído através de filtros GROK e KV.
application target.application Mapeado diretamente a partir do campo application extraído através do GROK.
attack-name security_result.threat_name Mapeado diretamente a partir do campo attack-name extraído através do GROK.
bytes-from-client network.sent_bytes Mapeado diretamente a partir do campo bytes-from-client extraído através do GROK.
bytes-from-server network.received_bytes Mapeado diretamente a partir do campo bytes-from-server extraído através do GROK.
command target.process.command_line Mapeado diretamente a partir do campo command extraído através do GROK.
destination-address target.ip Mapeado diretamente a partir do campo destination-address extraído através do GROK.
destination-port target.port Mapeado diretamente a partir do campo destination-port extraído através do GROK.
destination-zone additional.fields[].value.string_value Mapeado diretamente a partir do campo destination-zone extraído através de filtros GROK e KV. O key está definido como destination-zone.
destination_zone-name security_result.detection_fields[].value Mapeado diretamente a partir do campo destination_zone-name extraído através do GROK. O key está definido como dstzone.
dst-nat-rule-name security_result.detection_fields[].value Mapeado diretamente a partir do campo dst-nat-rule-name extraído através do GROK. O key está definido como dst-nat-rule-name.
dst-nat-rule-type security_result.detection_fields[].value Mapeado diretamente a partir do campo dst-nat-rule-type extraído através do GROK. O key está definido como dst-nat-rule-type.
elapsed-time network.session_duration.seconds Mapeado diretamente a partir do campo elapsed-time extraído através do GROK.
encrypted security_result.detection_fields[].value Mapeado diretamente a partir do campo encrypted extraído através do GROK. O key está definido como encrypted.
event_time metadata.event_timestamp A data/hora é extraída do registo não processado através de vários padrões GROK, dando prioridade a event_time, depois a TIMESTAMP_ISO8601 e, por último, a SYSLOGTIMESTAMP. Em seguida, é convertido num objeto de data/hora.
host principal.hostname, intermediary.hostname Se type for NetScreen, mapeado para intermediary.hostname. Caso contrário, é mapeado para principal.hostname.
host_ip intermediary.ip Mapeado diretamente a partir do campo host_ip extraído através do GROK.
icmp-type network.icmp_type Mapeado diretamente a partir do campo icmp-type extraído através do GROK.
ident target.application Mapeado diretamente a partir do campo ident extraído através de filtros GROK e JSON.
inbound-bytes network.received_bytes Mapeado diretamente a partir do campo inbound-bytes extraído através do GROK.
inbound-packets network.received_packets Mapeado diretamente a partir do campo inbound-packets extraído através do GROK.
ip principal.ip, intermediary.ip Se type for NetScreen, mapeado para intermediary.ip. Caso contrário, é 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 é usado como descrição.
msg_data security_result.summary Mapeado diretamente a partir do campo msg_data extraído através do GROK.
nat-destination-address target.nat_ip Mapeado diretamente a partir do campo nat-destination-address extraído através do GROK.
nat-destination-port target.nat_port Mapeado diretamente a partir do campo nat-destination-port extraído através do GROK.
nat-source-address principal.nat_ip Mapeado diretamente a partir do campo nat-source-address extraído através do GROK.
nat-source-port principal.nat_port Mapeado diretamente a partir do campo nat-source-port extraído através do GROK.
outbound-bytes network.sent_bytes Mapeado diretamente a partir do campo outbound-bytes extraído através do GROK.
outbound-packets network.sent_packets Mapeado diretamente a partir do campo outbound-packets extraído através do GROK.
packets-from-client network.sent_packets Mapeado diretamente a partir do campo packets-from-client extraído através do GROK.
packets-from-server network.received_packets Mapeado diretamente a partir do campo packets-from-server extraído através do GROK.
packet-incoming-interface security_result.detection_fields[].value Mapeado diretamente a partir do campo packet-incoming-interface extraído através do GROK. O key está definido como packet-incoming-interface.
pid target.process.pid Mapeado diretamente a partir do campo pid extraído através de filtros GROK e JSON.
policy-name security_result.rule_name Mapeado diretamente a partir do campo policy-name extraído através do GROK.
PROFILE additional.fields[].value.string_value Mapeado diretamente a partir do campo PROFILE extraído através de filtros GROK e KV. O key está definido como PROFILE.
protocol-id, protocol-name network.ip_protocol Mapeado a partir do campo protocol-id ou protocol-name extraído através do GROK. O valor é convertido na enumeração do protocolo IP correspondente.
REASON additional.fields[].value.string_value Mapeado diretamente a partir do campo REASON extraído através de filtros GROK e KV. O key está definido como REASON.
reason security_result.description Mapeado diretamente a partir do campo reason extraído através do GROK.
rule-name security_result.rule_name Mapeado diretamente a partir do campo rule-name extraído através do GROK.
SESSION_ID network.session_id Mapeado diretamente a partir do campo SESSION_ID extraído através de filtros GROK e KV.
service-name security_result.detection_fields[].value Mapeado diretamente a partir do campo service-name extraído através do GROK. O key está definido como srvname.
source-address principal.ip Mapeado diretamente a partir do campo source-address extraído através do GROK.
source-port principal.port Mapeado diretamente a partir do campo source-port extraído através do GROK.
source-zone additional.fields[].value.string_value Mapeado diretamente a partir do campo source-zone extraído através de filtros GROK e KV. O key está definido como source-zone.
source_zone-name security_result.detection_fields[].value Mapeado diretamente a partir do campo source_zone-name extraído através do GROK. O key está definido como srczone.
src-nat-rule-name security_result.detection_fields[].value Mapeado diretamente a partir do campo src-nat-rule-name extraído através do GROK. O key está definido como src-nat-rule-name.
src-nat-rule-type security_result.detection_fields[].value Mapeado diretamente a partir do campo src-nat-rule-type extraído através do GROK. O key está definido como src-nat-rule-type.
subtype metadata.product_event_type Mapeado diretamente a partir do campo subtype extraído através do GROK.
threat-severity security_result.severity_details Mapeado diretamente a partir do campo threat-severity extraído através do GROK.
time metadata.event_timestamp Mapeado diretamente a partir do campo time extraído através de filtros GROK e JSON. Convertido no objeto de data/hora.
username target.user.userid Mapeado diretamente a partir do campo username extraído através do GROK.
metadata.log_type Codificado para JUNIPER_FIREWALL. Codificado como JUNIPER_FIREWALL ou NetScreen com base no campo type. Codificado para JUNIPER_FIREWALL. Definido como ALLOW ou BLOCK com base na lógica do analisador. Definido 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 da Google SecOps.