de stockage ◦ Plugins • Architecture Linux like ◦ Hautement ajustable ◦ 800 variables de configuration • Solution green (codé en C) ◦ Package de 100 Mo • Réplication entre différents moteurs • Ecosystem de plus en plus complet ◦ MaxScale ◦ MariaBackup ◦ MariaDB Shell ◦ Connecteurs ◦ Cloud DBaaS SkySQL
c’est sécuriser l'intégralité de l’infrastructure Actions de sécurisation à mener au niveau • de la donnée • du serveur • du cluster • de l’architecture et du déploiement
sécurisation • Authentification forte • Chiffrement sur disque • Chiffrement des données • Chiffrement des communications au sein du cluster • Chiffrement des flux sur le réseau • Chiffrement des sauvegardes • Sauvegarde des bases chiffrées • Restriction des accès aux serveurs • Audit des accès et requêtes
(SHA-1) ED25519 (OpenSSH like) Utilisation CREATE USER username@hostname IDENTIFIED VIA ed25519 USING PASSWORD('secret'); OU ALTER USER username@hostname IDENTIFIED VIA ed25519 USING PASSWORD('new_secret'); https://mariadb.com/kb/en/authentication-plugin-ed25519/
• Authentification basé sur la vérification du certificat • Limiter les autorités de certification • Imposer les protocole de chiffrement à la connexion CREATE USER 'alice'@'%' REQUIRE SUBJECT '/CN=alice/O=My Dom, Inc./C=US/ST=Oregon/L=Portland' AND ISSUER '/C=FI/ST=Somewhere/L=City/ O=Some Company/CN=Peter Parker/[email protected]' AND CIPHER 'SHA-DES-CBC3-EDH-RSA';
pages sur disque • Ne pas oublier ◦ Chiffrement du redo log ◦ Chiffrement des fichiers temporaires ◦ Chiffrement des binlogs ◦ Chiffrement du Gcache • En combinaison avec la compression ◦ First compress, then cipher • Mais aussi ◦ AES_DECRYPT() ◦ AES_ENCRYPT()
des sauvegardes ◦ hors site ◦ sur site ◦ sur bande • Chiffrement impératif • Campagnes de test des sauvegardes ◦ Validation des procédures ◦ Validation de la présence des clés sur le site de secour ◦ Vérification de la volumétrie nécessaire
• Utilisation des rôles pour simplifier l’administration • Multiplier les comptes utilisateurs et applicatifs • Définir des comptes pour les services internes de l’infrastructure (compte dédiés pour la réplication, la supervision, par serveur applicatif) • Multiplier les comptes pour limiter l’impact d’une intrusion et garder le contrôle en mode dégradé
◦ REVOKE ◦ DROP USER • Restriction d’accès aux ressources REVOKE SELECT ON dbname.tablename FROM 'user'@'host'; REVOKE ALL PRIVILEGES ON dbname.tablename FROM 'user'@'host'; GRANT SELECT ON dbname.tablename TO 'user'@'host' WITH MAX_QUERIES_PER_HOUR 20 MAX_CONNECTIONS_PER_HOUR 10 MAX_USER_CONNECTIONS 2 MAX_UPDATES_PER_HOUR 5; FLUSH USER_RESOURCES;
• Choix du rôle actif sur la session • Visualisation du rôle actif sur la session CREATE ROLE role; GRANT privileges ON db-objects TO role; SET ROLE role; SET ROLE NONE; SELECT CURRENT_ROLE();
l'hôte et le mot de passe. Les privilèges sont basés sur la combinaison de l'utilisateur et de l'hôte, ainsi que sur le rôle actuel de l'utilisateur. Les privilèges peuvent être accordés globalement, au niveau de la base de données, au niveau de la table ou au niveau de la colonne.
Privilèges des administrateurs (SHOW PRIVILEGES) … And more to come • Create Routine • Alter Routine • Execute • Event • Trigger • All [Privileges] • Super • Create User • Grant Option Privilèges des développeurs Privilèges Spéciaux Privilèges de la réplication • Create • Alter • Index • Drop • Create Temporary Tables • Create View • Show View • Lock Tables • Replication Client • Replication Slave • Process • File • Reload • Shutdown • Usage • Select • Insert • Update • Delete • Show Databases
Penser à superviser les autres logs • Vérifier l’homogénéité des configurations • Suivre les PKI • Suivre de près le monitoring ERROR LOG GENERAL QUERY LOG SQL ERROR LOG SLOW QUERY LOG BINARY LOG AUDIT LOG
des événements en lectures et en écriture dans une table • Les tables impliqués dans une vue ou une procédure stockées sont journalisés • Journalisation de modification de privilèges et mots de passe • Remplacement facultatif des caractères génériques dans le journal des requêtes afin d'améliorer la sécurité • Filtrage par compte utilisateur possible
sur les flux • Masque des données • Réécriture de requête à la volée • Base de règles de filtrage ◦ Type de requête ◦ Fonction utilisée ◦ Colonne sélectionnée ◦ Fréquence des requêtes • Permet le BAN d’utilisateur et d’IP • Permet de multiplier les ports en fonction des besoins (filtrage N3 possible)
split ◦ Load balancing adaptatif ◦ Causal reads ◦ Caching des résultats de requête avec Redis • HA ◦ Failover Automatique ◦ Transaction replay ◦ Réplication Parallèle avec Xpand • Multiple Moniteurs ◦ Xpad, ColumnStore and Replicated environments. • Verrouillage coopératif ◦ MaxScale HA ◦ Multiple MaxScale Moniteurs dans un Cluster • Sécurité ◦ Pare-feu pour bases de données ◦ Masquage dynamique des données ◦ Limitation des requêtes ◦ Limitation des résultats des requêtes ◦ Statistiques de performance ◦ Enregistrement central des requêtes Basics
Axes de sécurisation ◦ Démarche globale ◦ Sécuriser l’authentification ◦ Sécuriser les mots de passe • Privilèges ◦ Limiter les droits ◦ Utiliser les roles ◦ Limiter l‘accès aux ressources • Auditing ◦ Auditer tous les fichiers de journaux disponibles ◦ Sauvegarder les pistes d’audit ◦ Assurer l’alerting • Filtrage ◦ Multiplier les accès et ajouter un filtrage physique N3 ◦ Filtrer les accès