Coletar registros do Juniper NetScreen Firewall

Compatível com:

Este documento explica como configurar os registros do Juniper NetScreen Firewall 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 o UDM, categorizando 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 Juniper NetScreen Firewall.
  • 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. Faça o download do arquivo de autenticação de transferência. Salve o arquivo com segurança no sistema em que o BindPlane será instalado.

Receber o ID de 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 raiz 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 processar o Syslog e enviar ao Google SecOps

  1. Acesse o arquivo de configuração:

    1. Localize o arquivo config.yaml. Normalmente, ele está 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 Notepad).
  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 real do cliente.

  5. Atualize /path/to/ingestion-authentication-file.json para o caminho em que o arquivo de autenticação foi salvo na seção Receber o 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 Services ou digite 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 do relatório > Syslog.
  6. Marque a caixa de seleção Ativar mensagens syslog.
  7. Na lista Interface de origem, selecione a interface NetScreen de onde os pacotes syslog precisam ser enviados.
  8. Na seção Servidor Syslog, marque a caixa de seleção Ativar e informe o seguinte:
    1. IP/Hostname: insira o endereço IP Bindplane.
    2. Port: digite o número da porta Bindplane.
    3. Unidade MDR: selecione o nível da unidade Local0.
    4. Facility: selecione o nível de facility 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 por filtros GROK e KV.
APPLICATION principal.application Mapeado diretamente do campo APPLICATION extraído por filtros GROK e KV.
application target.application Mapeado diretamente do campo application extraído pelo GROK.
attack-name security_result.threat_name Mapeado diretamente do campo attack-name extraído pelo GROK.
bytes-from-client network.sent_bytes Mapeado diretamente do campo bytes-from-client extraído pelo GROK.
bytes-from-server network.received_bytes Mapeado diretamente do campo bytes-from-server extraído pelo GROK.
command target.process.command_line Mapeado diretamente do campo command extraído pelo GROK.
destination-address target.ip Mapeado diretamente do campo destination-address extraído pelo GROK.
destination-port target.port Mapeado diretamente do campo destination-port extraído pelo GROK.
destination-zone additional.fields[].value.string_value Mapeado diretamente do campo destination-zone extraído por filtros GROK e KV. O key é definido como destination-zone.
destination_zone-name security_result.detection_fields[].value Mapeado diretamente do campo destination_zone-name extraído pelo GROK. A key está definida como dstzone.
dst-nat-rule-name security_result.detection_fields[].value Mapeado diretamente do campo dst-nat-rule-name extraído pelo GROK. O key é 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 pelo GROK. O key é definido como dst-nat-rule-type.
elapsed-time network.session_duration.seconds Mapeado diretamente do campo elapsed-time extraído pelo GROK.
encrypted security_result.detection_fields[].value Mapeado diretamente do campo encrypted extraído pelo GROK. O key é 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, será mapeado para intermediary.hostname. Caso contrário, será mapeado para principal.hostname.
host_ip intermediary.ip Mapeado diretamente do campo host_ip extraído pelo GROK.
icmp-type network.icmp_type Mapeado diretamente do campo icmp-type extraído pelo 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 pelo GROK.
inbound-packets network.received_packets Mapeado diretamente do campo inbound-packets extraído pelo GROK.
ip principal.ip, intermediary.ip Se type for NetScreen, será 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 pelo GROK.
nat-destination-address target.nat_ip Mapeado diretamente do campo nat-destination-address extraído pelo GROK.
nat-destination-port target.nat_port Mapeado diretamente do campo nat-destination-port extraído pelo GROK.
nat-source-address principal.nat_ip Mapeado diretamente do campo nat-source-address extraído pelo GROK.
nat-source-port principal.nat_port Mapeado diretamente do campo nat-source-port extraído pelo GROK.
outbound-bytes network.sent_bytes Mapeado diretamente do campo outbound-bytes extraído pelo GROK.
outbound-packets network.sent_packets Mapeado diretamente do campo outbound-packets extraído pelo GROK.
packets-from-client network.sent_packets Mapeado diretamente do campo packets-from-client extraído pelo GROK.
packets-from-server network.received_packets Mapeado diretamente do campo packets-from-server extraído pelo GROK.
packet-incoming-interface security_result.detection_fields[].value Mapeado diretamente do campo packet-incoming-interface extraído pelo GROK. A key está definida 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 pelo GROK.
PROFILE additional.fields[].value.string_value Mapeado diretamente do campo PROFILE extraído por filtros GROK e KV. O key é definido como PROFILE.
protocol-id, protocol-name network.ip_protocol Mapeado do campo protocol-id ou protocol-name extraído pelo GROK. O valor é convertido no tipo enumerado de protocolo IP correspondente.
REASON additional.fields[].value.string_value Mapeado diretamente do campo REASON extraído por filtros GROK e KV. O key é definido como REASON.
reason security_result.description Mapeado diretamente do campo reason extraído pelo GROK.
rule-name security_result.rule_name Mapeado diretamente do campo rule-name extraído pelo GROK.
SESSION_ID network.session_id Mapeado diretamente do campo SESSION_ID extraído por filtros GROK e KV.
service-name security_result.detection_fields[].value Mapeado diretamente do campo service-name extraído pelo GROK. A key está definida como srvname.
source-address principal.ip Mapeado diretamente do campo source-address extraído pelo GROK.
source-port principal.port Mapeado diretamente do campo source-port extraído pelo GROK.
source-zone additional.fields[].value.string_value Mapeado diretamente do campo source-zone extraído por filtros GROK e KV. A key está definida como source-zone.
source_zone-name security_result.detection_fields[].value Mapeado diretamente do campo source_zone-name extraído pelo GROK. A key está definida como srczone.
src-nat-rule-name security_result.detection_fields[].value Mapeado diretamente do campo src-nat-rule-name extraído pelo GROK. A key está definida como src-nat-rule-name.
src-nat-rule-type security_result.detection_fields[].value Mapeado diretamente do campo src-nat-rule-type extraído pelo GROK. A key está definida como src-nat-rule-type.
subtype metadata.product_event_type Mapeado diretamente do campo subtype extraído pelo GROK.
threat-severity security_result.severity_details Mapeado diretamente do campo threat-severity extraído pelo 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 pelo GROK.
metadata.log_type Fixado em JUNIPER_FIREWALL. Fixado em JUNIPER_FIREWALL ou NetScreen com base no campo type. Fixado em JUNIPER_FIREWALL. Defina como PERMITIR ou BLOQUEAR com base na lógica do analisador. Defina como BAIXO, MÉDIO, ALTO, INFORMATIVO ou CRÍTICO com base nos campos subtype e severity_details.

Alterações

2025-02-20

Melhoria:

  • O mapeamento de target.user.userid para additional.fields foi modificado quando user_value começa com RT_FLOW.

2025-02-06

Melhoria:

  • Se user_value for UI_LOGIN_EVENT, mapeie-o para additional.fields.

2025-01-15

Melhoria:

  • Se user_name tiver RT_FLOW_SESSION_DENY, mapeie-o para security_result.action como BLOCK. Caso contrário, mude o mapeamento de user_name de target.user.userid para security_result.summary.
  • sec_desc foi mapeado para security_result.description.

2024-10-31

Melhoria:

  • Um novo padrão Grok foi adicionado para analisar logs não analisados.
  • Mapeou processid para target.process.id
  • Mapeamento de TSr e TSi para additional.fields.
  • A função gsub foi adicionada para mapear Remote-IP para target.ip.
  • A função gsub foi adicionada para mapear TSi e Local_IKE_ID para additional.fields.
  • Foi adicionado um filtro KV a kv_data1 para analisar campos não analisados.

2024-10-30

Melhoria:

  • Um novo padrão Grok foi adicionado para analisar o novo padrão de registro.
  • fw foi mapeado para intermediary.ip.
  • msg1 foi mapeado para security_result.summary.
  • desc foi mapeado para metadata.description.

2024-10-24

Melhoria:

  • Foi adicionado um novo padrão Grok para analisar registros no novo formato SYSLOG+KV.
  • Mapeamento de local_ip para principal.ip e principal.assest.ip.
  • Mapeamento de remote_ip para target.ip e target.asset.ip.

2024-10-11

Melhoria:

  • hostn foi mapeado para principal.hostname.
  • app foi mapeado para principal.application.
  • pid foi mapeado para principal.process.pid.
  • event_title foi mapeado para metadata.product_event_type.
  • event_message foi mapeado para metadata.description.
  • Mapeamento de Local-ip para principal.ip e principal.asset.ip.
  • Mapeou Gateway_Name, vpn, tunnel_id, tunnel_if, Local_IKE_ID, Remote_IKE_ID, AAA_username, VR_id, Traffic_selector, Traffic_selector_Remote_ID, Traffic_selector_local_ID, SA_Type, Reason, threshold, time-period e error-message_data para observer.resource.attribute.labels.
  • Mapeamento de target_ip para target.ip e target.asset.ip.
  • Mapeamento de data para target.ip e target.asset.ip.

2024-06-28

Melhoria:

  • Os padrões do Grok foram modificados para analisar registros não analisados.
  • Foram adicionados padrões Grok ao campo msg_data para extrair os campos user_id, principal_host, file_path, pid_2 e server_ip.
  • principal_host foi mapeado para principal.hostname.
  • user_id foi mapeado para target.user.userid.
  • file_path foi mapeado para target.file.full_path.
  • pid_2 foi mapeado para target.process.pid.
  • server_ip foi mapeado para target.ip.
  • event_time foi mapeado corretamente para metadata.event_timestamp removendo rebase se o ano estiver presente.

2024-01-22

Correção de bugs:

  • Foram adicionados novos padrões Grok para analisar o campo message com dados de chave-valor.
  • ACTION foi mapeado para security_result.action_details.
  • SESSION_ID foi mapeado para network.session_id.
  • APPLICATION foi mapeado para principal.application.
  • Mapeou pingCtlOwnerIndex, pingCtlTestName, usp_lsys_max_num_rpd, usp_lsys_max_num, urlcategory_risk, application_sub_category, source-zone, destination-zone, NESTED-APPLICATION, CATEGORY, REASON, PROFILE, source_rule, retrans_timer e arp_unicast_mode para additional.fields.
  • time foi mapeado para metadata.event_timestamp.

2023-12-31

Correção de bugs:

  • Adição de suporte a um novo padrão de registros JSON.
  • time foi mapeado para metadata.event_timestamp.
  • host foi mapeado para principal.hostname.
  • ident foi mapeado para target.application.
  • pid foi mapeado para target.process.pid.
  • Foram adicionados padrões Grok para analisar o campo message.

2023-12-15

Melhoria:

  • internal-protocol foi mapeado para network.ip_protocol .
  • state foi mapeado para security_result.detection_fields.
  • internal-ip foi mapeado para principal.ip.
  • reflexive-ip foi mapeado para target.ip.
  • internal-port foi mapeado para principle.port.
  • reflexive-port foi mapeado para target.port.
  • local-address foi mapeado para principal.ip.
  • remote-address foi mapeado para target.ip.
  • Adição de filtro KV com a origem task_summary.
  • dns-server-address foi mapeado para principal.ip.
  • domain-name foi mapeado para principal.administrative_domain.
  • argument1 foi mapeado para network.direction.
  • state foi mapeado para security_result.detection_fields.
  • test-owner foi mapeado para additional.fields.
  • local-initiator foi mapeado para additional.fields.
  • test-name foi mapeado para additional.fields.
  • SPI foi mapeado para additional.fields.
  • AUX-SPI foi mapeado para additional.fields.
  • Type foi mapeado para additional.fields.
  • error-message foi mapeado para security_result.summary.

2023-11-02

Melhoria:

  • Foi adicionado um novo padrão Grok para analisar registros do novo formato SYSLOG+KV.

2023-08-24

Melhoria:

  • A função gsub foi adicionada para remover caracteres especiais.

2023-08-02

Melhoria:

  • O padrão Grok foi modificado para oferecer suporte a novos formatos de registro para o tipo NetScreen.
  • Inclusão de suporte para os tipos RT_FLOW_SESSION_CREATE_LS, RT_FLOW_SESSION_CLOSE_LS e RT_FLOW_SESSION_DENY_LS.
  • sent foi mapeado para network.sent_bytes.
  • rcvd foi mapeado para network.received_bytes.

2023-05-05

Melhoria:

  • rule-name foi mapeado para security_result.rule_id.
  • rulebase-name foi mapeado para security_result.detection_fields.
  • export-id foi mapeado para security_result.detection_fields.
  • repeat-count foi mapeado para security_result.detection_fields.
  • packet-log-id foi mapeado para security_result.detection_fields.
  • Mapeou alert para is_alert quando o valor é yes.
  • outbound-packets foi mapeado para network.sent_packets.
  • inbound-packets foi mapeado para network.received_packets.
  • outbound-bytes foi mapeado para network.sent_bytes.
  • inbound-bytes foi mapeado para network.received_bytes.

2023-03-08

Melhoria:

  • application foi mapeado para target.application.
  • reason foi mapeado para security_result.description.
  • application-characteristics foi mapeado para security_result.summary.
  • application-risk foi mapeado para security_result.severity_details.
  • application-category foi mapeado para security_result.detection_fields.
  • application-sub-category foi mapeado para security_result.detection_fields.
  • dst-nat-rule-name foi mapeado para security_result.detection_fields.
  • dst-nat-rule-type foi mapeado para security_result.detection_fields.
  • src-nat-rule-name foi mapeado para security_result.detection_fields.
  • src-nat-rule-type foi mapeado para security_result.detection_fields.
  • encrypted foi mapeado para security_result.detection_fields.
  • nested-application foi mapeado para security_result.detection_fields.
  • packet-incoming-interface foi mapeado para security_result.detection_fields.
  • session-id-32 foi mapeado para network.session_id.
  • packets-from-client foi mapeado para network.sent_packets.
  • packets-from-server foi mapeado para network.received_packets.
  • bytes-from-client foi mapeado para network.sent_bytes.
  • bytes-from-server foi mapeado para network.received_bytes.
  • elapsed-time foi mapeado para network.session_duration.seconds.
  • nat-destination-address foi mapeado para target.nat_ip.
  • nat-destination-port foi mapeado para target.nat_port.
  • source-destination-address foi mapeado para principal.nat_ip.
  • source-destination-port foi mapeado para principal.nat_port.

18/01/2023

Correção de bugs:

  • A condição deixou de diferenciar maiúsculas de minúsculas para mapear BLOCK para security_result.action, quando action é drop/DROP.
  • Mapeou msg_data para security_result.description quando no_app_name é falso.
  • threat-severity foi mapeado para security_result.severity.
  • Mapeamos o campo message para metadata.description.
  • app_name foi mapeado para target.application.
  • pid foi mapeado para target.process.pid.
  • desc foi mapeado para metadata.description.
  • username foi mapeado para principal.user.userid.
  • command foi mapeado para target.process.command_line.
  • action foi mapeado para security_result.action_details.
  • sec_description foi mapeado para security_result.description.
  • application-name foi mapeado para network.application_protocol.

2023-01-15

Melhoria:

  • O padrão Grok foi modificado para oferecer suporte a registros não analisados que contêm o tipo UI_CMDLINE_READ_LINE, UI_COMMIT_PROGRESS, UI_CHILD_START, UI_CFG_AUDIT_OTHER, UI_LOGIN_EVENT, UI_CHILD_STATUS, UI_LOGOUT_EVENT, UI_LOAD_EVENT, JTASK_IO_CONNECT_FAILED, UI_AUTH_EVENT, UI_NETCONF_CMD, UI_COMMIT_NO_MASTER_PASSWORD, UI_CFG_AUDIT_SET, UI_JUNOSCRIPT_CMD, SNMPD_AUTH_FAILURE, UI_CFG_AUDIT_NEW, UI_COMMIT , LIBJNX_LOGIN_ACCOUNT_LOCKED, UI_COMMIT_COMPLETED, PAM_USER_LOCK_LOGIN_REQUESTS_DENIED, RTPERF_CPU_USAGE_OK, RTPERF_CPU_THRESHOLD_EXCEEDED, LIBJNX_LOGIN_ACCOUNT_UNLOCKED, JSRPD_SET_OTHER_INTF_MON_FAIL, JSRPD_SET_SCHED_MON_FAILURE, UI_CHILD_WAITPID, UI_DBASE_LOGIN_EVENT.

2022-11-07

Melhoria:

  • subtype foi mapeado para metadata.product_event_type.
  • attack-name foi mapeado para security_result.threat_name.
  • policy-name foi mapeado para security_result.rule_name.
  • Mapeou action para security_result.action, em que o valor drop é mapeado para BLOQUEAR outros para PERMITIR.
  • source-interface-name foi mapeado para security_result.detection_fields.
  • destination-interface-name foi mapeado para security_result.detection_fields.
  • source-zone-name foi mapeado para security_result.detection_fields.
  • destination-zone-name foi mapeado para security_result.detection_fields.
  • service-name foi mapeado para security_result.detection_fields.
  • application-name foi mapeado para security_result.detection_fields.
  • metadata.product_name mapeado
  • metadata.vendor_name mapeado

2022-10-04

Melhoria:

  • O nome do ataque foi mapeado para security_result.rule_name.
  • Mapeamentos do SDM convertidos nos seguintes campos do UDM:
  • source-address foi mapeado para principal.ip.
  • destination-address foi mapeado para target.ip.
  • source-port foi mapeado para principal.port.
  • host foi mapeado para principal.hostname.
  • bytes-from-server foi mapeado para network.received_bytes.
  • policy-name foi mapeado para security_result.rule_name.
  • protocol-id foi mapeado para network.ip_protocol.

Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.