Exercice : Sécuriser vos données en transit, au repos et à l’affichage
La base de données marketplaceDb stocke des informations sensibles, telles que des adresses physiques, des adresses e-mail et des numéros de téléphone. Si elles sont exposées, des attaquants malveillants pourraient utiliser ces informations pour nuire à votre entreprise ou à vos clients. Découvrez comment renforcer la sécurité de votre base de données à l’aide du chiffrement et du masquage des données.
Chiffrement TLS du réseau
Azure SQL Database applique le chiffrement TLS (Transport Layer Security) de façon permanente pour toutes les connexions, ce qui garantit que toutes les données sont chiffrées pendant leur transit entre la base de données et le client. Grâce au chiffrement TLS, vous êtes certain qu’aucune personne qui pourrait intercepter des données transitant entre le serveur d’applications et la base de données n’est en mesure de lire ces données. Le chiffrement TLS est une norme de sécurisation du trafic sur Internet et, dans ce cas, il garantit que votre trafic réseau vers et à partir de votre base de données SQL Azure est automatiquement sécurisé.
Chiffrement TDE
Azure SQL Database protège vos données au repos à l’aide du chiffrement TDE (Transparent Data Encryption). TDE chiffre et déchiffre en temps réel la base de données, les sauvegardes associées et les fichiers journaux de transactions au repos, sans qu’il soit nécessaire de modifier l’application. Le chiffrement transparent des données effectue le chiffrement et le déchiffrement d’E/S en temps réel des données au niveau de la page à l’aide d’une clé de chiffrement de la base de données. Chaque page est déchiffrée quand elle est lue en mémoire, puis chiffrée avant d’être écrite sur le disque.
Par défaut, TDE est activé pour toutes les nouvelles bases de données SQL Azure déployées. Il est important de vérifier que le chiffrement des données n’est pas désactivé. Il est possible que le chiffrement transparent des données ne soit pas activé pour les anciennes bases de données Azure SQL Server.
Accédez au portail et examinez la section où le chiffrement TDE est configuré pour votre base de données marketplaceDb.
Connectez-vous au portail Azure avec le compte que vous avez utilisé pour activer le bac à sable.
Dans la barre de recherche en haut du portail Azure, recherchez marketplaceDb, puis sélectionnez la base de données.
Dans le volet de menu de gauche, sous Sécurité, sélectionnez Chiffrement des données.
Dans l’option de chiffrement des données, vérifiez que Chiffrement des données est défini sur On (activé). Vous devez également voir l’état de chiffrement Chiffré.
Dans la mesure où les nouvelles bases de données sont chiffrées par défaut, vous êtes sûrs que vos données sont chiffrées sur le disque dès que vous créez la base de données.
Remarque
Azure fournit un service intégré appelé Microsoft Defender pour le cloud qui vous donne une visibilité sur la sécurité de votre environnement, y compris les bases de données Azure SQL. Microsoft Defender pour le cloud marque chaque base de données qui n’a pas le chiffrement transparent des données activé, pour vous permettre de signaler le problème et de prendre des mesures de sécurisation de vos données.
Masquage des données dynamiques
Vous remarquerez peut-être que lorsque vous avez exécuté votre requête dans l’unité précédente, certaines informations de la base de données sont sensibles. Il existe des numéros de téléphone, des adresses e-mail et d’autres informations que vous ne souhaiterez peut-être pas afficher entièrement à tous les utilisateurs ayant accès aux données.
Par exemple, vous pouvez vouloir que les utilisateurs ne soient pas en mesure de voir l’adresse e-mail ou le numéro de téléphone complet, tout en souhaitant mettre à la disposition des conseillers du service clientèle une partie des données pour identifier les clients. La fonctionnalité de masquage dynamique des données d’Azure SQL Database vous permet de limiter les données affichées à l’utilisateur. Le masquage dynamique des données est une fonctionnalité de sécurité basée sur des stratégies qui masque les données sensibles dans le jeu de résultats d’une requête sur les champs de base de données désignés. Les données de la base de données ne sont pas modifiées.
Les règles de masquage des données définissent la colonne à laquelle appliquer le masque ainsi que le format de masquage des données. Vous pouvez créer votre propre format de masquage, ou utiliser un des masques standards suivants :
- Valeur par défaut, qui affiche la valeur par défaut pour ce type de données.
- Valeur de carte de crédit, qui n’affiche que les quatre derniers chiffres du numéro, tous les autres chiffres étant convertis en x minuscules.
- E-mail, qui masque le nom de domaine et tout sauf le premier caractère du nom du compte de messagerie.
- Nombre, qui spécifie un nombre aléatoire dans une plage de valeurs. Par exemple, pour le mois et l’année d’expiration de la carte de crédit, vous pourriez sélectionner des mois aléatoires de 1 à 12 et définir la plage des années de 2018 à 3000.
- Chaîne personnalisée, qui vous permet de définir le nombre de caractères exposés au début des données, le nombre de caractères exposés à la fin des données et les caractères à répéter pour le reste des données.
Lorsque les administrateurs de base de données interrogent les colonnes, ils voient toujours les valeurs d’origine. Les utilisateurs non administrateurs voient les valeurs masquées. Vous pouvez permettre à d’autres utilisateurs de voir les valeurs non masquées en les ajoutant aux utilisateurs SQL exclus de la liste de masquage.
Voyez comment appliquer le masquage des données dans votre base de données marketplaceDb.
Toujours à partir du portail, dans le panneau de la base de données marketplaceDb, dans le volet de menu de gauche, sous Sécurité, sélectionnez Dynamic Data Masking.
L’écran des règles de masquage affiche une liste des masques dynamiques de données existants, ainsi que des suggestions de colonnes auxquelles vous pourriez éventuellement appliquer un de ces masques.
Ajoutez un masque afin d’afficher uniquement les quatre derniers chiffres du numéro de téléphone. Sélectionnez le bouton Ajouter un masque en haut pour ouvrir la boîte de dialogue Ajouter une règle de masquage.
Sélectionnez les valeurs suivantes.
Paramètre Écritures valeur Schéma SalesLT Table Customer Colonne Phone (nvarchar) Format de masquage du champ Chaîne personnalisée (préfixe [remplissage] suffixe) Préfixe exposé 0 Chaîne de remplissage XXX-XXX- Suffixe exposé 4 Sélectionnez Ajouter pour ajouter la règle de masquage.
Ajoutez une autre règle pour l’adresse e-mail. Sélectionnez le bouton Ajouter un masque en haut pour ouvrir la boîte de dialogue Ajouter une règle de masquage.
Setting Écritures valeur Schéma SalesLT Table Customer Colonne EmailAddress (nvarchar) Format de masquage du champ Email (aXXX@XXX.com) Sélectionnez Ajouter pour ajouter la règle de masquage.
Chaque nouveau masque est ajouté à la liste de règles de masquage. Sélectionnez Enregistrer pour appliquer les masques.
Voyez quel est l’impact du masquage des données sur votre requête.
Reconnectez-vous à la base de données, mais en tant qu’utilisateur ApplicationUser.
sqlcmd -S tcp:[server-name].database.windows.net,1433 -d marketplaceDb -U 'ApplicationUser' -P '[password]' -N -l 30
Exécutez la requête suivante.
SELECT FirstName, LastName, EmailAddress, Phone FROM SalesLT.Customer; GO
Regardez comment la sortie est masquée.
FirstName LastName EmailAddress Phone ------------- ------------- -------------------- ------------ Orlando Gee oXXX@XXXX.com XXX-XXX-0173 Keith Harris kXXX@XXXX.com XXX-XXX-0127 Donna Carreras dXXX@XXXX.com XXX-XXX-0130 Janet Gates jXXX@XXXX.com XXX-XXX-0173 ...
Avec les règles de masquage que vous avez créées, vos données sont masquées avec le format que vous spécifiez. Ces règles permettent à vos conseillers du service clientèle d’identifier les clients à l’aide des quatre derniers chiffres du numéro de téléphone, sans pour autant avoir accès au numéro complet ni à l’adresse e-mail des clients.