Collecter les journaux du pare-feu Sophos XG

Compatible avec:

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

  1. Connectez-vous à la console Google SecOps.
  2. Accédez à Paramètres du SIEM > Agents de collecte.
  3. 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

  1. Connectez-vous à la console Google SecOps.
  2. Accédez à Paramètres du SIEM > Profil.
  3. Copiez et sauvegardez le numéro client dans la section Détails de l'organisation.

Installer l'agent Bindplane

Installation de Windows

  1. Ouvrez l'invite de commande ou PowerShell en tant qu'administrateur.
  2. Exécutez la commande suivante :

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Installation de Linux

  1. Ouvrez un terminal avec des droits root ou sudo.
  2. 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

Configurer l'agent Bindplane pour qu'il ingère les journaux Syslog et les envoie à Google SecOps

  1. Accédez au fichier de configuration:

    1. 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.
    2. Ouvrez le fichier à l'aide d'un éditeur de texte (nano, vi ou Bloc-notes, par exemple).
  2. 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
    
  3. Remplacez le port et l'adresse IP dans votre infrastructure si nécessaire.

  4. Remplacez <customer_id> par le numéro client réel.

  5. 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

  1. Connectez-vous au pare-feu Sophos XG.
  2. Accédez à Configurer > Services système > Paramètres des journaux.
  3. Dans la section Syslog servers (Serveurs Syslog), cliquez sur Add (Ajouter).
  4. 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.
  5. Cliquez sur Enregistrer.
  6. 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

  1. 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
  2. Sélectionnez les journaux Protection Web (journal de filtrage Web et journal de filtrage des applications) suivants :
    • Filtre Web
    • Filtre d'application
  3. Sélectionnez les journaux Protection du réseau (journal IPS) suivants :
    • Anomalie
    • Signature
  4. 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 sur network.sent_packets.
  • Mappage de packets_received sur network.received_packets.
  • Mappage de src_trans_ip sur principal.nat_ip.
  • Mappage de src_trans_port sur principal.nat_port.
  • Mappage de dst_trans_ip sur target.nat_ip.
  • Mappage de dst_trans_port sur target.nat_port.
  • Mappage de bytes_sent sur network.sent_bytes.
  • Mappage de bytes_received sur network.received_bytes.
  • Mappage de duration sur network.session_duration.
  • Mappage de referer sur network.http.referer_url.
  • Mappage de ipaddress sur principal.ip et network.dhcp.ciaddr.
  • Mappage de client_physical_address sur network.dhcp.chaddr.
  • Mappage de client_host_name sur network.dhcp.client_hostname.
  • Mappage de reason sur security_result.summary.
  • Mappage de http_status sur network.http.response_code.
  • Mappage de app_name sur principal.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 et activityname sur security_result.detection_fields.

2023-11-10

Amélioration :

  • Mappage de fw_rule_type sur security_result.rule_type.
  • Mappage de severity sur security_result.severity.
  • Mappage de device_serial_id sur principal.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 sur security_result.detection_fields.

2023-04-03

Amélioration :

  • Modification de la mise en correspondance de device_name de principal.hostname à intermediary.hostname.
  • Modification de la mise en correspondance de device_id de principal.asset.asset_id à intermediary.asset.asset_id.
  • Modification de la mise en correspondance de metadata.vendor_name de SOPHOS Ltd. à SOPHOS.
  • Mappage de sent_pkts sur network.sent_packets.
  • Mappage de recv_pkts sur network.received_packets.
  • Mappage de tran_src_ip sur principal.nat_ip.
  • Mappage de tran_src_port sur principal.nat_port.
  • Mappage de tran_dst_ip sur target.nat_ip.
  • Mappage de tran_dst_port sur target.nat_port.

2022-12-01

Amélioration :

  • Journaux analysés pour le fuseau horaire IST.
  • Mappage de application_category, application_risk and application_technology sur security_result.detection_fields.
  • Mappage de fw_rule_name sur security_result.rule_name.
  • Mappage de fw_rule_section sur security_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é sur event.idm.read_only_udm.principal.user.userid
  • device_id mappé sur event.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.