Collecter les journaux de l'antivirus 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 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
- 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 l'ID client Google SecOps
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres SIEM> Profil.
- Copiez et enregistrez le numéro client de la section Informations sur l'organisation.
Installer l'agent Bindplane
Installation de fenêtres
- Ouvrez l'invite de commandes 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 les 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
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
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).
- 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 selon les besoins de votre infrastructure.
Remplacez
<customer_id>
par le numéro client réel.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
- Connectez-vous à la console Kaspersky Security Center.
- Sélectionnez le serveur d'administration dont 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 d'événements".
- Sélectionnez Configurer l'exportation vers un 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 du 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.
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.