Collecter les journaux de l'antivirus Kaspersky

Compatible avec :

Ce document explique comment ingérer les journaux Kaspersky Antivirus dans Google Security Operations à l'aide de Bindplane. Le code de l'analyseur tente d'abord d'analyser le message de journal brut au format JSON. Si cela échoue, il utilise des expressions régulières (modèles grok) pour extraire les champs du message en fonction des formats de journaux Kaspersky AV courants.

Avant de commencer

Assurez-vous de remplir les conditions préalables suivantes :

  • Instance Google SecOps
  • Hôte Windows 2016 ou version ultérieure, ou hôte Linux avec systemd
  • Si vous exécutez le programme derrière un proxy, les ports du pare-feu sont ouverts.
  • Accès privilégié à Kaspersky Antivirus

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

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

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

  1. 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, 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: KASPERSKY_AV
                    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 l'exportation d'événements dans Kaspersky AV

  1. Connectez-vous à la console Kaspersky Security Center.
  2. Sélectionnez le serveur d'administration dont vous souhaitez exporter les événements.
  3. Dans l'espace de travail Administration Server (Serveur d'administration), cliquez sur l'onglet Events (Événements).
  4. Cliquez sur le lien "Configurer les notifications et l'exportation d'événements".
  5. Sélectionnez Configurer l'exportation vers un système SIEM dans la liste.
  6. Fournissez les informations de configuration suivantes :
    • Système SIEM : sélectionnez Arcsight (format CEF).
    • Adresse du serveur du système SIEM : saisissez l'adresse IP de l'agent Bindplane.
    • Port du serveur du système SIEM : saisissez le numéro de port de l'agent Bindplane (par exemple, 514 pour UDP).
    • Protocole : sélectionnez UDP.
  7. Cliquez sur OK.

Table de mappage UDM

Champ du journal Mappage UDM Logique
Application network.http.user_agent Mappé directement à partir du champ Application dans le journal brut.
Chemin d'accès de l'application target.process.file.full_path Utilisé avec le champ Name pour construire le chemin d'accès complet si Application path est présent dans le journal brut.
Composant target.resource.name Mappé directement à partir du champ Component dans le journal brut.
Catégorie de contenu security_result.category_details Ajouté au champ security_result.category_details si Content category est présent dans le journal brut.
Source de la catégorie de contenu target.resource.type Si la valeur contient databases, le champ UDM est défini sur DATABASE.
Erreur security_result.summary Directement mappé à partir du champ Erreur dans le journal brut si le champ summary est vide.
et metadata.product_event_type Directement mappé à partir du champ et dans le journal brut si le champ product_event_type est vide.
et security_result.category_details Ajouté au champ security_result.category_details.
etdn extensions.vulns.vulnerabilities.description Mappé directement à partir du champ etdn dans le journal brut.
Hachage SHA256 du fichier target.process.file.sha256 Mappé directement à partir du champ File SHA256 hash dans le journal brut.
gn security_result.about.labels key est défini sur GN et value est défini sur la valeur du champ gn.
hdn principal.hostname Mappé directement à partir du champ hdn dans le journal brut.
hanche principal.ip Mappé directement à partir du champ hip dans le journal brut.
host_name principal.hostname Mappé directement à partir du champ host_name dans le journal brut.
intermediary_host intermediary.hostname Mappé directement à partir du champ intermediary_host dans le journal brut.
intermediary_hostname intermediary.hostname Mappé directement à partir du champ intermediary_hostname dans le journal brut.
kv_data1 Ce champ est analysé et ses valeurs sont mappées à d'autres champs UDM.
kv_data2 Ce champ est analysé et ses valeurs sont mappées à d'autres champs UDM.
étiquette network.http.user_agent Si la valeur est User-Agent, le champ UDM est renseigné avec la valeur du champ description.
étiquette principal.hostname Si la valeur est Host, le champ UDM est renseigné avec le nom d'hôte extrait du champ description.
étiquette security_result.description Pour les autres valeurs, le champ UDM est renseigné avec une chaîne contenant les champs label et description.
MD5 target.process.file.md5 Directement mappé à partir du champ MD5 du journal brut après conversion en minuscules.
Hachage MD5 du fichier target.process.file.md5 Mappé directement à partir du champ MD5 file hash dans le journal brut.
message Ce champ est analysé et ses valeurs sont mappées à d'autres champs UDM.
méthode network.http.method Directement mappé à partir du champ method du journal brut s'il correspond à une liste de méthodes HTTP.
nom target.file.full_path Mappé directement à partir du champ name dans le journal brut.
Nom target.process.file.full_path Utilisé avec le champ application_path pour construire le chemin d'accès complet.
p1 target.process.file.sha256 Mappé directement à partir du champ p1 du journal brut après conversion en minuscules si le champ SHA256 est vide et que la valeur est une chaîne hexadécimale.
p2 target.process.file.full_path Mappé directement à partir du champ p2 dans le journal brut.
p5 security_result.rule_name Mappé directement à partir du champ p5 dans le journal brut.
p7 principal.user.user_display_name Directement mappé à partir du champ p7 dans le journal brut si les champs User et user_name sont vides.
ID du processus principal.process.pid Mappé directement à partir du champ Process ID dans le journal brut.
process_id target.process.pid Mappé directement à partir du champ process_id dans le journal brut.
protocol network.application_protocol Si la valeur contient http (non sensible à la casse), le champ UDM est défini sur HTTP.
Motif security_result.summary Mappé directement à partir du champ Reason dans le journal brut.
Page Web demandée target.url Mappé directement à partir du champ Requested web page dans le journal brut.
Résultat Si la valeur est Allowed, le champ sr_action est défini sur ALLOW.
rtid security_result.about.labels key est défini sur rtid et value est défini sur la valeur du champ rtid.
Règle security_result.description Mappé directement à partir du champ Rule dans le journal brut.
SHA256 target.process.file.sha256 Directement mappé à partir du champ SHA256 du journal brut après conversion en minuscules.
sr_action security_result.action Fusionné dans le champ security_result.action.
résumé security_result.summary Mappé directement à partir du champ summary dans le journal brut.
task_name security_result.about.labels key est défini sur TaskName et value est défini sur la valeur du champ task_name.
threat_action_taken Si la valeur est blocked, le champ security_action est défini sur BLOCK. Si la valeur est allowed, le champ security_action est défini sur ALLOW.
timestamp metadata.event_timestamp Permet de renseigner le code temporel de l'événement.
Type security_result.threat_name Mappé directement à partir du champ Type dans le journal brut.
URL network.http.referral_url Mappé directement à partir du champ url dans le journal brut.
Utilisateur principal.user.user_display_name Le nom d'utilisateur est extrait de ce champ et mappé au champ UDM.
Utilisateur principal.administrative_domain Le domaine est extrait de ce champ et mappé sur le champ UDM.
user_name principal.user.user_display_name Directement mappé à partir du champ user_name dans le journal brut si le champ User est vide.
metadata.event_type Définissez sur SCAN_VULN_NETWORK si Application path et Name sont présents, sur STATUS_UNCATEGORIZED si hdn ou host_name sont présents, ou sur GENERIC_EVENT dans les autres cas.
metadata.vendor_name Toujours défini sur KASPERSKY.
metadata.product_name Toujours défini sur KASPERSKY_AV.
metadata.log_type Toujours défini sur KASPERSKY_AV.

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