Collecter les journaux du pare-feu Sophos XG
Ce document explique comment collecter les journaux du pare-feu Sophos Next Gen (XG) à l'aide de Bindplane. L'analyseur extrait les journaux, normalise les paires clé-valeur et les mappe sur l'UDM. Il gère différents formats de journaux, convertit les codes temporels, enrichit les données réseau et catégorise les événements en fonction des ID de journal et de l'activité réseau.
Avant de commencer
- Assurez-vous de disposer d'une instance Google Security Operations.
- Assurez-vous d'utiliser Windows 2016 ou une version ultérieure, ou un hôte Linux avec
systemd
. - Si vous exécutez l'application derrière un proxy, assurez-vous que les ports du pare-feu sont ouverts.
- Assurez-vous de disposer d'un accès privilégié au pare-feu Sophos XG.
Obtenir le fichier d'authentification d'ingestion Google SecOps
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres du SIEM > Agents de collecte.
- Téléchargez le fichier d'authentification d'ingestion. Enregistrez le fichier de manière sécurisée sur le système sur lequel Bindplane sera installé.
Obtenir le numéro client Google SecOps
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres du SIEM > Profil.
- Copiez et sauvegardez le numéro client dans la section Détails de l'organisation.
Installer l'agent Bindplane
Installation de Windows
- Ouvrez l'invite de commande ou PowerShell en tant qu'administrateur.
Exécutez la commande suivante :
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Installation de Linux
- Ouvrez un terminal avec des droits root ou sudo.
Exécutez la commande suivante :
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
Autres ressources d'installation
- Pour plus d'options d'installation, consultez ce guide d'installation.
Configurer l'agent Bindplane pour qu'il ingère les journaux Syslog et les envoie à Google SecOps
Accédez au fichier de configuration:
- Recherchez le fichier
config.yaml
. En règle générale, il se trouve dans le répertoire/etc/bindplane-agent/
sous Linux ou dans le répertoire d'installation sous Windows. - Ouvrez le fichier à l'aide d'un éditeur de texte (
nano
,vi
ou Bloc-notes, par exemple).
- Recherchez le fichier
Modifiez le fichier
config.yaml
comme suit :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
Remplacez le port et l'adresse IP dans votre infrastructure si nécessaire.
Remplacez
<customer_id>
par le numéro client réel.Remplacez
/path/to/ingestion-authentication-file.json
par le chemin d'accès où le fichier d'authentification a été enregistré dans la section Obtenir le fichier d'authentification d'ingestion Google SecOps.
Redémarrez l'agent Bindplane pour appliquer les modifications
Pour redémarrer l'agent Bindplane sous Linux, exécutez la commande suivante:
sudo systemctl restart bindplane-agent
Pour redémarrer l'agent Bindplane sous Windows, vous pouvez utiliser la console Services ou saisir la commande suivante:
net stop BindPlaneAgent && net start BindPlaneAgent
Configurer les serveurs Syslog du pare-feu Sophos
- Connectez-vous au pare-feu Sophos XG.
- Accédez à Configurer > Services système > Paramètres des journaux.
- Dans la section Syslog servers (Serveurs Syslog), cliquez sur Add (Ajouter).
- Fournissez les informations de configuration suivantes :
- Nom: saisissez un nom unique pour le collecteur Google SecOps.
- Adresse IP/Domaine: saisissez l'adresse IP de Bindplane.
- Port: saisissez le numéro de port Bindplane.
- Installation: sélectionnez DAEMON.
- Niveau de gravité: sélectionnez Informations.
- Format: sélectionnez Format standard de l'appareil.
- Cliquez sur Enregistrer.
- Revenez à la page Paramètres des journaux, puis sélectionnez les types de journaux spécifiques à transférer vers le serveur syslog.
Configurer les paramètres de journalisation du pare-feu Sophos XG
- Sélectionnez les journaux Pare-feu de base (journal de stratégie de sécurité) suivants :
- Règles de stratégie
- Trafic incorrect
- LCA locales
- Attaque DoS
- Paquet ICMP redirigé abandonné
- Paquet de routage source abandonné
- Trafic fragmenté abandonné
- Filtrage MAC
- Filtrage des paires IP-MAC
- Prévention de la falsification d'adresses IP
- Tunnel VPN SSL
- Serveur d'applications protégé
- Pulsation
- Sélectionnez les journaux Protection Web (journal de filtrage Web et journal de filtrage des applications) suivants :
- Filtre Web
- Filtre d'application
- Sélectionnez les journaux Protection du réseau (journal IPS) suivants :
- Anomalie
- Signature
- Sélectionnez le journal système suivant :
- Événements système
Tableau de mappage UDM
Champ de journal | Mappage UDM | Logique |
---|---|---|
activityname |
security_result.detection_fields.activityname |
Valeur du champ activityname . |
app_category |
security_result.detection_fields.Application Category , application_category |
Valeur du champ app_category . |
app_filter_policy_id |
security_result.detection_fields.app_filter_policy_id |
Valeur du champ app_filter_policy_id . |
app_is_cloud |
security_result.detection_fields.app_is_cloud |
Valeur du champ app_is_cloud . |
app_name |
principal.application |
Valeur du champ app_name . |
app_resolved_by |
security_result.detection_fields.app_resolved_by |
Valeur du champ app_resolved_by . |
app_risk |
security_result.detection_fields.Application Risk , application_risk |
Valeur du champ app_risk . |
app_technology |
application_technology |
Valeur du champ app_technology . |
application |
principal.application |
Valeur du champ application . |
application_category |
security_result.detection_fields.Application Category |
Valeur du champ application_category . |
application_risk |
security_result.detection_fields.Application Risk |
Valeur du champ application_risk . |
application_technology |
security_result.detection_fields.Application Technology |
Valeur du champ application_technology . |
bytes_received |
network.received_bytes |
Valeur du champ bytes_received . |
bytes_sent |
network.sent_bytes |
Valeur du champ bytes_sent . |
category |
application_category |
Valeur du champ category . |
category_type |
security_result.detection_fields.category_type |
Valeur du champ category_type . |
client_host_name |
network.dhcp.client_hostname |
Valeur du champ client_host_name . |
client_physical_address |
network.dhcp.chaddr |
Valeur du champ client_physical_address . |
con_event |
security_result.detection_fields.con_event |
Valeur du champ con_event . |
con_id |
security_result.detection_fields.con_id |
Valeur du champ con_id . |
connevent |
security_result.detection_fields.connevent |
Valeur du champ connevent . |
connid |
security_result.detection_fields.connid |
Valeur du champ connid . |
date |
event.timestamp |
Extrait des champs date et time , ajusté en fonction du fuseau horaire. |
device_id |
intermediary.asset.asset_id |
Valeur du champ device_id , précédée du préfixe ID: . |
device_model |
intermediary.hostname |
Valeur du champ device_model . |
device_name |
intermediary.hostname |
Valeur du champ device_name . |
device_serial_id |
intermediary.asset.asset_id |
Valeur du champ device_serial_id , précédée du préfixe ID: . |
domain |
principal.administrative_domain , target.hostname |
Valeur du champ domain . |
dst_country |
target.location.country_or_region |
Valeur du champ dst_country . |
dst_country_code |
target.location.country_or_region |
Valeur du champ dst_country_code . |
dst_ip |
target.ip |
Valeur du champ dst_ip . |
dst_mac |
target.mac |
Valeur du champ dst_mac . |
dst_port |
target.port |
Valeur du champ dst_port . |
dst_trans_ip |
target.nat_ip |
Valeur du champ dst_trans_ip . |
dst_trans_port |
target.nat_port |
Valeur du champ dst_trans_port . |
dst_zone |
security_result.detection_fields.dst_zone |
Valeur du champ dst_zone . |
dstzone |
security_result.detection_fields.dstzone |
Valeur du champ dstzone . |
dstzonetype |
security_result.detection_fields.dstzonetype |
Valeur du champ dstzonetype . |
duration |
network.session_duration.seconds |
Valeur du champ duration . |
ether_type |
security_result.detection_fields.ether_type |
Valeur du champ ether_type . |
exceptions |
security_result.detection_fields.exceptions |
Valeur du champ exceptions . |
fw_rule_id |
security_result.rule_id |
Valeur du champ fw_rule_id . |
fw_rule_name |
security_result.rule_name |
Valeur du champ fw_rule_name . |
fw_rule_section |
security_result.rule_set |
Valeur du champ fw_rule_section . |
fw_rule_type |
security_result.rule_type |
Valeur du champ fw_rule_type . |
gw_id_request |
security_result.detection_fields.gw_id_request |
Valeur du champ gw_id_request . |
gw_name_request |
security_result.detection_fields.gw_name_request |
Valeur du champ gw_name_request . |
hb_health |
security_result.detection_fields.hb_health |
Valeur du champ hb_health . |
hb_status |
security_result.detection_fields.hb_status |
Valeur du champ hb_status . |
http_category |
security_result.detection_fields.http_category |
Valeur du champ http_category . |
http_category_type |
security_result.detection_fields.http_category_type |
Valeur du champ http_category_type . |
http_status |
network.http.response_code |
Valeur du champ http_status . |
in_display_interface |
security_result.detection_fields.in_display_interface |
Valeur du champ in_display_interface . |
in_interface |
security_result.detection_fields.in_interface |
Valeur du champ in_interface . |
ipaddress |
principal.ip , network.dhcp.ciaddr |
Valeur du champ ipaddress . |
log_component |
metadata.product_event_type , security_result.detection_fields.log_component |
Valeur du champ log_component . |
log_id |
metadata.product_log_id |
Valeur du champ log_id . |
log_msg |
metadata.description |
Valeur du champ message après suppression de message= . |
log_occurrence |
security_result.detection_fields.log_occurrence |
Valeur du champ log_occurrence . |
log_subtype |
security_result.detection_fields.log_subtype , security_result.action |
Valeur du champ log_subtype . |
log_type |
security_result.detection_fields.log_type |
Valeur du champ log_type . |
log_version |
security_result.detection_fields.log_version |
Valeur du champ log_version . |
message |
metadata.description |
Valeur du champ message . |
nat_rule_id |
security_result.detection_fields.nat_rule_id |
Valeur du champ nat_rule_id . |
nat_rule_name |
security_result.detection_fields.nat_rule_name |
Valeur du champ nat_rule_name . |
out_display_interface |
security_result.detection_fields.out_display_interface |
Valeur du champ out_display_interface . |
out_interface |
security_result.detection_fields.out_interface |
Valeur du champ out_interface . |
packets_received |
network.received_packets |
Valeur du champ packets_received . |
packets_sent |
network.sent_packets |
Valeur du champ packets_sent . |
priority |
security_result.severity |
Mappé à partir du champ priority ou severity en fonction d'une table de recherche. |
protocol |
network.ip_protocol |
Extrait du champ protocol à l'aide d'une table de correspondance. |
reason |
security_result.detection_fields.reason , security_result.summary |
Valeur du champ reason . |
recv_bytes |
network.received_bytes |
Valeur du champ recv_bytes . |
recv_pkts |
network.received_packets |
Valeur du champ recv_pkts . |
referer |
network.http.referral_url |
Valeur du champ referer . |
rule_id |
security_result.rule_id |
Valeur du champ rule_id . |
rule_name |
security_result.rule_name |
Valeur du champ rule_name . |
sent_bytes |
network.sent_bytes |
Valeur du champ sent_bytes . |
sent_pkts |
network.sent_packets |
Valeur du champ sent_pkts . |
severity |
priority |
Valeur du champ severity . |
src_country |
principal.location.country_or_region |
Valeur du champ src_country . |
src_country_code |
principal.location.country_or_region |
Valeur du champ src_country_code . |
src_ip |
principal.ip |
Valeur du champ src_ip . |
src_mac |
principal.mac |
Valeur du champ src_mac . |
src_port |
principal.port |
Valeur du champ src_port . |
src_trans_ip |
principal.nat_ip |
Valeur du champ src_trans_ip . |
src_trans_port |
principal.nat_port |
Valeur du champ src_trans_port . |
src_zone |
security_result.detection_fields.src_zone |
Valeur du champ src_zone . |
srczone |
security_result.detection_fields.srczone |
Valeur du champ srczone . |
srczonetype |
security_result.detection_fields.srczonetype |
Valeur du champ srczonetype . |
status |
security_result.action_details , security_result.action |
Valeur du champ status . |
status_code |
network.http.response_code |
Valeur du champ status_code . |
target.url |
target.url |
Valeur du champ url . |
time |
event.timestamp |
Extrait des champs date et time , ajusté en fonction du fuseau horaire. |
timestamp |
event.timestamp |
Analyse du champ timestamp . |
tran_dst_ip |
target.nat_ip |
Valeur du champ tran_dst_ip . |
tran_dst_port |
target.nat_port |
Valeur du champ tran_dst_port . |
tran_src_ip |
principal.nat_ip |
Valeur du champ tran_src_ip . |
tran_src_port |
principal.nat_port |
Valeur du champ tran_src_port . |
url |
target.url |
Valeur du champ url . |
used_quota |
security_result.detection_fields.used_quota |
Valeur du champ used_quota . |
user_agent |
network.http.user_agent , network.http.parsed_user_agent |
Valeur du champ user_agent . Une version analysée est également générée. |
user_gp |
extensions.auth.type |
Si user_gp est vpn , définit extensions.auth.type sur VPN . |
user_name |
principal.user.userid , principal.user.email_addresses |
Valeur du champ user_name . Si elle contient @ , elle est également ajoutée à email_addresses . |
web_policy_id |
security_result.detection_fields.web_policy_id |
Valeur du champ web_policy_id . |
N/A | event.idm.read_only_udm.metadata.event_timestamp |
Copié depuis event.timestamp . |
N/A | event.idm.read_only_udm.metadata.log_type |
Le schéma d'ingestion Chronicle spécifie le type de journal comme SOPHOS_FIREWALL . |
N/A | event.idm.read_only_udm.metadata.vendor_name |
Valeur constante SOPHOS . |
N/A | event.idm.read_only_udm.metadata.product_name |
Valeur constante SOPHOS Firewall . |
N/A | event.idm.read_only_udm.network.application_protocol |
Définissez sur DHCP si le champ ipaddress est présent. Sinon, dérivé du champ protocol . |
N/A | event.idm.read_only_udm.metadata.event_type |
Déterminé par une logique basée sur la présence d'autres champs (par exemple, NETWORK_HTTP , NETWORK_CONNECTION , NETWORK_DHCP , STATUS_UPDATE , GENERIC_EVENT ). |
N/A | event.idm.read_only_udm.security_result.action |
Dérivé des champs status ou log_subtype . |
Modifications
2024-08-26
Amélioration :
- Journaux analysés pour le fuseau horaire
WAT
.
2023-11-20
Amélioration :
- Mappage de
packets_sent
surnetwork.sent_packets
. - Mappage de
packets_received
surnetwork.received_packets
. - Mappage de
src_trans_ip
surprincipal.nat_ip
. - Mappage de
src_trans_port
surprincipal.nat_port
. - Mappage de
dst_trans_ip
surtarget.nat_ip
. - Mappage de
dst_trans_port
surtarget.nat_port
. - Mappage de
bytes_sent
surnetwork.sent_bytes
. - Mappage de
bytes_received
surnetwork.received_bytes
. - Mappage de
duration
surnetwork.session_duration
. - Mappage de
referer
surnetwork.http.referer_url
. - Mappage de
ipaddress
surprincipal.ip
etnetwork.dhcp.ciaddr
. - Mappage de
client_physical_address
surnetwork.dhcp.chaddr
. - Mappage de
client_host_name
surnetwork.dhcp.client_hostname
. - Mappage de
reason
sursecurity_result.summary
. - Mappage de
http_status
surnetwork.http.response_code
. - Mappage de
app_name
surprincipal.application
. - Mappage de
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
etactivityname
sursecurity_result.detection_fields
.
2023-11-10
Amélioration :
- Mappage de
fw_rule_type
sursecurity_result.rule_type
. - Mappage de
severity
sursecurity_result.severity
. - Mappage de
device_serial_id
surprincipal.asset.asset_id
. - Mappage de
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
sursecurity_result.detection_fields
.
2023-04-03
Amélioration :
- Modification de la mise en correspondance de
device_name
deprincipal.hostname
àintermediary.hostname
. - Modification de la mise en correspondance de
device_id
deprincipal.asset.asset_id
àintermediary.asset.asset_id
. - Modification de la mise en correspondance de
metadata.vendor_name
deSOPHOS Ltd.
àSOPHOS
. - Mappage de
sent_pkts
surnetwork.sent_packets
. - Mappage de
recv_pkts
surnetwork.received_packets
. - Mappage de
tran_src_ip
surprincipal.nat_ip
. - Mappage de
tran_src_port
surprincipal.nat_port
. - Mappage de
tran_dst_ip
surtarget.nat_ip
. - Mappage de
tran_dst_port
surtarget.nat_port
.
2022-12-01
Amélioration :
- Journaux analysés pour le fuseau horaire
IST
. - Mappage de
application_category, application_risk and application_technology
sursecurity_result.detection_fields
. - Mappage de
fw_rule_name
sursecurity_result.rule_name
. - Mappage de
fw_rule_section
sursecurity_result.rule_set
.
2022-08-18
Amélioration :
- Journaux analysés pour le fuseau horaire
CEST
. - Pourcentage d'événements génériques réduit
user_name
mappé surevent.idm.read_only_udm.principal.user.userid
device_id
mappé surevent.idm.read_only_udm.principal.asset.asset_id
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.