Collecter les journaux MySQL
Ce document explique comment ingérer des journaux MySQL dans Google Security Operations à l'aide de Bindplane. L'analyseur extrait d'abord les champs communs des messages SYSLOG MySQL à l'aide de grok
. Il utilise ensuite des branchements conditionnels (if
, else if
) et la correspondance des expressions régulières pour identifier des types d'événements spécifiques dans les messages du journal, en extrayant et en mappant les informations pertinentes dans le schéma UDM (Unified Data Model).
Avant de commencer
Assurez-vous de remplir les conditions suivantes :
- Instance Google SecOps
- 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.
- Accès privilégié à l'hôte MySQL
- Base de données MySQL et Rsyslog installés
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 Bindlane
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: 'MYSQL' 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 Syslog dans MySQL
Connectez-vous à l'hôte MySQL à l'aide de SSH.
Connectez-vous à la base de données MySQL :
mysql -u root -p
Vérifiez le plug-in d'audit
server_audit.so
:show variables like 'plugin_dir';
Si vous ne trouvez pas le fichier du plug-in dans son répertoire, installez le plug-in à l'aide de la commande suivante :
install plugin server_audit soname 'server_audit.so';
Vérifiez que le plug-in est installé et activé :
show plugins;
Modifiez le fichier
/etc/my.cnf
à l'aide devi
, activez les éléments suivants et enregistrez le fichier :server_audit_events='CONNECT,QUERY,TABLE' server_audit_file_path=server_audit.log server_audit_logging=ON server_audit_output_type=SYSLOG server_audit_syslog_facility=LOG_LOCAL6
Vérifiez les variables d'audit à l'aide de la commande suivante :
show global variables like "server_audit%";
Vérifiez que l'audit est activé à l'aide de la commande suivante :
Show global status like 'server_audit%';
Modifiez le fichier
/etc/rsyslog.conf
à l'aide devi
pour activer l'utilisation d'UDP et enregistrer le fichier :*.* @@<bindplane-agent-ip>:<bindplane-agent-port>
Remplacez
<bindplane-agent-ip>
et<bindplane-agent-port>
par la configuration de votre agent Bindplane.Redémarrez le service MySQL et connectez-vous à la base de données MySQL.
/etc/init.d/mysqld restart
Table de mappage UDM
Champ du journal | Mappage UDM | Logique |
---|---|---|
action | read_only_udm.metadata.event_type | Si la valeur est Created , la valeur est FILE_CREATION. Si la valeur est Deleted , la valeur est FILE_DELETION. Sinon, aucune modification n'est apportée. |
base de données | read_only_udm.target.resource.parent | |
db_hostname | read_only_udm.target.hostname | |
db_user | read_only_udm.target.user.userid | |
description | read_only_udm.security_result.description | |
error_details | Il s'agit d'une variable temporaire. Ignorez-la. | |
error_level | read_only_udm.security_result.severity | Si la valeur est error , le niveau de gravité est défini sur "ERROR" (ERREUR). S'il est warning , il est défini sur "MEDIUM" (MOYEN). S'il est note , il est défini sur "INFORMATIONAL" (INFORMATIONNEL). Sinon, aucune modification n'est apportée. |
error_message | read_only_udm.security_result.summary | |
file_path | read_only_udm.target.file.full_path | |
file_size | read_only_udm.target.file.size | |
nom d'hôte | read_only_udm.principal.hostname | |
inner_message | read_only_udm.security_result.description | |
résumé | read_only_udm.metadata.product_event_type | |
table | read_only_udm.target.resource.name | |
table_not_found | Il s'agit d'une variable temporaire. Ignorez-la. | |
timestamp | read_only_udm.metadata.event_timestamp | |
read_only_udm.extensions.auth.type | Valeur statique : MACHINE |
|
read_only_udm.metadata.event_type | Valeur statique : USER_LOGIN , GENERIC_EVENT , STATUS_UPDATE , FILE_CREATION , FILE_DELETION |
|
read_only_udm.metadata.log_type | Valeur statique : MYSQL |
|
read_only_udm.metadata.product_name | Valeur statique : MySQL |
|
read_only_udm.metadata.vendor_name | Valeur statique : Oracle Corporation |
|
read_only_udm.security_result.action | Valeur statique : BLOCK |
|
read_only_udm.target.resource.resource_type | Valeur statique : DATABASE , TABLE |
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.