La sécurité est la principale préoccupation de nos jours dans tous les secteurs. La sécurité des bases de données est également une préoccupation majeure pour tout client. SQL Server est conçu pour sécuriser toutes vos données stockées dans les bases de données, mais parfois nous n'appliquons pas le bon ensemble de configurations et laissons un trou dans notre système. Les pirates et les étrangers non autorisés pourraient utiliser ces failles pour pénétrer votre système. Vos données peuvent être compromises ou calomniées, vos ressources système peuvent être supprimées pour créer une panne afin d'arrêter vos activités commerciales, les données de vos clients peuvent être exposées à des concurrents, etc.
Verrouillage ou renforcement de SQL Server
L'ensemble du processus de sécurisation de votre environnement de base de données est connu sous le nom de verrouillage de base de données \ SQL Server. Je vais décrire divers paramètres et détails de configuration que vous pouvez appliquer pour sécuriser votre environnement de base de données.
Installer uniquement les composants requis
Commençons les pratiques de verrouillage avec l'installation de SQL Server. SQL Server propose divers composants et fonctionnalités que les administrateurs de base de données choisissent pour diverses exigences. Certains de ces composants et fonctionnalités sont indiqués ci-dessous :
- Moteur de base de données
- Services de création de rapports
- Services d'intégration
- Moteur de services d'analyse
- Services de notification
- Documentation et échantillons (exemples de bases de données et codes)
- Recherche en texte intégral
- Autres fonctionnalités telles que la réplication, les services de machine learning, les services de qualité des données, etc.
Il est recommandé d'installer uniquement les fonctionnalités nécessaires car, ce faisant, vous réduisez ou limitez les possibilités d'attaque de surface. De plus, vous aurez une faible utilisation des ressources système.
Installer les dernières mises à jour
Assurez-vous de mettre à jour vos systèmes à temps. Si de nouvelles vulnérabilités sont découvertes, elles sont publiées dans les bulletins de sécurité par vos fournisseurs de produits.
Je ne parle pas uniquement de la mise à jour des correctifs SQL Server, mais de tout ce qui s'exécute sur votre système, du système d'exploitation à toute autre application installée sur votre machine. Appliquez toujours des correctifs pour maintenir votre logiciel à jour afin d'empêcher toute menace ou attaque externe.
Utiliser le mode d'authentification Windows
Choisissez toujours le mode d'authentification Windows pour les connexions utilisateur si vous n'avez aucune dépendance pour utiliser le mode d'authentification SQL Server. Il est plus sécurisé et authentifie la connexion Windows avec le répertoire Windows Active lors de chaque tentative de connexion. SQL Server propose deux types de modes d'authentification.
- Authentification Windows
- Mode mixte (Windows + SQL Server)
Mode d'authentification Windows : Il s'agit d'un mode d'authentification par défaut pour SQL Server. Le mode d'authentification Windows exploite les comptes locaux, les comptes d'utilisateurs Active Directory et les groupes lors de l'octroi de l'accès à SQL Server. Dans ce mode, vous, en tant qu'administrateur de base de données, pouvez accorder aux utilisateurs du domaine ou du serveur local l'accès au serveur de base de données sans créer ni gérer de compte SQL Server distinct.
Mode mixte : Le mode d'authentification mixte propose les deux options. Vous pouvez utiliser l'authentification basée sur Windows ainsi que les authentifications basées sur la connexion SQL Server. Le mécanisme d'authentification de SQL Server est basé sur des comptes gérés à l'intérieur de SQL Server, y compris la stratégie de mot de passe. Une authentification mixte peut être requise si vous avez des dépendances pour prendre en charge des applications héritées.
Vous pouvez suivre les étapes ci-dessous pour sélectionner ou modifier le mode d'authentification du serveur :
- Lancez SQL Server Management Studio et connectez-vous à votre instance SQL Server cible.
- Dans SQL Server Management Studio, cliquez avec le bouton droit sur l'instance SQL Server, puis cliquez sur Propriétés .
- Cliquez sur Sécurité page dans le volet de gauche, vous pouvez voir les deux options d'authentification dans le volet de droite sous Authentification du serveur section. Si vous souhaitez sécuriser votre instance, assurez-vous de passer en mode d'authentification Windows. Il vous suffit de cliquer sur le bouton radio du mode d'authentification Windows puis de cliquer sur OK pour appliquer les modifications.
- Dans la boîte de dialogue SQL Server Management Studio, cliquez sur OK pour reconnaître la nécessité de redémarrer SQL Server.
Le mode d'authentification Windows est un choix plus sûr. Toutefois, si une authentification en mode mixte est requise, vous devez fournir des mots de passe complexes aux connexions SQL Server et appliquer des stratégies de sécurité\verrouillage pour une meilleure sécurité. Il est également recommandé de désactiver le compte SQL Server sa si vous utilisez le mode d'authentification mixte. J'en parlerai dans la section suivante.
Renommer/Désactiver le compte sa
La connexion sa est créée par défaut lors de l'installation de SQL Server, cela pourrait donc être l'une des raisons potentielles pour lesquelles les attaquants piratent ou prennent le contrôle de ce compte. N'oubliez pas que cette connexion a des privilèges d'administration système afin que toute personne ayant accès à ce compte puisse gérer vos bases de données et vos instances SQL Server.
Vous devez exécuter la commande ci-dessous pour désactiver le compte sa.
--Disable sa login
USE MASTER
GO
ALTER LOGIN sa DISABLE;
GO
Vous pouvez voir son exécution dans la figure ci-dessous.
Avant de renommer ou de désactiver le compte sa, vérifiez qu'un autre compte avec des privilèges administratifs existe sur l'instance SQL Server.
Modifier les ports SQL Server par défaut
Nous savons tous que SQL Server utilise le port 1433 pour toutes les demandes et communications des clients. Comme cette configuration est dans le domaine public, les pirates peuvent cibler cette configuration pour se connecter à votre instance SQL Server.
Vous pouvez modifier le port SQL Server en suivant les étapes ci-dessous.
- Connectez-vous à votre machine cible sur laquelle SQL Server est installé.
- Lancez le gestionnaire de configuration de serveur outil.
- Développez la configuration réseau SQL Server nœud dans le volet de gauche et sélectionnez Protocoles pour l'instance SQL Server à configurer.
- Dans le volet de droite, cliquez avec le bouton droit sur le nom du protocole TCP/IP et choisissez Propriétés .
- Dans les Propriétés TCP/IP boîte de dialogue, sélectionnez les adresses IP languette. Il existe une entrée correspondante pour chaque adresse IP attribuée au serveur.
- Effacez les valeurs des ports dynamiques TCP et Port TCP pour chaque adresse IP à l'exception des adresses IP sous IPAll .
- Dans IPAll section pour chaque instance, entrez un nouveau port sur lequel vous voulez que SQL Server écoute.
- Cliquez sur Appliquer et redémarrez les services SQL Server.
Désactiver le service de navigateur SQL
Les services SQL Server Browser sont installés avec l'installation de l'instance SQL Server. Ce service redirige votre connexion vers le port sur lequel SQL Server s'exécute. Si ce service est en cours d'exécution, ce sera une étape plus facile pour les attaquants car il leur permet de se connecter à SQL Server sans passer son numéro de port. Il est donc préférable de désactiver ce service après avoir changé de port.
Désactiver l'option xp_cmdshell
SQL Server propose une procédure stockée étendue xp_cmdshell pour exécuter et exécuter les commandes du système d'exploitation à partir de SQL Server. Il doit être désactivé pour éviter tout risque de sécurité. Vous pouvez trouver cette procédure stockée étendue dans les configurations au niveau du serveur ou en exécutant la procédure stockée sp_configure T-SQL. Vous pouvez exécuter les instructions T-SQL ci-dessous pour désactiver cette configuration.
-- Enable advanced options to display configure xp_cmdshell
sp_configure 'show advanced options', '1'
RECONFIGURE
-- Disable xp_cmdshell
sp_configure 'xp_cmdshell', '0'
RECONFIGURE
GO
Utiliser le chiffrement ou le masquage des données
SQL Server propose diverses méthodologies de chiffrement pour protéger vos données. Le chiffrement est recommandé si vos utilisateurs accèdent aux données sur le réseau public. SQL Server propose plusieurs options pour implémenter le bon ensemble de chiffrements en fonction des besoins de votre entreprise. Voici la liste des options de chiffrement ou de masquage des données que nous pouvons utiliser pour sécuriser nos données :
- TDE (chiffrement transparent des données)
- Sécuriser les données à l'aide de clés de chiffrement
- Toujours chiffrer
- Masquage dynamique des données
Supprimer BUILTIN\Administrators de SQL Server
Nous devons toujours supprimer le compte BUILTIN\Administrators de l'instance SQL Server pour restreindre l'accès indésirable à l'instance de base de données. La meilleure façon est d'accorder aux utilisateurs l'accès à SQL Server individuellement. Vous pouvez également ajouter un groupe de personnes dans le groupe Windows et leur accorder l'accès à SQL Server. Vous pouvez utiliser l'instruction T-SQL ci-dessous pour supprimer cette connexion de l'instance SQL Server.
Vous pouvez également supprimer cette connexion à l'aide de l'interface graphique via SQL Server Management Studio. Il vous suffit de vous connecter à votre instance SQL Server, puis de développer le dossier de sécurité au niveau de l'instance. Ici, vous pouvez cliquer avec le bouton droit sur cette connexion pour la supprimer de l'instance SQL Server.
--DROP Login
DROP LOGIN [BUILTIN\Administrators]
Des mots de passe forts et des privilèges d'utilisateur adéquats
Attribuez toujours des droits adéquats à chaque utilisateur, ils doivent être minimes, compte tenu de leur rôle lors de l'accès aux bases de données. De plus, nous ne devons jamais utiliser de mots de passe faibles pour toute connexion ou le même identifiant et mot de passe. Utilisez toujours la politique de mot de passe pour toute connexion SQL.
Configurer l'audit de connexion SQL Server
SQL Server a fourni une fonctionnalité d'audit pour capturer des détails sur toutes les connexions échouées et réussies. Il s'agit d'une configuration très utile si vous souhaitez vérifier qui se connecte ou tente de se connecter à vos bases de données. Nous pouvons configurer l'alerte SQL Server qui enverra une notification par courrier électronique à chaque connexion échouée et réussie à SQL Server. Vous pouvez suivre les étapes ci-dessous pour activer l'audit de connexion.
- Connectez-vous à votre instance SQL Server cible dans SQL Server Management Studio
- Cliquez avec le bouton droit sur le nom de l'instance SQL Server, puis cliquez sur Propriétés .
- Cliquez sur Sécurité onglet dans le volet de gauche. Vous obtiendrez un audit de connexion dans le volet de droite, comme indiqué dans la première capture d'écran de cet article
- Choisissez l'option souhaitée et fermez les Propriétés du serveur pages
- Redémarrez le service SQL Server pour appliquer cette modification
Supprimer les connexions SQL Server inutilisées
Gardez toujours un œil sur vos connexions SQL Server. Vous devez être attentif à supprimer tous les comptes de connexion qui ne sont plus utilisés. Je sais que c'est difficile à gérer manuellement, mais vous pouvez configurer une alerte e-mail pour envoyer un e-mail sur toutes les connexions SQL Server et leurs privilèges.
Conclusion
J'ai expliqué certaines des configurations possibles que nous pouvons appliquer pour sécuriser nos bases de données contre les menaces externes. Tenez compte de tous les points ci-dessus lors du déploiement des stratégies de renforcement de la base de données dans l'environnement.
Veuillez partager cet article et donner votre avis dans la section des commentaires afin que nous puissions nous améliorer.