Bases de la sécurité du serveur SQL
Le serveur de base de données SQL, comme les autres serveurs de bases de données, constitue un atout clé dans la plupart des organisations. De nombreuses violations de données qui se produisent aujourd'hui peuvent être attribuées à des serveurs de bases de données mal sécurisés.
Sans les mesures de sécurité appropriées, une base de données peut facilement servir de passerelle pour les cyberattaques. Un seul acte de négligence peut compromettre la sûreté et la sécurité de la base de données SQL de votre organisation. Les attaquants peuvent injecter des codes malveillants , et compromettre l'intégrité, la confidentialité et la disponibilité de la base de données.
La mise en œuvre des mesures de sécurité appropriées contribuera grandement à protéger vos serveurs de bases de données et à minimiser votre exposition aux risques commerciaux et de sécurité. Cet article décrit certaines bases essentielles et les meilleures pratiques de sécurité de SQL Server, y compris certains des meilleurs outils de gestion de la sécurité et des performances de SQL Server.
Sécurité physique
La sécurité des informations ne peut être complètement assurée sans une sécurité physique adéquate. La sécurité physique doit être la première ligne de défense et doit inclure la prévention de tout accès non autorisé à l'installation où le serveur SQL est hébergé. La sécurité physique concerne les contrôles d'accès aux installations et au personnel, les mécanismes de protection des limites externes, la détection des intrusions et les actions correctives. Il protège vos actifs contre les intrus, le vol, les menaces environnementales, les dommages physiques, entre autres.
La sécurité physique doit être mise en œuvre en utilisant une approche de défense à plusieurs niveaux. L’idée est que si un attaquant franchit une couche de contrôle, il y en aura beaucoup d’autres avant qu’il puisse obtenir un accès complet. Toute violation de la sécurité physique de votre serveur de base de données pourrait entraîner une perte de productivité, de réputation et de confiance des clients.
Pour améliorer la sécurité physique de SQL Server, Microsoft vous recommande de procéder comme suit :
- Placez le serveur dans un local accessible uniquement aux personnes autorisées.
- Placez les ordinateurs qui hébergent une base de données dans un endroit physiquement protégé, idéalement une salle informatique verrouillée avec des systèmes surveillés de détection des inondations et de détection ou d'extinction des incendies.
- Installez les bases de données dans la zone sécurisée de l'intranet de l'entreprise et ne connectez pas vos serveurs SQL directement à Internet.
- Sauvegardez régulièrement toutes les données et sécurisez les sauvegardes dans un emplacement hors site.
Sécurité Internet
La sécurité du réseau concerne la protection de l'infrastructure réseau sous-jacente de votre serveur de base de données contre tout accès non autorisé. Il combine plusieurs couches de défenses qui mettent en œuvre des politiques et des contrôles en périphérie et dans le réseau. Les utilisateurs autorisés accèdent à la base de données via le réseau, tandis que les utilisateurs non autorisés se voient refuser l'accès. Une infrastructure réseau conçue dans un souci de sécurité autour de votre serveur de base de données protège la base de données contre les pertes résultant d'incidents de sécurité réseau.
La mise en œuvre de la sécurité du réseau commence par éloigner les utilisateurs non autorisés du réseau. C'est là que les pare-feu réseau entrent en jeu. Les pare-feu jouent un rôle important dans la sécurisation de l'application SQL Server. En plaçant votre base de données derrière un pare-feu, vous créez une autre couche de sécurité empêchant le trafic malveillant d'atteindre votre serveur. Les pare-feu peuvent également contribuer à empêcher le trafic sortant malveillant tel que l’exfiltration de données.
Les pare-feu seront plus efficaces si vous respectez les directives recommandées suivantes par Microsoft :
- Mettez un pare-feu entre le serveur et Internet. Activez votre pare-feu. Si votre pare-feu est désactivé, activez-le. Si votre pare-feu est activé, ne le désactivez pas.
- Divisez le réseau en zones de sécurité séparées par des pare-feu. Bloquez tout le trafic, puis admettez sélectivement uniquement ce qui est requis.
- Dans un environnement multiniveau, utilisez plusieurs pare-feu pour créer des sous-réseaux filtrés.
- Lorsque vous installez le serveur dans un domaine Windows, configurez les pare-feu intérieurs pour autoriser l'authentification Windows.
- Si votre application utilise des transactions distribuées, vous devrez peut-être configurer le pare-feu pour autoriser le trafic du coordinateur de transactions distribuées Microsoft (MS DTC) à circuler entre des instances MS DTC distinctes. Vous devrez également configurer le pare-feu pour permettre au trafic de circuler entre MS DTC et les gestionnaires de ressources tels que SQL Server.
- Désactivez tous les ports et protocoles inutiles, y compris NetBIOS et Server Message Block sur votre serveur SQL, vos serveurs Web et votre système de noms de domaine (DNS), pour réduire la surface d'attaque. Autorisez uniquement les protocoles et les ports essentiels au fonctionnement de SQL Server, tels que TCP 1433 (moteur de base de données), 2383 (services d'analyse), 4022 (courtier de services) et UDP 1343 (accès au navigateur).
Sécurité des applications et des données
Microsoft SQL Server fournit plusieurs fonctionnalités intégrées qui permettent la sécurité de l'application et des données qu'elle contient. L'administrateur de base de données peut exploiter ces fonctionnalités ou utiliser des mesures de sécurité supplémentaires si nécessaire, pour répondre aux besoins de sécurité de l'application et des données SQL.
Certaines des mesures de sécurité supplémentaires peuvent notamment inclure :
- Protection contre SQL et autres attaques par injection Comme son nom l'indique, l'injection SQL est une attaque dans laquelle du code ou des commandes malveillants sont injectés dans des chaînes de requête. Ces commandes peuvent endommager ou corrompre la base de données ou être utilisées pour exfiltrer des données sensibles. Vous pouvez contrecarrer les attaques par injection SQL en nettoyant toutes les entrées de la base de données pour vous assurer qu'elles ne contiennent pas de caractères pouvant être utilisés pour exécuter du code. Il est recommandé d'utiliser des procédures stockées et des commandes paramétrées tout en évitant le SQL dynamique et en restreignant les autorisations de tous les utilisateurs. Vous devez également vous prémunir contre les attaques par injection de chaîne de connexion qui se produisent lors de la connexion à SQL Server. Si une chaîne de connexion SQL Server n'est pas vérifiée pour les paires de mots clés valides, un attaquant peut ajouter des caractères supplémentaires pouvant effectuer des actions non autorisées sur le serveur. Vous pouvez atténuer ce risque en utilisant SqlConnectionStringBuilder pour créer et valider des chaînes de connexion au moment de l'exécution, ou en utilisant l'authentification Windows plus sécurisée dans la mesure du possible.
- Exploitation des erreurs verbeuses SQL Server génère toutes sortes de journaux tels que les journaux d'erreurs, les journaux d'événements système, les données des compteurs de performances, entre autres. Vous devez trouver un moyen de vous assurer que ces erreurs ne tombent pas entre de mauvaises mains. Sinon, les attaquants pourraient l’utiliser pour identifier des vulnérabilités inhérentes qu’ils pourraient vouloir exploiter. Assurez-vous que tout le code procédural utilise la gestion des erreurs, pour empêcher ces messages d'erreur SQL Server par défaut d'atteindre l'utilisateur.
- Attaques par élévation de privilèges Ces attaques se produisent lorsque les utilisateurs s'approprient d'une manière ou d'une autre les privilèges d'un compte approuvé, tel qu'un propriétaire de compte ou un administrateur. Cela leur permet d’obtenir un accès non autorisé aux données et aux fonctions de base de données. Pour atténuer ce risque, exécutez toujours les utilisateurs avec les comptes les moins privilégiés, attribuez uniquement les autorisations nécessaires et bloquez la possibilité d'exécuter du code à partir des comptes d'administrateur ou de propriétaire. Cela limite la quantité de dégâts pouvant survenir si une attaque réussit. Si un utilisateur a besoin d'autorisations supplémentaires pour effectuer une tâche, utilisez des certificats pour signer des procédures stockées ou une usurpation d'identité uniquement pendant la durée de la tâche.
- Attaques par déni de service distribué (DDoS) Les bases de données de production SQL Server peuvent être soumises à des attaques DDoS, dans lesquelles les attaquants inondent la base de données de fausses requêtes, ralentissant les performances des utilisateurs légitimes et entraînant éventuellement des temps d'arrêt. Si vous exécutez SQL Server dans le cloud, vous pouvez tirer parti des services de protection DDoS, qui peuvent capturer et détourner le trafic malveillant de votre base de données.
Meilleures pratiques de sécurité SQL Server
Voici quelques bonnes pratiques clés en matière de sécurité SQL Server qui peuvent améliorer la sécurité de votre base de données SQL :
- Sauvegardez régulièrement La nécessité d’une sauvegarde régulière de votre base de données ne peut être surestimée. Les sauvegardes protègent la disponibilité des données et garantissent que votre base de données reste résiliente face aux violations de données, aux ransomwares ou aux attaques par déni de service. Pensez à investir dans une bonne solution de sauvegarde SQL Server dans le cadre de votre stratégie de sécurité. Cela vous fournit une bouée de sauvetage pour restaurer les données critiques en cas d’attaque.
- Audits de sécurité réguliers Les audits de sécurité sont une exigence réglementaire pour la plupart des industries. Mais au-delà de cela, les audits de sécurité SQL Server aident à prévenir les attaques potentielles et à maintenir une base de données SQL saine. Les efforts doivent être axés sur l’identification des objets de base de données manquants, des échecs répétés de connexion au serveur et des autorisations ou modifications de configuration. Microsoft fournit un outil intégré appelé SQL Server Audit qui peut être utilisé pour créer des audits au niveau du serveur et de la base de données.
- Suivez le principe du moindre privilège Il s’agit d’un principe éprouvé qui contribue à réduire l’exposition de vos actifs au risque. Le plan est d'accorder aux services et aux utilisateurs SQL Server uniquement les droits appropriés requis pour effectuer une tâche et pas plus. Pour les comptes de service, exécutez et associez les services SQL Server en utilisant les autorisations et privilèges les plus bas possibles.
- Ayez une politique de mot de passe solide Définir un mot de passe fort ou, de préférence, une phrase secrète difficile à deviner est essentiel à la sécurité de votre base de données. Pensez à utiliser l'authentification Kerberos, l'authentification Windows pour les connexions à SQL Server et un gestionnaire de mots de passe pour une meilleure gestion des mots de passe.
- Appliquer régulièrement les mises à jour L’importance des mises à jour régulières ne peut être surestimée. Les mises à jour du système d'exploitation et de SQL Server contiennent d'importantes améliorations de sécurité qui maintiennent l'intégrité et la sécurité de votre base de données. Testez ces mises à jour et appliquez-les à votre serveur de production dès que possible.
- Utiliser le cryptage Le protocole de cryptage SSL/TLS et Windows Data Protection API (DPAPI) intégré permet respectivement le cryptage des données en transit et des données au repos. Cela protège la confidentialité de votre base de données.
- Utiliser les outils de surveillance SQL Les outils de surveillance SQL fournissent un moyen automatisé de gérer la sécurité et les performances de votre serveur de base de données. L'outil doit être capable d'analyser et de détecter les modifications apportées aux paramètres du serveur.
Les meilleurs outils pour la sécurité de SQL Server
Plusieurs outils du marché permettent d'automatiser la gestion de la sécurité et des performances de votre SQL Server. Vous trouverez ci-dessous un aperçu de certains des meilleurs outils de gestion de la sécurité et des performances de SQL Server. Espérons que cela vous guidera dans le processus de choix de la bonne solution pour votre entreprise.
1. Gestionnaire d'événements de sécurité SolarWinds (ESSAI GRATUIT)

Gestionnaire d'événements de sécurité SolarWinds (SEM)permet aux administrateurs de bases de données de surveiller les journaux du serveur, de suivre les taux d'erreur de la base de données, d'auditer les connexions des utilisateurs SQL, de maintenir la sécurité de SQL Server et de détecter les cyberattaques. Avec SEM, vous pouvez suivre, signaler et alerter sur des événements spécifiques effectués sur une base de données SQL susceptibles de signaler des menaces potentielles, et générer des rapports de journaux d'audit SQL Server à des fins de conformité. SEM fournit des règles de corrélation d'événements prêtes à l'emploi qui étudient les transactions de bases de données, détectent les menaces connues et suivent les activités malveillantes et non fiables.
SEM prend en charge divers protocoles et applications d'évaluation de la sécurité pour vous aider à vous défendre contre les attaques par injection SQL et à maintenir une base de données sécurisée. SEM exploite ses règles d'injection SQL prédéfinies et ses alertes pour vous tenir informé. Il peut détecter et désactiver les utilisateurs et processus malveillants, ainsi qu'effectuer d'autres réponses automatisées aux menaces pour aider à sécuriser votre base de données lorsque des indicateurs d'injection SQL sont détectés. Un essai gratuit est disponible en téléchargement, afin que vous puissiez déterminer s'il convient à votre entreprise.
EssayerGestionnaire d'événements de sécurité SolarWinds (SEM)avec un essai gratuit entièrement fonctionnel de 30 jours.
SolarWinds Security Event Manager (SEM) Téléchargez la version d'essai GRATUITE de 30 jours
2. Moniteur réseau Paessler PRTG (ESSAI GRATUIT)

Paessler PRTGest un outil de surveillance réseau sans agent qui vous permet de surveiller votre réseau, vos routeurs, commutateurs et serveurs. Avec PRTG, vous pouvez mesurer le temps nécessaire à une requête SQL pour l'ensemble de sa requête, y compris l'établissement de la connexion, l'exécution de la requête, le traitement de la transaction et la fin de la connexion, le tout pouvant être visualisé sur le tableau de bord PRTG. Le modèle de licence PRTG est basé sur des capteurs (paramètres qui peuvent être surveillés sur un appareil tels que la charge du processeur, l'état du port ou le trafic réseau) ; et est livré avec des capteurs préconfigurés pour toutes les principales bases de données. Pour Microsoft SQL, PRTG propose le capteur Microsoft SQL v2 qui surveille le temps de réponse d'une requête entière ainsi que le temps de réponse d'une requête définie individuellement.
PRTG est disponible en différentes éditions et variantes telles que :
- PRTG Enterprise Monitor : destiné aux grands réseaux comprenant des milliers d'appareils et de systèmes répartis sur plusieurs sites.
- Moniteur hébergé PRTG : unoption basée sur le cloudqui vous permet de surveiller depuis le cloud
- PRTG Desktop : vous permet de gérer plusieurs serveurs PRTG.
- Application mobile PRTG : vous permet de vérifier votre réseau, vos appareils et vos capteurs lors de vos déplacements.
UNessai gratuit de 30 joursavec un accès complet à toutes les fonctionnalités est disponible en téléchargement.
Paessler PRTG Commencez un essai GRATUIT de 30 jours
3. Microsoft Defender pour SQL

Microsoft Defender pour SQLest un outil de sécurité SQL Server qui permet de détecter et d'atténuer les vulnérabilités potentielles de la base de données SQL et les activités anormales qui constituent une menace pour votre base de données.
Microsoft Defender pour SQL comprend deux plans Microsoft Defender distincts :
- Microsoft Defender pour les serveurs de base de données Azure SQL : ce plan est conçu pour protéger la base de données Azure SQL, l'instance gérée Azure SQL et le pool SQL dédié dans Azure Synapse.
- Microsoft Defender pour les serveurs SQL sur les machines : ce plan étend les protections de vos serveurs SQL natifs Azure pour prendre entièrement en charge les environnements hybrides et protéger les serveurs SQL hébergés dans Azure et d'autres environnements cloud, et même les machines sur site : y compris SQL Server sur les machines virtuelles et serveurs SQL sur site :
Vous pouvez activer ces forfaits au niveau de l'abonnement (à partir de Microsoft Defender pour le cloud ou via l'API REST, Azure CLI, PowerShell ou Azure Policy), ou vous pouvez l'activer au niveau des ressources. Lorsque vous activez l'un de ces forfaits, toutes les ressources prises en charge qui existent dans l'abonnement (y compris les futures ressources créées sur le même abonnement) sont protégées.
4. Chien de données

Chien de données est un service de surveillance de l'infrastructure sur site et cloud basé sur un agent pour les applications, serveurs, bases de données, outils et services cloud. Datadog utilise son service de découverte automatique pour explorer et identifier les applications, les appareils et les serveurs de votre réseau. Une fois que tous les appareils et liens ont été identifiés, vous pouvez avoir un aperçu de toutes les activités à partir du tableau de bord Datadog et toute modification apportée au réseau peut être automatiquement repérée.
Datadog offre une visibilité de bout en bout sur l'état et les performances de vos instances SQL Server. Il fournit des outils et des mesures clés pour la surveillance de SQL Server, notamment deux tableaux de bord prêts à l'emploi pour SQL Server :
- Un screenboard qui vous donne un aperçu en temps réel de vos instances SQL Server.
- Un tableau de temps bien adapté pour corréler les métriques SQL Server avec les métriques et les événements du système.
UN essai gratuit de 14 jours avec un accès complet à toutes les fonctionnalités est disponible en téléchargement. Après cela, le logiciel est généralement vendu via des plans d'abonnement mensuels basés sur des hôtes, des événements ou des journaux.
5. Gestionnaire d'applications ManageEngine (APM)

APMest une solution sans agent de surveillance des performances des applications et des serveurs qui aide les organisations à garantir des performances optimales de leurs applications critiques telles que les serveurs SQL dans les environnements physiques, virtuels et cloud. APM offre une découverte, une disponibilité, un suivi de l'intégrité et des performances prêts à l'emploi, ainsi que des rapports sur les serveurs SQL et d'autres applications.
Avec APM, les administrateurs de bases de données peuvent gagner en visibilité sur les applications SQL, suivre l'utilisation des ressources, optimiser les performances des serveurs SQL, prévenir l'apparition d'erreurs et maintenir la santé globale de l'application de base de données.
ManageEngine APM est disponible dans les éditions suivantes :
- L'édition gratuite fournit la plupart des fonctionnalités de l'édition professionnelle avec quelques restrictions et prend en charge jusqu'à 5 moniteurs.
- L'édition Professionnelle : elle comprend des fonctionnalités de surveillance, d'alerte et de reporting et cible les PME souhaitant surveiller jusqu'à 500 applications en fonction de la charge.
- Édition Entreprise : elle comprend toutes les éditions Professionnelles + des capacités de surveillance et de basculement distribuées et cible les grandes entreprises cherchant à surveiller 500 applications ou plus.
UN 30 jours d'essai gratuit est disponible en téléchargement. Lors de l'installation, vous pouvez choisir l'édition Professionnel ou Entreprise.