Collecter les journaux de l'AV Kaspersky
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
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres du SIEM > Agents de collecte.
- 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
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres du SIEM > Profil.
- Copiez et sauvegardez le numéro client dans la section Détails de l'organisation.
Installer l'agent Bindplane
Installation de Windows
- Ouvrez l'invite de commande ou PowerShell en tant qu'administrateur.
Exécutez la commande suivante :
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Installation de Linux
- Ouvrez un terminal avec des droits root ou sudo.
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
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).
- Recherchez le fichier
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
Remplacez le port et l'adresse IP dans votre infrastructure si nécessaire.
Remplacez
<customer_id>
par le numéro client réel.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
- Connectez-vous à la console Kaspersky Security Center.
- Sélectionnez le serveur d'administration pour lequel vous souhaitez exporter les événements.
- Dans l'espace de travail Administration Server (Serveur d'administration), cliquez sur l'onglet Events (Événements).
- Cliquez sur le lien "Configurer les notifications et l'exportation des événements".
- Sélectionnez Configurer l'exportation vers le système SIEM dans la liste.
- 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.
- 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
etp1
ont été mappés àtarget.process.file.sha256
.Hachage MD5
etmd5
ont été mappés àtarget.process.file.md5
.- Mappage de
intermediary
surevent.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
sursecurity_result.description
. - Mappage de
Type
sursecurity_result.threat_name
. - Mappage de
MD5
surprocess.file.md5
. - Mappage de
SHA256
surprocess.file.sha256
. - Mappage de
p2
surtarget.process.file.full_path
. - Mappage de
p5
sursecurity_result.rule_name
. - Mappage de
p7
surprincipal.user.user_display_name
. - Mappage de
Reason
sursecurity_result.summary
.
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.