Coletar registros do Juniper Junos

Compatível com:

Este documento descreve como coletar registros do Juniper Junos usando um forwarder de operações de segurança do Google.

Para mais informações, consulte Ingestão de dados para as operações de segurança do Google.

Um rótulo de transferência identifica o analisador que normaliza os dados de registro brutos para o formato estruturado do UDM. As informações neste documento se aplicam ao analisador com o rótulo de transferência JUNIPER_JUNOS.

Configurar a geração de registros estruturados para um dispositivo Juniper Networks SRX

O formato de registro estruturado extrai informações das mensagens de registro. O formato do registro está em conformidade com o protocolo Syslog.

  1. Faça login na CLI do Juniper SRX usando SSH no endereço IP de gerenciamento.
  2. Digite CLI no prompt do shell e pressione Enter.
  3. Digite configure e pressione Enter para entrar no modo de configuração do dispositivo.
  4. Insira os detalhes de contato ou o ponto de referência do cliente.
  5. Para mapear os campos para a conta de usuário, execute os seguintes comandos:

       set system syslog host FORWARDER_IP_ADDRESS any info
    
       set system syslog host FORWARDER_IP_ADDRESS structured-data
    
    

    Substitua FORWARDER_IP_ADDRESS pelo endereço IP do encaminhador de operações de segurança do Google.

  6. Para ativar a geração de registros estruturados para registros de segurança, use os seguintes comandos:

       set security log mode stream
    
       set security log source-address SRC_IP_ADDRESS
    
       set security log stream SYSLOG_STREAM_NAME host FORWARDER_IP_ADDRESS
    
       set security log stream SYSLOG_STREAM_NAME format sd-syslog
    
    

    Substitua:

    • SRC_IP_ADDRESS: o endereço IP do dispositivo Juniper SRX.

    • SYSLOG_STREAM_NAME: o nome atribuído ao servidor syslog.

    • FORWARDER_IP_ADDRESS: o endereço IP do encaminhador de operações de segurança do Google.

  7. Verifique se a geração de registros está ativada em todas as políticas de segurança. Para ativar a geração de registros, execute os seguintes comandos:

       set security policies from-zone <zone-name1> to-zone <zone-name2> policy <policy-name> then log session-close
    
       set security policies from-zone <zone-name1> to-zone <zone-name2> policy <policy-name> then log session-init
    
    
  8. Configure o nome do host no dispositivo usando o seguinte comando:

       set system host-name HOSTNAME
    
    

    Substitua HOSTNAME pelo dispositivo Juniper Networks SRX atribuído.

  9. Digite commit para salvar os comandos executados na configuração.

Configurar o forwarder e o syslog do Google Security Operations para processar registros do Juniper Junos

  1. Selecione Configurações do SIEM > Encaminhadores.
  2. Clique em Adicionar novo encaminhador.
  3. Insira um nome exclusivo no campo Nome do encaminhador.
  4. Clique em Enviar e em Confirmar. O encaminhador é adicionado, e a janela Add collector configuration aparece.
  5. No campo Nome do coletor, insira um nome exclusivo.
  6. Selecione Juniper Junos como o Tipo de registro.
  7. Selecione Syslog como o Tipo de coletor.
  8. Configure os seguintes parâmetros de entrada:
    • Protocolo: especifique o protocolo como UDP.
    • Endereço: especifique o endereço IP ou o nome do host de destino em que o coletor reside e detecta dados do syslog.
    • Porta: especifica a porta de destino em que o coletor reside e detecta dados do syslog.
  9. Clique em Enviar.

Para mais informações sobre os encaminhadores do Google Security Operations, consulte a documentação sobre encaminhadores do Google Security Operations. Para informações sobre os requisitos de cada tipo de encaminhador, consulte Configuração do encaminhador por tipo. Se você tiver problemas ao criar encaminhadores, entre em contato com o suporte da Google Security Operations.

Referência do mapeamento de campo

Esse analisador extrai campos de mensagens syslog Juniper JUNOS, processando formatos de chave-valor e não chave-valor. Ele usa padrões grok para corresponder a várias estruturas de mensagens, incluindo registros de firewall, atividade de SSH e execuções de comando, e mapeia os campos extraídos para o UDM. O analisador também processa registros formatados CEF usando um arquivo de inclusão e realiza ações específicas com base no conteúdo da mensagem, como mesclar endereços IP e nomes de usuário em campos UDM apropriados.

Tabela de mapeamento da UDM

Campo de registro Mapeamento do UDM Lógica
DPT target.port A porta de destino da conexão de rede, convertida em um número inteiro.
DST target.ip O endereço IP de destino da conexão de rede.
FLAG additional.fields{}.key: "FLAG", additional.fields{}.value.string_value: valor de FLAG A flag TCP associada à conexão de rede.
ID additional.fields{}.key: "ID", additional.fields{}.value.string_value: valor de ID Campo de identificação de IP.
IN additional.fields{}.key: "IN", additional.fields{}.value.string_value: valor de IN A interface de rede de entrada.
LEN additional.fields{}.key: "LEN", additional.fields{}.value.string_value: valor de LEN O tamanho do pacote IP.
MAC principal.mac O endereço MAC extraído do campo MAC.
OUT additional.fields{}.key: "OUT", additional.fields{}.value.string_value: valor de OUT A interface de rede de saída.
PREC additional.fields{}.key: "PREC", additional.fields{}.value.string_value: valor de PREC O campo de precedência no cabeçalho IP.
PROTO network.ip_protocol O protocolo IP usado na conexão de rede.
RES additional.fields{}.key: "RES", additional.fields{}.value.string_value: valor de RES Campo reservado no cabeçalho TCP.
SPT principal.port A porta de origem da conexão de rede, convertida em um número inteiro.
SRC principal.ip O endereço IP de origem da conexão de rede.
TOS additional.fields{}.key: "TOS", additional.fields{}.value.string_value: valor de TOS O campo "Type of Service" no cabeçalho IP.
TTL network.dns.additional.ttl Valor de time to live, convertido em um número inteiro não assinado.
URGP additional.fields{}.key: "URGP", additional.fields{}.value.string_value: valor de URGP Campo "Urgent pointer" no cabeçalho TCP.
WINDOW additional.fields{}.key: "WINDOW_SIZE", additional.fields{}.value.string_value: valor de WINDOW O tamanho da janela TCP.
action security_result.action A ação realizada pelo firewall, extraída da mensagem CEF.
agt observer.ip O endereço IP do agente.
amac target.mac O endereço MAC do destino, convertido em letras minúsculas e com os hífens substituídos por dois-pontos.
app target.application O app envolvido no evento.
artz observer.zone O fuso horário do observador.
atz target.location.country_or_region O fuso horário de destino.
categoryBehavior additional.fields{}.key: "Comportamento da categoria", additional.fields{}.value.string_value: valor de categoryBehavior com barras invertidas removidas O comportamento da categoria.
categoryDeviceGroup additional.fields{}.key: "Grupo de dispositivos de categoria", additional.fields{}.value.string_value: valor de categoryDeviceGroup com os caracteres de barra invertida removidos O grupo de dispositivos da categoria.
categoryObject additional.fields{}.key: "Objeto de categoria", additional.fields{}.value.string_value: valor de categoryObject com os caracteres de barra invertida removidos O objeto de categoria.
categoryOutcome additional.fields{}.key: "Resultado da categoria", additional.fields{}.value.string_value: valor de categoryOutcome com os caracteres de barra invertida removidos O resultado da categoria.
categorySignificance additional.fields{}.key: "Significância da categoria", additional.fields{}.value.string_value: valor de categorySignificance A importância da categoria.
command target.process.command_line O comando foi executado.
cs1Label additional.fields{}.key: cs1Label, additional.fields{}.value.string_value: valor do campo CEF correspondente Rótulo e valor do campo de string personalizado 1 da mensagem CEF.
cs2Label additional.fields{}.key: cs2Label, additional.fields{}.value.string_value: valor do campo CEF correspondente Rótulo e valor do campo de string personalizado 2 da mensagem CEF.
cs3Label additional.fields{}.key: cs3Label, additional.fields{}.value.string_value: valor do campo CEF correspondente Rótulo e valor do campo de string personalizado 3 da mensagem CEF.
cs4Label additional.fields{}.key: cs4Label, additional.fields{}.value.string_value: valor do campo CEF correspondente Rótulo e valor do campo de string personalizado 4 da mensagem CEF.
cs5Label additional.fields{}.key: cs5Label, additional.fields{}.value.string_value: valor do campo CEF correspondente Rótulo e valor do campo de string personalizado 5 da mensagem CEF.
cs6Label additional.fields{}.key: cs6Label, additional.fields{}.value.string_value: valor do campo CEF correspondente Rótulo e valor do campo de string personalizado 6 da mensagem CEF.
dhost target.hostname Nome do host de destino.
deviceCustomString1 additional.fields{}.key: cs1Label, additional.fields{}.value.string_value: valor de deviceCustomString1 String personalizada do dispositivo 1.
deviceCustomString2 additional.fields{}.key: cs2Label, additional.fields{}.value.string_value: valor de deviceCustomString2 String personalizada do dispositivo 2.
deviceCustomString3 additional.fields{}.key: cs3Label, additional.fields{}.value.string_value: valor de deviceCustomString3 String personalizada do dispositivo 3.
deviceCustomString4 additional.fields{}.key: cs4Label, additional.fields{}.value.string_value: valor de deviceCustomString4 String personalizada do dispositivo 4.
deviceCustomString5 additional.fields{}.key: cs5Label, additional.fields{}.value.string_value: valor de deviceCustomString5 String personalizada do dispositivo 5.
deviceCustomString6 additional.fields{}.key: cs6Label, additional.fields{}.value.string_value: valor de deviceCustomString6 String personalizada do dispositivo 6.
deviceDirection network.direction A direção do tráfego de rede.
deviceEventClassId additional.fields{}.key: "eventId", additional.fields{}.value.string_value: valor de deviceEventClassId O ID da classe de evento do dispositivo.
deviceFacility observer.product.subproduct A instalação do dispositivo.
deviceProcessName about.process.command_line O nome do processo do dispositivo.
deviceSeverity security_result.severity A gravidade do dispositivo.
deviceTimeZone observer.zone O fuso horário do dispositivo.
deviceVendor metadata.vendor_name O fornecedor do dispositivo.
deviceVersion metadata.product_version A versão do dispositivo.
dpt target.port A porta de destino.
dst target.ip O endereço IP de destino.
duser target.user.user_display_name O usuário de destino.
eventId additional.fields{}.key: "eventId", additional.fields{}.value.string_value: valor de eventId ID do evento.
event_time metadata.event_timestamp A hora em que o evento ocorreu, analisada na mensagem.
firewall_action security_result.action_details A ação do firewall realizada.
host principal.hostname, intermediary.hostname O nome do host do dispositivo que gera o registro. Usado para o principal e o intermediário em casos diferentes.
msg security_result.summary A mensagem associada ao evento, usada como um resumo do resultado de segurança.
name metadata.product_event_type O nome do evento.
process_name additional.fields{}.key: "process_name", additional.fields{}.value.string_value: valor de process_name O nome do processo.
p_id target.process.pid O ID do processo, convertido em uma string.
sha256 principal.process.file.sha256 O hash SHA256 de um arquivo, extraído das informações da chave SSH2.
shost principal.hostname Nome do host de origem.
source_address principal.ip O endereço IP de origem.
source_port principal.port A porta de origem, convertida em um número inteiro.
src principal.ip O endereço IP de origem.
src_ip principal.ip O endereço IP de origem.
src_port principal.port A porta de origem, convertida em um número inteiro.
ssh2 security_result.detection_fields{}.key: "ssh2", security_result.detection_fields{}.value: valor de ssh2 Informações da chave SSH2.
subtype metadata.product_event_type O subtipo do evento.
task_summary security_result.description O resumo da tarefa, usado como a descrição do resultado de segurança.
timestamp metadata.event_timestamp O carimbo de data/hora do evento.
user target.user.userid O usuário associado ao evento.
username principal.user.userid O nome de usuário associado ao evento.
user_name principal.user.userid O nome de usuário.
metadata.vendor_name Fixado em "Firewall Juniper". Fixado em "Firewall Juniper". Fixado em "JUNIPER_JUNOS". Determinado pela lógica do analisador com base no conteúdo do registro. O padrão será "STATUS_UPDATE" se não for uma mensagem CEF e nenhum outro tipo de evento específico for identificado. Defina como "NETWORK_HTTP" para mensagens CEF. Se nenhum campo desc estiver presente, ele será preenchido com o message_description extraído da mensagem de registro bruta.

Alterações

2024-05-02

  • Enhancement-
  • Foram adicionados padrões Grok para oferecer suporte a novos registros no formato SYSLOG + KV.

2023-10-25

  • Enhancement-
  • Foram adicionados padrões Grok para analisar registros não analisados.
  • "source_port" foi mapeado para "principal.port".
  • "source_address" foi mapeado para "principal.ip".
  • Mapeamos "user_name" para "target.user.userid".
  • "application_name" foi associado a "target.application".
  • "p_id" foi mapeado para "target.process.pid".
  • A verificação "invalid_pattern" foi adicionada antes do mapeamento de KV.
  • Um padrão Grok foi adicionado para mapear "security_result.description" quando "description_present" é falso.

2023-08-17

  • Enhancement-
  • O padrão Grok foi adicionado aos registros não analisados.
  • Mapeamos "msg" para "security_result.summary".
  • "src_ip" foi mapeado para "principal.ip".
  • Mapeamos "user" para "target.user.userid".
  • Mapeamos "username" para "principal.user.userid".
  • "command" foi associado a "target.process.command_line".
  • "src_port" foi mapeado para "principal.port".
  • Mapeamos "ssh2" para "security_result.detection_fields".
  • "sha256" foi mapeado para "principal.process.file.sha256".
  • Mapeamos "desc" para "sec_result.summary".
  • "Mac-address" foi mapeado para "principal.mac".
  • "host" foi mapeado para "principal.hostname" se event_type for "STATUS_UPDATE".

2023-01-15

  • Enhancement-
  • O padrão do 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-05-02

  • Novo analisador padrão.