Juniper Junos-Logs erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie Juniper Junos-Logs mithilfe eines Google Security Operations-Forwarders erfassen können.

Weitere Informationen finden Sie unter Datenaufnahme in Google Security Operations.

Ein Erfassungslabel identifiziert den Parser, der Logrohdaten in das strukturierte UDM-Format normalisiert. Die Informationen in diesem Dokument beziehen sich auf den Parser mit dem Aufnahme-Label JUNIPER_JUNOS.

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

Beim strukturierten Logformat werden Informationen aus Logmeldungen extrahiert. Das Logformat 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-Eingabeaufforderung 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-Forwarders.

  6. Verwenden Sie die folgenden Befehle, um das strukturierte Logging für Sicherheitslogs 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-Forwarders.

  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-Forwarder und Syslog zum Erfassen von Juniper Junos-Logs konfigurieren

  1. Wählen Sie SIEM Settings > Forwarders aus.
  2. Klicken Sie auf Neuen Weiterleitungsdienst hinzufügen.
  3. Geben Sie im Feld Name des Forwarders einen eindeutigen Namen ein.
  4. Klicken Sie auf Senden und dann auf Bestätigen. Der Weiterleiter wird hinzugefügt und das Fenster Collector-Konfiguration 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 Collector-Typ aus.
  8. Konfigurieren Sie die folgenden Eingabeparameter:
    • Protokoll: Geben Sie das Protokoll als UDP an.
    • Adresse: Geben Sie die Ziel-IP-Adresse oder den Hostnamen an, unter dem sich der Collector befindet und auf Syslog-Daten wartet.
    • Port: Geben Sie den Zielport an, auf dem sich der Collector befindet und an dem er 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 Forwarder-Typen finden Sie unter Forwarder-Konfiguration nach Typ. Wenn beim Erstellen von Weiterleitungen Probleme auftreten, wenden Sie sich an den Google Security Operations-Support.

Referenz zur Feldzuordnung

Dieser Parser extrahiert Felder aus Juniper JUNOS-Syslog-Nachrichten und verarbeitet sowohl Schlüssel/Wert- als auch Nicht-Schlüssel/Wert-Formate. Es werden Grok-Muster verwendet, um verschiedene Nachrichtenstrukturen abzugleichen, darunter Firewall-Logs, SSH-Aktivitäten und Befehlsausführungen. Anschließend werden die extrahierten Felder der UDM zugeordnet. Der Parser verarbeitet auch Protokolle im CEF-Format mithilfe einer Include-Datei und führt bestimmte Aktionen basierend auf dem Nachrichteninhalte aus, z. B. das Zusammenführen von IP-Adressen und Nutzernamen in entsprechende UDM-Felder.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
DPT target.port Der Zielport der Netzwerkverbindung, in eine Ganzzahl konvertiert.
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 der Netzwerkverbindung zugeordnet ist.
ID additional.fields{}.key: „ID“, additional.fields{}.value.string_value: Wert von ID Das Feld für die IP-Identifizierung.
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 aus dem Feld MAC extrahierte MAC-Adresse.
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 „Vorrang“ im IP-Header.
PROTO network.ip_protocol Das in der Netzwerkverbindung verwendete IP-Protokoll.
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 Der in eine vorzeichenlose Ganzzahl konvertierte TTL-Wert.
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, die aus der CEF-Nachricht extrahiert wurde.
agt observer.ip Die IP-Adresse des Agents.
amac target.mac Die MAC-Adresse des Ziels, in Kleinbuchstaben umgewandelt und mit Doppelpunkten anstelle von Bindestrichen.
app target.application Die am Ereignis beteiligte Anwendung.
artz observer.zone Die Zeitzone des Beobachters.
atz target.location.country_or_region Die Zielzeitzone.
categoryBehavior additional.fields{}.key: „Category Behavior“ (Kategorieverhalten), additional.fields{}.value.string_value: Wert von categoryBehavior ohne Schrägstriche Das Kategorieverhalten.
categoryDeviceGroup additional.fields{}.key: „Category Device Group“ (Kategorie Gerätegruppe), additional.fields{}.value.string_value: Wert von categoryDeviceGroup ohne Schrägstriche Die Gerätegruppe der Kategorie.
categoryObject additional.fields{}.key: „Category Object“ (Kategorieobjekt), additional.fields{}.value.string_value: Wert von categoryObject ohne Schrägstriche Das Kategorieobjekt.
categoryOutcome additional.fields{}.key: „Category Outcome“ (Ergebnis der Kategorie), additional.fields{}.value.string_value: Wert von categoryOutcome ohne Schrägstriche Das Kategorieergebnis.
categorySignificance additional.fields{}.key: „category Significance“ (Bedeutung der Kategorie), additional.fields{}.value.string_value: Wert von categorySignificance Die Kategorie-Signifikanz.
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 Ziel-Hostname.
deviceCustomString1 additional.fields{}.key: cs1Label, additional.fields{}.value.string_value: Wert von deviceCustomString1 Benutzerdefinierter String 1 für Geräte.
deviceCustomString2 additional.fields{}.key: cs2Label, additional.fields{}.value.string_value: Wert von deviceCustomString2 Benutzerdefinierter String 2 für Geräte.
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 String 4 für Geräte.
deviceCustomString5 additional.fields{}.key: cs5Label, additional.fields{}.value.string_value: Wert von deviceCustomString5 Benutzerdefinierter String 5 für Geräte.
deviceCustomString6 additional.fields{}.key: cs6Label, additional.fields{}.value.string_value: Wert von deviceCustomString6 Benutzerdefinierter String 6 für Geräte.
deviceDirection network.direction Die Richtung des Netzwerk-Traffics.
deviceEventClassId additional.fields{}.key: „eventId“, additional.fields{}.value.string_value: Wert von deviceEventClassId Die Geräteereignisklassen-ID.
deviceFacility observer.product.subproduct Die Einrichtung des Geräts.
deviceProcessName about.process.command_line Der Prozessname des Geräts.
deviceSeverity security_result.severity Die Geräte-Schweregrad.
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 Die Zeit, zu der das Ereignis eingetreten 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 Log 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 konvertiert.
sha256 principal.process.file.sha256 Der SHA256-Hash einer Datei, die aus den SSH2-Schlüsselinformationen extrahiert wurde.
shost principal.hostname Quell-Hostname.
source_address principal.ip Die Quell-IP-Adresse.
source_port principal.port Der Quellport, in eine Ganzzahl konvertiert.
src principal.ip Die Quell-IP-Adresse.
src_ip principal.ip Die Quell-IP-Adresse.
src_port principal.port Der Quellport, in eine Ganzzahl konvertiert.
ssh2 security_result.detection_fields{}.key: „ssh2“, security_result.detection_fields{}.value: Wert von ssh2 SSH2-Schlüsselinformationen.
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 Nutzername, der mit dem Ereignis verknüpft ist.
user_name principal.user.userid Der Nutzername.
metadata.vendor_name Fest codiert auf „Juniper Firewall“. Fest codiert auf „Juniper Firewall“. Fest codiert auf „JUNIPER_JUNOS“. Wird durch die Parserlogik auf Grundlage des Loginhalts bestimmt. Der Standardwert ist „STATUS_UPDATE“, wenn es sich nicht um eine CEF-Nachricht handelt und kein anderer spezifischer Ereignistyp identifiziert wird. Legen Sie für CEF-Nachrichten „NETWORK_HTTP“ fest. Wenn kein desc-Feld vorhanden ist, wird dieses Feld mit dem message_description-Wert gefüllt, der aus der Rohlog-Nachricht extrahiert wurde.

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