Raccogliere i log del firewall Juniper NetScreen

Supportato in:

Questo documento spiega come configurare i log del firewall Juniper NetScreen da inviare a Google Security Operations. Il parser estrae i campi utilizzando i pattern grok, gestendo vari formati syslog e payload JSON. Quindi, mappa questi campi estratti all'UDM, classificando gli eventi come connessioni di rete, accessi degli utenti, aggiornamenti di stato o eventi generici in base alla presenza di campi specifici come indirizzi IP, nomi utente e porte.

Prima di iniziare

  • Assicurati di disporre dell'accesso amministrativo al firewall Juniper NetScreen.
  • Assicurati di avere un'istanza Google Security Operations.

Recuperare il file di autenticazione importazione di Google SecOps

  1. Accedi alla console Google SecOps.
  2. Vai a Impostazioni SIEM > Agenti di raccolta.
  3. Scarica il file di autenticazione importazione. Salva il file in modo sicuro sul sistema in cui verrà installato Bindplane.

Recuperare l'ID cliente Google SecOps

  1. Accedi alla console Google SecOps.
  2. Vai a Impostazioni SIEM > Profilo.
  3. Copia e salva l'ID cliente dalla sezione Dettagli dell'organizzazione.

Installa l'agente Bindplane

Installazione di Windows

  1. Apri il prompt dei comandi o PowerShell come amministratore.
  2. Esegui questo comando:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Installazione di Linux

  1. Apri un terminale con privilegi di root o sudo.
  2. Esegui questo comando:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    

Risorse aggiuntive per l'installazione

Configura l'agente Bindplane per importare Syslog e inviarli a Google SecOps

  1. Accedi al file di configurazione:

    1. Individua il file config.yaml. In genere, si trova nella directory /etc/bindplane-agent/ su Linux o nella directory di installazione su Windows.
    2. Apri il file utilizzando un editor di testo (ad esempio nano, vi o Blocco note).
  2. Modifica il file config.yaml come segue:

    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. Sostituisci la porta e l'indirizzo IP in base alle esigenze della tua infrastruttura.

  4. Sostituisci <customer_id> con l'ID cliente effettivo.

  5. Aggiorna /path/to/ingestion-authentication-file.json al percorso in cui è stato salvato il file di autenticazione nella sezione Recupera il file di autenticazione per l'importazione di Google SecOps.

Riavvia l'agente Bindplane per applicare le modifiche

  • Per riavviare l'agente Bindplane in Linux, esegui questo comando:

    sudo systemctl restart bindplane-agent
    
  • Per riavviare l'agente Bindplane in Windows, puoi utilizzare la console Servizi o inserire il seguente comando:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Configura il firewall Juniper Networks NetScreen

  1. Accedi all'interfaccia web di Juniper NetScreen.
  2. Seleziona Configurazione > Impostazioni report > Impostazioni log.
  3. Seleziona tutte le caselle di controllo Gravità evento.
  4. Fai clic su Applica.
  5. Seleziona Configurazione > Impostazioni report > Syslog.
  6. Seleziona la casella di controllo Abilita messaggi syslog.
  7. Nell'elenco Source interface (Interfaccia di origine), seleziona l'interfaccia NetScreen da cui devono essere inviati i pacchetti syslog.
  8. Nella sezione Server Syslog, seleziona la casella di controllo Attiva e fornisci quanto segue:
    1. IP/Nome host: inserisci l'indirizzo IP Bindplane.
    2. Porta: inserisci il numero di porta Bindplane.
    3. Struttura MDR: seleziona il livello di struttura Local0.
    4. Struttura: seleziona il livello di struttura Local0.
  9. Fai clic su Applica.

Tabella di mappatura UDM

Campo log Mappatura UDM Logic
ACTION security_result.action_details Mappato direttamente dal campo ACTION estratto tramite i filtri GROK e KV.
APPLICATION principal.application Mappato direttamente dal campo APPLICATION estratto tramite i filtri GROK e KV.
application target.application Mappato direttamente dal campo application estratto tramite GROK.
attack-name security_result.threat_name Mappato direttamente dal campo attack-name estratto tramite GROK.
bytes-from-client network.sent_bytes Mappato direttamente dal campo bytes-from-client estratto tramite GROK.
bytes-from-server network.received_bytes Mappato direttamente dal campo bytes-from-server estratto tramite GROK.
command target.process.command_line Mappato direttamente dal campo command estratto tramite GROK.
destination-address target.ip Mappato direttamente dal campo destination-address estratto tramite GROK.
destination-port target.port Mappato direttamente dal campo destination-port estratto tramite GROK.
destination-zone additional.fields[].value.string_value Mappato direttamente dal campo destination-zone estratto tramite i filtri GROK e KV. key è impostato su destination-zone.
destination_zone-name security_result.detection_fields[].value Mappato direttamente dal campo destination_zone-name estratto tramite GROK. key è impostato su dstzone.
dst-nat-rule-name security_result.detection_fields[].value Mappato direttamente dal campo dst-nat-rule-name estratto tramite GROK. key è impostato su dst-nat-rule-name.
dst-nat-rule-type security_result.detection_fields[].value Mappato direttamente dal campo dst-nat-rule-type estratto tramite GROK. key è impostato su dst-nat-rule-type.
elapsed-time network.session_duration.seconds Mappato direttamente dal campo elapsed-time estratto tramite GROK.
encrypted security_result.detection_fields[].value Mappato direttamente dal campo encrypted estratto tramite GROK. key è impostato su encrypted.
event_time metadata.event_timestamp Il timestamp viene estratto dal log non elaborato utilizzando vari pattern GROK, dando la priorità a event_time, poi a TIMESTAMP_ISO8601 e infine a SYSLOGTIMESTAMP. Viene quindi convertito in un oggetto timestamp.
host principal.hostname, intermediary.hostname Se type è NetScreen, mappato a intermediary.hostname. In caso contrario, viene mappato a principal.hostname.
host_ip intermediary.ip Mappato direttamente dal campo host_ip estratto tramite GROK.
icmp-type network.icmp_type Mappato direttamente dal campo icmp-type estratto tramite GROK.
ident target.application Mappato direttamente dal campo ident estratto tramite i filtri GROK e JSON.
inbound-bytes network.received_bytes Mappato direttamente dal campo inbound-bytes estratto tramite GROK.
inbound-packets network.received_packets Mappato direttamente dal campo inbound-packets estratto tramite GROK.
ip principal.ip, intermediary.ip Se type è NetScreen, mappato a intermediary.ip. In caso contrario, viene mappato a principal.hostname.
message security_result.description Se il messaggio è JSON e il campo log_message_data non è presente, il campo message viene utilizzato come descrizione.
msg_data security_result.summary Mappato direttamente dal campo msg_data estratto tramite GROK.
nat-destination-address target.nat_ip Mappato direttamente dal campo nat-destination-address estratto tramite GROK.
nat-destination-port target.nat_port Mappato direttamente dal campo nat-destination-port estratto tramite GROK.
nat-source-address principal.nat_ip Mappato direttamente dal campo nat-source-address estratto tramite GROK.
nat-source-port principal.nat_port Mappato direttamente dal campo nat-source-port estratto tramite GROK.
outbound-bytes network.sent_bytes Mappato direttamente dal campo outbound-bytes estratto tramite GROK.
outbound-packets network.sent_packets Mappato direttamente dal campo outbound-packets estratto tramite GROK.
packets-from-client network.sent_packets Mappato direttamente dal campo packets-from-client estratto tramite GROK.
packets-from-server network.received_packets Mappato direttamente dal campo packets-from-server estratto tramite GROK.
packet-incoming-interface security_result.detection_fields[].value Mappato direttamente dal campo packet-incoming-interface estratto tramite GROK. key è impostato su packet-incoming-interface.
pid target.process.pid Mappato direttamente dal campo pid estratto tramite i filtri GROK e JSON.
policy-name security_result.rule_name Mappato direttamente dal campo policy-name estratto tramite GROK.
PROFILE additional.fields[].value.string_value Mappato direttamente dal campo PROFILE estratto tramite i filtri GROK e KV. key è impostato su PROFILE.
protocol-id, protocol-name network.ip_protocol Mappato dal campo protocol-id o protocol-name estratto tramite GROK. Il valore viene convertito nell'enumerazione del protocollo IP corrispondente.
REASON additional.fields[].value.string_value Mappato direttamente dal campo REASON estratto tramite i filtri GROK e KV. key è impostato su REASON.
reason security_result.description Mappato direttamente dal campo reason estratto tramite GROK.
rule-name security_result.rule_name Mappato direttamente dal campo rule-name estratto tramite GROK.
SESSION_ID network.session_id Mappato direttamente dal campo SESSION_ID estratto tramite i filtri GROK e KV.
service-name security_result.detection_fields[].value Mappato direttamente dal campo service-name estratto tramite GROK. key è impostato su srvname.
source-address principal.ip Mappato direttamente dal campo source-address estratto tramite GROK.
source-port principal.port Mappato direttamente dal campo source-port estratto tramite GROK.
source-zone additional.fields[].value.string_value Mappato direttamente dal campo source-zone estratto tramite i filtri GROK e KV. key è impostato su source-zone.
source_zone-name security_result.detection_fields[].value Mappato direttamente dal campo source_zone-name estratto tramite GROK. key è impostato su srczone.
src-nat-rule-name security_result.detection_fields[].value Mappato direttamente dal campo src-nat-rule-name estratto tramite GROK. key è impostato su src-nat-rule-name.
src-nat-rule-type security_result.detection_fields[].value Mappato direttamente dal campo src-nat-rule-type estratto tramite GROK. key è impostato su src-nat-rule-type.
subtype metadata.product_event_type Mappato direttamente dal campo subtype estratto tramite GROK.
threat-severity security_result.severity_details Mappato direttamente dal campo threat-severity estratto tramite GROK.
time metadata.event_timestamp Mappato direttamente dal campo time estratto tramite i filtri GROK e JSON. Convertito in oggetto timestamp.
username target.user.userid Mappato direttamente dal campo username estratto tramite GROK.
metadata.log_type Codificato in modo permanente su JUNIPER_FIREWALL. Codificato in modo permanente su JUNIPER_FIREWALL o NetScreen in base al campo type. Codificato in modo permanente su JUNIPER_FIREWALL. Imposta su ALLOW o BLOCK in base alla logica del parser. Imposta il valore su LOW, MEDIUM, HIGH, INFORMATIONAL o CRITICAL in base ai campi subtype e severity_details.

Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.