Coletar registros do Juniper Junos
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.
- Faça login na CLI do Juniper SRX usando SSH no endereço IP de gerenciamento.
- Digite
CLI
no prompt do shell e pressione Enter. - Digite
configure
e pressione Enter para entrar no modo de configuração do dispositivo. - Insira os detalhes de contato ou o ponto de referência do cliente.
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.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.
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
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.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
- Selecione Configurações do SIEM > Encaminhadores.
- Clique em Adicionar novo encaminhador.
- Insira um nome exclusivo no campo Nome do encaminhador.
- Clique em Enviar e em Confirmar. O encaminhador é adicionado, e a janela Add collector configuration aparece.
- No campo Nome do coletor, insira um nome exclusivo.
- Selecione Juniper Junos como o Tipo de registro.
- Selecione Syslog como o Tipo de coletor.
- 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.
- 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.