Coletar registros do Juniper NetScreen Firewall
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
- Faça login no console do Google SecOps.
- Acesse Configurações do SIEM > Agentes de coleta.
- 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
- Faça login no console do Google SecOps.
- Acesse Configurações do SIEM > Perfil.
- Copie e salve o ID do cliente na seção Detalhes da organização.
Instalar o agente do Bindplane
Instalação do Windows
- Abra o Prompt de Comando ou o PowerShell como administrador.
Execute este comando:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Instalação do Linux
- Abra um terminal com privilégios de raiz ou sudo.
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
- Para mais opções de instalação, consulte este guia de instalação.
Configurar o agente do Bindplane para processar o Syslog e enviar ao Google SecOps
Acesse o arquivo de configuração:
- 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. - Abra o arquivo usando um editor de texto (por exemplo,
nano
,vi
ou Notepad).
- Localize o arquivo
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
Substitua a porta e o endereço IP conforme necessário na sua infraestrutura.
Substitua
<customer_id>
pelo ID real do cliente.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
- Faça login na interface da Web do Juniper NetScreen.
- Selecione Configuração > Configurações de relatório > Configurações de registro.
- Marque todas as caixas de seleção Gravidade do evento.
- Clique em Aplicar.
- Selecione Configuração > Configurações do relatório > Syslog.
- Marque a caixa de seleção Ativar mensagens syslog.
- Na lista Interface de origem, selecione a interface NetScreen de onde os pacotes syslog precisam ser enviados.
- Na seção Servidor Syslog, marque a caixa de seleção Ativar e informe o seguinte:
- IP/Hostname: insira o endereço IP
Bindplane
. - Port: digite o número da porta
Bindplane
. - Unidade MDR: selecione o nível da unidade Local0.
- Facility: selecione o nível de facility Local0.
- IP/Hostname: insira o endereço IP
- 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
paraadditional.fields
foi modificado quandouser_value
começa comRT_FLOW
.
2025-02-06
Melhoria:
- Se
user_value
forUI_LOGIN_EVENT
, mapeie-o paraadditional.fields
.
2025-01-15
Melhoria:
- Se
user_name
tiverRT_FLOW_SESSION_DENY
, mapeie-o parasecurity_result.action
comoBLOCK
. Caso contrário, mude o mapeamento deuser_name
detarget.user.userid
parasecurity_result.summary
. sec_desc
foi mapeado parasecurity_result.description
.
2024-10-31
Melhoria:
- Um novo padrão Grok foi adicionado para analisar logs não analisados.
- Mapeou
processid
paratarget.process.id
- Mapeamento de
TSr
eTSi
paraadditional.fields
. - A função
gsub
foi adicionada para mapearRemote-IP
paratarget.ip
. - A função
gsub
foi adicionada para mapearTSi
eLocal_IKE_ID
paraadditional.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 paraintermediary.ip
.msg1
foi mapeado parasecurity_result.summary
.desc
foi mapeado parametadata.description
.
2024-10-24
Melhoria:
- Foi adicionado um novo padrão Grok para analisar registros no novo formato SYSLOG+KV.
- Mapeamento de
local_ip
paraprincipal.ip
eprincipal.assest.ip
. - Mapeamento de
remote_ip
paratarget.ip
etarget.asset.ip
.
2024-10-11
Melhoria:
hostn
foi mapeado paraprincipal.hostname
.app
foi mapeado paraprincipal.application
.pid
foi mapeado paraprincipal.process.pid
.event_title
foi mapeado parametadata.product_event_type
.event_message
foi mapeado parametadata.description
.- Mapeamento de
Local-ip
paraprincipal.ip
eprincipal.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
eerror-message_data
paraobserver.resource.attribute.labels
. - Mapeamento de
target_ip
paratarget.ip
etarget.asset.ip
. - Mapeamento de
data
paratarget.ip
etarget.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 camposuser_id
,principal_host
,file_path
,pid_2
eserver_ip
. principal_host
foi mapeado paraprincipal.hostname
.user_id
foi mapeado paratarget.user.userid
.file_path
foi mapeado paratarget.file.full_path
.pid_2
foi mapeado paratarget.process.pid
.server_ip
foi mapeado paratarget.ip
.event_time
foi mapeado corretamente parametadata.event_timestamp
removendorebase
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 parasecurity_result.action_details
.SESSION_ID
foi mapeado paranetwork.session_id
.APPLICATION
foi mapeado paraprincipal.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
earp_unicast_mode
paraadditional.fields
. time
foi mapeado parametadata.event_timestamp
.
2023-12-31
Correção de bugs:
- Adição de suporte a um novo padrão de registros JSON.
time
foi mapeado parametadata.event_timestamp
.host
foi mapeado paraprincipal.hostname
.ident
foi mapeado paratarget.application
.pid
foi mapeado paratarget.process.pid
.- Foram adicionados padrões Grok para analisar o campo
message
.
2023-12-15
Melhoria:
internal-protocol
foi mapeado paranetwork.ip_protocol
.state
foi mapeado parasecurity_result.detection_fields
.internal-ip
foi mapeado paraprincipal.ip
.reflexive-ip
foi mapeado paratarget.ip
.internal-port
foi mapeado paraprinciple.port
.reflexive-port
foi mapeado paratarget.port
.local-address
foi mapeado paraprincipal.ip
.remote-address
foi mapeado paratarget.ip
.- Adição de filtro KV com a origem
task_summary
. dns-server-address
foi mapeado paraprincipal.ip
.domain-name
foi mapeado paraprincipal.administrative_domain
.argument1
foi mapeado paranetwork.direction
.state
foi mapeado parasecurity_result.detection_fields
.test-owner
foi mapeado paraadditional.fields
.local-initiator
foi mapeado paraadditional.fields
.test-name
foi mapeado paraadditional.fields
.SPI
foi mapeado paraadditional.fields
.AUX-SPI
foi mapeado paraadditional.fields
.Type
foi mapeado paraadditional.fields
.error-message
foi mapeado parasecurity_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
eRT_FLOW_SESSION_DENY_LS
. sent
foi mapeado paranetwork.sent_bytes
.rcvd
foi mapeado paranetwork.received_bytes
.
2023-05-05
Melhoria:
rule-name
foi mapeado parasecurity_result.rule_id
.rulebase-name
foi mapeado parasecurity_result.detection_fields
.export-id
foi mapeado parasecurity_result.detection_fields
.repeat-count
foi mapeado parasecurity_result.detection_fields
.packet-log-id
foi mapeado parasecurity_result.detection_fields
.- Mapeou
alert
parais_alert
quando o valor éyes
. outbound-packets
foi mapeado paranetwork.sent_packets
.inbound-packets
foi mapeado paranetwork.received_packets
.outbound-bytes
foi mapeado paranetwork.sent_bytes
.inbound-bytes
foi mapeado paranetwork.received_bytes
.
2023-03-08
Melhoria:
application
foi mapeado paratarget.application
.reason
foi mapeado parasecurity_result.description
.application-characteristics
foi mapeado parasecurity_result.summary
.application-risk
foi mapeado parasecurity_result.severity_details
.application-category
foi mapeado parasecurity_result.detection_fields
.application-sub-category
foi mapeado parasecurity_result.detection_fields
.dst-nat-rule-name
foi mapeado parasecurity_result.detection_fields
.dst-nat-rule-type
foi mapeado parasecurity_result.detection_fields
.src-nat-rule-name
foi mapeado parasecurity_result.detection_fields
.src-nat-rule-type
foi mapeado parasecurity_result.detection_fields
.encrypted
foi mapeado parasecurity_result.detection_fields
.nested-application
foi mapeado parasecurity_result.detection_fields
.packet-incoming-interface
foi mapeado parasecurity_result.detection_fields
.session-id-32
foi mapeado paranetwork.session_id
.packets-from-client
foi mapeado paranetwork.sent_packets
.packets-from-server
foi mapeado paranetwork.received_packets
.bytes-from-client
foi mapeado paranetwork.sent_bytes
.bytes-from-server
foi mapeado paranetwork.received_bytes
.elapsed-time
foi mapeado paranetwork.session_duration.seconds
.nat-destination-address
foi mapeado paratarget.nat_ip
.nat-destination-port
foi mapeado paratarget.nat_port
.source-destination-address
foi mapeado paraprincipal.nat_ip
.source-destination-port
foi mapeado paraprincipal.nat_port
.
18/01/2023
Correção de bugs:
- A condição deixou de diferenciar maiúsculas de minúsculas para mapear
BLOCK
parasecurity_result.action
, quandoaction
édrop/DROP
. - Mapeou
msg_data
parasecurity_result.description
quandono_app_name
é falso. threat-severity
foi mapeado parasecurity_result.severity
.- Mapeamos o campo
message
parametadata.description
. app_name
foi mapeado paratarget.application
.pid
foi mapeado paratarget.process.pid
.desc
foi mapeado parametadata.description
.username
foi mapeado paraprincipal.user.userid
.command
foi mapeado paratarget.process.command_line
.action
foi mapeado parasecurity_result.action_details
.sec_description
foi mapeado parasecurity_result.description
.application-name
foi mapeado paranetwork.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 parametadata.product_event_type
.attack-name
foi mapeado parasecurity_result.threat_name
.policy-name
foi mapeado parasecurity_result.rule_name
.- Mapeou
action
parasecurity_result.action
, em que o valordrop
é mapeado para BLOQUEAR outros para PERMITIR. source-interface-name
foi mapeado parasecurity_result.detection_fields
.destination-interface-name
foi mapeado parasecurity_result.detection_fields
.source-zone-name
foi mapeado parasecurity_result.detection_fields
.destination-zone-name
foi mapeado parasecurity_result.detection_fields
.service-name
foi mapeado parasecurity_result.detection_fields
.application-name
foi mapeado parasecurity_result.detection_fields
.metadata.product_name
mapeadometadata.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 paraprincipal.ip
.destination-address
foi mapeado paratarget.ip
.source-port
foi mapeado paraprincipal.port
.host
foi mapeado paraprincipal.hostname
.bytes-from-server
foi mapeado paranetwork.received_bytes
.policy-name
foi mapeado parasecurity_result.rule_name
.protocol-id
foi mapeado paranetwork.ip_protocol
.
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.