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 in 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 oppure un host Linux con
systemd
. - Se l'esecuzione avviene tramite un proxy, assicurati che le porte del firewall siano aperte.
- Assicurati di disporre dell'accesso con privilegi a Sophos XG Firewall.
Recuperare il file di autenticazione importazione di Google SecOps
- Accedi alla console Google SecOps.
- Vai a Impostazioni SIEM > Agenti di raccolta.
- Scarica il file di autenticazione importazione. Salva il file in modo sicuro sul sistema in cui verrà installato Bindplane.
Recuperare 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 aggiuntive per l'installazione
- Per ulteriori opzioni di installazione, consulta questa guida all'installazione.
Configura l'agente Bindplane per importare Syslog e inviarli 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 in base alle esigenze della tua infrastruttura.
Sostituisci
<customer_id>
con l'ID cliente effettivo.Aggiorna
/path/to/ingestion-authentication-file.json
al percorso in cui è stato salvato il file di autenticazione nella sezione Recupera 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 questo 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
Configurare i server syslog di Sophos Firewall
- Accedi al firewall Sophos XG.
- Vai a Configura > Servizi di sistema > Impostazioni 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.
- Facility: 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 eliminato
- Pacchetto con routing dall'origine eliminato
- Traffico frammentato ignorato
- Filtro MAC
- Filtro delle coppie IP-MAC
- Prevenzione dello spoofing IP
- Tunnel VPN SSL
- Protected application server
- Battito cardiaco
- Seleziona i seguenti log di Protezione web (log di filtro web e log di filtro applicazioni):
- Filtro web
- Filtro applicazione
- Seleziona i seguenti log di Protezione di rete (log IPS):
- Anomalia
- Firma
- Seleziona il seguente log Log di sistema:
- Eventi di sistema
Tabella di mappatura UDM
Campo log | Mappatura UDM | Logic |
---|---|---|
activityname |
security_result.detection_fields.activityname |
Valore ottenuto dal campo activityname . |
app_category |
security_result.detection_fields.Application Category , application_category |
Valore ottenuto dal campo app_category . |
app_filter_policy_id |
security_result.detection_fields.app_filter_policy_id |
Valore ottenuto dal campo app_filter_policy_id . |
app_is_cloud |
security_result.detection_fields.app_is_cloud |
Valore ottenuto dal campo app_is_cloud . |
app_name |
principal.application |
Valore ottenuto dal campo app_name . |
app_resolved_by |
security_result.detection_fields.app_resolved_by |
Valore ottenuto dal campo app_resolved_by . |
app_risk |
security_result.detection_fields.Application Risk , application_risk |
Valore ottenuto dal campo app_risk . |
app_technology |
application_technology |
Valore ottenuto dal campo app_technology . |
application |
principal.application |
Valore ottenuto dal campo application . |
application_category |
security_result.detection_fields.Application Category |
Valore ottenuto dal campo application_category . |
application_risk |
security_result.detection_fields.Application Risk |
Valore ottenuto dal campo application_risk . |
application_technology |
security_result.detection_fields.Application Technology |
Valore ottenuto dal campo application_technology . |
bytes_received |
network.received_bytes |
Valore ottenuto dal campo bytes_received . |
bytes_sent |
network.sent_bytes |
Valore ottenuto dal campo bytes_sent . |
category |
application_category |
Valore ottenuto dal campo category . |
category_type |
security_result.detection_fields.category_type |
Valore ottenuto dal campo category_type . |
client_host_name |
network.dhcp.client_hostname |
Valore ottenuto dal campo client_host_name . |
client_physical_address |
network.dhcp.chaddr |
Valore ottenuto dal campo client_physical_address . |
con_event |
security_result.detection_fields.con_event |
Valore ottenuto dal campo con_event . |
con_id |
security_result.detection_fields.con_id |
Valore ottenuto dal campo con_id . |
connevent |
security_result.detection_fields.connevent |
Valore ottenuto dal campo connevent . |
connid |
security_result.detection_fields.connid |
Valore ottenuto dal campo connid . |
date |
event.timestamp |
Analizzato dai campi date e time , modificato in base al fuso orario. |
device_id |
intermediary.asset.asset_id |
Valore del campo device_id , preceduto dal prefisso ID: . |
device_model |
intermediary.hostname |
Valore ottenuto dal campo device_model . |
device_name |
intermediary.hostname |
Valore ottenuto dal 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 ottenuto dal campo domain . |
dst_country |
target.location.country_or_region |
Valore ottenuto dal campo dst_country . |
dst_country_code |
target.location.country_or_region |
Valore ottenuto dal campo dst_country_code . |
dst_ip |
target.ip |
Valore ottenuto dal campo dst_ip . |
dst_mac |
target.mac |
Valore ottenuto dal campo dst_mac . |
dst_port |
target.port |
Valore ottenuto dal campo dst_port . |
dst_trans_ip |
target.nat_ip |
Valore ottenuto dal campo dst_trans_ip . |
dst_trans_port |
target.nat_port |
Valore ottenuto dal campo dst_trans_port . |
dst_zone |
security_result.detection_fields.dst_zone |
Valore ottenuto dal campo dst_zone . |
dstzone |
security_result.detection_fields.dstzone |
Valore ottenuto dal campo dstzone . |
dstzonetype |
security_result.detection_fields.dstzonetype |
Valore ottenuto dal campo dstzonetype . |
duration |
network.session_duration.seconds |
Valore ottenuto dal campo duration . |
ether_type |
security_result.detection_fields.ether_type |
Valore ottenuto dal campo ether_type . |
exceptions |
security_result.detection_fields.exceptions |
Valore ottenuto dal campo exceptions . |
fw_rule_id |
security_result.rule_id |
Valore ottenuto dal campo fw_rule_id . |
fw_rule_name |
security_result.rule_name |
Valore ottenuto dal campo fw_rule_name . |
fw_rule_section |
security_result.rule_set |
Valore ottenuto dal campo fw_rule_section . |
fw_rule_type |
security_result.rule_type |
Valore ottenuto dal campo fw_rule_type . |
gw_id_request |
security_result.detection_fields.gw_id_request |
Valore ottenuto dal campo gw_id_request . |
gw_name_request |
security_result.detection_fields.gw_name_request |
Valore ottenuto dal campo gw_name_request . |
hb_health |
security_result.detection_fields.hb_health |
Valore ottenuto dal campo hb_health . |
hb_status |
security_result.detection_fields.hb_status |
Valore ottenuto dal campo hb_status . |
http_category |
security_result.detection_fields.http_category |
Valore ottenuto dal campo http_category . |
http_category_type |
security_result.detection_fields.http_category_type |
Valore ottenuto dal campo http_category_type . |
http_status |
network.http.response_code |
Valore ottenuto dal campo http_status . |
in_display_interface |
security_result.detection_fields.in_display_interface |
Valore ottenuto dal campo in_display_interface . |
in_interface |
security_result.detection_fields.in_interface |
Valore ottenuto dal campo in_interface . |
ipaddress |
principal.ip , network.dhcp.ciaddr |
Valore ottenuto dal campo ipaddress . |
log_component |
metadata.product_event_type , security_result.detection_fields.log_component |
Valore ottenuto dal campo log_component . |
log_id |
metadata.product_log_id |
Valore ottenuto dal 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 ottenuto dal campo log_occurrence . |
log_subtype |
security_result.detection_fields.log_subtype , security_result.action |
Valore ottenuto dal campo log_subtype . |
log_type |
security_result.detection_fields.log_type |
Valore ottenuto dal campo log_type . |
log_version |
security_result.detection_fields.log_version |
Valore ottenuto dal campo log_version . |
message |
metadata.description |
Valore ottenuto dal campo message . |
nat_rule_id |
security_result.detection_fields.nat_rule_id |
Valore ottenuto dal campo nat_rule_id . |
nat_rule_name |
security_result.detection_fields.nat_rule_name |
Valore ottenuto dal campo nat_rule_name . |
out_display_interface |
security_result.detection_fields.out_display_interface |
Valore ottenuto dal campo out_display_interface . |
out_interface |
security_result.detection_fields.out_interface |
Valore ottenuto dal campo out_interface . |
packets_received |
network.received_packets |
Valore ottenuto dal campo packets_received . |
packets_sent |
network.sent_packets |
Valore ottenuto dal campo packets_sent . |
priority |
security_result.severity |
Mappato dal campo priority o severity in base a una tabella di ricerca. |
protocol |
network.ip_protocol |
Analizzato dal campo protocol utilizzando una tabella di ricerca. |
reason |
security_result.detection_fields.reason , security_result.summary |
Valore ottenuto dal campo reason . |
recv_bytes |
network.received_bytes |
Valore ottenuto dal campo recv_bytes . |
recv_pkts |
network.received_packets |
Valore ottenuto dal campo recv_pkts . |
referer |
network.http.referral_url |
Valore ottenuto dal campo referer . |
rule_id |
security_result.rule_id |
Valore ottenuto dal campo rule_id . |
rule_name |
security_result.rule_name |
Valore ottenuto dal campo rule_name . |
sent_bytes |
network.sent_bytes |
Valore ottenuto dal campo sent_bytes . |
sent_pkts |
network.sent_packets |
Valore ottenuto dal campo sent_pkts . |
severity |
priority |
Valore ottenuto dal campo severity . |
src_country |
principal.location.country_or_region |
Valore ottenuto dal campo src_country . |
src_country_code |
principal.location.country_or_region |
Valore ottenuto dal campo src_country_code . |
src_ip |
principal.ip |
Valore ottenuto dal campo src_ip . |
src_mac |
principal.mac |
Valore ottenuto dal campo src_mac . |
src_port |
principal.port |
Valore ottenuto dal campo src_port . |
src_trans_ip |
principal.nat_ip |
Valore ottenuto dal campo src_trans_ip . |
src_trans_port |
principal.nat_port |
Valore ottenuto dal campo src_trans_port . |
src_zone |
security_result.detection_fields.src_zone |
Valore ottenuto dal campo src_zone . |
srczone |
security_result.detection_fields.srczone |
Valore ottenuto dal campo srczone . |
srczonetype |
security_result.detection_fields.srczonetype |
Valore ottenuto dal campo srczonetype . |
status |
security_result.action_details , security_result.action |
Valore ottenuto dal campo status . |
status_code |
network.http.response_code |
Valore ottenuto dal campo status_code . |
target.url |
target.url |
Valore ottenuto dal campo url . |
time |
event.timestamp |
Analizzato dai campi date e time , modificato in base al fuso orario. |
timestamp |
event.timestamp |
Analizzato dal campo timestamp . |
tran_dst_ip |
target.nat_ip |
Valore ottenuto dal campo tran_dst_ip . |
tran_dst_port |
target.nat_port |
Valore ottenuto dal campo tran_dst_port . |
tran_src_ip |
principal.nat_ip |
Valore ottenuto dal campo tran_src_ip . |
tran_src_port |
principal.nat_port |
Valore ottenuto dal campo tran_src_port . |
url |
target.url |
Valore ottenuto dal campo url . |
used_quota |
security_result.detection_fields.used_quota |
Valore ottenuto dal campo used_quota . |
user_agent |
network.http.user_agent , network.http.parsed_user_agent |
Valore ottenuto dal campo user_agent . È stata 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 ottenuto dal campo user_name . Se contiene @ , aggiunto anche a email_addresses . |
web_policy_id |
security_result.detection_fields.web_policy_id |
Valore ottenuto dal 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 dalla logica in base alla 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 . |
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.