Collecter les journaux Sophos XG Firewall
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 à 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 journaux 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 le programme derrière un proxy, assurez-vous que les ports du pare-feu sont ouverts.
- Assurez-vous de disposer d'un accès privilégié à Sophos XG Firewall.
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 l'ID client Google SecOps
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres SIEM> Profil.
- Copiez et enregistrez le numéro client de la section Informations sur l'organisation.
Installer l'agent Bindplane
Installation de fenêtres
- Ouvrez l'invite de commandes 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 les 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
Ressources d'installation supplémentaires
- Pour plus d'options d'installation, consultez ce guide d'installation.
Configurer l'agent Bindplane pour ingérer Syslog et l'envoyer à 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 (par exemple,
nano,viou le Bloc-notes).
- Recherchez le fichier
Modifiez le fichier
config.yamlcomme 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_labelsRemplacez le port et l'adresse IP selon les besoins de votre infrastructure.
Remplacez
<customer_id>par le numéro client réel.Mettez à jour
/path/to/ingestion-authentication-file.jsonen indiquant le chemin d'accès où le fichier d'authentification a été enregistré dans la section Obtenir le fichier d'authentification pour l'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-agentPour 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 de journal.
- Dans la section Serveurs Syslog, cliquez sur 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.
- Établissement : sélectionnez DAEMON.
- Niveau de gravité : sélectionnez Information.
- Format : sélectionnez Format standard de l'appareil.
- Cliquez sur Enregistrer.
- Revenez à la page Paramètres de journal et 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 la stratégie de sécurité) suivants :
- Règles
- Trafic incorrect
- LCA locaux
- Attaque par déni de service (DoS)
- Paquet ICMP redirigé supprimé
- Paquet routé à la source supprimé
- Trafic fragmenté abandonné
- Filtrage MAC
- Filtrage des paires IP-MAC
- Prévention de l'usurpation d'adresse IP
- Tunnel VPN SSL
- Serveur d'applications protégé
- Pulsation
- Sélectionnez les journaux Protection Web suivants (journal de filtrage Web et journal de filtrage des applications) :
- Filtre Web
- Filtre d'application
- Sélectionnez les journaux Protection du réseau (journal IPS) suivants :
- Anomalie
- Signature
- Sélectionnez le journal Journal système suivant :
- Événements système
Table 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 |
Analysé à partir 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 de 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 de 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 correspondance. |
protocol |
network.ip_protocol |
Analysé à partir 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 |
Analysé à partir des champs date et time, ajusté en fonction du fuseau horaire. |
timestamp |
event.timestamp |
Analysé à partir 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 a également été 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éfinie sur DHCP si le champ ipaddress est présent. Sinon, il est 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. |
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.