Sophos XG-Firewall-Logs erfassen
In diesem Dokument wird beschrieben, wie Sie mit Bindplane Sophos Next Gen (XG) Firewall-Logs erfassen. Der Parser extrahiert Protokolle, normalisiert die Schlüssel/Wert-Paare und ordnet sie dem UDM zu. Er unterstützt verschiedene Protokollformate, wandelt Zeitstempel um, ergänzt Netzwerkdaten und kategorisiert Ereignisse anhand von Protokoll-IDs und Netzwerkaktivitäten.
Hinweise
- Sie benötigen eine Google Security Operations-Instanz.
- Sie müssen Windows 2016 oder höher oder einen Linux-Host mit
systemd
verwenden. - Wenn die Ausführung hinter einem Proxy erfolgt, müssen die Firewallports geöffnet sein.
- Sie benötigen erhöhte Zugriffsrechte für die Sophos XG-Firewall.
Authentifizierungsdatei für die Aufnahme in Google SecOps abrufen
- Melden Sie sich in der Google SecOps Console an.
- Gehen Sie zu SIEM-Einstellungen > Erfassungsagenten.
- Lade die Datei für die Datenaufnahmeauthentifizierung 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 Console an.
- Gehen Sie zu SIEM-Einstellungen > Profil.
- Kopieren und speichern Sie die Kundennummer aus dem Bereich Organisationsdetails.
BindPlane-Agent installieren
Windows-Installation
- Öffnen Sie die Eingabeaufforderung oder die 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
Weitere Installationsressourcen
- Weitere Installationsoptionen finden Sie in diesem Installationsleitfaden.
Bindplane-Agent so konfigurieren, dass er Syslog-Daten aufnimmt und an Google SecOps sendet
Rufen Sie die Konfigurationsdatei auf:
- 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: 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: '/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: sophos_firewall raw_log_field: body 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 Kundennummer.Aktualisieren Sie
/path/to/ingestion-authentication-file.json
im Abschnitt Authentifizierungsdatei für die Datenaufnahme von Google SecOps abrufen auf den Pfad, unter dem die Authentifizierungsdatei gespeichert wurde.
Starten Sie den Bindplane-Agent neu, um die Änderungen anzuwenden
Führen Sie den folgenden Befehl aus, um den Bindplane-Agenten unter Linux neu zu starten:
sudo systemctl restart bindplane-agent
Sie können den Bindplane-Agenten unter Windows entweder über die Dienste-Konsole oder mit dem folgenden Befehl neu starten:
net stop BindPlaneAgent && net start BindPlaneAgent
Syslog-Server der Sophos Firewall konfigurieren
- Melden Sie sich in der Sophos XG-Firewall an.
- Gehen Sie zu Konfigurieren > Systemdienste > Protokolleinstellungen.
- Klicken Sie im Bereich Syslog-Server auf Hinzufügen.
- Geben Sie die folgenden Konfigurationsdetails an:
- Name: Geben Sie einen eindeutigen Namen für den Google SecOps-Collector ein.
- IP-Adresse/Domain: Geben Sie die Bindplane-IP-Adresse ein.
- Port: Geben Sie die Bindplane-Portnummer ein.
- Facility: Wählen Sie DAEMON aus.
- Schweregrad: Wählen Sie Information aus.
- Format: Wählen Sie Gerätestandardformat aus.
- Klicken Sie auf Speichern.
- Kehren Sie zur Seite Protokolleinstellungen zurück und wählen Sie die Protokolltypen aus, die an den syslog-Server weitergeleitet werden sollen.
Protokolleinstellungen der Sophos XG-Firewall konfigurieren
- Wählen Sie die folgenden Base Firewall (Sicherheitsrichtlinienprotokoll)-Protokolle aus:
- Richtlinienregeln
- Ungültige Zugriffe
- Lokale ACLs
- DoS-Angriff
- Verworfenes ICMP-Weiterleitungspaket
- Abgelehntes Paket mit Quellrouting
- Abgebrochene fragmentierte Zugriffe
- MAC-Filterung
- IP‑MAC-Paar-Filterung
- Schutz vor IP-Spoofing
- SSL-VPN-Tunnel
- Geschützter Anwendungsserver
- Herzschlag
- Wählen Sie die folgenden Protokolle für den Webschutz (Webfilterprotokoll und Anwendungsfilterprotokoll) aus:
- Web filter
- Anwendungsfilter
- Wählen Sie die folgenden Protokolle für den Netzwerkschutz (IPS-Protokoll) aus:
- Anomalie
- Signatur
- Wählen Sie das folgende Systemprotokoll aus:
- Systemereignisse
UDM-Zuordnungstabelle
Logfeld | UDM-Zuordnung | Logik |
---|---|---|
activityname |
security_result.detection_fields.activityname |
Wert aus dem Feld activityname . |
app_category |
security_result.detection_fields.Application Category , application_category |
Wert aus dem Feld app_category . |
app_filter_policy_id |
security_result.detection_fields.app_filter_policy_id |
Wert aus dem Feld app_filter_policy_id . |
app_is_cloud |
security_result.detection_fields.app_is_cloud |
Wert aus dem Feld app_is_cloud . |
app_name |
principal.application |
Wert aus dem Feld app_name . |
app_resolved_by |
security_result.detection_fields.app_resolved_by |
Wert aus dem Feld app_resolved_by . |
app_risk |
security_result.detection_fields.Application Risk , application_risk |
Wert aus dem Feld app_risk . |
app_technology |
application_technology |
Wert aus dem Feld app_technology . |
application |
principal.application |
Wert aus dem Feld application . |
application_category |
security_result.detection_fields.Application Category |
Wert aus dem Feld application_category . |
application_risk |
security_result.detection_fields.Application Risk |
Wert aus dem Feld application_risk . |
application_technology |
security_result.detection_fields.Application Technology |
Wert aus dem Feld application_technology . |
bytes_received |
network.received_bytes |
Wert aus dem Feld bytes_received . |
bytes_sent |
network.sent_bytes |
Wert aus dem Feld bytes_sent . |
category |
application_category |
Wert aus dem Feld category . |
category_type |
security_result.detection_fields.category_type |
Wert aus dem Feld category_type . |
client_host_name |
network.dhcp.client_hostname |
Wert aus dem Feld client_host_name . |
client_physical_address |
network.dhcp.chaddr |
Wert aus dem Feld client_physical_address . |
con_event |
security_result.detection_fields.con_event |
Wert aus dem Feld con_event . |
con_id |
security_result.detection_fields.con_id |
Wert aus dem Feld con_id . |
connevent |
security_result.detection_fields.connevent |
Wert aus dem Feld connevent . |
connid |
security_result.detection_fields.connid |
Wert aus dem Feld connid . |
date |
event.timestamp |
Aus den Feldern date und time geparst und an die Zeitzone angepasst. |
device_id |
intermediary.asset.asset_id |
Wert aus dem Feld device_id mit dem Präfix ID: . |
device_model |
intermediary.hostname |
Wert aus dem Feld device_model . |
device_name |
intermediary.hostname |
Wert aus dem Feld device_name . |
device_serial_id |
intermediary.asset.asset_id |
Wert aus dem Feld device_serial_id mit dem Präfix ID: . |
domain |
principal.administrative_domain , target.hostname |
Wert aus dem Feld domain . |
dst_country |
target.location.country_or_region |
Wert aus dem Feld dst_country . |
dst_country_code |
target.location.country_or_region |
Wert aus dem Feld dst_country_code . |
dst_ip |
target.ip |
Wert aus dem Feld dst_ip . |
dst_mac |
target.mac |
Wert aus dem Feld dst_mac . |
dst_port |
target.port |
Wert aus dem Feld dst_port . |
dst_trans_ip |
target.nat_ip |
Wert aus dem Feld dst_trans_ip . |
dst_trans_port |
target.nat_port |
Wert aus dem Feld dst_trans_port . |
dst_zone |
security_result.detection_fields.dst_zone |
Wert aus dem Feld dst_zone . |
dstzone |
security_result.detection_fields.dstzone |
Wert aus dem Feld dstzone . |
dstzonetype |
security_result.detection_fields.dstzonetype |
Wert aus dem Feld dstzonetype . |
duration |
network.session_duration.seconds |
Wert aus dem Feld duration . |
ether_type |
security_result.detection_fields.ether_type |
Wert aus dem Feld ether_type . |
exceptions |
security_result.detection_fields.exceptions |
Wert aus dem Feld exceptions . |
fw_rule_id |
security_result.rule_id |
Wert aus dem Feld fw_rule_id . |
fw_rule_name |
security_result.rule_name |
Wert aus dem Feld fw_rule_name . |
fw_rule_section |
security_result.rule_set |
Wert aus dem Feld fw_rule_section . |
fw_rule_type |
security_result.rule_type |
Wert aus dem Feld fw_rule_type . |
gw_id_request |
security_result.detection_fields.gw_id_request |
Wert aus dem Feld gw_id_request . |
gw_name_request |
security_result.detection_fields.gw_name_request |
Wert aus dem Feld gw_name_request . |
hb_health |
security_result.detection_fields.hb_health |
Wert aus dem Feld hb_health . |
hb_status |
security_result.detection_fields.hb_status |
Wert aus dem Feld hb_status . |
http_category |
security_result.detection_fields.http_category |
Wert aus dem Feld http_category . |
http_category_type |
security_result.detection_fields.http_category_type |
Wert aus dem Feld http_category_type . |
http_status |
network.http.response_code |
Wert aus dem Feld http_status . |
in_display_interface |
security_result.detection_fields.in_display_interface |
Wert aus dem Feld in_display_interface . |
in_interface |
security_result.detection_fields.in_interface |
Wert aus dem Feld in_interface . |
ipaddress |
principal.ip , network.dhcp.ciaddr |
Wert aus dem Feld ipaddress . |
log_component |
metadata.product_event_type , security_result.detection_fields.log_component |
Wert aus dem Feld log_component . |
log_id |
metadata.product_log_id |
Wert aus dem Feld log_id . |
log_msg |
metadata.description |
Wert aus dem Feld message nach dem Entfernen von message= . |
log_occurrence |
security_result.detection_fields.log_occurrence |
Wert aus dem Feld log_occurrence . |
log_subtype |
security_result.detection_fields.log_subtype , security_result.action |
Wert aus dem Feld log_subtype . |
log_type |
security_result.detection_fields.log_type |
Wert aus dem Feld log_type . |
log_version |
security_result.detection_fields.log_version |
Wert aus dem Feld log_version . |
message |
metadata.description |
Wert aus dem Feld message . |
nat_rule_id |
security_result.detection_fields.nat_rule_id |
Wert aus dem Feld nat_rule_id . |
nat_rule_name |
security_result.detection_fields.nat_rule_name |
Wert aus dem Feld nat_rule_name . |
out_display_interface |
security_result.detection_fields.out_display_interface |
Wert aus dem Feld out_display_interface . |
out_interface |
security_result.detection_fields.out_interface |
Wert aus dem Feld out_interface . |
packets_received |
network.received_packets |
Wert aus dem Feld packets_received . |
packets_sent |
network.sent_packets |
Wert aus dem Feld packets_sent . |
priority |
security_result.severity |
Aus dem Feld priority oder severity basierend auf einer Suchtabelle zugeordnet. |
protocol |
network.ip_protocol |
Aus dem Feld protocol mithilfe einer Suchtabelle geparst. |
reason |
security_result.detection_fields.reason , security_result.summary |
Wert aus dem Feld reason . |
recv_bytes |
network.received_bytes |
Wert aus dem Feld recv_bytes . |
recv_pkts |
network.received_packets |
Wert aus dem Feld recv_pkts . |
referer |
network.http.referral_url |
Wert aus dem Feld referer . |
rule_id |
security_result.rule_id |
Wert aus dem Feld rule_id . |
rule_name |
security_result.rule_name |
Wert aus dem Feld rule_name . |
sent_bytes |
network.sent_bytes |
Wert aus dem Feld sent_bytes . |
sent_pkts |
network.sent_packets |
Wert aus dem Feld sent_pkts . |
severity |
priority |
Wert aus dem Feld severity . |
src_country |
principal.location.country_or_region |
Wert aus dem Feld src_country . |
src_country_code |
principal.location.country_or_region |
Wert aus dem Feld src_country_code . |
src_ip |
principal.ip |
Wert aus dem Feld src_ip . |
src_mac |
principal.mac |
Wert aus dem Feld src_mac . |
src_port |
principal.port |
Wert aus dem Feld src_port . |
src_trans_ip |
principal.nat_ip |
Wert aus dem Feld src_trans_ip . |
src_trans_port |
principal.nat_port |
Wert aus dem Feld src_trans_port . |
src_zone |
security_result.detection_fields.src_zone |
Wert aus dem Feld src_zone . |
srczone |
security_result.detection_fields.srczone |
Wert aus dem Feld srczone . |
srczonetype |
security_result.detection_fields.srczonetype |
Wert aus dem Feld srczonetype . |
status |
security_result.action_details , security_result.action |
Wert aus dem Feld status . |
status_code |
network.http.response_code |
Wert aus dem Feld status_code . |
target.url |
target.url |
Wert aus dem Feld url . |
time |
event.timestamp |
Aus den Feldern date und time geparst und an die Zeitzone angepasst. |
timestamp |
event.timestamp |
Aus dem Feld timestamp geparst. |
tran_dst_ip |
target.nat_ip |
Wert aus dem Feld tran_dst_ip . |
tran_dst_port |
target.nat_port |
Wert aus dem Feld tran_dst_port . |
tran_src_ip |
principal.nat_ip |
Wert aus dem Feld tran_src_ip . |
tran_src_port |
principal.nat_port |
Wert aus dem Feld tran_src_port . |
url |
target.url |
Wert aus dem Feld url . |
used_quota |
security_result.detection_fields.used_quota |
Wert aus dem Feld used_quota . |
user_agent |
network.http.user_agent , network.http.parsed_user_agent |
Wert aus dem Feld user_agent . Außerdem wird eine geparste Version generiert. |
user_gp |
extensions.auth.type |
Wenn user_gp vpn ist, wird extensions.auth.type auf VPN gesetzt. |
user_name |
principal.user.userid , principal.user.email_addresses |
Wert aus dem Feld user_name . Wenn sie @ enthält, wird sie auch email_addresses hinzugefügt. |
web_policy_id |
security_result.detection_fields.web_policy_id |
Wert aus dem Feld web_policy_id . |
– | event.idm.read_only_udm.metadata.event_timestamp |
Kopiert von event.timestamp . |
– | event.idm.read_only_udm.metadata.log_type |
Im Chronicle-Aufnahmeschema ist der Protokolltyp als SOPHOS_FIREWALL angegeben. |
– | event.idm.read_only_udm.metadata.vendor_name |
Konstanter Wert SOPHOS . |
– | event.idm.read_only_udm.metadata.product_name |
Konstanter Wert SOPHOS Firewall . |
– | event.idm.read_only_udm.network.application_protocol |
Wird auf DHCP gesetzt, wenn das Feld ipaddress vorhanden ist. Andernfalls wird der Wert aus dem Feld protocol abgeleitet. |
– | event.idm.read_only_udm.metadata.event_type |
Wird anhand der Logik bestimmt, die auf dem Vorhandensein anderer Felder basiert (z.B. NETWORK_HTTP , NETWORK_CONNECTION , NETWORK_DHCP , STATUS_UPDATE , GENERIC_EVENT ). |
– | event.idm.read_only_udm.security_result.action |
Abgeleitet aus den Feldern status oder log_subtype . |
Änderungen
2024-08-26
Optimierung:
- Geparste Logs für „zeitzone=
WAT
“.
2023-11-20
Optimierung:
packets_sent
wurdenetwork.sent_packets
zugeordnet.packets_received
wurdenetwork.received_packets
zugeordnet.src_trans_ip
wurdeprincipal.nat_ip
zugeordnet.src_trans_port
wurdeprincipal.nat_port
zugeordnet.dst_trans_ip
wurdetarget.nat_ip
zugeordnet.dst_trans_port
wurdetarget.nat_port
zugeordnet.bytes_sent
wurdenetwork.sent_bytes
zugeordnet.bytes_received
wurdenetwork.received_bytes
zugeordnet.duration
wurdenetwork.session_duration
zugeordnet.referer
wurdenetwork.http.referer_url
zugeordnet.ipaddress
wurdeprincipal.ip
undnetwork.dhcp.ciaddr
zugeordnet.client_physical_address
wurdenetwork.dhcp.chaddr
zugeordnet.client_host_name
wurdenetwork.dhcp.client_hostname
zugeordnet.reason
wurdesecurity_result.summary
zugeordnet.http_status
wurdenetwork.http.response_code
zugeordnet.app_name
wurdeprincipal.application
zugeordnet.- Zugewiesene Zeichen:
out_display_interface
,web_policy_id
,http_category
,http_category_type
,exceptions
,con_id
,used_quota
,src_zone_type
,src_zone
,dst_zone_type
,dst_zone
,app_risk
,app_category
,nat_rule_name
,gw_id_request
,gw_name_request
,app_filter_policy_id
,app_technology
,in_interface
,out_interface
,con_event
,srczonetype
,dstzonetype
,connevent
,connid
,hb_health
,category_type
,activityname
bissecurity_result.detection_fields
.
2023-11-10
Optimierung:
fw_rule_type
wurdesecurity_result.rule_type
zugeordnet.severity
wurdesecurity_result.severity
zugeordnet.device_serial_id
wurdeprincipal.asset.asset_id
zugeordnet.log_type
,log_component
,log_subtype
,log_version
,nat_rule_id
,ether_type
,hb_status
,app_resolved_by
,app_is_cloud
,qualifier
,log_occurrence
,in_display_interface
aufsecurity_result.detection_fields
.
2023-04-03
Optimierung:
- Die Zuordnung von
device_name
wurde vonprincipal.hostname
zuintermediary.hostname
geändert. - Die Zuordnung von
device_id
wurde vonprincipal.asset.asset_id
zuintermediary.asset.asset_id
geändert. - Die Zuordnung von
metadata.vendor_name
wurde vonSOPHOS Ltd.
zuSOPHOS
geändert. sent_pkts
wurdenetwork.sent_packets
zugeordnet.recv_pkts
wurdenetwork.received_packets
zugeordnet.tran_src_ip
wurdeprincipal.nat_ip
zugeordnet.tran_src_port
wurdeprincipal.nat_port
zugeordnet.tran_dst_ip
wurdetarget.nat_ip
zugeordnet.tran_dst_port
wurdetarget.nat_port
zugeordnet.
2022-12-01
Optimierung:
- Geparste Logs für „Zeitzone=
IST
“. application_category, application_risk and application_technology
wurdesecurity_result.detection_fields
zugeordnet.fw_rule_name
wurdesecurity_result.rule_name
zugeordnet.fw_rule_section
wurdesecurity_result.rule_set
zugeordnet.
2022-08-18
Optimierung:
- Geparste Logs für „zeitzone=
CEST
“. - Reduzierter Prozentsatz der generischen Ereignisse
user_name
wurdeevent.idm.read_only_udm.principal.user.userid
zugeordnetdevice_id
wurdeevent.idm.read_only_udm.principal.asset.asset_id
zugeordnet
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten