Collecter les journaux de l'AV 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 des champs du message en fonction des formats de journal AV Kaspersky courants.

Avant de commencer

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

  • Instance Google SecOps
  • Windows 2016 ou version ultérieure, ou hôte Linux avec systemd
  • Si l'exécution se fait 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 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

Pour plus d'options d'installation, consultez le guide 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:

    • 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 (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: 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 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 l'exportation des événements dans Kaspersky AV

  1. Connectez-vous à la console Kaspersky Security Center.
  2. Sélectionnez le serveur d'administration pour lequel 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 des événements".
  5. Sélectionnez Configurer l'exportation vers le 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 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.

Tableau 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 créer 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 Mappé directement à partir du champ Erreur dans le journal brut si le champ summary est vide.
et metadata.product_event_type Mappé directement à 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 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é par une chaîne contenant les champs label et description.
MD5 target.process.file.md5 Mappé directement à partir du champ MD5 dans le journal brut après sa 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 Mappé directement à partir du champ method dans le 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 créer le chemin d'accès complet.
p1 target.process.file.sha256 Mappé directement à partir du champ p1 dans le journal brut après sa 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 Mappé directement à 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 (sans distinction entre majuscules et minuscules), 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 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 Mappé directement à partir du champ SHA256 dans le journal brut après sa 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 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é sur le 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 Mappé directement à partir du champ user_name dans le journal brut si le champ User est vide.
metadata.event_type Définissez cette valeur 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.

Modifications

2025-02-13

Amélioration :

  • Ajout de la possibilité d'analyser les journaux CEF non analysés.

2025-02-05

Amélioration :

  • Ajout de la possibilité d'analyser les journaux CEF non analysés.

2023-10-13

Amélioration :

  • Hachage SHA256 et p1 ont été mappés à target.process.file.sha256.
  • Hachage MD5 et md5 ont été mappés à target.process.file.md5.
  • Mappage de intermediary sur event.idm.read_only_udm.intermediary.

2022-10-14

Amélioration :

  • Ajout de gsub pour contourner les caractères spéciaux indésirables.

2022-05-17

Amélioration :

  • Ajout de mappages pour les champs suivants
  • Nom (nom du processus/de l'application) (Name) mappé sur target.file.full_path (extension).
  • Chemin de l'application mappé sur target.file.full_path.
  • "Type d'événement" mappé sur "metadata.product_event_type".
  • ID du processus mappé sur target.process.pid.
  • "Description du résultat" mappée sur "metadata.description".
  • Erreur mappée sur security_result.summary.

2022-03-29

Amélioration :

  • Ajout de mappages pour les champs manquants suivants:
  • Mappage de Result description sur security_result.description.
  • Mappage de Type sur security_result.threat_name.
  • Mappage de MD5 sur process.file.md5.
  • Mappage de SHA256 sur process.file.sha256.
  • Mappage de p2 sur target.process.file.full_path.
  • Mappage de p5 sur security_result.rule_name.
  • Mappage de p7 sur principal.user.user_display_name.
  • Mappage de Reason sur security_result.summary.

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