Raccogliere i log di Sophos XG Firewall
Questo documento spiega come raccogliere i log del firewall Sophos Next Gen (XG) utilizzando Bindplane. Il parser estrae i log, normalizza le coppie chiave-valore e le mappa all'UDM. Gestisce vari formati di log, converte i timestamp, arricchisce i dati di rete e classifica gli eventi in base agli ID log e all'attività di rete.
Prima di iniziare
- Assicurati di avere un'istanza Google Security Operations.
- Assicurati di utilizzare Windows 2016 o versioni successive o un host Linux con
systemd
. - Se il servizio è eseguito dietro un proxy, assicurati che le porte del firewall siano aperte.
- Assicurati di disporre dell'accesso privilegiato a Sophos XG Firewall.
Ottenere il file di autenticazione di importazione di Google SecOps
- Accedi alla console Google SecOps.
- Vai a Impostazioni SIEM > Agenti di raccolta.
- Scarica il file di autenticazione dell'importazione. Salva il file in modo sicuro sul sistema in cui verrà installato Bindplane.
Ottenere l'ID cliente Google SecOps
- Accedi alla console Google SecOps.
- Vai a Impostazioni SIEM > Profilo.
- Copia e salva l'ID cliente dalla sezione Dettagli dell'organizzazione.
Installa l'agente Bindplane
Installazione di Windows
- Apri il prompt dei comandi o PowerShell come amministratore.
Esegui questo comando:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Installazione di Linux
- Apri un terminale con privilegi di root o sudo.
Esegui questo comando:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
Risorse di installazione aggiuntive
- Per altre opzioni di installazione, consulta questa guida all'installazione.
Configura l'agente Bindplane per importare Syslog e inviarlo a Google SecOps
Accedi al file di configurazione:
- Individua il file
config.yaml
. In genere si trova nella directory/etc/bindplane-agent/
su Linux o nella directory di installazione su Windows. - Apri il file utilizzando un editor di testo (ad esempio
nano
,vi
o Blocco note).
- Individua il file
Modifica il file
config.yaml
come segue: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
Sostituisci la porta e l'indirizzo IP come richiesto nella tua infrastruttura.
Sostituisci
<customer_id>
con l'ID cliente effettivo.Aggiorna
/path/to/ingestion-authentication-file.json
con il percorso in cui è stato salvato il file di autenticazione nella sezione Ottenere il file di autenticazione per l'importazione di Google SecOps.
Riavvia l'agente Bindplane per applicare le modifiche
Per riavviare l'agente Bindplane in Linux, esegui il seguente comando:
sudo systemctl restart bindplane-agent
Per riavviare l'agente Bindplane in Windows, puoi utilizzare la console Servizi o inserire il seguente comando:
net stop BindPlaneAgent && net start BindPlaneAgent
Configura i server syslog di Sophos Firewall
- Accedi a Sophos XG Firewall.
- Vai a Configura > Servizi di sistema > Impostazioni di log.
- Nella sezione Server Syslog, fai clic su Aggiungi.
- Fornisci i seguenti dettagli di configurazione:
- Nome: inserisci un nome univoco per il raccoglitore Google SecOps.
- Indirizzo IP/dominio: inserisci l'indirizzo IP di Bindplane.
- Porta: inserisci il numero di porta di Bindplane.
- Struttura: seleziona DAEMON.
- Livello di gravità: seleziona Informazioni.
- Formato: seleziona Formato standard del dispositivo.
- Fai clic su Salva.
- Torna alla pagina Impostazioni log e seleziona i tipi di log specifici da inoltrare al server syslog.
Configurare le impostazioni dei log del firewall Sophos XG
- Seleziona i seguenti log Firewall di base (log dei criteri di sicurezza):
- Regole per i criteri
- Traffico non valido
- ACL locali
- Attacco DoS
- Pacchetto ICMP reindirizzato perso
- Pacchetto con routing dell'origine perso
- Traffico frammentato ignorato
- Filtro MAC
- Filtro delle coppie IP-MAC
- Prevenzione dello spoofing IP
- Tunnel VPN SSL
- Server di applicazioni protetto
- Battito cardiaco
- Seleziona i seguenti log di Protezione web (log di filtro web e log di filtro delle applicazioni):
- Filtro web
- Filtro applicazione
- Seleziona i seguenti log di protezione della rete (log IPS):
- Anomalia
- Firma
- Seleziona il seguente log Log di sistema:
- Eventi di sistema
Tabella di mappatura UDM
Campo log | Mappatura UDM | Logica |
---|---|---|
activityname |
security_result.detection_fields.activityname |
Valore del campo activityname . |
app_category |
security_result.detection_fields.Application Category , application_category |
Valore del campo app_category . |
app_filter_policy_id |
security_result.detection_fields.app_filter_policy_id |
Valore del campo app_filter_policy_id . |
app_is_cloud |
security_result.detection_fields.app_is_cloud |
Valore del campo app_is_cloud . |
app_name |
principal.application |
Valore del campo app_name . |
app_resolved_by |
security_result.detection_fields.app_resolved_by |
Valore del campo app_resolved_by . |
app_risk |
security_result.detection_fields.Application Risk , application_risk |
Valore del campo app_risk . |
app_technology |
application_technology |
Valore del campo app_technology . |
application |
principal.application |
Valore del campo application . |
application_category |
security_result.detection_fields.Application Category |
Valore del campo application_category . |
application_risk |
security_result.detection_fields.Application Risk |
Valore del campo application_risk . |
application_technology |
security_result.detection_fields.Application Technology |
Valore del campo application_technology . |
bytes_received |
network.received_bytes |
Valore del campo bytes_received . |
bytes_sent |
network.sent_bytes |
Valore del campo bytes_sent . |
category |
application_category |
Valore del campo category . |
category_type |
security_result.detection_fields.category_type |
Valore del campo category_type . |
client_host_name |
network.dhcp.client_hostname |
Valore del campo client_host_name . |
client_physical_address |
network.dhcp.chaddr |
Valore del campo client_physical_address . |
con_event |
security_result.detection_fields.con_event |
Valore del campo con_event . |
con_id |
security_result.detection_fields.con_id |
Valore del campo con_id . |
connevent |
security_result.detection_fields.connevent |
Valore del campo connevent . |
connid |
security_result.detection_fields.connid |
Valore del campo connid . |
date |
event.timestamp |
Analizzati dai campi date e time , adeguati al fuso orario. |
device_id |
intermediary.asset.asset_id |
Valore del campo device_id , preceduto dal prefisso ID: . |
device_model |
intermediary.hostname |
Valore del campo device_model . |
device_name |
intermediary.hostname |
Valore del campo device_name . |
device_serial_id |
intermediary.asset.asset_id |
Valore del campo device_serial_id , preceduto dal prefisso ID: . |
domain |
principal.administrative_domain , target.hostname |
Valore del campo domain . |
dst_country |
target.location.country_or_region |
Valore del campo dst_country . |
dst_country_code |
target.location.country_or_region |
Valore del campo dst_country_code . |
dst_ip |
target.ip |
Valore del campo dst_ip . |
dst_mac |
target.mac |
Valore del campo dst_mac . |
dst_port |
target.port |
Valore del campo dst_port . |
dst_trans_ip |
target.nat_ip |
Valore del campo dst_trans_ip . |
dst_trans_port |
target.nat_port |
Valore del campo dst_trans_port . |
dst_zone |
security_result.detection_fields.dst_zone |
Valore del campo dst_zone . |
dstzone |
security_result.detection_fields.dstzone |
Valore del campo dstzone . |
dstzonetype |
security_result.detection_fields.dstzonetype |
Valore del campo dstzonetype . |
duration |
network.session_duration.seconds |
Valore del campo duration . |
ether_type |
security_result.detection_fields.ether_type |
Valore del campo ether_type . |
exceptions |
security_result.detection_fields.exceptions |
Valore del campo exceptions . |
fw_rule_id |
security_result.rule_id |
Valore del campo fw_rule_id . |
fw_rule_name |
security_result.rule_name |
Valore del campo fw_rule_name . |
fw_rule_section |
security_result.rule_set |
Valore del campo fw_rule_section . |
fw_rule_type |
security_result.rule_type |
Valore del campo fw_rule_type . |
gw_id_request |
security_result.detection_fields.gw_id_request |
Valore del campo gw_id_request . |
gw_name_request |
security_result.detection_fields.gw_name_request |
Valore del campo gw_name_request . |
hb_health |
security_result.detection_fields.hb_health |
Valore del campo hb_health . |
hb_status |
security_result.detection_fields.hb_status |
Valore del campo hb_status . |
http_category |
security_result.detection_fields.http_category |
Valore del campo http_category . |
http_category_type |
security_result.detection_fields.http_category_type |
Valore del campo http_category_type . |
http_status |
network.http.response_code |
Valore del campo http_status . |
in_display_interface |
security_result.detection_fields.in_display_interface |
Valore del campo in_display_interface . |
in_interface |
security_result.detection_fields.in_interface |
Valore del campo in_interface . |
ipaddress |
principal.ip , network.dhcp.ciaddr |
Valore del campo ipaddress . |
log_component |
metadata.product_event_type , security_result.detection_fields.log_component |
Valore del campo log_component . |
log_id |
metadata.product_log_id |
Valore del campo log_id . |
log_msg |
metadata.description |
Valore del campo message dopo la rimozione di message= . |
log_occurrence |
security_result.detection_fields.log_occurrence |
Valore del campo log_occurrence . |
log_subtype |
security_result.detection_fields.log_subtype , security_result.action |
Valore del campo log_subtype . |
log_type |
security_result.detection_fields.log_type |
Valore del campo log_type . |
log_version |
security_result.detection_fields.log_version |
Valore del campo log_version . |
message |
metadata.description |
Valore del campo message . |
nat_rule_id |
security_result.detection_fields.nat_rule_id |
Valore del campo nat_rule_id . |
nat_rule_name |
security_result.detection_fields.nat_rule_name |
Valore del campo nat_rule_name . |
out_display_interface |
security_result.detection_fields.out_display_interface |
Valore del campo out_display_interface . |
out_interface |
security_result.detection_fields.out_interface |
Valore del campo out_interface . |
packets_received |
network.received_packets |
Valore del campo packets_received . |
packets_sent |
network.sent_packets |
Valore del campo packets_sent . |
priority |
security_result.severity |
Mappato dal campo priority o severity in base a una tabella di ricerca. |
protocol |
network.ip_protocol |
Analizzati dal campo protocol utilizzando una tabella di ricerca. |
reason |
security_result.detection_fields.reason , security_result.summary |
Valore del campo reason . |
recv_bytes |
network.received_bytes |
Valore del campo recv_bytes . |
recv_pkts |
network.received_packets |
Valore del campo recv_pkts . |
referer |
network.http.referral_url |
Valore del campo referer . |
rule_id |
security_result.rule_id |
Valore del campo rule_id . |
rule_name |
security_result.rule_name |
Valore del campo rule_name . |
sent_bytes |
network.sent_bytes |
Valore del campo sent_bytes . |
sent_pkts |
network.sent_packets |
Valore del campo sent_pkts . |
severity |
priority |
Valore del campo severity . |
src_country |
principal.location.country_or_region |
Valore del campo src_country . |
src_country_code |
principal.location.country_or_region |
Valore del campo src_country_code . |
src_ip |
principal.ip |
Valore del campo src_ip . |
src_mac |
principal.mac |
Valore del campo src_mac . |
src_port |
principal.port |
Valore del campo src_port . |
src_trans_ip |
principal.nat_ip |
Valore del campo src_trans_ip . |
src_trans_port |
principal.nat_port |
Valore del campo src_trans_port . |
src_zone |
security_result.detection_fields.src_zone |
Valore del campo src_zone . |
srczone |
security_result.detection_fields.srczone |
Valore del campo srczone . |
srczonetype |
security_result.detection_fields.srczonetype |
Valore del campo srczonetype . |
status |
security_result.action_details , security_result.action |
Valore del campo status . |
status_code |
network.http.response_code |
Valore del campo status_code . |
target.url |
target.url |
Valore del campo url . |
time |
event.timestamp |
Analizzati dai campi date e time , adeguati al fuso orario. |
timestamp |
event.timestamp |
Analizzati dal campo timestamp . |
tran_dst_ip |
target.nat_ip |
Valore del campo tran_dst_ip . |
tran_dst_port |
target.nat_port |
Valore del campo tran_dst_port . |
tran_src_ip |
principal.nat_ip |
Valore del campo tran_src_ip . |
tran_src_port |
principal.nat_port |
Valore del campo tran_src_port . |
url |
target.url |
Valore del campo url . |
used_quota |
security_result.detection_fields.used_quota |
Valore del campo used_quota . |
user_agent |
network.http.user_agent , network.http.parsed_user_agent |
Valore del campo user_agent . Viene generata anche la versione analizzata. |
user_gp |
extensions.auth.type |
Se user_gp è vpn , imposta extensions.auth.type su VPN . |
user_name |
principal.user.userid , principal.user.email_addresses |
Valore del campo user_name . Se contiene @ , viene aggiunto anche a email_addresses . |
web_policy_id |
security_result.detection_fields.web_policy_id |
Valore del campo web_policy_id . |
N/D | event.idm.read_only_udm.metadata.event_timestamp |
Copiato da event.timestamp . |
N/D | event.idm.read_only_udm.metadata.log_type |
Lo schema di importazione di Chronicle specifica il tipo di log come SOPHOS_FIREWALL . |
N/D | event.idm.read_only_udm.metadata.vendor_name |
Valore costante SOPHOS . |
N/D | event.idm.read_only_udm.metadata.product_name |
Valore costante SOPHOS Firewall . |
N/D | event.idm.read_only_udm.network.application_protocol |
Imposta su DHCP se è presente il campo ipaddress . In caso contrario, viene derivato dal campo protocol . |
N/D | event.idm.read_only_udm.metadata.event_type |
Determinato da una logica basata sulla presenza di altri campi (ad es. NETWORK_HTTP , NETWORK_CONNECTION , NETWORK_DHCP , STATUS_UPDATE , GENERIC_EVENT ). |
N/D | event.idm.read_only_udm.security_result.action |
Derivato dai campi status o log_subtype . |
Modifiche
2024-08-26
Miglioramento:
- Log analizzati per fuso orario=
WAT
.
2023-11-20
Miglioramento:
packets_sent
è stato mappato anetwork.sent_packets
.packets_received
è stato mappato anetwork.received_packets
.src_trans_ip
è stato mappato aprincipal.nat_ip
.src_trans_port
è stato mappato aprincipal.nat_port
.dst_trans_ip
è stato mappato atarget.nat_ip
.dst_trans_port
è stato mappato atarget.nat_port
.bytes_sent
è stato mappato anetwork.sent_bytes
.bytes_received
è stato mappato anetwork.received_bytes
.duration
è stato mappato anetwork.session_duration
.referer
è stato mappato anetwork.http.referer_url
.ipaddress
è stato mappato aprincipal.ip
enetwork.dhcp.ciaddr
.client_physical_address
è stato mappato anetwork.dhcp.chaddr
.client_host_name
è stato mappato anetwork.dhcp.client_hostname
.reason
è stato mappato asecurity_result.summary
.http_status
è stato mappato anetwork.http.response_code
.app_name
è stato mappato aprincipal.application
.- Sono stati mappati
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
asecurity_result.detection_fields
.
2023-11-10
Miglioramento:
fw_rule_type
è stato mappato asecurity_result.rule_type
.severity
è stato mappato asecurity_result.severity
.device_serial_id
è stato mappato aprincipal.asset.asset_id
.- Sono stati mappati
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
asecurity_result.detection_fields
.
2023-04-03
Miglioramento:
- Mappatura di
device_name
modificata daprincipal.hostname
aintermediary.hostname
. - Mappatura di
device_id
modificata daprincipal.asset.asset_id
aintermediary.asset.asset_id
. - Mappatura di
metadata.vendor_name
modificata daSOPHOS Ltd.
aSOPHOS
. sent_pkts
è stato mappato anetwork.sent_packets
.recv_pkts
è stato mappato anetwork.received_packets
.tran_src_ip
è stato mappato aprincipal.nat_ip
.tran_src_port
è stato mappato aprincipal.nat_port
.tran_dst_ip
è stato mappato atarget.nat_ip
.tran_dst_port
è stato mappato atarget.nat_port
.
2022-12-01
Miglioramento:
- Log analizzati per fuso orario=
IST
. application_category, application_risk and application_technology
è stato mappato asecurity_result.detection_fields
.fw_rule_name
è stato mappato asecurity_result.rule_name
.fw_rule_section
è stato mappato asecurity_result.rule_set
.
2022-08-18
Miglioramento:
- Log analizzati per fuso orario=
CEST
. - Percentuale di eventi generici ridotta
user_name
mappato aevent.idm.read_only_udm.principal.user.userid
device_id
mappato aevent.idm.read_only_udm.principal.asset.asset_id
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.