Juniper NetScreen-Firewall-Logs erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie Juniper NetScreen Firewall-Logs so einrichten, dass sie an Google Security Operations gesendet werden. Der Parser extrahiert Felder mithilfe von Grok-Mustern und verarbeitet verschiedene Syslog-Formate und JSON-Nutzlasten. Anschließend werden diese extrahierten Felder dem UDM zugeordnet und Ereignisse werden anhand des Vorhandenseins bestimmter Felder wie IP-Adressen, Nutzernamen und Ports als Netzwerkverbindungen, Nutzeranmeldungen, Statusaktualisierungen oder generische Ereignisse kategorisiert.

Hinweise

  • Sie benötigen Administratorzugriff auf Ihre Juniper NetScreen-Firewall.
  • Prüfen Sie, ob Sie eine Google Security Operations-Instanz haben.

Authentifizierungsdatei für die Aufnahme in Google SecOps abrufen

  1. Melden Sie sich in der Google SecOps-Konsole an.
  2. Rufen Sie SIEM-Einstellungen > Collection Agents auf.
  3. Laden Sie die Authentifizierungsdatei für die Aufnahme herunter. Speichern Sie die Datei sicher auf dem System, auf dem BindPlane installiert wird.

Google SecOps-Kundennummer abrufen

  1. Melden Sie sich in der Google SecOps-Konsole an.
  2. Rufen Sie die SIEM-Einstellungen > „Profil“ auf.
  3. Kopieren und speichern Sie die Kunden-ID aus dem Bereich Organisationsdetails.

BindPlane-Agent installieren

Fenstereinbau

  1. Öffnen Sie die Eingabeaufforderung oder PowerShell als Administrator.
  2. Führen Sie dazu diesen Befehl aus:

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

Linux-Installation

  1. Öffnen Sie ein Terminal mit Root- oder Sudo-Berechtigungen.
  2. Führen Sie dazu diesen Befehl aus:

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

Zusätzliche Installationsressourcen

BindPlane-Agent zum Erfassen von Syslog-Daten und Senden an Google SecOps konfigurieren

  1. Greifen Sie auf die Konfigurationsdatei zu:

    1. Suchen Sie die Datei config.yaml. Normalerweise befindet es sich unter Linux im Verzeichnis /etc/bindplane-agent/ oder unter Windows im Installationsverzeichnis.
    2. Öffnen Sie die Datei mit einem Texteditor (z. B. nano, vi oder Notepad).
  2. Bearbeiten Sie die Datei config.yamlso:

    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. Ersetzen Sie den Port und die IP-Adresse nach Bedarf in Ihrer Infrastruktur.

  4. Ersetzen Sie <customer_id> durch die tatsächliche Kunden-ID.

  5. Aktualisieren Sie /path/to/ingestion-authentication-file.json auf den Pfad, in dem die Authentifizierungsdatei im Abschnitt Google SecOps-Aufnahmeauthentifizierungsdatei abrufen gespeichert wurde.

Bindplane-Agent neu starten, um die Änderungen zu übernehmen

  • Führen Sie den folgenden Befehl aus, um den Bindplane-Agent unter Linux neu zu starten:

    sudo systemctl restart bindplane-agent
    
  • Wenn Sie den Bindplane-Agent unter Windows neu starten möchten, können Sie entweder die Konsole Dienste verwenden oder den folgenden Befehl eingeben:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Juniper Networks NetScreen-Firewall konfigurieren

  1. Melden Sie sich in der Weboberfläche von Juniper NetScreen an.
  2. Wählen Sie Konfiguration > Berichtseinstellungen > Protokolleinstellungen aus.
  3. Klicken Sie alle Kästchen unter Schweregrad des Ereignisses an.
  4. Klicken Sie auf Übernehmen.
  5. Wählen Sie Konfiguration > Berichtseinstellungen > Syslog aus.
  6. Klicken Sie das Kästchen Syslog-Meldungen aktivieren an.
  7. Wählen Sie in der Liste Source interface (Quellschnittstelle) die NetScreen-Schnittstelle aus, von der die Syslog-Pakete gesendet werden müssen.
  8. Wählen Sie im Bereich Syslog-Server das Kästchen Aktivieren aus und geben Sie Folgendes an:
    1. IP/Hostname: Geben Sie die Bindplane-IP-Adresse ein.
    2. Port: Geben Sie die Portnummer Bindplane ein.
    3. MDR-Einrichtung: Wählen Sie die Einrichtungsebene Local0 aus.
    4. Einrichtung: Wählen Sie die Einrichtungsebene Local0 aus.
  9. Klicken Sie auf Übernehmen.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
ACTION security_result.action_details Direkt aus dem Feld ACTION zugeordnet, das über GROK- und KV-Filter extrahiert wurde.
APPLICATION principal.application Direkt aus dem Feld APPLICATION zugeordnet, das über GROK- und KV-Filter extrahiert wurde.
application target.application Direkt aus dem Feld application zugeordnet, das über GROK extrahiert wurde.
attack-name security_result.threat_name Direkt aus dem Feld attack-name zugeordnet, das über GROK extrahiert wurde.
bytes-from-client network.sent_bytes Direkt aus dem Feld bytes-from-client zugeordnet, das über GROK extrahiert wurde.
bytes-from-server network.received_bytes Direkt aus dem Feld bytes-from-server zugeordnet, das über GROK extrahiert wurde.
command target.process.command_line Direkt aus dem Feld command zugeordnet, das über GROK extrahiert wurde.
destination-address target.ip Direkt aus dem Feld destination-address zugeordnet, das über GROK extrahiert wurde.
destination-port target.port Direkt aus dem Feld destination-port zugeordnet, das über GROK extrahiert wurde.
destination-zone additional.fields[].value.string_value Direkt aus dem Feld destination-zone zugeordnet, das über GROK- und KV-Filter extrahiert wurde. key ist auf destination-zone festgelegt.
destination_zone-name security_result.detection_fields[].value Direkt aus dem Feld destination_zone-name zugeordnet, das über GROK extrahiert wurde. key ist auf dstzone festgelegt.
dst-nat-rule-name security_result.detection_fields[].value Direkt aus dem Feld dst-nat-rule-name zugeordnet, das über GROK extrahiert wurde. key ist auf dst-nat-rule-name festgelegt.
dst-nat-rule-type security_result.detection_fields[].value Direkt aus dem Feld dst-nat-rule-type zugeordnet, das über GROK extrahiert wurde. key ist auf dst-nat-rule-type festgelegt.
elapsed-time network.session_duration.seconds Direkt aus dem Feld elapsed-time zugeordnet, das über GROK extrahiert wurde.
encrypted security_result.detection_fields[].value Direkt aus dem Feld encrypted zugeordnet, das über GROK extrahiert wurde. key ist auf encrypted festgelegt.
event_time metadata.event_timestamp Der Zeitstempel wird aus dem Rohlog extrahiert. Dabei werden verschiedene GROK-Muster verwendet, wobei event_time, dann TIMESTAMP_ISO8601 und schließlich SYSLOGTIMESTAMP priorisiert werden. Anschließend wird sie in ein Zeitstempelobjekt konvertiert.
host principal.hostname, intermediary.hostname Wenn type NetScreen ist, wird intermediary.hostname zugeordnet. Andernfalls wird principal.hostname zugeordnet.
host_ip intermediary.ip Direkt aus dem Feld host_ip zugeordnet, das über GROK extrahiert wurde.
icmp-type network.icmp_type Direkt aus dem Feld icmp-type zugeordnet, das über GROK extrahiert wurde.
ident target.application Direkt aus dem Feld ident zugeordnet, das über GROK- und JSON-Filter extrahiert wurde.
inbound-bytes network.received_bytes Direkt aus dem Feld inbound-bytes zugeordnet, das über GROK extrahiert wurde.
inbound-packets network.received_packets Direkt aus dem Feld inbound-packets zugeordnet, das über GROK extrahiert wurde.
ip principal.ip, intermediary.ip Wenn type NetScreen ist, wird intermediary.ip zugeordnet. Andernfalls wird principal.hostname zugeordnet.
message security_result.description Wenn die Nachricht JSON ist und das Feld log_message_data nicht vorhanden ist, wird das Feld message als Beschreibung verwendet.
msg_data security_result.summary Direkt aus dem Feld msg_data zugeordnet, das über GROK extrahiert wurde.
nat-destination-address target.nat_ip Direkt aus dem Feld nat-destination-address zugeordnet, das über GROK extrahiert wurde.
nat-destination-port target.nat_port Direkt aus dem Feld nat-destination-port zugeordnet, das über GROK extrahiert wurde.
nat-source-address principal.nat_ip Direkt aus dem Feld nat-source-address zugeordnet, das über GROK extrahiert wurde.
nat-source-port principal.nat_port Direkt aus dem Feld nat-source-port zugeordnet, das über GROK extrahiert wurde.
outbound-bytes network.sent_bytes Direkt aus dem Feld outbound-bytes zugeordnet, das über GROK extrahiert wurde.
outbound-packets network.sent_packets Direkt aus dem Feld outbound-packets zugeordnet, das über GROK extrahiert wurde.
packets-from-client network.sent_packets Direkt aus dem Feld packets-from-client zugeordnet, das über GROK extrahiert wurde.
packets-from-server network.received_packets Direkt aus dem Feld packets-from-server zugeordnet, das über GROK extrahiert wurde.
packet-incoming-interface security_result.detection_fields[].value Direkt aus dem Feld packet-incoming-interface zugeordnet, das über GROK extrahiert wurde. key ist auf packet-incoming-interface festgelegt.
pid target.process.pid Direkt aus dem Feld pid zugeordnet, das über GROK- und JSON-Filter extrahiert wurde.
policy-name security_result.rule_name Direkt aus dem Feld policy-name zugeordnet, das über GROK extrahiert wurde.
PROFILE additional.fields[].value.string_value Direkt aus dem Feld PROFILE zugeordnet, das über GROK- und KV-Filter extrahiert wurde. key ist auf PROFILE festgelegt.
protocol-id, protocol-name network.ip_protocol Wird aus dem Feld protocol-id oder protocol-name zugeordnet, das über GROK extrahiert wurde. Der Wert wird in die entsprechende IP-Protokoll-Enumeration konvertiert.
REASON additional.fields[].value.string_value Direkt aus dem Feld REASON zugeordnet, das über GROK- und KV-Filter extrahiert wurde. key ist auf REASON festgelegt.
reason security_result.description Direkt aus dem Feld reason zugeordnet, das über GROK extrahiert wurde.
rule-name security_result.rule_name Direkt aus dem Feld rule-name zugeordnet, das über GROK extrahiert wurde.
SESSION_ID network.session_id Direkt aus dem Feld SESSION_ID zugeordnet, das über GROK- und KV-Filter extrahiert wurde.
service-name security_result.detection_fields[].value Direkt aus dem Feld service-name zugeordnet, das über GROK extrahiert wurde. key ist auf srvname festgelegt.
source-address principal.ip Direkt aus dem Feld source-address zugeordnet, das über GROK extrahiert wurde.
source-port principal.port Direkt aus dem Feld source-port zugeordnet, das über GROK extrahiert wurde.
source-zone additional.fields[].value.string_value Direkt aus dem Feld source-zone zugeordnet, das über GROK- und KV-Filter extrahiert wurde. key ist auf source-zone festgelegt.
source_zone-name security_result.detection_fields[].value Direkt aus dem Feld source_zone-name zugeordnet, das über GROK extrahiert wurde. key ist auf srczone festgelegt.
src-nat-rule-name security_result.detection_fields[].value Direkt aus dem Feld src-nat-rule-name zugeordnet, das über GROK extrahiert wurde. key ist auf src-nat-rule-name festgelegt.
src-nat-rule-type security_result.detection_fields[].value Direkt aus dem Feld src-nat-rule-type zugeordnet, das über GROK extrahiert wurde. key ist auf src-nat-rule-type festgelegt.
subtype metadata.product_event_type Direkt aus dem Feld subtype zugeordnet, das über GROK extrahiert wurde.
threat-severity security_result.severity_details Direkt aus dem Feld threat-severity zugeordnet, das über GROK extrahiert wurde.
time metadata.event_timestamp Direkt aus dem Feld time zugeordnet, das über GROK- und JSON-Filter extrahiert wurde. In ein Zeitstempelobjekt konvertiert.
username target.user.userid Direkt aus dem Feld username zugeordnet, das über GROK extrahiert wurde.
metadata.log_type Hartcodiert auf JUNIPER_FIREWALL. Je nach Feld type fest auf JUNIPER_FIREWALL oder NetScreen codiert. Hartcodiert auf JUNIPER_FIREWALL. Wird basierend auf der Logik im Parser auf ALLOW oder BLOCK gesetzt. Legen Sie basierend auf den Feldern subtype und severity_details den Wert LOW, MEDIUM, HIGH, INFORMATIONAL oder CRITICAL fest.

Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten