Juniper Junos-Protokolle erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie Juniper Junos-Logs mit einem Google Security Operations-Weiterleiter erfassen können.

Weitere Informationen finden Sie unter Datenaufnahme in Google Security Operations.

Mit einem Datenaufnahmelabel wird der Parser identifiziert, der Roh-Logdaten in das strukturierte UDM-Format normalisiert. Die Informationen in diesem Dokument beziehen sich auf den Parser mit dem Datenaufnahmelabel JUNIPER_JUNOS.

Strukturiertes Logging für ein Juniper Networks SRX-Gerät konfigurieren

Beim strukturierten Protokollformat werden Informationen aus Protokollmeldungen extrahiert. Das Protokollformat entspricht dem Syslog-Protokoll.

  1. Melden Sie sich über SSH mit der Management-IP-Adresse in der Juniper SRX CLI an.
  2. Geben Sie CLI in die Shell ein und drücken Sie die Eingabetaste.
  3. Geben Sie configure ein und drücken Sie die Eingabetaste, um den Konfigurationsmodus des Geräts aufzurufen.
  4. Geben Sie die Kontaktdaten oder den Kundenreferenzpunkt ein.
  5. Führen Sie die folgenden Befehle aus, um die Felder dem Nutzerkonto zuzuordnen:

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

    Ersetzen Sie FORWARDER_IP_ADDRESS durch die IP-Adresse des Google Security Operations-Weiterleiters.

  6. Verwenden Sie die folgenden Befehle, um das strukturierte Logging für Sicherheitsprotokolle zu aktivieren:

       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
    
    

    Ersetzen Sie Folgendes:

    • SRC_IP_ADDRESS: die IP-Adresse des Juniper SRX-Geräts.

    • SYSLOG_STREAM_NAME: Der Name, der dem syslog-Server zugewiesen ist.

    • FORWARDER_IP_ADDRESS: die IP-Adresse des Google Security Operations-Weiterleiters.

  7. Achten Sie darauf, dass das Logging für alle Sicherheitsrichtlinien aktiviert ist. Führen Sie die folgenden Befehle aus, um das Logging zu aktivieren:

       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. Konfigurieren Sie den Hostnamen auf dem Gerät mit dem folgenden Befehl:

       set system host-name HOSTNAME
    
    

    Ersetzen Sie HOSTNAME durch das zugewiesene Juniper Networks SRX-Gerät.

  9. Geben Sie commit ein, um die ausgeführten Befehle in der Konfiguration zu speichern.

Google Security Operations-Weiterleiter und syslog für die Aufnahme von Juniper Junos-Logs konfigurieren

  1. Wählen Sie SIEM-Einstellungen > Weiterleitungen aus.
  2. Klicken Sie auf Neuen Weiterleiter hinzufügen.
  3. Geben Sie im Feld Name des Weiterleiters einen eindeutigen Namen ein.
  4. Klicken Sie auf Senden und dann auf Bestätigen. Der Weiterleiter wird hinzugefügt und das Fenster Aufnehmerkonfiguration hinzufügen wird angezeigt.
  5. Geben Sie im Feld Name des Collectors einen eindeutigen Namen für den Collector ein.
  6. Wählen Sie Juniper Junos als Logtyp aus.
  7. Wählen Sie Syslog als Typ des Collectors aus.
  8. Konfigurieren Sie die folgenden Eingabeparameter:
    • Protocol (Protokoll): Geben Sie das Protokoll als UDP an.
    • Address (Adresse): Geben Sie die Ziel-IP-Adresse oder den Hostnamen an, unter der bzw. dem sich der Collector befindet und auf syslog-Daten wartet.
    • Port: Gibt den Zielport an, an dem sich der Collector befindet und auf Syslog-Daten wartet.
  9. Klicken Sie auf Senden.

Weitere Informationen zu Google Security Operations-Weiterleitungen finden Sie in der Dokumentation zu Google Security Operations-Weiterleitungen. Informationen zu den Anforderungen für die einzelnen Weiterleitungstypen finden Sie unter Weiterleitungskonfiguration nach Typ. Wenn beim Erstellen von Weiterleitungen Probleme auftreten, wenden Sie sich an den Google Security Operations-Support.

Referenz für die Feldzuordnung

Dieser Parser extrahiert Felder aus Juniper JUNOS-Syslog-Nachrichten und unterstützt sowohl Schlüssel/Wert- als auch andere Formate. Es verwendet Grok-Muster, um verschiedene Nachrichtenstrukturen abzugleichen, einschließlich Firewall-Logs, SSH-Aktivitäten und Befehlsausführungen, und ordnet die extrahierten Felder dann dem UDM zu. Der Parser verarbeitet auch CEF-formatierte Protokolle mithilfe einer Include-Datei und führt je nach Inhalt der Nachricht bestimmte Aktionen aus, z. B. das Zusammenführen von IP-Adressen und Nutzernamen in die entsprechenden UDM-Felder.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
DPT target.port Der Zielport der Netzwerkverbindung, in eine Ganzzahl umgewandelt.
DST target.ip Die Ziel-IP-Adresse der Netzwerkverbindung.
FLAG additional.fields{}.key: „FLAG“, additional.fields{}.value.string_value: Wert von FLAG Das TCP-Flag, das mit der Netzwerkverbindung verknüpft ist.
ID additional.fields{}.key: „ID“, additional.fields{}.value.string_value: Wert von ID Das IP-Identifikationsfeld.
IN additional.fields{}.key: „IN“, additional.fields{}.value.string_value: Wert von IN Die eingehende Netzwerkschnittstelle.
LEN additional.fields{}.key: „LEN“, additional.fields{}.value.string_value: Wert von LEN Die Länge des IP-Pakets.
MAC principal.mac Die MAC-Adresse, die aus dem Feld MAC extrahiert wurde.
OUT additional.fields{}.key: „OUT“, additional.fields{}.value.string_value: Wert von OUT Die ausgehende Netzwerkschnittstelle.
PREC additional.fields{}.key: „PREC“, additional.fields{}.value.string_value: Wert von PREC Das Feld „Precedence“ (Priorität) im IP-Header.
PROTO network.ip_protocol Das IP-Protokoll, das in der Netzwerkverbindung verwendet wird.
RES additional.fields{}.key: „RES“, additional.fields{}.value.string_value: Wert von RES Reserviertes Feld im TCP-Header.
SPT principal.port Der Quellport der Netzwerkverbindung, in eine Ganzzahl umgewandelt.
SRC principal.ip Die Quell-IP-Adresse der Netzwerkverbindung.
TOS additional.fields{}.key: „TOS“, additional.fields{}.value.string_value: Wert von TOS Das Feld „Type of Service“ (Diensttyp) im IP-Header.
TTL network.dns.additional.ttl Gültigkeitsdauer in einer vorzeichenlosen Ganzzahl.
URGP additional.fields{}.key: „URGP“, additional.fields{}.value.string_value: Wert von URGP Urgent-Pointer-Feld im TCP-Header.
WINDOW additional.fields{}.key: „WINDOW_SIZE“, additional.fields{}.value.string_value: Wert von WINDOW Die TCP-Fenstergröße.
action security_result.action Die von der Firewall ausgeführte Aktion, aus der CEF-Nachricht extrahiert.
agt observer.ip Die IP-Adresse des Kundenservicemitarbeiters.
amac target.mac Die MAC-Adresse des Ziels, in Kleinbuchstaben umgewandelt und mit Bindestriche durch Doppelpunkte ersetzt.
app target.application Die Anwendung, die am Ereignis beteiligt ist.
artz observer.zone Die Zeitzone des Betrachters.
atz target.location.country_or_region Die Zielzeitzone.
categoryBehavior additional.fields{}.key: „Kategorieverhalten“, additional.fields{}.value.string_value: Wert von categoryBehavior ohne Schrägstriche Das Verhalten der Kategorie.
categoryDeviceGroup additional.fields{}.key: „Category Device Group“, additional.fields{}.value.string_value: Wert von categoryDeviceGroup ohne Schrägstriche Die Gerätegruppe der Kategorie.
categoryObject additional.fields{}.key: „Category Object“, additional.fields{}.value.string_value: Wert von categoryObject ohne Schrägstriche Das Kategorieobjekt.
categoryOutcome additional.fields{}.key: „Kategorieergebnis“, additional.fields{}.value.string_value: Wert von categoryOutcome ohne Schrägstriche Das Ergebnis der Kategorie.
categorySignificance additional.fields{}.key: „category Significance“, additional.fields{}.value.string_value: Wert von categorySignificance Die Bedeutung der Kategorie.
command target.process.command_line Der Befehl wurde ausgeführt.
cs1Label additional.fields{}.key: cs1Label, additional.fields{}.value.string_value: Wert des entsprechenden CEF-Felds Label und Wert des benutzerdefinierten Stringfelds 1 aus der CEF-Nachricht.
cs2Label additional.fields{}.key: cs2Label, additional.fields{}.value.string_value: Wert des entsprechenden CEF-Felds Label und Wert des benutzerdefinierten Stringfelds 2 aus der CEF-Nachricht.
cs3Label additional.fields{}.key: cs3Label, additional.fields{}.value.string_value: Wert des entsprechenden CEF-Felds Label und Wert des benutzerdefinierten Stringfelds 3 aus der CEF-Nachricht.
cs4Label additional.fields{}.key: cs4Label, additional.fields{}.value.string_value: Wert des entsprechenden CEF-Felds Label und Wert des benutzerdefinierten Stringfelds 4 aus der CEF-Nachricht.
cs5Label additional.fields{}.key: cs5Label, additional.fields{}.value.string_value: Wert des entsprechenden CEF-Felds Label und Wert des benutzerdefinierten Stringfelds 5 aus der CEF-Nachricht.
cs6Label additional.fields{}.key: cs6Label, additional.fields{}.value.string_value: Wert des entsprechenden CEF-Felds Label und Wert des benutzerdefinierten Stringfelds 6 aus der CEF-Nachricht.
dhost target.hostname Hostname des Ziels.
deviceCustomString1 additional.fields{}.key: cs1Label, additional.fields{}.value.string_value: Wert von deviceCustomString1 Benutzerdefinierter Gerätestring 1.
deviceCustomString2 additional.fields{}.key: cs2Label, additional.fields{}.value.string_value: Wert von deviceCustomString2 Benutzerdefinierter Gerätestring 2.
deviceCustomString3 additional.fields{}.key: cs3Label, additional.fields{}.value.string_value: Wert von deviceCustomString3 Benutzerdefinierter Gerätestring 3.
deviceCustomString4 additional.fields{}.key: cs4Label, additional.fields{}.value.string_value: Wert von deviceCustomString4 Benutzerdefinierter Gerätestring 4.
deviceCustomString5 additional.fields{}.key: cs5Label, additional.fields{}.value.string_value: Wert von deviceCustomString5 Benutzerdefinierter Gerätestring 5.
deviceCustomString6 additional.fields{}.key: cs6Label, additional.fields{}.value.string_value: Wert von deviceCustomString6 Benutzerdefinierter String für das Gerät 6.
deviceDirection network.direction Die Richtung des Netzwerkverkehrs.
deviceEventClassId additional.fields{}.key: „eventId“, additional.fields{}.value.string_value: Wert von deviceEventClassId Die ID der Geräteereignisklasse.
deviceFacility observer.product.subproduct Die Geräteeinrichtung.
deviceProcessName about.process.command_line Der Name des Geräteprozesses.
deviceSeverity security_result.severity Die Geräteschwere.
deviceTimeZone observer.zone Die Zeitzone des Geräts.
deviceVendor metadata.vendor_name Der Geräteanbieter.
deviceVersion metadata.product_version Die Geräteversion.
dpt target.port Der Zielport.
dst target.ip Die Ziel-IP-Adresse.
duser target.user.user_display_name Der Zielnutzer.
eventId additional.fields{}.key: „eventId“, additional.fields{}.value.string_value: Wert von eventId Ereignis-ID.
event_time metadata.event_timestamp Der Zeitpunkt, zu dem das Ereignis aufgetreten ist, aus der Nachricht geparst.
firewall_action security_result.action_details Die ausgeführte Firewallaktion.
host principal.hostname, intermediary.hostname Der Hostname des Geräts, das das Protokoll generiert. Wird in verschiedenen Fällen sowohl für den Auftraggeber als auch für den Vermittler verwendet.
msg security_result.summary Die mit dem Ereignis verknüpfte Nachricht, die als Zusammenfassung für das Sicherheitsergebnis verwendet wird.
name metadata.product_event_type Der Name des Ereignisses.
process_name additional.fields{}.key: „process_name“, additional.fields{}.value.string_value: Wert von process_name Der Name des Prozesses.
p_id target.process.pid Die Prozess-ID, in einen String umgewandelt.
sha256 principal.process.file.sha256 Der SHA256-Hash einer Datei, der aus den SSH2-Schlüsselinformationen extrahiert wurde.
shost principal.hostname Hostname der Quelle.
source_address principal.ip Die Quell-IP-Adresse.
source_port principal.port Der Quellport, in eine Ganzzahl umgewandelt.
src principal.ip Die Quell-IP-Adresse.
src_ip principal.ip Die Quell-IP-Adresse.
src_port principal.port Der Quellport, in eine Ganzzahl umgewandelt.
ssh2 security_result.detection_fields{}.key: „ssh2“, security_result.detection_fields{}.value: Wert von ssh2 Informationen zum SSH2-Schlüssel
subtype metadata.product_event_type Der Untertyp des Ereignisses.
task_summary security_result.description Die Aufgabenübersicht, die als Beschreibung für das Sicherheitsergebnis verwendet wird.
timestamp metadata.event_timestamp Der Zeitstempel des Ereignisses.
user target.user.userid Der Nutzer, der mit dem Ereignis verknüpft ist.
username principal.user.userid Der mit dem Ereignis verknüpfte Nutzername.
user_name principal.user.userid Der Nutzername.
metadata.vendor_name „Juniper-Firewall“ ist hartcodiert. „Juniper-Firewall“ ist hartcodiert. Hartcodiert auf „JUNIPER_JUNOS“. Wird anhand der Parserlogik basierend auf dem Loginhalt bestimmt. Der Standardwert ist „STATUS_UPDATE“, wenn es sich nicht um eine CEF-Nachricht handelt und kein anderer Ereignistyp angegeben ist. Für CEF-Nachrichten auf „NETWORK_HTTP“ festlegen. Wenn kein desc-Feld vorhanden ist, wird dieses Feld mit dem message_description aus der Roh-Lognachricht ausgefüllt.

Änderungen

2024-05-02

  • Verbesserungen:
  • Grok-Muster wurden hinzugefügt, um neue SYSLOG + KV-Format-Protokolle zu unterstützen.

2023-10-25

  • Verbesserungen:
  • Grok-Muster zum Parsen nicht geparster Protokolle hinzugefügt
  • „source_port“ wurde auf „principal.port“ zugeordnet.
  • „source_address“ wurde zu „principal.ip“ zugeordnet.
  • „user_name“ wurde „target.user.userid“ zugeordnet.
  • „application_name“ wurde „target.application“ zugeordnet.
  • „p_id“ wurde auf „target.process.pid“ zugeordnet.
  • Vor der KV-Zuordnung wurde die Prüfung „invalid_pattern“ hinzugefügt.
  • Es wurde ein Grok-Muster hinzugefügt, um „security_result.description“ zuzuordnen, wenn „description_present“ auf „falsch“ gesetzt ist.

2023-08-17

  • Verbesserungen:
  • Grok-Muster zu geparsten und nicht geparsten Protokollen hinzugefügt.
  • „msg“ wurde „security_result.summary“ zugeordnet.
  • „src_ip“ wurde zu „principal.ip“ zugeordnet.
  • „user“ wurde „target.user.userid“ zugeordnet.
  • „username“ wurde „principal.user.userid“ zugeordnet.
  • „command“ wurde auf „target.process.command_line“ zugeordnet.
  • „src_port“ wurde „principal.port“ zugeordnet.
  • „ssh2“ wurde „security_result.detection_fields“ zugeordnet.
  • „sha256“ wurde auf „principal.process.file.sha256“ zugeordnet.
  • „desc“ wurde „sec_result.summary“ zugeordnet.
  • „mac-address“ wurde „principal.mac“ zugeordnet.
  • „host“ wird „principal.hostname“ zugeordnet, wenn „event_type“ „STATUS_UPDATE“ ist.

2023-01-15

  • Verbesserungen:
  • Das Grok-Muster wurde geändert, um nicht geparste Protokolle vom Typ „UI_CMDLINE_READ_LINE“, „UI_COMMIT_PROGRESS“ und „UI_CHILD_START“ zu unterstützen.
  • „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

  • Neuer Standardparser

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