Exercice : Superviser votre base de données

Effectué

Imaginez que vous recevez une alerte de l’administrateur de sécurité de votre entreprise. Une violation de sécurité potentielle a été détectée sur votre réseau. Un individu non autorisé a peut-être accédé à votre base de données via une activité malveillante. Comment gérer ce problème ?

Vous savez que vous devez superviser activement votre base de données pour détecter les activités suspectes. Que pouvez-vous faire pour non seulement avoir une visibilité des actions effectuées dans votre base de données, mais également pour empêcher les activités malveillantes ?

Azure SQL Database dispose de fonctionnalités intégrées qui peuvent vous aider à suivre les actions effectuées dans votre base de données. Il peut surveiller et vous avertir s’il identifie des activités malveillantes.

Audit Azure SQL Database

En activant l’audit, les opérations effectuées sur la base de données sont enregistrées pour être inspectées ultérieurement, ou être analysées par des outils automatisés. L’audit est également utilisé dans le cadre de la gestion de la conformité ou pour comprendre de quelle façon votre base de données est employée. De plus, l’audit est nécessaire si vous souhaitez activer la détection des menaces Azure sur votre base de données SQL Azure.

Vous pouvez utiliser l’audit de bases de données SQL pour :

  • La rétention d’une piste d’audit d’événements sélectionnés. Vous pouvez définir les catégories des actions de base de données à auditer.
  • La génération de rapports sur les activités de la base de données. Vous pouvez utiliser des rapports préconfigurés et un tableau de bord pour une prise en main rapide de la génération de rapports d’activités et d’événements.
  • L'analyse des rapports. Vous pouvez repérer les événements suspects, les activités inhabituelles et les tendances.

Les journaux d’audit sont écrits dans des objets blob d’ajout, eux-mêmes conservés dans un compte Stockage Blob Azure que vous désignez. Des stratégies d’audit peuvent être appliquées au niveau du serveur ou de la base de données. Une fois activé, vous pouvez afficher les journaux dans le Portail Azure ou les envoyer à Log Analytics ou à Event Hub en vue d’un traitement et d’une analyse approfondis.

L’audit en pratique

En guide de bonne pratique, évitez d’activer à la fois l’audit d’objets blob du serveur et l’audit d’objets blob de la base de données, sauf si :

  • Vous voulez utiliser un autre compte de stockage ou une autre période de conservation pour une base de données spécifique.
  • Vous souhaitez auditer des types ou des catégories d’événements pour une base de données spécifique qui diffère des autres bases de données du serveur. Par exemple, vous risquez d’avoir des insertions de table qui doivent être auditées mais uniquement pour une base de données spécifique.

Sinon, nous vous recommandons d’activer uniquement l’audit d’objets blob au niveau du serveur et de laisser l’audit au niveau de la base de données désactivé pour toutes les bases de données.

Suivez ces étapes pour configurer l’audit sur votre système.

  1. Connectez-vous au portail Azure avec le compte que vous avez utilisé pour activer le bac à sable.

  2. Dans la barre de recherche en haut du portail, recherchez serverNNNNN, puis sélectionnez le serveur dans le portail. Remplacez NNNNN par le numéro de votre nom de serveur.

  3. Dans le volet de menu de gauche, sous Sécurité, sélectionnez Audit.

  4. L’audit est désactivé par défaut. Pour l’activer sur votre serveur de base de données, basculez Activer l’audit Azure AQL sur ACTIVÉ.

  5. Une fois le bouton ACTIVÉ sélectionné, cochez la case Stockage.

  6. Sélectionnez votre abonnement.

  7. Vous pouvez sélectionner un compte de stockage existant ou en créer un nouveau pour stocker vos audits. Le compte de stockage doit être configuré pour utiliser la même région que votre serveur.

    Dans cet exemple, définissez un nouveau compte de stockage. Sous Compte de stockage, sélectionnez Créer un nouveau. Le volet Créer un compte de stockage s’affiche. Nommez le compte de stockage serverNNNNNauditing, en remplaçant NNNNN par le numéro de votre nom de serveur logique.

  8. Laissez les autres options aux valeurs par défaut et sélectionnez OK. Dans le volet Paramètres de stockage, laissez les valeurs par défaut et sélectionnez OK.

  9. Sélectionnez Enregistrer pour enregistrer vos modifications et activer l’audit sur votre serveur de base de données.

Générez maintenant quelques enregistrements d’audit et examinez quelques résultats possibles.

  1. Reconnectez-vous à la base de données en tant qu’utilisateur ApplicationUser.

    sqlcmd -S tcp:serverNNNNN.database.windows.net,1433 -d marketplaceDb -U 'ApplicationUser' -P '[password]' -N -l 30
    
  2. Exécutez la requête suivante.

    SELECT FirstName, LastName, EmailAddress, Phone FROM SalesLT.Customer;
    GO
    
  3. Sur le portail Azure, dans votre serveur SQL, sélectionnez Bases de données SQL dans le volet de menu de gauche, puis sélectionnez la base de données marketplace.

  4. Dans le volet de menu de gauche de votre base de données marketplace, sous Sécurité, sélectionnez Audit.

  5. Parce que vous avez activé l’audit au niveau du serveur, vous devez voir qu’il est activé ici. Sélectionnez Afficher les journaux d’audit dans la barre de menus en haut pour voir les journaux.

  6. Vous devez voir un ou plusieurs enregistrements d’audit pour lesquels PRINCIPAL NAME a la valeur ApplicationUser et EVENT TYPE a la valeur BATCH COMPLETED. L’un d’eux devrait contenir les détails de la requête que vous venez d’exécuter. Vous pouvez également voir d’autres événements, tels que les authentifications échouées et réussies. Sélectionnez un enregistrement pour afficher les détails complets de l’événement.

Screenshot shows an example event in the audit log.

Ces actions configurent les audits au niveau du serveur de base de données. Les audits s’appliquent à toutes les bases de données sur le serveur. Vous pouvez également configurer l’audit à un niveau de base de données.

Examinez maintenant une autre fonctionnalité qui utilise ces journaux pour renforcer la sécurité de votre base de données.

Advanced Data Security pour Azure SQL Database

Advanced Data Security (ADS) fournit un ensemble de fonctionnalités de sécurité SQL avancées, dont la découverte et la classification des données, l’évaluation des vulnérabilités et Advanced Threat Protection.

  • Découverte et classification des données (actuellement en préversion) offre des fonctionnalités intégrées à Azure SQL Database pour la découverte, la classification, l’étiquetage et la protection des données sensibles dans vos bases de données. Vous pouvez utiliser cette fonctionnalité pour fournir de la visibilité sur l’état de classification de votre base de données et pour suivre l’accès aux données sensibles dans la base de données et au-delà.
  • L’évaluation des vulnérabilités est un service facile à configurer capable de découvrir et suivre les potentielles vulnérabilités de base de données, et de vous aider à y remédier. Elle offre une visibilité sur votre état de sécurité et inclut des mesures pratiques pour résoudre les problèmes de sécurité et améliorer la protection de votre base de données.
  • Advanced Threat Protection détecte les activités anormales indiquant des tentatives d’accès ou d’exploitation inhabituelles et potentiellement dangereuses de votre base de données. Elle surveille en permanence votre base de données pour détecter des activités suspectes et envoie immédiatement des alertes de sécurité en cas de vulnérabilités éventuelles, d’attaques par injection de code SQL et de modèles d’accès anormaux à la base de données. Les alertes Advanced Threat Protection fournissent des informations sur les activités suspectes et recommandent l’action à entreprendre pour investiguer et atténuer la menace.

Installation et configuration

Activez ADS sur votre base de données. ADS est un paramètre de niveau serveur, commencez donc ici.

  1. Revenez sur le portail Azure et accédez à votre serveur SQL. Dans la barre de recherche en haut de la page, recherchez serverNNNNN, puis sélectionnez le serveur.

  2. Dans le volet du menu de gauche, sous Sécurité, sélectionnez Microsoft Defender pour le cloud.

  3. Sélectionnez Activer Microsoft Defender pour SQL.

  4. Sélectionnez Configurer en regard du message Activé au niveau de l’abonnement. Le volet Paramètres du serveur s’affiche.

  5. Les analyses récurrentes périodiques sont activées par défaut. Lorsqu’une analyse hebdomadaire est déclenchée, un résumé du résultat de l’analyse est envoyé à l’adresse e-mail que vous fournissez. Dans ce cas, désactivez-le. Envoyer aussi une notification par e-mail aux administrateurs et aux propriétaires de l’abonnement est activé par défaut pour envoyer les menaces aux administrateurs de services. Sélectionnez Enregistrer en haut de la page pour enregistrer vos paramètres.

  6. Sous Paramètres avancés de protection contre les menaces, sélectionnez Ajouter vos coordonnées... pour ouvrir le volet Notifications par e-mail de Defender pour le cloud. Vous pouvez éventuellement définir l’emplacement où les e-mails de notification sont envoyés sous la forme d’une liste d’adresses e-mail séparées par des points-virgules à la fois pour l’évaluation des vulnérabilités et la protection avancée contre les menaces. Envoyer aussi une notification par e-mail aux administrateurs et aux propriétaires de l’abonnement est activé par défaut pour envoyer les menaces aux administrateurs de services.

  7. Vous pouvez également sélectionner Activer l’audit. ... pour activer l’audit Azure SQL.

  8. Sélectionnez Enregistrer pour appliquer la modification.

Vous recevez des notifications par e-mail en cas de détection de vulnérabilités. L’e-mail décrit ce qui s’est produit et les actions à prendre.

Screenshot shows an example notification warning from Microsoft Defender for Cloud.

Découverte et classification des données

  1. Accédez à votre base de données de place de marché. Dans la barre de recherche en haut du portail Azure, recherchez marketplace, puis sélectionnez la base de données.

  2. Dans le volet du menu de gauche, sous Sécurité, sélectionnez Découverte et classification des données.

L’onglet Classification montre les colonnes à protéger dans vos tables. Certaines colonnes pourraient contenir des informations sensibles ou être considérées comme classifiées dans certains pays ou régions.

Screenshot that shows the Classification tab in the Data Discovery and Classification pane.

Un message apparaît si des colonnes nécessitent une protection configurée. Ce message est mis sous forme de 15 colonnes avec des suggestions de classification. Vous pouvez sélectionner le texte pour voir les recommandations.

Sélectionnez les colonnes que vous souhaitez classifier en cochant la case à côté de la colonne ou bien cochez la case à gauche de l’en-tête du schéma. Sélectionnez le bouton Accepter les suggestions sélectionnées pour appliquer les suggestions de classification.

Ensuite, modifiez les colonnes, puis définissez le type d’informations et l’étiquette du caractère sensible de la base de données. Sélectionnez Enregistrer pour enregistrer les modifications.

Il ne doit rester aucune suggestion active listée une fois que vous avez correctement traité les suggestions.

Failles de sécurité

Dans le volet du menu de gauche, sous Sécurité, sélectionnez Microsoft Defender pour le cloud.

La section Suggestions répertorie les problèmes de configuration sur votre base de données et le risque associé.

Sélectionnez une recommandation. Dans le volet Suggestions, vous avez accès à des informations comme le niveau de risque, la base de données à laquelle il s’applique, une description de la vulnérabilité ainsi que la correction recommandée pour résoudre le problème. Appliquez la correction pour résoudre le ou les problèmes. Veillez à résoudre toutes les vulnérabilités.

Alertes et incidents de sécurité

Cette section affiche une liste des menaces détectées.

Résolvez les problèmes en suivant les suggestions. Pour les problèmes tels que les avertissements d’injection de code SQL, vous pouvez examiner la requête et revenir en arrière pour examiner le niveau auquel la requête est exécutée dans le code. Une fois ceci trouvé, vous devez réécrire le code afin qu’il n’y ait plus de problème.