Cisco Firepower NGFW-Logs erfassen
In diesem Dokument wird beschrieben, wie Sie Cisco Firepower Next Generation Firewall-Logs (NGFW) mit Bindplane in Google Security Operations aufnehmen. Der Parser extrahiert die Logs aus verschiedenen Formaten (Syslog, JSON und Kombinationen davon), normalisiert den Zeitstempel und ordnet relevante Felder dem einheitlichen Datenmodell (Unified Data Model, UDM) zu. Es verarbeitet sowohl herkömmliche Syslog-Nachrichten als auch JSON-formatierte Nutzlasten in den Logs und nutzt Grok-Muster und bedingte Logik, um Felder wie Ereignis-ID, Schweregrad und Client-IP zu extrahieren. Anschließend werden die Daten mit Labels basierend auf HTTP-Hostname und URI angereichert.
Hinweise
Prüfen Sie, ob folgende Voraussetzungen erfüllt sind:
- Google SecOps-Instanz
- Windows 2016 oder höher oder ein Linux-Host mit
systemd
- Wenn die Ausführung hinter einem Proxy erfolgt, müssen die Firewallports geöffnet sein.
- Privilegierter Zugriff auf ein Cisco Firepower-Gerät
Authentifizierungsdatei für die Aufnahme in Google SecOps abrufen
- Melden Sie sich in der Google SecOps-Konsole an.
- Rufen Sie die 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
Installieren Sie den Bindplane-Agent auf Ihrem Windows- oder Linux-Betriebssystem gemäß der folgenden Anleitung.
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 im Installationsleitfaden.
BindPlane-Agent zum Erfassen von Syslog-Daten und Senden an Google SecOps konfigurieren
- Rufen Sie die Konfigurationsdatei auf:
- Suchen Sie die Datei
config.yaml
. Normalerweise befindet sie 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: udplog: # Replace the port and IP address as required listen_address: "0.0.0.0:514" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds_file_path: '/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 log_type: 'CISCO_FIREPOWER_FIREWALL' raw_log_field: body ingestion_labels: service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog 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 Authentifizierungsdatei für die Google SecOps-Aufnahme 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
Syslog auf Cisco FirePower-Gerät konfigurieren
- Melden Sie sich in der Web-UI von Firepower Device Manager an.
- Gehen Sie zu Systemeinstellungen > Logging-Einstellungen.
- Stellen Sie den Schalter Daten-Logging auf Aktivieren.
- Klicken Sie unter Syslog-Server auf das Symbol +.
- Klicken Sie auf Neuen Syslog-Server erstellen. Alternativ können Sie den Syslog-Server unter Objekte > Syslog-Server erstellen.
- Geben Sie die folgenden Konfigurationsdetails an:
- IP-Adresse: Geben Sie die IP-Adresse des Bindplane-Agents ein.
- Protokolltyp: Wählen Sie UDP aus.
- Portnummer: Geben Sie die Portnummer des Bindplane-Agents ein.
- Wählen Sie Datenschnittstelle oder Verwaltungsschnittstelle aus.
- Klicken Sie auf OK.
- Wählen Sie den neu erstellten Syslog-Server aus der Liste aus und klicken Sie auf OK.
- Klicken Sie auf Schweregrad zum Filtern aller Ereignisse und wählen Sie in der Liste den Protokollierungsgrad Informationen aus.
- Klicken Sie auf Speichern.
- Klicken Sie auf das Symbol Neue Einstellungen bereitstellen> Jetzt bereitstellen.
- Klicken Sie oben auf dem Bildschirm auf Richtlinien.
- Bewegen Sie den Mauszeiger auf die rechte Seite der ACP-Regel und klicken Sie auf bearbeiten Bearbeiten.
- Rufen Sie den Tab Logging auf.
- Wählen Sie Am Ende der Verbindung aus.
- Öffnen Sie die Liste Select a Syslog Alert Configuration (Syslog-Benachrichtigungskonfiguration auswählen).
- Wählen Sie den BindPlane-Syslog-Server aus.
- Klicken Sie auf OK.
- Klicken Sie auf das Symbol Neue Einstellungen bereitstellen> Jetzt bereitstellen.
UDM-Zuordnungstabelle
Logfeld | UDM-Zuordnung | Logik |
---|---|---|
AccessControlRuleAction |
security_result.action |
Direkt aus dem Rohlog zugeordnet. Die Werte werden auf UDM (ALLOW/BLOCK) normalisiert. |
AccessControlRuleName |
security_result.rule_name |
Direkt aus dem Rohlog zugeordnet. |
ACPolicy |
security_result.rule_labels.value |
Direkt aus dem Rohlog zugeordnet. Der Schlüssel ist auf „ACPolicy“ festgelegt. |
ApplicationProtocol |
network.application_protocol |
Direkt aus dem Rohlog zugeordnet. |
Client |
network.http.user_agent |
Direkt aus dem Rohlog zugeordnet. |
ClientVersion |
principal.asset.platform_version |
Direkt aus dem Rohlog zugeordnet. |
collection_time.nanos |
metadata.event_timestamp.nanos |
Direkt aus dem Rohlog zugeordnet. |
collection_time.seconds |
metadata.event_timestamp.seconds |
Direkt aus dem Rohlog zugeordnet. |
ConnectionDuration |
network.session_duration.seconds |
Direkt aus dem Rohlog zugeordnet, bei Bedarf in Sekunden umgerechnet (z.B. aus dem Dauerformat). |
data |
metadata.description |
Wird in Verbindung mit eventId verwendet, um eine aussagekräftigere Beschreibung zu generieren. Wird auch verwendet, um andere Felder mit grok und regulären Ausdrücken zu extrahieren. |
deviceId |
metadata.product_log_id |
Direkt aus dem Rohlog zugeordnet, nachdem er in device_uuid umbenannt wurde. |
device_uuid |
metadata.product_log_id |
Direkt aus dem Rohlog zugeordnet. |
DstIP |
target.asset.ip , target.ip |
Direkt aus dem Rohlog zugeordnet. |
DstPort |
target.port |
Direkt aus dem Rohlog zugeordnet. |
EgressInterface |
principal.asset.attribute.labels.value |
Direkt aus dem Rohlog zugeordnet. Der Schlüssel ist auf „EgressInterface“ festgelegt. |
EgressZone |
target.location.name |
Direkt aus dem Rohlog zugeordnet. |
eventId |
metadata.product_event_type |
Direkt aus dem Rohlog zugeordnet. Wird auch für bedingte Logik und Filterung verwendet. |
FileAction |
security_result.summary |
Direkt aus dem Rohlog zugeordnet. |
FileDirection |
metadata.description |
Direkt aus dem Rohlog zugeordnet und an die Beschreibung angehängt. |
FileName |
target.file.full_path |
Direkt aus dem Rohlog zugeordnet. |
FilePolicy |
security_result.rule_name |
Direkt aus dem Rohlog zugeordnet. |
FileSize |
target.file.size |
Direkt aus dem Rohlog zugeordnet. |
FileSHA256 |
target.file.sha256 |
Direkt aus dem Rohlog zugeordnet. |
FileSandboxStatus |
security_result.description |
Direkt aus dem Rohlog zugeordnet. |
HTTPReferer |
network.http.referral_url |
Direkt aus dem Rohlog zugeordnet. |
HTTPResponse |
network.http.response_code |
Direkt aus dem Rohlog zugeordnet. |
HTTP_Hostname |
target.resource.attribute.labels.value |
Direkt aus dem Rohlog zugeordnet. Der Schlüssel ist auf „HTTP_Hostname“ festgelegt. |
HTTP_URI |
target.resource.attribute.labels.value |
Direkt aus dem Rohlog zugeordnet. Der Schlüssel ist auf „HTTP_URI“ gesetzt. |
IngressInterface |
principal.asset.attribute.labels.value |
Direkt aus dem Rohlog zugeordnet. Der Schlüssel ist auf „IngressInterface“ festgelegt. |
IngressZone |
principal.location.name |
Direkt aus dem Rohlog zugeordnet. |
InitiatorBytes |
network.received_bytes |
Direkt aus dem Rohlog zugeordnet. |
InlineResult |
security_result.action_details |
Direkt aus dem Rohlog zugeordnet. |
IntrusionPolicy |
security_result.rule_name |
Direkt aus dem Rohlog zugeordnet. |
log_type |
metadata.log_type |
Direkt aus dem Rohlog zugeordnet. |
Message |
security_result.description |
Direkt aus dem Rohlog zugeordnet, oft mit „Message : “ vorangestellt. |
NAPPolicy |
principal.asset.attribute.labels.value |
Direkt aus dem Rohlog zugeordnet. Der Schlüssel ist auf „NAPPolicy“ festgelegt. |
Prefilter Policy |
security_result.rule_labels.value |
Direkt aus dem Rohlog zugeordnet. Der Schlüssel ist auf „Prefilter Policy“ (Vorfilterrichtlinie) festgelegt. |
Priority |
security_result.priority_details |
Direkt aus dem Rohlog zugeordnet. |
priorityId |
security_result.priority_details |
Direkt aus dem Rohlog zugeordnet. |
product |
metadata.product_name |
Auf „Firepower Firewall“ festgelegt. |
Protocol |
network.ip_protocol |
Direkt aus dem Rohlog zugeordnet. Die Werte werden auf UDM (TCP, UDP, ICMP usw.) normalisiert. |
ResponderBytes |
network.sent_bytes |
Direkt aus dem Rohlog zugeordnet. |
Revision |
security_result.about.labels.value |
Direkt aus dem Rohlog zugeordnet. Der Schlüssel ist auf „Signature_Version“ festgelegt. |
ruleId |
security_result.rule_id |
Direkt aus dem Rohlog zugeordnet. |
security_result.severity |
security_result.severity |
Wird basierend auf dem Feld severity aus dem Rohlog festgelegt. Eine Suchtabelle wird verwendet, um UDM-Schweregradwerte zuzuordnen. |
security_result.severity_details |
security_result.severity_details |
Wird basierend auf dem Feld severity aus dem Rohlog festgelegt. Dazu wird eine Nachschlagetabelle verwendet, um die UDM-Schweregradinformationen zuzuordnen. |
SID |
security_result.threat_id |
Direkt aus dem Rohlog zugeordnet. |
SrcIP |
principal.asset.ip , principal.ip |
Direkt aus dem Rohlog zugeordnet. |
SrcPort |
principal.port |
Direkt aus dem Rohlog zugeordnet. |
syslog_msg_id |
metadata.product_event_type |
Direkt aus dem Rohlog zugeordnet, nachdem er in einen String konvertiert wurde. Wird verwendet, um eventId zu überschreiben, falls vorhanden. |
syslog_msg_text |
metadata.description , security_result.description |
Direkt aus dem Rohlog abgeleitet, manchmal mit „Message: “ vorangestellt. Wird verwendet, um die aus data und eventId generierte Beschreibung zu überschreiben. |
syslog_severity |
security_result.severity |
Direkt aus dem Rohlog zugeordnet, nachdem er in einen String konvertiert wurde. Wird verwendet, um den Schweregrad zu überschreiben, der aus eventId abgeleitet wurde. Die Werte werden für das UDM normalisiert (INFORMATIONAL, WARNING, ERROR usw.). |
sysloghost |
intermediary.hostname |
Direkt aus dem Rohlog zugeordnet. |
ThreatName |
security_result.threat_name |
Direkt aus dem Rohlog zugeordnet. |
ts |
metadata.event_timestamp |
Aus dem Rohprotokoll mit Datumsfiltern und verschiedenen Formaten geparst. |
ts_year |
metadata.event_timestamp |
Aus dem Rohprotokoll mit Datumsfiltern und verschiedenen Formaten geparst. |
URL |
target.url |
Direkt aus dem Rohlog zugeordnet. |
URLCategory |
security_result.category_details |
Direkt aus dem Rohlog zugeordnet. |
URLReputation |
security_result.confidence_details |
Direkt aus dem Rohlog zugeordnet. |
User |
target.user.userid |
Direkt aus dem Rohlog zugeordnet. |
UserAgent |
network.http.user_agent |
Direkt aus dem Rohlog zugeordnet. |
UserName |
target.user.userid |
Direkt aus dem Rohlog zugeordnet. |
user_name |
principal.user.email_addresses |
Direkt aus dem Rohlog für bestimmte Ereignistypen zugeordnet. |
WebApplication |
target.application |
Direkt aus dem Rohlog zugeordnet. |
metadata.event_type wird auf den Standardwert NETWORK_CONNECTION gesetzt und manchmal basierend auf eventId oder anderen Feldern überschrieben. |
||
metadata.vendor_name ist immer auf „Cisco“ festgelegt. |
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten