Gérer les résultats des vulnérabilités dans vos bases de données Azure SQL

Microsoft Defender pour le cloud fournit une évaluation des vulnérabilités pour vos bases de données Azure SQL. L’évaluation des vulnérabilités analyse vos bases de données à la recherche de vulnérabilités logicielles et fournit une liste de résultats. Vous pouvez utiliser les résultats pour corriger les vulnérabilités logicielles et désactiver les résultats.

Prérequis

Assurez-vous que vous savez si vous utilisez la configuration rapide ou classique avant de continuer.

Pour voir quelle configuration vous utilisez :

  1. Sur le portail Azure, ouvrez la ressource spécifique dans Azure SQL Database, SQL Managed Instance Database ou Azure Synapse.
  2. Sous l’en-tête Sécurité, sélectionnez Defender pour le cloud.
  3. Dans État d’activation, sélectionnez Configurer pour ouvrir le volet Paramètres de Microsoft Defender pour SQL correspondant à l’ensemble du serveur ou à l’instance gérée.

Si les paramètres de vulnérabilité indiquent l’option permettant de configurer un compte de stockage, vous utilisez la configuration classique. Si ce n’est pas le cas, vous utilisez la configuration rapide.

Configuration rapide

Afficher l’historique d’analyse

Sélectionnez Historique d'analyse dans le volet Évaluation des vulnérabilités pour afficher l'historique de toutes les analyses précédemment exécutées sur cette base de données.

La configuration rapide ne stocke pas les résultats d’analyse s’ils sont identiques aux analyses précédentes. L’heure d’analyse indiquée dans l’historique d’analyse correspond à l’heure de la dernière analyse où les résultats de l’analyse ont changé.

Désactiver des résultats spécifiques de Microsoft Defender pour le cloud (préversion)

Si votre organisation préfère ignorer un résultat, plutôt que de le corriger, vous avez la possibilité de désactiver le résultat. Les résultats désactivés n’ont pas d’impact sur votre Niveau de sécurité ni ne génèrent de bruit indésirable. Vous pouvez voir la recherche désactivée dans la section « Non applicable » des résultats de l’analyse.

Les résultats correspondant aux critères définis dans vos règles de désactivation n’apparaissent pas dans la liste des résultats. Les scénarios typiques peuvent inclure les éléments suivants :

  • Désactiver les résultats avec une gravité moyenne ou inférieure
  • Désactiver les résultats qui ne peuvent pas être corrigés
  • Désactiver les résultats de points de référence ne présentant pas d’intérêt pour une étendue définie

Important

Pour désactiver des résultats spécifiques, vous devez disposer de l’autorisation de modifier une stratégie dans Azure Policy. Pour plus d’informations, consultez Autorisations Azure RBAC dans Azure Policy.

Pour créer une règle :

  1. Dans la page de détail des recommandations Les résultats de l’évaluation des vulnérabilités sur vos serveurs SQL sur des machines doivent être corrigés, sélectionnez Désactiver la règle.

  2. Sélectionnez l’étendue nécessaire.

  3. Définissez vos critères. Les critères suivants peuvent être utilisés :

    • ID de résultat
    • severity
    • Benchmarks
  4. Créez une règle de désactivation pour les résultats de l’évaluation des vulnérabilités sur les serveurs SQL sur des machines.

  5. Sélectionnez Appliquer la règle. La prise d’effet des modifications peut prendre jusqu'à 24 heures.

  6. Pour afficher, remplacer ou supprimer une règle :

    1. Sélectionnez Désactiver une règle.
    2. Dans la liste des étendues, les abonnements présentant des règles actives apparaissent avec la mention Règle appliquée.
    3. Pour afficher ou supprimer la règle, sélectionnez le menu de points de suspension (« … »).

Configurer des notifications par e-mail à l’aide d’Azure Logic Apps

Pour recevoir des mises à jour régulières de l’état d’évaluation des vulnérabilités pour votre base de données, vous pouvez utiliser le modèle Azure Logic Apps personnalisable.

L’utilisation du modèle vous permet de :

  • Choisir quand les rapports par e-mail sont envoyés.
  • Avoir une vue cohérente de votre état d’évaluation des vulnérabilités qui inclut les règles désactivées.
  • Envoyer des rapports pour les serveurs Azure SQL et les machines virtuelles SQL.
  • Personnaliser la structure et l’apparence des rapports pour qu’elles correspondent aux normes de votre organisation.

Gérer les évaluations de vulnérabilité par programmation

La configuration rapide est prise en charge dans la dernière version de l’API REST avec les fonctionnalités suivantes :

Description Étendue API
Opérations en bloc de base Base de données système Bases de référence de l’évaluation des vulnérabilités SQL
Base de référence de l’évaluation des vulnérabilités SQL
Opérations en bloc de base Base de données utilisateur Base de référence de l’évaluation des vulnérabilités de base de données SQL
Opérations de ligne de base de règle unique Base de données utilisateur Base de référence des règles d’évaluation des vulnérabilités de base de données SQL
Opérations de ligne de base de règle unique Base de données système Bases de référence des règles d’évaluation des vulnérabilités SQL
Base de référence des règles d’évaluation des vulnérabilités SQL
Résultats d’une analyse unique Base de données utilisateur Résultat de l’analyse de l’évaluation des vulnérabilités de base de données SQL
Résultats d’une analyse unique Base de données système Résultats de l’analyse de l’évaluation des vulnérabilités SQL
Détails de l’analyse (résumé) Base de données utilisateur Analyses de l’évaluation des vulnérabilités de base de données SQL
Détails de l’analyse (résumé) Base de données système Analyses de l’évaluation des vulnérabilités SQL
Exécuter une analyse manuelle Base de données utilisateur Analyse d’exécution de l’évaluation des vulnérabilités de base de données SQL
Exécuter une analyse manuelle Base de données système Analyse d’exécution de l’évaluation des vulnérabilités SQL
Paramètres d’évaluation des vulnérabilités (GET uniquement pris en charge pour la configuration rapide) Base de données utilisateur Paramètres des évaluations des vulnérabilités de base de données SQL
Opérations de paramètres d’analyse des vulnérabilités Serveur Paramètres des évaluations des vulnérabilités SQL
Évaluations des vulnérabilités SQL

Utilisation de modèles Azure Resource Manager

Utilisez le modèle ARM suivant pour créer un serveur logique Azure SQL avec une configuration express pour l’évaluation des vulnérabilités SQL.

Pour configurer les bases de référence de l'évaluation des vulnérabilités à l'aide de modèles Azure Resource Manager, utilisez le type Microsoft.Sql/servers/databases/sqlVulnerabilityAssessments/baselines. Vérifiez que vous avez activé vulnerabilityAssessments avant d’ajouter des lignes de base.

Voici plusieurs exemples de configuration des lignes de base à l’aide de modèles ARM :

  • Configurez la ligne de base des lots en fonction des derniers résultats d’analyse :

    {
        "type": "Microsoft.Sql/servers/databases/sqlVulnerabilityAssessments/baselines",
        "apiVersion": "2022-02-01-preview",
        "name": "[concat(parameters('serverName'),'/', parameters('databaseName') , '/default/default')]",
        "properties": {
            "latestScan": true
            }
    }
    
  • Configurez la ligne de base des lots en fonction de résultats spécifiques :

    {
        "type": "Microsoft.Sql/servers/databases/sqlVulnerabilityAssessments/baselines",
        "apiVersion": "2022-02-01-preview",
        "name": "[concat(parameters('serverName'),'/', parameters('databaseName') , '/default/default')]",
        "properties": {
            "latestScan": false,
            "results": {
            "VA2065": [
                [
                     "FirewallRuleName3",
                         "62.92.15.67",
                         "62.92.15.67"
                ],
                [
                     "FirewallRuleName4",
                         "62.92.15.68",
                         "62.92.15.68"
                ]
            ],
            "VA2130": [
                [
                     "dbo"
                ]
            ]
         }
      }
    }
    
  • Configurez la ligne de base pour une règle spécifique :

    {
        "type": "Microsoft.Sql/servers/databases/sqlVulnerabilityAssessments/baselines/rules",
        "apiVersion": "2022-02-01-preview",
        "name": "[concat(parameters('serverName'),'/', parameters('databaseName') , '/default/default/VA1143')]",
        "properties": {
        "latestScan": false,
        "results": [
            [ "True" ]
            ]
        }
    }
    
  • Configurez les lignes de base de traitement par lots sur la base de données master en fonction des derniers résultats d’analyse :

    {
        "type": "Microsoft.Sql/servers/databases/sqlVulnerabilityAssessments/baselines",
        "apiVersion": "2022-02-01-preview",
        "name": "[concat(parameters('serverName'),'/master/default/default')]",
        "properties": {
            "latestScan": true
            }
    }
    

Utilisation de PowerShell

La configuration rapide n’est pas prise en charge dans les cmdlets PowerShell, mais vous pouvez utiliser PowerShell pour appeler les dernières fonctionnalités d’évaluation des vulnérabilités à l’aide de l’API REST, par exemple :

Utilisation de l’interface de ligne de commande Azure

Appelez une configuration express à l’aide l’interface CLI Azure.

Résolution des problèmes

Revenir à la configuration classique

Pour passer d’une base de données Azure SQL de la configuration rapide de l’évaluation des vulnérabilités à la configuration classique :

  1. Désactivez le plan Defender pour Azure SQL depuis le Portail Azure.

  2. Utilisez PowerShell pour reconfigurer à l’aide de l’expérience classique :

    Update-AzSqlServerAdvancedThreatProtectionSetting `
                -ResourceGroupName "demo-rg" `
                -ServerName "dbsrv1" `
                -Enable 1
    Update-AzSqlServerVulnerabilityAssessmentSetting `
                -ResourceGroupName "demo-rg" `
                -ServerName "dbsrv1" `
                -StorageAccountName "mystorage" `
                -RecurringScansInterval Weekly `
                -ScanResultsContainerName "vulnerability-assessment"
    

    Il est possible que vous deviez ajuster Update-AzSqlServerVulnerabilityAssessmentSetting en fonction des Stocker les résultats de l’analyse d’évaluation des vulnérabilités dans un compte de stockage accessible derrière des pare-feu et des réseaux virtuels.

Erreurs

« L’évaluation des vulnérabilités est activée sur ce serveur ou sur l’une de ses bases de données sous-jacentes avec une version incompatible »

Causes possibles :

  • Le basculement vers la configuration rapide a échoué en raison d’une erreur de stratégie de serveur.

    Solution : réessayez pour activer la configuration rapide. Si le problème persiste, essayez de désactiver Microsoft Defender pour SQL dans la ressource Azure SQL, sélectionnez Enregistrer, activez à nouveau Microsoft Defender pour SQL, puis sélectionnez Enregistrer.

  • Le basculement vers la configuration rapide a échoué en raison d’une erreur de stratégie de base de données. Les stratégies de base de données ne sont pas visibles dans le Portail Azure pour l’évaluation des vulnérabilités de Defender pour SQL. Nous les vérifions donc pendant la phase de validation du passage à la configuration rapide.

    Solution : désactivez toutes les stratégies de base de données pour le serveur approprié, puis essayez de basculer à nouveau vers la configuration rapide.

  • Il est conseillé d’utiliser le script PowerShell fourni pour obtenir de l’aide.

Configuration classique

Afficher l’historique d’analyse

Sélectionnez Historique d'analyse dans le volet Évaluation des vulnérabilités pour afficher l'historique de toutes les analyses précédemment exécutées sur cette base de données.

Désactiver des résultats spécifiques de Microsoft Defender pour le cloud (préversion)

Si votre organisation préfère ignorer un résultat, plutôt que de le corriger, vous pouvez éventuellement désactiver cette fonction. Les résultats désactivés n’ont pas d’impact sur votre Niveau de sécurité ni ne génèrent de bruit indésirable.

Les résultats correspondant aux critères définis dans vos règles de désactivation n’apparaissent pas dans la liste des résultats. Les scénarios typiques peuvent inclure les éléments suivants :

  • Désactiver les résultats avec une gravité moyenne ou inférieure
  • Désactiver les résultats qui ne peuvent pas être corrigés
  • Désactiver les résultats de points de référence ne présentant pas d’intérêt pour une étendue définie

Important

  • Pour désactiver des résultats spécifiques, vous devez disposer de l’autorisation de modifier une stratégie dans Azure Policy. Pour plus d’informations, consultez Autorisations Azure RBAC dans Azure Policy.
  • Les résultats désactivés seront toujours inclus dans le rapport hebdomadaire d’évaluation des vulnérabilités SQL.
  • Les règles désactivées sont affichées dans la section « Non applicable » des résultats de l’analyse.

Pour créer une règle :

  1. Dans la page de détail des recommandations Les résultats de l’évaluation des vulnérabilités sur vos serveurs SQL sur des machines doivent être corrigés, sélectionnez Désactiver la règle.

  2. Sélectionnez l’étendue nécessaire.

  3. Définissez vos critères. Les critères suivants peuvent être utilisés :

    • ID de résultat
    • severity
    • Benchmarks

    Screenshot of create a disable rule for VA findings on SQL servers on machines.

  4. Sélectionnez Appliquer la règle. La prise d’effet des modifications peut prendre jusqu'à 24 heures.

  5. Pour afficher, remplacer ou supprimer une règle :

    1. Sélectionnez Désactiver une règle.

    2. Dans la liste des étendues, les abonnements présentant des règles actives apparaissent avec la mention Règle appliquée.

      Screenshot of modify or delete an existing rule.

    3. Pour afficher ou supprimer la règle, sélectionnez le menu de points de suspension (« … »).

Gérer les évaluations de vulnérabilité par programmation

Azure PowerShell

Notes

Cet article utilise le module Azure Az PowerShell, qui est le module PowerShell recommandé pour interagir avec Azure. Pour démarrer avec le module Az PowerShell, consulter Installer Azure PowerShell. Pour savoir comment migrer vers le module Az PowerShell, consultez Migrer Azure PowerShell depuis AzureRM vers Az.

Important

Le module PowerShell Azure Resource Manager est toujours pris en charge, mais tous les développements à venir sont destinés au module Az.Sql. Pour ces cmdlets, voir AzureRM.Sql. Les arguments des commandes dans le module Az sont sensiblement identiques à ceux des modules AzureRm.

Vous pouvez utiliser les applets de commande Azure PowerShell pour gérer par programmation l’évaluation des vulnérabilités. Les applets de commande prises en charge sont les suivantes :

Nom de l’applet de commande sous forme de lien Description
Clear-AzSqlDatabaseVulnerabilityAssessmentRuleBaseline Efface la ligne de base de la règle d’évaluation des vulnérabilités.
Définissez d’abord la base de référence avant d’utiliser cette applet de commande pour l’effacer.
Clear-AzSqlDatabaseVulnerabilityAssessmentSetting Efface les paramètres d'évaluation des vulnérabilités d'une base de données.
Clear-AzSqlInstanceDatabaseVulnerabilityAssessmentRuleBaseline Efface la base de référence de la règle d'évaluation des vulnérabilités d'une base de données managée.
Définissez d’abord la base de référence avant d’utiliser cette applet de commande pour l’effacer.
Clear-AzSqlInstanceDatabaseVulnerabilityAssessmentSetting Efface les paramètres d'évaluation des vulnérabilités d'une base de données managée.
Clear-AzSqlInstanceVulnerabilityAssessmentSetting Efface les paramètres d'évaluation des vulnérabilités d'une instance gérée.
Convert-AzSqlDatabaseVulnerabilityAssessmentScan Convertit les résultats de l’analyse de l’évaluation des vulnérabilités d’une base de données en fichier Excel (exportation).
Convert-AzSqlInstanceDatabaseVulnerabilityAssessmentScan Convertit les résultats de l’analyse de l’évaluation des vulnérabilités d’une base de données managée en fichier Excel (exportation).
Get-AzSqlDatabaseVulnerabilityAssessmentRuleBaseline Permet d'obtenir la base de référence de la règle d'évaluation des vulnérabilités d'une base de données pour une règle donnée.
Get-AzSqlInstanceDatabaseVulnerabilityAssessmentRuleBaseline Permet d'obtenir la base de référence de la règle d'évaluation des vulnérabilités d'une base de données managée pour une règle donnée.
Get-AzSqlDatabaseVulnerabilityAssessmentScanRecord Permet d'obtenir tous les enregistrements d'analyse d'évaluation des vulnérabilités associés à une base de données.
Get-AzSqlInstanceDatabaseVulnerabilityAssessmentScanRecord Permet d'obtenir tous les enregistrements d'analyse d'évaluation des vulnérabilités associés à une base de données managée.
Get-AzSqlDatabaseVulnerabilityAssessmentSetting Renvoie les paramètres d'évaluation des vulnérabilités d'une base de données.
Get-AzSqlInstanceDatabaseVulnerabilityAssessmentSetting Renvoie les paramètres d'évaluation des vulnérabilités d'une base de données managée.
Set-AzSqlDatabaseVulnerabilityAssessmentRuleBaseline Obtient la ligne de base de la règle d’évaluation des vulnérabilités.
Set-AzSqlInstanceDatabaseVulnerabilityAssessmentRuleBaseline Définit la base de référence de la règle d'évaluation des vulnérabilités d'une base de données managée.
Start-AzSqlDatabaseVulnerabilityAssessmentScan Déclenche le lancement d'une analyse d'évaluation des vulnérabilités sur une base de données.
Start-AzSqlInstanceDatabaseVulnerabilityAssessmentScan Déclenche le lancement d'une analyse d'évaluation des vulnérabilités sur une base de données managée.
Update-AzSqlDatabaseVulnerabilityAssessmentSetting Met à jour les paramètres d'évaluation des vulnérabilités d'une base de données.
Update-AzSqlInstanceDatabaseVulnerabilityAssessmentSetting Met à jour les paramètres d'évaluation des vulnérabilités d'une base de données managée.
Update-AzSqlInstanceVulnerabilityAssessmentSetting Met à jour les paramètres d'évaluation des vulnérabilités d'une instance gérée.

Pour obtenir un exemple de script, consultez Prise en charge de PowerShell pour l'évaluation des vulnérabilités Azure SQL.

Azure CLI

Important

Les commandes Azure CLI suivantes concernent les bases de données SQL hébergées sur des machines virtuelles ou sur des ordinateurs locaux. Pour les évaluations des vulnérabilités concernant les bases de données Azure SQL Database, reportez-vous au portail Azure ou à la section relative à PowerShell.

Vous pouvez utiliser des commandes Azure CLI pour gérer par programmation vos évaluations des vulnérabilités. Commandes prises en charge :

Nom de la commande sous forme de lien Description
az security va sql baseline delete Supprime la ligne de base de la règle Évaluation des vulnérabilités SQL.
az security va sql baseline list Affiche la ligne de base d’Évaluation des vulnérabilités SQL pour toutes les règles.
az security va sql baseline set Définit la ligne de base d’Évaluation des vulnérabilités SQL. Remplace la ligne de base actuelle.
az security va sql baseline show Affiche la ligne de base de la règle Évaluation des vulnérabilités SQL.
az security va sql baseline update Met à jour la ligne de base de la règle Évaluation des vulnérabilités SQL. Remplace la ligne de base actuelle de la règle.
az security va sql results list Affiche tous les résultats de l’analyse d’Évaluation des vulnérabilités SQL.
az security va sql results show Affiche les résultats de l’analyse d’Évaluation des vulnérabilités SQL.
az security va sql scans list Répertorie tous les résumés des analyses d’Évaluation des vulnérabilités SQL.
az security va sql scans show Affiche tous les résumés des analyses d’Évaluation des vulnérabilités SQL.

Modèles Resource Manager

Pour configurer les bases de référence de l'évaluation des vulnérabilités à l'aide de modèles Azure Resource Manager, utilisez le type Microsoft.Sql/servers/databases/vulnerabilityAssessments/rules/baselines.

Vérifiez que vous avez activé vulnerabilityAssessments avant d’ajouter des lignes de base.

Voici un exemple de définition de la règle de référence VA2065 sur une base de données master et VA1143 sur une base de données user comme ressources dans un modèle Resource Manager :

   "resources": [
      {
         "type": "Microsoft.Sql/servers/databases/vulnerabilityAapiVersion": "2018-06-01",
         "name": "[concat(parameters('server_name'),'/', parameters('database_name') , '/default/VA2065/master')]",
         "properties": {
            "baselineResults": [
               {
                  "result": [
                     "FirewallRuleName3",
                     "StartIpAddress",
                     "EndIpAddress"
                  ]
               },
               {
                  "result": [
                     "FirewallRuleName4",
                     "62.92.15.68",
                     "62.92.15.68"
                  ]
               }
            ]
         },
         "type": "Microsoft.Sql/servers/databases/vulnerabilityAapiVersion": "2018-06-01",
         "name": "[concat(parameters('server_name'),'/', parameters('database_name'), '/default/VA2130/Default')]",
         "dependsOn": [
            "[resourceId('Microsoft.Sql/servers/vulnerabilityAssessments', parameters('server_name'), 'Default')]"
         ],
         "properties": {
            "baselineResults": [
               {
                  "result": [
                     "dbo"
                  ]
               }
            ]
         }
      }
   ]

Pour la base de données master et la base de données user, les noms de ressources sont définis différemment :

  • Master database - "name": "[concat(parameters('server_name'),'/', parameters('database_name'), '/default/VA2065/master')]",
  • User database - "name": "[concat(parameters('server_name'),'/', parameters('database_name'), '/default/VA2065/default')]",

Pour gérer des types booléens comme true/false, définissez le résultat de la base de référence avec une entrée binaire comme "1"/"0".

   {
      "type": "Microsoft.Sql/servers/databases/vulnerabilityapiVersion": "2018-06-01",
      "name": "[concat(parameters('server_name'),'/', parameters('database_name'), '/default/VA1143/Default')]",

      "dependsOn": [
         "[resourceId('Microsoft.Sql/servers/vulnerabilityAssessments', parameters('server_name'), 'Default')]"
      ],

      "properties": {
         "baselineResults": [
            {
               "result": [
                  "1"
               ]
            }
         ]
      }

   }