Événements
31 mars, 23 h - 2 avr., 23 h
Le plus grand événement d’apprentissage SQL, Fabric et Power BI. 31 mars au 2 avril. Utilisez le code FABINSIDER pour économiser 400 $.
Inscrivez-vous aujourd’huiCe navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
S’applique à : SQL Server
Azure SQL Database
Azure SQL Managed Instance
Cet article fournit des informations sur les meilleures pratiques, ainsi que des instructions vous aidant à mettre en place la sécurité pour SQL Server. Pour un examen complet des fonctionnalités de sécurité de SQL Server, consultez Sécurisation de SQL Server.
Pour connaître les meilleures pratiques de sécurité d’un produit spécifique, consultez Azure SQL Database et SQL Managed Instance et SQL Server sur machines virtuelles Azure.
Une méthodologie de sécurité en couches fournit une solution de défense en profondeur utilisant plusieurs fonctionnalités de sécurité visant des étendues de sécurité différentes. Les fonctionnalités de sécurité mises à disposition dans SQL Server 2016 et améliorées dans les versions ultérieures contribuent à faire face aux menaces de sécurité et à fournir des applications de base de données bien sécurisées.
Azure est conforme à plusieurs règlements et normes de l’industrie et vous permet de créer une solution conforme avec SQL Server exécuté sur une machine virtuelle. Pour plus d’informations sur les exigences réglementaires relatives à Azure, voir Centre de confidentialité Azure.
Les organisations doivent souvent protéger les données au niveau des colonnes car les données relatives aux clients, aux employés, aux secrets commerciaux, aux données de produits, aux informations de santé, aux données financières et à d’autres données sensibles sont souvent stockées dans des bases de données SQL Server. Les colonnes sensibles incluent souvent les numéros d'identification/de sécurité sociale, les numéros de téléphone mobile, le prénom, le nom, l'identification de compte financier et toutes les autres données susceptibles d'être considérées comme des données personnelles.
Les méthodes et les fonctionnalités mentionnées dans cette section augmentent le niveau de protection au niveau des colonnes avec une surcharge minimale et sans nécessiter de modifications importantes dans le code de l’application.
Utilisez Always Encrypted pour chiffrer les données au repos et sur le réseau. Les données chiffrées sont déchiffrées uniquement par les bibliothèques clientes au niveau du client d’application. Utilisez le chiffrement aléatoire déterministe quand cela est possible. Always Encrypted avec enclaves sécurisées peut améliorer les performances des opérations de comparaison comme BETWEEN, IN, LIKE, DISTINCT, Joins, et plus encore pour les scénarios de chiffrement aléatoires.
Utilisez le masquage Dynamic Data Masking (DDM) pour obfusquer les données au niveau des colonnes quand Always Encrypted n'est pas une option disponible. La fonctionnalité Dynamic Data Masking (DDM) n'est pas compatible avec Always Encrypted. Préférez Always Encrypted au masquage dynamique des données (Dynamic Data Masking) quand cela est possible.
Vous pouvez également accorder des autorisations (GRANT) au niveau des colonnes à une table, une vue ou une fonction table. Tenez compte des points suivants : - Seules les autorisations SELECT
, REFERENCES
et UPDATE
peuvent être octroyées à une colonne.
- Une instruction DENY
au niveau de la table n'a pas la priorité sur une instruction GRANT
au niveau de la colonne.
La Sécurité au niveau des lignes (SNL) permet à la fonctionnalité d'utiliser le contexte d'exécution de l'utilisateur afin de contrôler l'accès aux lignes d'une table de base de données. La Sécurité au niveau des lignes (SNL) garantit que les utilisateurs peuvent voir uniquement l’enregistrement qui les concerne. Cela permet à votre application de bénéficier d’une sécurité au niveau des enregistrements sans devoir effectuer de modifications significatives de l’application.
La logique métier est encapsulée dans des fonctions table contrôlées par une stratégie de sécurité qui active ou désactive la fonctionnalité de Sécurité au niveau des lignes (SNL). La stratégie de sécurité contrôle également les prédicats FILTER
et BLOCK
qui sont liés aux tables sur lesquelles la fonctionnalité SNL s'exécute. Utilisez la Sécurité au niveau des lignes (SNL) pour limiter les enregistrements renvoyés à l’utilisateur qui effectue l’appel. Utilisez SESSION_CONTEXT (T-SQL) pour les utilisateurs qui se connectent à la base de données par le biais d'une application de niveau intermédiaire dans laquelle les utilisateurs partagent le même compte d'utilisateur SQL Server. Pour optimiser les performances et la facilité de gestion, suivez les meilleures pratiques de sécurité au niveau des lignes.
Conseil
Utilisez la Sécurité au niveau des lignes (SNL) avec Always Encrypted ou Dynamic Data Masking (DDM) pour optimiser la posture de sécurité de votre organisation.
Le chiffrement Transparent Data Encryption (TDE) protège les données au niveau du fichier en fournissant le chiffrement au repos aux fichiers de base de données. Le chiffrement Transparent Data Encryption (TDE) permet de s'assurer que les fichiers de base de données, les fichiers de sauvegarde et les fichiers tempdb
ne peuvent pas être joints ni lus sans les certificats corrects pour déchiffrer les fichiers de base de données. Sans le chiffrement Transparent Data Encryption (TDE), un attaquant peut prendre le support physique (lecteurs ou bandes de sauvegarde) et restaurer ou joindre la base de données afin de lire le contenu. Le chiffrement Transparent Data Encryption (TDE) est pris en charge pour le fonctionnement avec toutes les autres fonctionnalités de sécurité de SQL Server. Le chiffrement Transparent Data Encryption (TDE) fournit le chiffrement et le déchiffrement des E/S en temps réel des fichiers de données et des fichiers journaux. Le chiffrement TDE utilise une clé de chiffrement de base de données (DEK) stockée dans la base de données utilisateur. La clé de chiffrement de base de données peut aussi être protégée à l'aide d'un certificat qui est lui-même protégé par la clé principale de base de données de la base de données master
.
Utilisez le chiffrement TDE pour protéger les données au repos, les sauvegardes et tempdb
.
Pour auditer SQL Server, créez une stratégie d’audit au niveau du serveur ou de la base de données. Les stratégies de serveur s’appliquent aux bases de données existantes et à celles qui viennent d’être créées sur le serveur. Par souci de simplicité, activez l’audit au niveau du serveur et autorisez l’audit au niveau de la base de données à hériter de la propriété au niveau du serveur pour toutes les bases de données.
Auditez les tables et les colonnes contenant des données sensibles auxquelles des mesures de sécurité sont appliquées. Si une table ou une colonne est suffisamment importante pour nécessiter une protection via une fonctionnalité de sécurité, on doit considérer qu’elle est assez importante pour être auditée. Il est particulièrement important d'auditer et de passer régulièrement en revue les tables qui contiennent des informations sensibles, mais pour lesquelles il n'est pas possible d'appliquer les mesures de sécurité souhaitées en raison d'un type d'application ou d'une limitation de l'architecture.
SQL Server prend en charge deux modes d’authentification : le mode Authentification Windows et le « mode d’authentification SQL Server et Windows » (mode mixte).
Les connexions sont différentes des utilisateurs de base de données. Mappez tout d’abord des connexions ou des groupes Windows à des utilisateurs ou des rôles de base de données séparément. Accordez ensuite des autorisations à des utilisateurs, des rôles serveur et/ou des rôles de base de données pour accéder aux objets de base de données.
SQL Server prend en charge les types de connexions suivants :
master
.master
) qui héberge la base de données. SQL Server prend en charge les utilisateurs de base de données autonome pour Windows et l’authentification SQL Server.Les recommandations et les meilleures pratiques suivantes vous aident à sécuriser vos identités et méthodes d’authentification :
Utilisez des stratégies de sécurité basée sur les rôles à privilèges minimum pour améliorer la gestion de la sécurité.
Dans Azure, utilisez la sécurité du moindre privilège en utilisant des contrôles d'accès basés sur les rôles (RBAC).
Choisissez Active Directory plutôt que l’authentification SQL Server chaque fois que cela est possible. En particulier, préférez Active Directory au stockage de la sécurité au niveau de l’application ou de la base de données.
Utilisez l'authentification multifacteur pour les comptes disposant d'un accès au niveau de l'ordinateur, notamment les comptes qui utilisent le protocole RDP pour se connecter à l'ordinateur. Cela permet de se prémunir contre les fuites ou les vols d’informations d’identification. En effet, l’authentification par mot de passe à facteur unique est une forme d’authentification plus faible, car les informations d’identification risquent d’être compromises ou fournies par erreur.
Exigez des mots de passe forts et complexes qui ne peuvent pas être facilement devinés et qui ne sont utilisés ni pour d'autres comptes ni à d'autres fins. Mettez les mots de passe régulièrement à jour et appliquer les stratégies Active Directory.
Les comptes de service géré de groupe (gMSA) offrent une gestion automatique des mots de passe, une gestion simplifiée du nom de principal du service (SPN) et délèguent la gestion à d’autres administrateurs.
Réduisez les droits accordés au compte AD de l’administrateur de bases de données. Envisagez une séparation des tâches qui limite l’accès à la machine virtuelle, la possibilité de se connecter au système d’exploitation, la possibilité de modifier les journaux d’erreurs et d’audit, ainsi que la possibilité d’installer des applications et/ou des fonctionnalités.
Envisagez de supprimer les comptes d’administrateur de bases de données du rôle d’administrateur système et d’octroyer SERVEUR DE CONTRÔLE aux comptes d’administrateur de bases de données au lieu d’en faire des membres du rôle d’administrateur système. Le rôle d'administrateur système ne respecte pas DENY
, contrairement à CONTROL SERVER.
Il peut être judicieux de conserver des enregistrements historiques des modifications de données dans le temps pour résoudre les modifications accidentelles des données. Cela peut également s'avérer utile pour l'audit des modifications d'application et permettre de récupérer des éléments de données quand un intervenant malveillant introduit des modifications de données qui n'étaient pas autorisées.
Les outils de configuration et d'évaluation suivants traitent de la sécurité de surface, identifient les opportunités de sécurité des données et fournissent une évaluation des bonnes pratiques de la sécurité de votre environnement SQL Server au niveau de l'instance.
Il est utile de connaître certaines menaces courantes liées à SQL Server :
--
.Pour réduire le risque d'une attaque par injection de code SQL, tenez compte des éléments suivants :
EXECUTE
, EXEC
ou sp_executesql
.;
: délimiteur de requête'
: délimiteur de chaîne de données caractères--
: délimiteur de commentaire sur une seule ligne/* ... */
: délimiteurs de commentairexp_
: procédures stockées étendues de catalogue, comme xp_cmdshell
xp_cmdshell
sur un environnement SQL Server. Utilisez SQLCLR à la place ou recherchez d'autres alternatives en raison des risques liés à xp_cmdshell
.Pour réduire le risque d’une attaque par canal auxiliaire, tenez compte les éléments suivants :
Tenez compte des menaces d’infrastructure courantes suivantes :
Comme vous souhaitez éviter que les attaquants devinent facilement les noms de comptes et les mots de passe, procédez comme suit pour réduire le risque que les mots de passe soient découverts :
Créez un compte SQL avec un nom unique et qui est membre de sysadmin. Vous pouvez le faire dans le portail en activant l’authentification SQL lors de l’approvisionnement.
Conseil
Si vous n'activez pas l'authentification SQL lors de l'approvisionnement, vous devez modifier manuellement le mode d'authentification pour définir le mode Mode d'authentification Windows et SQL Server. Pour plus d'informations, consultez Modifier le mode d'authentification du serveur.
Si vous devez utiliser la connexion SA, activez la connexion après l’approvisionnement et assignez un nouveau mot de passe sécurisé.
Tenez compte des éléments suivants pour réduire les risques de ransomware (rançongiciel) :
Événements
31 mars, 23 h - 2 avr., 23 h
Le plus grand événement d’apprentissage SQL, Fabric et Power BI. 31 mars au 2 avril. Utilisez le code FABINSIDER pour économiser 400 $.
Inscrivez-vous aujourd’huiEntrainement
Module
Découvrez les cybermenaces courantes, dont les rançongiciels, ainsi que les modèles d’attaque auxquels une organisation doit se préparer.
Certification
Microsoft Certified : Azure Database Administrator Associate - Certifications
Administrer une infrastructure de base de données SQL Server pour les bases de données relationnelles cloud, locales et hybrides à l’aide des offres de bases de données relationnelles Microsoft PaaS.
Documentation
Sécurisation de SQL Server - SQL Server
Ces articles décrivent la création et l’implémentation d’un plan de sécurité efficace dans SQL Server. Apprenez-en davantage sur la plateforme, l’authentification, les objets et les applications.
Documentation sur la sécurité pour SQL Server et Azure SQL Database - SQL Server
Référence du contenu relatif à la sécurité et à la protection pour SQL Server et Azure SQL Database.
Évaluation des vulnérabilités pour SQL Server - SQL Server
Utilisez le scanner d’évaluation des vulnérabilités pour découvrir, suivre et corriger les vulnérabilités de base de données potentielles dans SQL Server.