Bien sécuriser sa base de données
Ce travail a été rendu possible grâce au soutien de DellEMC
Avec la GDPR qui arrive à grands pas, il est important de prendre soin de ses bases de données. Et une fois encore, la sécurité de celles-ci n’est pas à négliger, car c’est là que se trouve toute la donnée sensible de votre service et de vos utilisateurs.
Il y a bien sûr les dommages physiques, mais aussi le risque cybercriminel ou l’employé mécontent à prendre en compte.
Si vous avez conscience de ces risques, mais que vous ne savez pas par où commencer, voici quelques points à prendre en compte et sur lesquels je vous invite à échanger dans les commentaires.
Assurez-vous que le niveau de sécurité initial de votre serveur BDD est bon
De simples mesures de sécurité peuvent faire une grande différence. Assurez-vous d’abord d’avoir un serveur (MySQL ou autre) à jour histoire d’éliminer les dernières failles de sécurité.
Pensez bien à activer le chiffrement des connexions (TLS) que proposent les logiciels de bases de données comme MySQL ainsi que les fonctionnalités proposées permettant de renforcer la sécurité. Et réduisez les accès SSH à leur plus strict minimum.
Souvent, les logiciels de bases de données proposent de nombreuses fonctionnalités dont vous ne vous servirez jamais. Pensez à désactiver ou désinstaller tous les modules et options dont vous n’avez pas besoin. Il sera toujours possible de les réactiver plus tard.
Puis supprimez aussi les comptes users et les bases de données qui ne servent à rien (vous savez, celles avec des données démo et des accès démo avec des mots de passe par défaut).
Changez bien tous les mots de passe par défaut pour en mettre des plus costauds et si vous le voulez, vous pouvez même changer le nom du user admin (root). Avec MySQL, ça se fait comme ceci :
rename user 'root'@'localhost' to 'NOUVEAUNOMUSER'@'localhost';
Suivi d’un petit
FLUSH PRIVILEGES;
Gérez bien les permissions
Évitez de donner l’accès root à toutes vos applications. Segmentez bien les accès à vos différentes bases de données avec un accès (login + password) unique par base. Choisissez des mots de passe forts, et surtout gérez bien les “hosts” (localhost, %, certaines IPs…etc) autorisés depuis lesquels les bases seront accédées.
Séparez les bases des serveurs web
Dans la mesure du possible, il peut-être malin de séparer physiquement vos serveurs de bases de données, de vos serveurs web. Ainsi, en cas d’accès non autorisé à votre serveur web, si vous avez correctement géré les permissions d’accès à votre base pour qu’elles soient réduites au maximum, l’attaquant aura lui aussi un accès limité à votre base de données, réduisant les dommages potentiels.
Faites des mises à jour
Que ce soit côté serveur web, côté applicatif, ou côté serveur de base de données, faites bien vos mises à jour pour que les dernières vulnérabilités soient bien patchées.
N’oubliez pas le chiffrement
Que ce soit depuis l’extérieur ou en interne à l’entreprise (un employé par exemple), il existe toujours un risque que quelqu’un s’empare de vos bases de données. Chiffrer les fichiers utilisés par la base de données ET chiffrer les sauvegardes de celle-ci est un bon moyen de réduire, encore une fois, le niveau de risque. Si quelqu’un réalise une copie en dur de vos bases ou de vos backups, tout ce qu’il y trouvera, c’est de la donnée indéchiffrable. Et pour les sauvegardes, pensez bien à les stocker hors site et sur des supports déconnectés de votre réseau, histoire de ne pas vous faire avoir par un ransomware ou autre. On ne sait jamais dans la vie, et il faut penser à tout.
Pensez au firewall
Placer votre serveur de base de données derrière un pare-feu et ainsi contrôler et limiter le trafic entrant et sortant aux seules machines autorisées, vous permettra de ralentir voire bloquer un attaquant qui voudrait exfiltrer vos data vers une machine tierce non autorisée. Un serveur de base de données n’a rien à faire en accès direct sur le net.
Ajoutez à cela un firewall applicatif devant votre serveur web, et vos données seront beaucoup plus difficiles à atteindre en cas d’injection SQL et autres joyeusetés de ce genre.
Testez la sécurité de votre base
Que ce soit au travers d’un pentest ou d’un Bug Bounty, pensez bien à tester régulièrement la sécurité de votre base de données et de votre site. Si vous ne le faites pas, quelqu’un d’autre le fera pour vous et le résultat sera… incertain :-)
Pensez aussi à bien surveiller les logs et les accès à votre base.
Anticipez
Comme à chaque fois, il faut savoir anticiper les risques pour limiter les dégâts. C’est donc à vous de bien délimiter le périmètre et de vous poser les bonnes questions… Et si quelqu’un trouve une faille SQLi sur mon site ? Et si quelqu’un accède à mon serveur de sauvegarde ? Et si quelqu’un renverse son café dans la baie de stockage ? Et si….
Embauchez un DBA
N’hésitez pas à faire appel à un professionnel. Son job à temps plein sera de gérer votre base de données et il en sera le garant.
Au boulot maintenant :-)
Entièrement dédiée à la cybersécurité, l'école Guardia est accessible soit directement après le bac (post-bac), soit après un bac+2 ou bac+3. En rejoignant l'école Guardia, vous deviendrez développeur informatique option cybersécurité (Bac+3) ou expert en cybersécurité (Bac+5).