Collecter les journaux Sophos XG Firewall

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 à 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

  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 l'ID client Google SecOps

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

Installer l'agent Bindplane

Installation de fenêtres

  1. Ouvrez l'invite de commandes 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 les 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
    

Ressources d'installation supplémentaires

Configurer l'agent Bindplane pour ingérer Syslog et l'envoyer à 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 (par exemple, nano, vi ou le Bloc-notes).
  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 selon les besoins de votre infrastructure.

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

  5. Mettez à jour /path/to/ingestion-authentication-file.json en 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-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 de journal.
  3. Dans la section Serveurs Syslog, cliquez sur 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.
    • Établissement : sélectionnez DAEMON.
    • Niveau de gravité : sélectionnez Information.
    • Format : sélectionnez Format standard de l'appareil.
  5. Cliquez sur Enregistrer.
  6. 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

  1. 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
  2. Sélectionnez les journaux Protection Web suivants (journal de filtrage Web et journal de filtrage des applications) :
    • Filtre Web
    • Filtre d'application
  3. Sélectionnez les journaux Protection du réseau (journal IPS) suivants :
    • Anomalie
    • Signature
  4. 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.