MySQL moyenne des requêtes par seconde

Désactiver l’historique MySQL

I. Présentation

MySQL dispose d’un historique de commande par client. Cela permet, comme sous le bash Linux, de retrouver les commandes passées aux précédentes connexions et ainsi de les rejouer facilement. Cela peut donc être pratique mais aussi présenter un problème de sécurité majeur si l’accès au compte d’un client n’est pas sur. Dans ce tutoriel, nous allons donc voir les danger de l’historique MySQL et également voir une solution de protection contre ce problème. Pour information, le tutoriel est illustré avec une machine Debian 7 sous VirtualBox et avec un serveur MySQL 5.5 installé depuis les dépôts.

II. Problématique de l’historique MySQL

Nous allons ici supposer qu’un attaquant a réussi à obtenir l’accès SSH d’un utilisateur se connectant régulièrement au serveur MySQL. L’attaquant ayant les droits sur le répertoire « /home/user » de l’utilisateur, il pourra très facilement lire le fichier « .mysql_history » qui contient comme dit précédemment les commandes passées par l’utilisateur sur ses sessions MySQL.

cat   ~/.mysql_history

 Note : Sous Linux, les fichiers dont le nom commence par un « . » sont des fichiers cachés, il faut donc l’option « –a » de la commande « ls » pour les voir.

Il verra donc quelque chose ressemblant à cela :

Aperçu d’un fichier .mysql_history.

On voit donc bien les commandes passées par l’utilisateur lors de ses précédentes connexions. On ne voit ici que des commandes basiques (ce qui peut déjà représenter beaucoup car nous pouvons voir des noms de base de données, table, attribut, etc.). Si l’utilisateur a créé un utilisateur récemment, nous le verrons aussi :

MySQLHistory02

Nous voyons donc le nom de l’utilisateur et, pire encore, son mot de passe. Nous  voyons donc bien ici que cela constitue un problème de sécurité.

III. Vider le fichier mysql_history

Face à cela, la solution la plus simple est donc d’effacer les commandes MySQL sauvegardées. On peut le faire facilement après la connexion au serveur MySQL avec la commande suivant :

echo "" > ~/.mysql.history

Le fichier sera donc vidé et aucune commande ne sera lisible. Cela nécessite néanmoins d’y penser à chaque fois que l’on se connecte au serveur MySQL. Ce qui n’est pas optimal.

IV. Ne pas sauvegarder les commandes MySQL

Pour ne plus du tout sauvegarder les commandes MySQL de façon automatique, on peut faire pointer leur écriture vers un fichier « corbeille » a travers un lien symbolique

ln -s /dev/null ~/.mysql_history

On encore utiliser la variable d’envirronnement MYSQL_HISTFILE

export MYSQL_HISTFILE /dev/null

On peut donc mettre l’une de ces deux commandes dans le fichier « ~/.bashrc » de chaque utilisateur on mieux, le mettre dans le fichier communs à tous les utilisateurs et modifiable uniquement par « root » : « /etc/bash.bashrc« .

Note : Le fichier « ~/.bashrc » de chaque utilisateur est un fichier contenant des commandes qui sont exécutées à chaque démarrage d’une session shell pour l’utilisateur en question. Le fichier « /etc/bash.bashrc » par du même principe mais il concerne tous les utilisateur ce qui permet de centraliser l’exécution d’une commande comme voulu dans notre cas.

Hébergez votre site à partir de 2$ sur 👉👉👉 https://www.tnctech.ca

À propos Santana

Analyste en cybersécurité avec 5 ans d'expérience dans la protection des systèmes d'information contre les menaces et les attaques. Expertise dans la surveillance des réseaux, l'analyse des vulnérabilités, et la gestion des incidents de sécurité. Passionnée par l'innovation technologique et la mise en œuvre de solutions de sécurité robustes pour protéger les données sensibles et assurer la conformité réglementaire.

Vérifiez également

Comment mettre en place MariaDB Galera Cluster sur Debian 11 ?

Comment mettre en place MariaDB Galera Cluster sur Debian 11 ?

Table de Matieres1 I. Présentation2 II. Les prérequis3 III. Quel est le moteur de stockage …

Convertir les tables MyISAM vers InnoDB d’une base MySQL / MariaDB

Convertir les tables MyISAM vers InnoDB d’une base MySQL / MariaDB

I. Présentation Dans ce tutoriel, nous allons voir comment convertir les tables MyISAM vers InnoDB …

Comment mettre à niveau MariaDB 5.6 vers MariaDB 10.X ?

Comment mettre à niveau MariaDB 5.6 vers MariaDB 10.X ?

Table de Matieres1 I. Présentation2 II. Faire un dump de toutes les bases de données …

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.