Collecter les journaux Vectra Stream
Ce document explique comment ingérer les journaux Vectra Stream dans Google Security Operations à l'aide de Bindplane. L'analyseur extrait les paires clé/valeur des journaux Vectra Stream, normalise différents champs dans un modèle de données unifié (UDM) et mappe les types de journaux à des types d'événements UDM spécifiques. Il gère les journaux au format JSON et syslog, supprime les messages mal formés et enrichit les données avec un contexte supplémentaire en fonction de valeurs de champ spécifiques.
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
- 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
Installez l'agent Bindplane sur votre système d'exploitation Windows ou Linux en suivant les instructions ci-dessous.
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
Autres ressources d'installation
- Pour plus d'options d'installation, consultez ce guide d'installation.
Configurer l'agent Bindplane pour ingérer Syslog et l'envoyer à Google SecOps
Accédez au fichier de configuration :
- 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. - Ouvrez le fichier à l'aide d'un éditeur de texte (par exemple,
nano,viou le Bloc-notes).
- Trouvez le fichier
Modifiez le fichier
config.yamlcomme 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_STREAM' 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.jsonen 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-agentPour 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 Stream pour envoyer des journaux Syslog
- Connectez-vous à l'interface utilisateur Vectra (cerveau).
- Accédez à Paramètres> Notifications.
- Accédez à la section Syslog.
- Cliquez sur Modifier pour ajouter ou modifier la configuration Syslog.
- Fournissez les informations de configuration suivantes :
- 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.
- Cliquez sur Enregistrer.
- Cliquez sur Tester pour tester la configuration.
Table de mappage UDM
| Champ de journal | Mappage UDM | Logique |
|---|---|---|
| AA | network.dns.authoritative | Converti en valeur booléenne à partir d'une valeur de chaîne. |
| account_session_id | network.session_id | Mappage direct. |
| account_session_time | network.session_duration | Converti en code temporel à partir de secondes UNIX. |
| réponses | network.dns.answers.data | Mappage direct. |
| assigned_ip | network.dhcp.yiaddr | Mappage direct. |
| beacon_type | metadata.description | Mappage direct. |
| beacon_uid | network.session_id | Mappage direct. |
| calling_station_id | intermediary.asset.product_object_id | Mappage direct. |
| certificate.issuer | network.tls.client.certificate.issuer | Mappage direct. |
| certificate.not_valid_after | network.tls.client.certificate.not_after | Converti en code temporel à partir de UNIX ou UNIX_MS selon le format. |
| certificate.not_valid_before | network.tls.client.certificate.not_before | Converti en code temporel à partir de UNIX ou UNIX_MS selon le format. |
| certificate.serial | network.tls.client.certificate.serial | Mappage direct. |
| certificate.subject | network.tls.client.certificate.subject | Mappage direct. |
| certificate.version | network.tls.client.certificate.version | Mappage direct. |
| chiffrement | network.tls.cipher | Mappage direct. |
| cipher_alg | network.tls.cipher | Mappage direct. |
| Client | principal.application | Mappage direct. |
| client_cipher | network.tls.client.supported_ciphers | Mappage direct. |
| community_id | network.community_id | Mappage direct. |
| compression_alg | additional.fields.value.string_value | Ajouté aux champs supplémentaires avec la clé "compression_alg". |
| connect_info | security_result.description | Mappage direct. |
| conn_state | metadata.description | Mappé à une description en fonction de la valeur de conn_state. |
| biscuit | target.user.userid | Mappage direct. |
| courbe | network.tls.curve | Mappage direct. |
| dhcp_server_ip | network.dhcp.giaddr | Mappage direct. |
| dns_server_ips | principal.ip | Chaque adresse IP du tableau est ajoutée au tableau principal.ip. |
| domaine | target.domain.name | Mappage direct. |
| dst_display_name | target.hostname, target.asset.hostname | Mappage direct. |
| dst_luid | target.asset.product_object_id | Mappage direct. |
| duration | network.session_duration.seconds | Converti en entier à partir d'une valeur de chaîne. |
| endpoint | principal.application | Mappage direct. |
| établie | network.tls.established | Converti en valeur booléenne à partir d'une valeur de chaîne. |
| hôte | target.hostname, target.asset.hostname | Nom d'hôte extrait du champ "host". |
| host_key | additional.fields.value.string_value | Ajouté aux champs supplémentaires avec la clé "host_key". |
| host_key_alg | additional.fields.value.string_value | Ajouté aux champs supplémentaires avec la clé "host_key_alg". |
| host_multihomed | additional.fields.value.string_value | Ajouté aux champs supplémentaires avec la clé "host_multihomed" et la valeur "subnet %{host_multihomed}". |
| nom d'hôte | target.hostname, target.asset.hostname | Mappage direct. |
| id.orig_h | principal.ip | Mappage direct. |
| id.orig_p | principal.port | Converti en entier à partir d'une valeur de chaîne. |
| id.resp_h | target.ip, target.asset.ip | Mappage direct. |
| id.resp_p | target.port | Converti en entier à partir d'une valeur de chaîne. |
| issuer | network.tls.client.certificate.issuer | Mappage direct. |
| ja3 | network.tls.client.ja3 | Mappage direct. |
| ja3s | network.tls.server.ja3s | Mappage direct. |
| kex_alg | additional.fields.value.string_value | Ajouté aux champs supplémentaires avec la clé "kex_alg". |
| lease_time | network.dhcp.lease_time_seconds | Converti en entier non signé à partir d'une valeur de chaîne. |
| log_type | metadata.log_type | Mappage direct. |
| mac | principal.mac | Mappage direct. |
| mac_alg | additional.fields.value.string_value | Ajouté aux champs supplémentaires avec la clé "mac_alg". |
| mail_from | network.email.from | Mappage direct. |
| metadata_type | metadata.product_event_type | Mappage direct. |
| méthode | network.http.method | Mappage direct. |
| nom | target.file.full_path | Mappage direct. |
| nas_identifier | target.user.attribute.roles.name | Mappage direct. |
| next_protocol | network.tls.next_protocol | Mappage direct. |
| orig_hostname | principal.hostname | Mappage direct. |
| orig_ip_bytes | network.sent_bytes | Converti en entier non signé à partir d'une valeur de chaîne. |
| orig_sluid | principal.hostname | Mappage direct. |
| chemin d'accès | target.file.full_path | Mappage direct. |
| proto | network.ip_protocol | Mappé au nom du protocole IP en fonction de la valeur numérique. |
| par procuration | principal.ip | Si la valeur est une adresse IP, elle est ajoutée au tableau principal.ip. |
| qclass | network.dns.questions.class | Converti en entier non signé à partir d'une valeur de chaîne. |
| qclass_name | network.dns.questions.name | Mappage direct. |
| requête | network.dns.questions.name, principal.process.command_line | Mappage direct. |
| qtype | network.dns.questions.type | Converti en entier non signé à partir d'une valeur de chaîne. |
| RA | network.dns.recursion_available | Converti en valeur booléenne à partir d'une valeur de chaîne. |
| radius_type | metadata.description | Mappage direct. |
| rcode | network.dns.response_code | Converti en entier non signé à partir d'une valeur de chaîne. |
| RD | network.dns.recursion_desired | Converti en valeur booléenne à partir d'une valeur de chaîne. |
| rcpt_to | network.email.reply_to, network.email.to | La première adresse e-mail est mappée sur "reply_to", et les autres sont ajoutées au tableau "to". |
| referrer | network.http.referral_url | Mappage direct. |
| resp_domain | target.domain.name | Mappage direct. |
| resp_hostname | target.hostname, target.asset.hostname | Mappage direct. |
| resp_ip_bytes | network.received_bytes | Converti en entier non signé à partir d'une valeur de chaîne. |
| resp_mime_types | target.file.mime_type | Mappage direct. |
| résultat | security_result.description | Mappage direct. |
| result_code | security_result.action_details | Mappage direct. |
| rtt | network.session_duration.seconds | Converti en entier à partir d'une valeur de chaîne. |
| security_result | security_result | Fusionné avec l'objet security_result existant. |
| sensor_uid | observer.asset_id | Format : "Sensor_UID:%{sensor_uid}". |
| serveur | target.application | Mappage direct. |
| server_name | network.tls.client.server_name | Mappage direct. |
| service | target.application | Mappage direct. |
| src_display_name | principal.hostname | Mappage direct. |
| src_luid | principal.asset.product_object_id | Mappage direct. |
| état | security_result.summary | Mappage direct. |
| status_code | network.http.response_code | Converti en entier à partir d'une valeur de chaîne. |
| status_msg | security_result.summary | Mappage direct. |
| subject | network.email.subject | Mappage direct. |
| success | security_result.action | Correspond à "ALLOW" si la valeur est "true", et à "BLOCK" si la valeur est "false". |
| TC | network.dns.truncated | Converti en valeur booléenne à partir d'une valeur de chaîne. |
| trans_id | network.dhcp.transaction_id, network.dns.id | Converti en entier non signé à partir d'une valeur de chaîne. |
| ts | metadata.event_timestamp | Converti en code temporel à partir de différents formats. |
| uid | metadata.product_log_id | Mappage direct. |
| uri | target.url | Mappage direct. |
| user_agent | network.http.user_agent | Mappage direct. |
| nom d'utilisateur | principal.user.userid | Mappage direct. |
| version | network.tls.version, principal.platform_version | Mappage direct. |
| version_num | network.tls.version_protocol | Mappage direct. |
| metadata.event_type | Déterminé par la logique de l'analyseur en fonction des types de journaux et de métadonnées. | |
| metadata.vendor_name | Valeur codée en dur : "Vectra". | |
| metadata.product_name | Valeur codée en dur : "Vectra Stream". |
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.