Administración de los resultados de vulnerabilidades en las bases de datos de Azure SQL

Microsoft Defender for Cloud proporciona una evaluación de vulnerabilidades para las bases de datos de Azure SQL. La evaluación de vulnerabilidades examina las bases de datos en busca de vulnerabilidades de software y proporciona una lista de resultados. Puede usar los resultados para corregir las vulnerabilidades de software y deshabilitar los resultados.

Requisitos previos

Asegúrese de que sabe si usa las configuraciones rápidas o clásicas antes de continuar.

Para ver qué configuración usa:

  1. En Azure Portal, abra el recurso específico de Azure SQL Database, SQL Managed Instance o Azure Synapse.
  2. En el encabezado Seguridad, seleccione Defender for Cloud.
  3. En Estado de habilitación, seleccione Configurar en el vínculo para abrir el panel de configuración de Microsoft Defender para SQL para todo el servidor o la instancia administrada.

Si la configuración de vulnerabilidad muestra la opción para configurar una cuenta de almacenamiento, significa que usa la configuración clásica. Si no es así, usa la configuración rápida.

Configuración rápida

Visualización del historial de exámenes

Seleccione Historial de exámenes en el panel Evaluación de vulnerabilidades para ver el historial de todos los exámenes ejecutados previamente en esta base de datos.

La configuración rápida no almacena los resultados del examen si son idénticos a los exámenes anteriores. La hora de examen que se muestra en el historial de exámenes es la hora del último examen en el que cambiaron los resultados.

Deshabilitación de resultados específicos de Microsoft Defender for Cloud (versión preliminar)

Si tiene la necesidad organizativa de omitir un resultado, en lugar de corregirlo, puede deshabilitarlo. Los resultados deshabilitados no afectan a la puntuación de seguridad ni generan ruido no deseado. Puede ver el resultado deshabilitado en la sección "No aplicable" de los resultados del examen.

Cuando un resultado coincide con los criterios que ha definido en las reglas de deshabilitación, no aparecerá en la lista de resultados. Los escenarios típicos pueden incluir:

  • Deshabilitación de los resultados con gravedad media o inferior
  • Deshabilitar resultados que no se pueden revisar
  • Deshabilitar resultados de los puntos de referencia que no son de interés para un ámbito definido

Importante

Para deshabilitar conclusiones específicas, necesita permisos para editar directivas en Azure Policy. Obtenga más información en Permisos de Azure RBAC en Azure Policy.

Para crear una regla:

  1. En la página de detalles de recomendaciones de Es necesario corregir los resultados de la evaluación de vulnerabilidades de los servidores SQL Server en las máquinas, seleccione Deshabilitar regla.

  2. Seleccione el ámbito pertinente.

  3. Defina los criterios. Puede utilizar cualquiera de los criterios siguientes:

    • Identificador del resultado
    • severity
    • Pruebas comparativas
  4. Creación de una regla de deshabilitación para los resultados de VA en servidores SQL Server en máquinas virtuales

  5. Seleccione Aplicar regla. Los cambios pueden tardar hasta 24 horas en surtir efecto.

  6. Para ver, invalidar o eliminar una regla:

    1. Seleccione Deshabilitar regla.
    2. En la lista de ámbitos, las suscripciones con reglas activas se muestran como Regla aplicada.
    3. Para ver o eliminar la regla, seleccione el menú de puntos suspensivos ("...").

Configuración de notificaciones por correo electrónico mediante Azure Logic Apps

Para recibir actualizaciones periódicas del estado de evaluación de vulnerabilidades de la base de datos, puede usar la plantilla personalizable de Azure Logic Apps.

El uso de la plantilla le permitirá:

  • Elegir el calendario de los informes de correo electrónico.
  • Tener una visión coherente del estado de evaluación de vulnerabilidades que incluye reglas deshabilitadas.
  • Enviar informes para servidores de Azure SQL y máquinas virtuales SQL.
  • Personalizar la estructura del informe y la apariencia para que coincidan con los estándares de la organización.

Administración de las evaluaciones de vulnerabilidades mediante programación

La configuración rápida se admite en la versión más reciente de la API de REST con la siguiente funcionalidad:

Descripción Ámbito API
Operaciones masivas de línea de base Base de datos del sistema Líneas de base de la evaluación de vulnerabilidades de SQL
Línea de base de la evaluación de vulnerabilidades de SQL
Operaciones masivas de línea de base Base de datos de usuario Líneas de base de la evaluación de vulnerabilidades de bases de datos SQL
Operaciones de línea de base de regla única Base de datos de usuario Líneas de base de la regla de evaluación de vulnerabilidades de bases de datos SQL
Operaciones de línea de base de regla única Base de datos del sistema Líneas de base de la regla de evaluación de vulnerabilidades de SQL
Línea de base de la regla de evaluación de vulnerabilidades de SQL
Resultados de un examen único Base de datos de usuario Resultado del examen de la evaluación de vulnerabilidades de bases de datos SQL
Resultados de un examen único Base de datos del sistema Resultado del examen de la evaluación de vulnerabilidades de SQL
Detalles del examen (resumen) Base de datos de usuario Exámenes de la evaluación de vulnerabilidades de bases de datos SQL
Detalles del examen (resumen) Base de datos del sistema Exámenes de la evaluación de vulnerabilidades de SQL
Ejecución de un examen manual Base de datos de usuario Ejecución del examen de la evaluación de vulnerabilidades de bases de datos SQL
Ejecución de un examen manual Base de datos del sistema Ejecución del examen de la evaluación de vulnerabilidades de SQL
Configuración de VA (solo GET es compatible con la configuración rápida) Base de datos de usuario Configuración de las evaluaciones de vulnerabilidades de bases de datos SQL
Operaciones de configuración de VA Server Configuración de las evaluaciones de vulnerabilidades de SQL
Evaluaciones de vulnerabilidades de SQL

Uso de plantillas del Administrador de recursos de Azure

Use la siguiente plantilla de ARM para crear un nuevo servidor lógico Azure SQL con configuración rápida para la evaluación de vulnerabilidades de SQL.

Para configurar las bases de referencia de evaluación de vulnerabilidades mediante plantillas de Azure Resource Manager, use el tipo Microsoft.Sql/servers/databases/sqlVulnerabilityAssessments/baselines. Antes de agregar líneas de base, asegúrese de que vulnerabilityAssessments está habilitado.

Estos son varios ejemplos de cómo configurar líneas de base mediante plantillas de ARM:

  • Configure la línea de base por lotes en función de los resultados del último examen:

    {
        "type": "Microsoft.Sql/servers/databases/sqlVulnerabilityAssessments/baselines",
        "apiVersion": "2022-02-01-preview",
        "name": "[concat(parameters('serverName'),'/', parameters('databaseName') , '/default/default')]",
        "properties": {
            "latestScan": true
            }
    }
    
  • Configure la línea de base por lotes en función de resultados específicos:

    {
        "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"
                ]
            ]
         }
      }
    }
    
  • Configure la línea de base para una regla específica:

    {
        "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" ]
            ]
        }
    }
    
  • Configure líneas de base por lotes en la base de datos maestra en función de los resultados del último examen:

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

Usar PowerShell

La configuración rápida no se admite en los cmdlets de PowerShell, pero puede usar PowerShell para invocar las funcionalidades de evaluación de vulnerabilidades más recientes mediante la API de REST, por ejemplo:

Uso de la CLI de Azure

Invocación de la configuración rápida mediante la CLI de Azure.

Solución de problemas

Revertir a la configuración clásica

Para cambiar una base de datos de Azure SQL de la configuración rápida de evaluación de vulnerabilidades a la configuración clásica:

  1. Deshabilite el plan de Defender para Azure SQL en Azure Portal.

  2. Use PowerShell para volver establecer la configuración mediante la experiencia clásica:

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

    Es posible que tenga que ajustar Update-AzSqlServerVulnerabilityAssessmentSetting de acuerdo con examen de evaluación de vulnerabilidades del almacén da como resultado una cuenta de almacenamiento accesible detrás de firewalls y redes virtuales.

Errors

"La evaluación de vulnerabilidades está habilitada en este servidor o en una de sus bases de datos subyacentes con una versión incompatible"

Causas posibles:

  • Error al cambiar a la configuración rápida debido a un problema con la directiva del servidor.

    Solución: vuelva a intentar habilitar la configuración rápida. Si el problema persiste, intente deshabilitar Microsoft Defender para SQL en el recurso de Azure SQL, seleccione Guardar, habilite Microsoft Defender para SQL de nuevo y seleccione Guardar.

  • Error al cambiar a la configuración rápida debido a un problema con la directiva de la base de datos. Las directivas de base de datos no se muestran en Azure Portal para la evaluación de vulnerabilidades de Defender para SQL, por lo que las comprobamos durante la fase de validación al cambiar a la configuración rápida.

    Solución: deshabilite todas las directivas de base de datos para el servidor pertinente e intente cambiar de nuevo a la configuración rápida.

  • Considere usar el script de PowerShell proporcionado para obtener ayuda.

Configuración clásica

Visualización del historial de exámenes

Seleccione Historial de exámenes en el panel Evaluación de vulnerabilidades para ver el historial de todos los exámenes ejecutados previamente en esta base de datos.

Deshabilitación de resultados específicos de Microsoft Defender for Cloud (versión preliminar)

Si tiene la necesidad organizativa de omitir un resultado, en lugar de corregirlo, tiene la opción de deshabilitarlo. Los resultados deshabilitados no afectan a la puntuación de seguridad ni generan ruido no deseado.

Cuando un resultado coincide con los criterios que ha definido en las reglas de deshabilitación, no aparecerá en la lista de resultados. Los escenarios típicos pueden incluir:

  • Deshabilitación de los resultados con gravedad media o inferior
  • Deshabilitar resultados que no se pueden revisar
  • Deshabilitar resultados de los puntos de referencia que no son de interés para un ámbito definido

Importante

  • Para deshabilitar conclusiones específicas, necesita permisos para editar directivas en Azure Policy. Obtenga más información en Permisos de Azure RBAC en Azure Policy.
  • Los resultados deshabilitados se seguirán incluyendo en el informe semanal de correo electrónico de evaluación de vulnerabilidades de SQL.
  • Las reglas deshabilitadas se muestran en la sección "No aplicable" de los resultados del examen.

Para crear una regla:

  1. En la página de detalles de recomendaciones de Es necesario corregir los resultados de la evaluación de vulnerabilidades de los servidores SQL Server en las máquinas, seleccione Deshabilitar regla.

  2. Seleccione el ámbito pertinente.

  3. Defina los criterios. Puede utilizar cualquiera de los criterios siguientes:

    • Identificador del resultado
    • severity
    • Pruebas comparativas

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

  4. Seleccione Aplicar regla. Los cambios pueden tardar hasta 24 horas en surtir efecto.

  5. Para ver, invalidar o eliminar una regla:

    1. Seleccione Deshabilitar regla.

    2. En la lista de ámbitos, las suscripciones con reglas activas se muestran como Regla aplicada.

      Screenshot of modify or delete an existing rule.

    3. Para ver o eliminar la regla, seleccione el menú de puntos suspensivos ("...").

Administración de las evaluaciones de vulnerabilidades mediante programación

Azure PowerShell

Nota:

En este artículo se usa el módulo Az de PowerShell, que es el módulo de PowerShell que se recomienda para interactuar con Azure. Para empezar a trabajar con el módulo Az de PowerShell, consulte Instalación de Azure PowerShell. Para más información sobre cómo migrar al módulo Az de PowerShell, consulte Migración de Azure PowerShell de AzureRM a Az.

Importante

El módulo de Azure Resource Manager para PowerShell todavía es compatible, pero todo el desarrollo futuro se realizará para el módulo Az.Sql. Para estos cmdlets, consulte AzureRM.Sql. Los argumentos para los comandos del módulo Az y los módulos AzureRm son esencialmente idénticos.

Puede usar los cmdlets de Azure PowerShell para administrar mediante programación sus evaluaciones de vulnerabilidad. Los cmdlets compatibles son:

Nombre del cmdlet como vínculo Descripción
Clear-AzSqlDatabaseVulnerabilityAssessmentRuleBaseline Borra la base de referencia de la regla de evaluación de vulnerabilidad.
En primer lugar, establezca la línea de base antes de usar este cmdlet para eliminarla.
Clear-AzSqlDatabaseVulnerabilityAssessmentSetting Borra la configuración de evaluación de vulnerabilidades de una base de datos.
Clear-AzSqlInstanceDatabaseVulnerabilityAssessmentRuleBaseline Borra la base de referencia de la regla de evaluación de vulnerabilidades de una base de datos administrada.
En primer lugar, establezca la línea de base antes de usar este cmdlet para eliminarla.
Clear-AzSqlInstanceDatabaseVulnerabilityAssessmentSetting Borra la configuración de la evaluación de vulnerabilidades de una base de datos administrada.
Clear-AzSqlInstanceVulnerabilityAssessmentSetting Borra la configuración de la evaluación de vulnerabilidades de una instancia administrada.
Convert-AzSqlDatabaseVulnerabilityAssessmentScan Convierte los resultados del examen de evaluación de vulnerabilidades de una base de datos en un archivo de Excel (exportar).
Convert-AzSqlInstanceDatabaseVulnerabilityAssessmentScan Convierte los resultados del examen de evaluación de vulnerabilidades de una base de datos administrada en un archivo de Excel (exportar).
Get-AzSqlDatabaseVulnerabilityAssessmentRuleBaseline Obtiene la base de referencia de la regla de evaluación de vulnerabilidades de una base de datos para una regla determinada.
Get-AzSqlInstanceDatabaseVulnerabilityAssessmentRuleBaseline Obtiene la base de referencia de la regla de evaluación de vulnerabilidades de una base de datos administrada para una regla determinada.
Get-AzSqlDatabaseVulnerabilityAssessmentScanRecord Obtiene todos los registros de examen de evaluación de vulnerabilidades asociados con una base de datos dada.
Get-AzSqlInstanceDatabaseVulnerabilityAssessmentScanRecord Obtiene todos los registros de examen de evaluación de vulnerabilidades asociados con una base de datos administrada dada.
Get-AzSqlDatabaseVulnerabilityAssessmentSetting Devuelve la configuración de la evaluación de vulnerabilidades de una base de datos.
Get-AzSqlInstanceDatabaseVulnerabilityAssessmentSetting Devuelve la configuración de la evaluación de vulnerabilidad de una base de datos administrada.
Set-AzSqlDatabaseVulnerabilityAssessmentRuleBaseline Establece la base de referencia de la regla de evaluación de vulnerabilidad.
Set-AzSqlInstanceDatabaseVulnerabilityAssessmentRuleBaseline Establece la base de referencia de la regla de evaluación de vulnerabilidades de una base de datos administrada.
Start-AzSqlDatabaseVulnerabilityAssessmentScan Desencadena el inicio de un examen de evaluación de vulnerabilidades en una base de datos.
Start-AzSqlInstanceDatabaseVulnerabilityAssessmentScan Desencadena el inicio de un examen de evaluación de vulnerabilidades en una base de datos administrada.
Update-AzSqlDatabaseVulnerabilityAssessmentSetting Actualiza la configuración de evaluación de vulnerabilidades de una base de datos.
Update-AzSqlInstanceDatabaseVulnerabilityAssessmentSetting Actualiza la configuración de la evaluación de vulnerabilidades de una base de datos administrada.
Update-AzSqlInstanceVulnerabilityAssessmentSetting Actualiza la configuración de la evaluación de vulnerabilidades de una instancia administrada.

Para obtener un ejemplo de script, consulte la página de soporte técnico de PowerShell para la evaluación de vulnerabilidades de Azure SQL.

Azure CLI

Importante

Los siguientes comandos de la CLI de Azure son para bases de datos SQL hospedadas en máquinas virtuales o máquinas locales. Para obtener evaluaciones de vulnerabilidad con respecto a instancias de Azure SQL Database, consulte la sección de Azure Portal o PowerShell.

Puede usar los comandos de la CLI de Azure para administrar mediante programación sus evaluaciones de vulnerabilidad. Estos son los comandos admitidos:

Nombre del comando como vínculo Descripción
az security va sql baseline delete Permite eliminar la línea de base de la regla de evaluación de vulnerabilidades de SQL.
az security va sql baseline list Permite ver la línea de base de evaluación de vulnerabilidades de SQL para todas las reglas.
az security va sql baseline set Permite establecer la línea de base de la evaluación de vulnerabilidades de SQL. Permite reemplazar la línea de base actual.
az security va sql baseline show Permite ver la línea de base de la regla de evaluación de vulnerabilidades de SQL.
az security va sql baseline update Permite actualizar la línea de base de la regla de evaluación de vulnerabilidades de SQL. Permite reemplazar la línea de base de la regla actual.
az security va sql results list Permite ver los resultados del examen de la evaluación de vulnerabilidades de SQL.
az security va sql results show Permite ver los resultados del examen de la evaluación de vulnerabilidades de SQL.
az security va sql scans list Permite enumerar los resúmenes del examen de la evaluación de vulnerabilidades de SQL.
az security va sql scans show Permite ver los resúmenes del examen de la evaluación de vulnerabilidades de SQL.

Plantillas de Resource Manager

Para configurar las bases de referencia de evaluación de vulnerabilidades mediante plantillas de Azure Resource Manager, use el tipo Microsoft.Sql/servers/databases/vulnerabilityAssessments/rules/baselines.

Antes de agregar líneas base, asegúrese de haber habilitado vulnerabilityAssessments.

Este es un ejemplo para definir la regla de línea de base VA2065 en la base de datos master y VA1143 en la base de datos user como recursos en una plantilla de 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"
                  ]
               }
            ]
         }
      }
   ]

En la base de datos master y la base de datos user, los nombres de los recursos se definen de forma diferente:

  • Base de datos maestra: "name": "[concat(parameters('server_name'),'/', parameters('database_name'), '/default/VA2065/master')]",
  • Base de datos de usuario: "name": "[concat(parameters('server_name'),'/', parameters('database_name'), '/default/VA2065/default')]",

Para controlar tipos de booleanos como true o false, establezca el resultado de la línea de base con entrada binaria como "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"
               ]
            }
         ]
      }

   }