Juniper NetScreen-Firewall-Logs erfassen
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
- Melden Sie sich in der Google SecOps-Konsole an.
- Rufen Sie SIEM-Einstellungen > Collection Agents auf.
- 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
- Melden Sie sich in der Google SecOps-Konsole an.
- Rufen Sie die SIEM-Einstellungen > „Profil“ auf.
- Kopieren und speichern Sie die Kunden-ID aus dem Bereich Organisationsdetails.
BindPlane-Agent installieren
Fenstereinbau
- Öffnen Sie die Eingabeaufforderung oder PowerShell als Administrator.
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
- Öffnen Sie ein Terminal mit Root- oder Sudo-Berechtigungen.
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
- Weitere Installationsoptionen finden Sie in diesem Installationsleitfaden.
BindPlane-Agent zum Erfassen von Syslog-Daten und Senden an Google SecOps konfigurieren
Greifen Sie auf die Konfigurationsdatei zu:
- Suchen Sie die Datei
config.yaml
. Normalerweise befindet es sich unter Linux im Verzeichnis/etc/bindplane-agent/
oder unter Windows im Installationsverzeichnis. - Öffnen Sie die Datei mit einem Texteditor (z. B.
nano
,vi
oder Notepad).
- Suchen Sie die Datei
Bearbeiten Sie die Datei
config.yaml
so: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
Ersetzen Sie den Port und die IP-Adresse nach Bedarf in Ihrer Infrastruktur.
Ersetzen Sie
<customer_id>
durch die tatsächliche Kunden-ID.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
- Melden Sie sich in der Weboberfläche von Juniper NetScreen an.
- Wählen Sie Konfiguration > Berichtseinstellungen > Protokolleinstellungen aus.
- Klicken Sie alle Kästchen unter Schweregrad des Ereignisses an.
- Klicken Sie auf Übernehmen.
- Wählen Sie Konfiguration > Berichtseinstellungen > Syslog aus.
- Klicken Sie das Kästchen Syslog-Meldungen aktivieren an.
- Wählen Sie in der Liste Source interface (Quellschnittstelle) die NetScreen-Schnittstelle aus, von der die Syslog-Pakete gesendet werden müssen.
- Wählen Sie im Bereich Syslog-Server das Kästchen Aktivieren aus und geben Sie Folgendes an:
- IP/Hostname: Geben Sie die
Bindplane
-IP-Adresse ein. - Port: Geben Sie die Portnummer
Bindplane
ein. - MDR-Einrichtung: Wählen Sie die Einrichtungsebene Local0 aus.
- Einrichtung: Wählen Sie die Einrichtungsebene Local0 aus.
- IP/Hostname: Geben Sie die
- 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