Collecter les journaux Cisco Firepower NGFW

Compatible avec :

Ce document explique comment ingérer les journaux Cisco Firepower Next Generation Firewall (NGFW) dans Google Security Operations à l'aide de Bindplane. L'analyseur extrait les journaux de différents formats (syslog, JSON et combinaisons de ces formats), normalise le code temporel et mappe les champs pertinents au modèle de données unifié (UDM). Il gère à la fois les messages syslog conventionnels et les charges utiles au format JSON dans les journaux, en tirant parti des modèles grok et de la logique conditionnelle pour extraire des champs tels que l'ID d'événement, la gravité et l'adresse IP du client. Il enrichit ensuite les données avec des libellés basés sur le nom d'hôte HTTP et l'URI.

Avant de commencer

Assurez-vous de remplir les conditions suivantes :

  • Instance Google SecOps
  • Windows 2016 ou 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.
  • Accès privilégié à un appareil Cisco Firepower

Obtenir le fichier d'authentification d'ingestion Google SecOps

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

Installez l'agent Bindplane sur votre système d'exploitation Windows ou Linux en suivant les instructions ci-dessous.

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

Pour plus d'options d'installation, consultez le guide d'installation.

Configurer l'agent Bindplane pour ingérer les journaux Syslog et les envoyer à Google SecOps

  1. Accédez au fichier de configuration :
    • Trouvez le fichier config.yaml. Il se trouve généralement 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, 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_file_path: '/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
            log_type: 'CISCO_FIREPOWER_FIREWALL'
            raw_log_field: body
            ingestion_labels:
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
    • Remplacez 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.json avec le chemin d'accès à l'emplacement 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 Syslog sur un appareil Cisco FirePower

  1. Connectez-vous à l'interface utilisateur Web de Firepower Device Manager.
  2. Accédez à Paramètres système > Paramètres de journalisation.
  3. Basculez le bouton Journalisation des données sur Activer.
  4. Cliquez sur l'icône + sous Syslog Servers (Serveurs Syslog).
  5. Cliquez sur Créer un serveur Syslog. (Vous pouvez également créer le serveur Syslog dans Objets > Serveurs Syslog.)
  6. Fournissez les informations de configuration suivantes :
    • Adresse IP : saisissez l'adresse IP de l'agent Bindplane.
    • Type de protocole : sélectionnez UDP.
    • Numéro de port : saisissez le numéro de port de l'agent Bindplane.
    • Sélectionnez Interface de données ou Interface de gestion.
  7. Cliquez sur OK.
  8. Sélectionnez le serveur Syslog que vous venez de créer dans la liste, puis cliquez sur OK.
  9. Cliquez sur Niveau de gravité pour filtrer tous les événements, puis sélectionnez le niveau de journalisation Informations dans la liste.
  10. Cliquez sur Enregistrer.
  11. Cliquez sur l'icône Déployer de nouveaux paramètres> Déployer maintenant.
  12. Cliquez sur Règles en haut de l'écran.
  13. Pointez sur le côté droit de la règle ACP, puis cliquez sur edit Modifier.
  14. Accédez à l'onglet Logging.
  15. Sélectionnez À la fin de la connexion.
  16. Ouvrez la liste Sélectionner une configuration d'alerte Syslog.
  17. Sélectionnez le serveur Syslog Bindplane.
  18. Cliquez sur OK.
  19. Cliquez sur l'icône Déployer de nouveaux paramètres> Déployer maintenant.

Table de mappage UDM

Champ de journal Mappage UDM Logique
AccessControlRuleAction security_result.action Directement mappé à partir du journal brut. Les valeurs sont normalisées en UDM (ALLOW/BLOCK).
AccessControlRuleName security_result.rule_name Directement mappé à partir du journal brut.
ACPolicy security_result.rule_labels.value Directement mappé à partir du journal brut. La clé est définie sur "ACPolicy".
ApplicationProtocol network.application_protocol Directement mappé à partir du journal brut.
Client network.http.user_agent Directement mappé à partir du journal brut.
ClientVersion principal.asset.platform_version Directement mappé à partir du journal brut.
collection_time.nanos metadata.event_timestamp.nanos Directement mappé à partir du journal brut.
collection_time.seconds metadata.event_timestamp.seconds Directement mappé à partir du journal brut.
ConnectionDuration network.session_duration.seconds Directement mappé à partir du journal brut, converti en secondes si nécessaire (par exemple, à partir du format de durée).
data metadata.description Utilisé en association avec eventId pour générer une description plus détaillée. Également utilisé pour extraire d'autres champs à l'aide de grok et d'expressions régulières.
deviceId metadata.product_log_id Directement mappé à partir du journal brut après avoir été renommé device_uuid.
device_uuid metadata.product_log_id Directement mappé à partir du journal brut.
DstIP target.asset.ip, target.ip Directement mappé à partir du journal brut.
DstPort target.port Directement mappé à partir du journal brut.
EgressInterface principal.asset.attribute.labels.value Directement mappé à partir du journal brut. La clé est définie sur "EgressInterface".
EgressZone target.location.name Directement mappé à partir du journal brut.
eventId metadata.product_event_type Directement mappé à partir du journal brut. Également utilisé pour la logique conditionnelle et le filtrage.
FileAction security_result.summary Directement mappé à partir du journal brut.
FileDirection metadata.description Directement mappé à partir du journal brut et ajouté à la description.
FileName target.file.full_path Directement mappé à partir du journal brut.
FilePolicy security_result.rule_name Directement mappé à partir du journal brut.
FileSize target.file.size Directement mappé à partir du journal brut.
FileSHA256 target.file.sha256 Directement mappé à partir du journal brut.
FileSandboxStatus security_result.description Directement mappé à partir du journal brut.
HTTPReferer network.http.referral_url Directement mappé à partir du journal brut.
HTTPResponse network.http.response_code Directement mappé à partir du journal brut.
HTTP_Hostname target.resource.attribute.labels.value Directement mappé à partir du journal brut. La clé est définie sur "HTTP_Hostname".
HTTP_URI target.resource.attribute.labels.value Directement mappé à partir du journal brut. La clé est définie sur "HTTP_URI".
IngressInterface principal.asset.attribute.labels.value Directement mappé à partir du journal brut. La clé est définie sur "IngressInterface".
IngressZone principal.location.name Directement mappé à partir du journal brut.
InitiatorBytes network.received_bytes Directement mappé à partir du journal brut.
InlineResult security_result.action_details Directement mappé à partir du journal brut.
IntrusionPolicy security_result.rule_name Directement mappé à partir du journal brut.
log_type metadata.log_type Directement mappé à partir du journal brut.
Message security_result.description Directement mappé à partir du journal brut, souvent précédé de "Message : ".
NAPPolicy principal.asset.attribute.labels.value Directement mappé à partir du journal brut. La clé est définie sur "NAPPolicy".
Prefilter Policy security_result.rule_labels.value Directement mappé à partir du journal brut. La clé est définie sur "Prefilter Policy".
Priority security_result.priority_details Directement mappé à partir du journal brut.
priorityId security_result.priority_details Directement mappé à partir du journal brut.
product metadata.product_name Définissez-le sur "Firepower Firewall".
Protocol network.ip_protocol Directement mappé à partir du journal brut. Les valeurs sont normalisées sur UDM (TCP, UDP, ICMP, etc.).
ResponderBytes network.sent_bytes Directement mappé à partir du journal brut.
Revision security_result.about.labels.value Directement mappé à partir du journal brut. La clé est définie sur "Signature_Version".
ruleId security_result.rule_id Directement mappé à partir du journal brut.
security_result.severity security_result.severity Définie en fonction du champ severity du journal brut, à l'aide d'une table de conversion pour le mappage aux valeurs de gravité UDM.
security_result.severity_details security_result.severity_details Définie en fonction du champ severity du journal brut, à l'aide d'une table de recherche pour le mappage aux détails de gravité de l'UDM.
SID security_result.threat_id Directement mappé à partir du journal brut.
SrcIP principal.asset.ip, principal.ip Directement mappé à partir du journal brut.
SrcPort principal.port Directement mappé à partir du journal brut.
syslog_msg_id metadata.product_event_type Mappé directement à partir du journal brut après avoir été converti en chaîne. Permet de remplacer eventId, le cas échéant.
syslog_msg_text metadata.description, security_result.description Mappé directement à partir du journal brut, parfois précédé de "Message : ". Utilisé pour remplacer la description générée à partir de data et eventId.
syslog_severity security_result.severity Mappé directement à partir du journal brut après avoir été converti en chaîne. Permet de remplacer le niveau de gravité dérivé de eventId. Les valeurs sont normalisées au format UDM (INFORMATIONAL, WARNING, ERROR, etc.).
sysloghost intermediary.hostname Directement mappé à partir du journal brut.
ThreatName security_result.threat_name Directement mappé à partir du journal brut.
ts metadata.event_timestamp Analysé à partir du journal brut à l'aide de filtres de date et de différents formats.
ts_year metadata.event_timestamp Analysé à partir du journal brut à l'aide de filtres de date et de différents formats.
URL target.url Directement mappé à partir du journal brut.
URLCategory security_result.category_details Directement mappé à partir du journal brut.
URLReputation security_result.confidence_details Directement mappé à partir du journal brut.
User target.user.userid Directement mappé à partir du journal brut.
UserAgent network.http.user_agent Directement mappé à partir du journal brut.
UserName target.user.userid Directement mappé à partir du journal brut.
user_name principal.user.email_addresses Directement mappé à partir du journal brut pour des types d'événements spécifiques.
WebApplication target.application Directement mappé à partir du journal brut.
metadata.event_type est défini sur la valeur par défaut NETWORK_CONNECTION et est parfois remplacé en fonction de eventId ou d'autres champs.
metadata.vendor_name est toujours défini sur "Cisco".

Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.