Collecter les journaux Archer IRM
Ce document explique comment ingérer des journaux Archer IRM (Integrated Risk Management) dans Google Security Operations à l'aide de Bindplane. Le parseur tente d'abord de structurer les données SYSLOG à l'aide d'un modèle Grok spécifique. Si le modèle ne correspond pas, il suppose un format clé-valeur, extrait les champs et les mappe au modèle de données unifié (UDM), en gérant différents types d'événements et informations sur les ressources de base de données au fur et à mesure.
Avant de commencer
Assurez-vous de remplir les conditions suivantes :
- Instance Google SecOps
- Un hôte Windows 2016 ou version ultérieure, ou un hôte Linux avec
systemd - Si vous exécutez le programme derrière un proxy, les ports du pare-feu sont ouverts.
- Instance Archer IRM 6.x sur site avec la fonctionnalité Audit Logging sous licence
- Accès administrateur au panneau de configuration Archer
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
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,viou le Bloc-notes).
- Recherchez le fichier
Modifiez le fichier
config.yamlcomme suit :receivers: tcplog: # Replace the port and IP address as required listen_address: "0.0.0.0:6514" 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: 'ARCHER_IRM' raw_log_field: body ingestion_labels: service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - tcplog 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.jsonavec le chemin d'accès à l'emplacement 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 Syslog pour la journalisation des audits Archer IRM
- Ouvrez le panneau de configuration Archer sur le serveur d'applications.
- Accédez à Gestion des instances > Toutes les instances, puis double-cliquez sur l'instance cible.
- Dans l'onglet Général, recherchez la section Audit, puis cochez la case Activer la journalisation d'audit pour cette instance.
- Fournissez les informations de configuration suivantes :
- Nom d'hôte ou adresse IP : saisissez l'adresse IP de l'agent Bindplane.
- Port : saisissez le numéro de port de l'agent Bindplane (par exemple, 6514).
- Version IP : sélectionnez IPv4.
- Méthode de trafic IP : sélectionnez TCP.
- Cliquez sur Tester la connexion (disponible uniquement lorsque TCP est sélectionné) pour vérifier la connectivité.
- Cliquez sur Enregistrer.
Table de mappage UDM
| Champ de journal | Mappage UDM | Logique |
|---|---|---|
| ArcherInstance | additional.fields.ArcherInstance.string_value | Extrait du champ ArcherInstance du message de journal brut. |
| ArcherLog | Ce champ est analysé et ses données sont mappées à d'autres champs UDM. | |
| ArcherVersion | additional.fields.ArcherVersion.string_value | Extrait du champ ArcherVersion du message de journal brut. |
| InputParameter | additional.fields.InputParameter.string_value | Extrait du champ InputParameter du message de journal brut. |
| LogSourceIdentifier | Ce champ est analysé et ses données sont mappées à d'autres champs UDM. | |
| MethodName | additional.fields.MethodName.string_value | Extrait du champ MethodName du message de journal brut. |
| OutputValues | additional.fields.OutputValue.string_value | Extrait du champ OutputValues du message de journal brut. |
| Opération réussie | security_result.summary | La valeur est définie sur Success: concaténé avec la valeur du champ Success dans le message de journal brut. |
| UserId | principal.user.userid | Extrait du champ UserId du message de journal brut. |
| NomUtilisateur | principal.user.user_display_name | Extrait du champ UserName du message de journal brut. |
| DB_DRIVER | target.resource.attribute.labels.db_driver.value | Extrait du champ DB_DRIVER du message de journal brut. |
| DB_HOST | target.resource.attribute.labels.db_host.value | Extrait du champ DB_HOST du message de journal brut. |
| DB_NAME | target.resource.attribute.labels.db_name.value | Extrait du champ DB_NAME du message de journal brut. |
| DB_PORT | target.resource.attribute.labels.db_port.value | Extrait du champ DB_PORT du message de journal brut. |
| DB_URL | target.resource.attribute.labels.db_url.value | Extrait du champ DB_URL du message de journal brut. |
| company_security_event_id | metadata.product_log_id | Extrait du champ company_security_event_id du message de journal brut. |
| create_date | metadata.event_timestamp | Converti en code temporel à partir du format UNIX_MS. |
| databasename | target.resource.attribute.labels.db_name.value | Extrait du champ databasename du message de journal brut si DB_NAME n'est pas présent. |
| chiffrer | security_result.detection_fields.encrypt.value | Extrait du champ encrypt du message de journal brut. |
| eventid | metadata.product_event_type | Extrait du champ eventid du message de journal brut. |
| eventtime | metadata.event_timestamp | Horodatage converti à partir de différents formats. |
| integratedSecurity | security_result.detection_fields.integratedSecurity.value | Extrait du champ integratedSecurity du message de journal brut. |
| N/A | extensions.auth.type | Définissez sur AUTHTYPE_UNSPECIFIED pour les événements USER_LOGIN et USER_LOGOUT. |
| N/A | metadata.event_type | Définie sur USER_RESOURCE_ACCESS si le journal est analysé par le modèle Grok. Définie sur USER_LOGIN, si security_event_name est User Login. Définie sur USER_LOGOUT, si security_event_name est User Logout. Définie sur USER_RESOURCE_ACCESS si security_event_name contient Security Events. Sinon, définissez-la sur GENERIC_EVENT. |
| N/A | metadata.log_type | Variable définie sur ARCHER_IRM. |
| N/A | metadata.product_name | Définie sur Archer si le journal est analysé par le modèle Grok. Sinon, définissez-la sur RSA. |
| N/A | metadata.vendor_name | Définie sur RSA si le journal est analysé par le modèle Grok. Sinon, définissez-la sur Archer. |
| N/A | principal.ip | Définie sur 1.2.3.4 si le journal est analysé par le modèle Grok. |
| N/A | principal.port | Définissez la valeur extraite de LogSourceIdentifier si le journal est analysé par le modèle Grok. |
| N/A | security_result.action | Définie sur ALLOW si Success est True, sinon définie sur BLOCK. |
| N/A | target.resource.resource_type | Définissez sur DATABASE si des champs liés à la base de données sont présents. |
| source_user | principal.user.userid | Extrait du champ source_user du message de journal brut. |
| target_user | target.user.userid | Extrait du champ target_user du message de journal brut. |
| trustServerCertificate | security_result.detection_fields.trustServerCertificate.value | Extrait du champ trustServerCertificate du message de journal brut. |
| version | metadata.product_version | Extrait du champ version du message de journal brut. |
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.