Juniper Junos-Logs erfassen
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.
- Melden Sie sich über SSH mit der Management-IP-Adresse in der Juniper SRX CLI an.
- Geben Sie
CLI
in die Shell-Eingabeaufforderung ein und drücken Sie die Eingabetaste. - Geben Sie
configure
ein und drücken Sie die Eingabetaste, um den Konfigurationsmodus des Geräts aufzurufen. - Geben Sie die Kontaktdaten oder den Kundenreferenzpunkt ein.
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.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.
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
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.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
- Wählen Sie SIEM Settings > Forwarders aus.
- Klicken Sie auf Neuen Weiterleitungsdienst hinzufügen.
- Geben Sie im Feld Name des Forwarders einen eindeutigen Namen ein.
- Klicken Sie auf Senden und dann auf Bestätigen. Der Weiterleiter wird hinzugefügt und das Fenster Collector-Konfiguration hinzufügen wird angezeigt.
- Geben Sie im Feld Name des Collectors einen eindeutigen Namen für den Collector ein.
- Wählen Sie Juniper Junos als Logtyp aus.
- Wählen Sie Syslog als Collector-Typ aus.
- 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.
- 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