Collecter les journaux Vectra Detect

Compatible avec :

Ce document explique comment ingérer des journaux Vectra Detect dans Google Security Operations à l'aide de Bindplane. L'analyseur transforme les journaux aux formats SYSLOG, JSON et CEF en un modèle de données unifié (UDM). Il normalise d'abord les données en supprimant les caractères et les champs inutiles, puis utilise des modèles grok pour extraire les informations de différents formats de journaux. Enfin, il mappe les champs extraits aux attributs UDM correspondants.

Avant de commencer

Assurez-vous de remplir les conditions suivantes :

  • Une instance Google SecOps
  • Un hôte Windows 2016 ou version ultérieure, ou Linux avec systemd
  • Si vous exécutez l'agent derrière un proxy, assurez-vous que les ports de pare-feu sont ouverts conformément aux exigences de l'agent BindPlane.
  • Accès privilégié à l'interface utilisateur Vectra

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

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
    

Autres ressources d'installation

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

  1. Accédez au fichier de configuration :

    1. 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.
    2. 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: 'VECTRA_DETECT'
        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 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 Vectra Detect pour envoyer des journaux Syslog

  1. Connectez-vous à l'interface utilisateur de Vectra Detect.
  2. Accédez à Paramètres> Notifications.
  3. Accédez à la section Syslog.
  4. Cliquez sur Modifier pour ajouter ou modifier la configuration Syslog.
    • Destination : saisissez l'adresse IP de l'agent Bindplane.
    • Port : saisissez le numéro de port de l'agent Bindplane.
    • Protocole : sélectionnez UDP ou TCP en fonction de la configuration réelle de votre agent Bindplane.
    • Format : sélectionnez JSON.
    • Types de journaux : sélectionnez les journaux que vous souhaitez envoyer à Google SecOps.
    • Cochez la case Inclure les informations détaillées.
  5. Sur la droite, vous pouvez voir trois boutons bascule pour une configuration supplémentaire :
    • Inclure les détections triées : lorsque cette option est désactivée, les messages syslog ne sont pas envoyés lorsque des détections triées sont créées ou mises à jour.
    • Inclure les détections dans la catégorie "Info" : lorsque cette option est désactivée, les messages syslog ne sont pas envoyés lorsque des détections de la catégorie "Info" sont créées ou mises à jour.
    • Inclure les baisses de score de l'hôte/du compte : lorsque cette option est désactivée, les messages syslog ne sont pas envoyés lorsque les scores de menace et de certitude diminuent et/ou restent les mêmes.
  6. Cliquez sur Enregistrer.
  7. Cliquez sur Tester pour tester la configuration.

Table de mappage UDM

Champ du journal Mappage UDM Logique
action read_only_udm.security_result.action Valeur extraite du champ "action" si [result] est défini sur "true" ou "failure" dans les événements d'audit.
category read_only_udm.security_result.category_details Valeur extraite du champ "category" (catégorie).
certitude read_only_udm.security_result.confidence Si [certainty] est compris entre 0 et 35, définissez la valeur sur "LOW_CONFIDENCE". Si [certainty] est compris entre 35 et 70, définissez la valeur sur "MEDIUM_CONFIDENCE". Si [certainty] est compris entre 70 et 100, définissez la valeur sur "HIGH_CONFIDENCE".
dd_bytes_rcvd read_only_udm.network.received_bytes Valeur extraite du champ "dd_bytes_rcvd".
dd_bytes_sent read_only_udm.network.sent_bytes Valeur extraite du champ "dd_bytes_sent".
dd_dst_dns read_only_udm.target.hostname Valeur extraite du champ "dd_dst_dns".
dd_dst_dns read_only_udm.target.asset.hostname Valeur extraite du champ "dd_dst_dns".
dd_dst_ip read_only_udm.target.asset.ip Valeur extraite du champ "dd_dst_ip".
dd_dst_ip read_only_udm.target.ip Valeur extraite du champ "dd_dst_ip".
dd_dst_port read_only_udm.target.port Valeur extraite du champ "dd_dst_port".
detection_id read_only_udm.metadata.product_log_id Valeur extraite du champ "detection_id".
detection_profile.name read_only_udm.security_result.detection_fields La clé est "detection_profile name", et la valeur est extraite du champ "detection_profile.name".
detection_profile.scoringDetections read_only_udm.security_result.detection_fields La clé est "detectionprofile scoringDetections{index}", et la valeur est extraite de chaque élément du tableau "detection_profile.scoringDetections".
detection_profile.vname read_only_udm.security_result.detection_fields La clé est "detection_profile vname", et la valeur est extraite du champ "detection_profile.vname".
dest_ip read_only_udm.target.asset.ip Valeur extraite du champ "dest_ip" dans les événements de campagne.
dest_ip read_only_udm.target.ip Valeur extraite du champ "dest_ip" dans les événements de campagne.
dest_name read_only_udm.target.asset.hostname Valeur extraite du champ "dest_name" dans les événements de campagne.
dest_name read_only_udm.target.hostname Valeur extraite du champ "dest_name" dans les événements de campagne.
d_type read_only_udm.additional.fields La clé est "d_type" et la valeur est extraite du champ "d_type".
d_type_vname read_only_udm.additional.fields La clé est "d_type_vname", et la valeur est extraite du champ "d_type_vname".
dvchost read_only_udm.observer.hostname Valeur extraite du champ "dvchost".
dvchost read_only_udm.principal.asset.hostname Valeur extraite du champ "dvchost" si [host_name] est vide dans les événements HOST.
dvchost read_only_udm.principal.hostname Valeur extraite du champ "dvchost" si [host_name] est vide dans les événements HOST.
headend_addr read_only_udm.observer.ip Valeur extraite du champ "headend_addr".
headend_addr read_only_udm.principal.asset.ip Valeur extraite du champ "headend_addr" si [host_ip] est vide dans les événements de détection.
headend_addr read_only_udm.principal.ip Valeur extraite du champ "headend_addr" si [host_ip] est vide dans les événements de détection.
href read_only_udm.target.url Valeur extraite du champ "href".
host_id read_only_udm.target.asset_id La valeur est "VectraAI.DETECT:{host_id}" dans les événements HOST.
host_ip read_only_udm.principal.asset.ip Valeur extraite du champ "host_ip" dans les événements HOST et Detections.
host_ip read_only_udm.principal.ip Valeur extraite du champ "host_ip" dans les événements HOST et Detections.
host_name read_only_udm.principal.asset.hostname Valeur extraite du champ "host_name".
host_name read_only_udm.principal.hostname Valeur extraite du champ "host_name".
msg_data read_only_udm.security_result.summary Valeur extraite du champ "msg_data" dans les événements d'audit et d'état.
quadrant read_only_udm.security_result.priority_details Valeur extraite du champ "quadrant".
résultat read_only_udm.security_result.action Si [result] est "true", définissez la valeur sur "ALLOW". Si [result] est défini sur "failure", définissez "BLOCK" dans les événements d'audit.
résultat read_only_udm.security_result.detection_fields La clé est "result" et la valeur est extraite du champ "result" dans les événements d'audit et d'état.
rôle read_only_udm.target.user.attribute.roles.name Valeur extraite du champ "role" dans les événements d'audit.
de gravité, read_only_udm.security_result.severity Si [threat] est compris entre 0 et 20, définissez la valeur sur "INFORMATIONAL". Si [menace] est compris entre 20 et 40, définissez la valeur sur "LOW" (FAIBLE). Si [threat] est compris entre 40 et 60, définissez la valeur sur "MEDIUM". Si [threat] est compris entre 60 et 80, définissez la valeur sur "HIGH" (ÉLEVÉ). Si [threat] est compris entre 80 et 100, définissez la valeur sur "CRITICAL".
de gravité, read_only_udm.security_result.severity_details Valeur extraite du champ "severity" (gravité).
source_ip read_only_udm.principal.asset.ip Valeur extraite du champ "source_ip" dans les événements d'audit et d'état.
source_ip read_only_udm.principal.ip Valeur extraite du champ "source_ip" dans les événements d'audit et d'état.
src read_only_udm.principal.asset.ip Valeur extraite du champ "src" dans les événements CEF.
src read_only_udm.principal.ip Valeur extraite du champ "src" dans les événements CEF.
src_ip read_only_udm.principal.asset.ip Valeur extraite du champ "src_ip" dans les événements de campagne.
src_ip read_only_udm.principal.ip Valeur extraite du champ "src_ip" dans les événements de campagne.
src_name read_only_udm.principal.asset.hostname Valeur extraite du champ "src_name" si [host_name] et [dvchost] sont vides.
src_name read_only_udm.principal.hostname Valeur extraite du champ "src_name" si [host_name] et [dvchost] sont vides.
menace read_only_udm.security_result.severity Si [threat] est compris entre 0 et 20, définissez la valeur sur "INFORMATIONAL". Si [menace] est compris entre 20 et 40, définissez la valeur sur "LOW" (FAIBLE). Si [threat] est compris entre 40 et 60, définissez la valeur sur "MEDIUM". Si [threat] est compris entre 60 et 80, définissez la valeur sur "HIGH" (ÉLEVÉ). Si [threat] est compris entre 80 et 100, définissez la valeur sur "CRITICAL".
triaged read_only_udm.additional.fields La clé est "triaged" et la valeur est extraite du champ "triaged".
type read_only_udm.metadata.product_event_type Valeur extraite du champ "type" dans les événements de santé.
utilisateur read_only_udm.target.user.userid Valeur extraite du champ "user" dans les événements d'audit.
vectra_timestamp read_only_udm.metadata.event_timestamp Valeur extraite du champ "vectra_timestamp".
version read_only_udm.metadata.product_version Valeur extraite du champ "version".
read_only_udm.metadata.event_type Définissez la valeur sur "USER_LOGIN" si [msg_data] contient "se connecter" et que [user] n'est pas vide dans les événements d'audit.
read_only_udm.metadata.event_type Définissez la valeur sur "SCAN_HOST" dans les événements HOST.
read_only_udm.metadata.event_type Définissez sur "NETWORK_HTTP" si [host_ip] n'est pas vide, [principal_present] est défini sur "true" et [target_present] est défini sur "true" dans les événements de détection.
read_only_udm.metadata.event_type Définissez sur "STATUS_UPDATE" si [principal_present] est défini sur "true" dans les événements de détection.
read_only_udm.metadata.event_type Définissez la valeur sur "NETWORK_CONNECTION" si [principal_present] et [target_present] sont définis sur "true" dans les événements de détection.
read_only_udm.metadata.event_type Définissez sur "NETWORK_CONNECTION" si [event_type] est "GENERIC_EVENT", [principal_present] est "true" et [target_present] est "true".
read_only_udm.metadata.event_type Définissez sur "STATUS_UPDATE" si [event_type] est "GENERIC_EVENT" et [principal_present] est défini sur "true".
read_only_udm.metadata.log_type Défini sur "VECTRA_DETECT".
read_only_udm.metadata.vendor_name Définissez-le sur "Vectra.AI".
read_only_udm.metadata.product_name Définissez la valeur sur "DETECT".
read_only_udm.network.application_protocol Définissez-le sur "HTTP" si [dd_dst_port] est défini sur 80.
read_only_udm.network.application_protocol Définissez la valeur sur "HTTPS" si [dd_dst_port] est défini sur 443.
read_only_udm.network.application_protocol Défini sur "UNKNOWN_APPLICATION_PROTOCOL" si [principal_present] et [target_present] sont définis sur "true" dans les événements de détection.
read_only_udm.network.http.method Défini sur "METHOD_OTHER".
read_only_udm.extensions.auth.type Définissez la valeur sur "AUTHTYPE_UNSPECIFIED" si [msg_data] contient "se connecter" dans les événements d'audit.
is_alert Définissez sur "true" si [triaged] est défini sur "true".

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