Compartilhar via


Gerenciar descobertas de vulnerabilidade em seus bancos de dados de SQL do Azure

O Microsoft Defender para Nuvem fornece avaliação de vulnerabilidade para os bancos de dados SQL do Azure. A avaliação de vulnerabilidade examina seus bancos de dados em busca de vulnerabilidade de software e fornece uma lista de descobertas. Use as descobertas para corrigir vulnerabilidades de software e desabilitar as descobertas.

Pré-requisitos

Verifique se você está usando as configurações expressas ou clássicas antes de continuar.

Para ver qual configuração você está usando:

  1. No portal do Azure, abra o recurso específico no Banco de Dados SQL do Azure, no banco de dados da Instância Gerenciada de SQL ou no Azure Synapse.
  2. No título Segurança, selecione Defender para Nuvem.
  3. No Status de ativação, selecione Configurar para abrir o painel de configurações do Microsoft Defender para SQL para todo o servidor ou para a instância gerenciada.

Se as configurações de vulnerabilidade mostrarem a opção de configurar uma conta de armazenamento, você estará usando a configuração clássica. Caso contrário, você está usando a configuração expressa.

Configuração expressa

Exibir o histórico de verificação

Clique em Histórico de Verificação no painel de Avaliação de Vulnerabilidade para exibir um histórico de todas as verificações executadas anteriormente nesse banco de dados.

A configuração expressa não armazena os resultados da verificação se eles forem idênticos às verificações anteriores. O tempo de verificação mostrado no histórico é a hora da última verificação em que os resultados foram alterados.

Desabilitar descobertas específicas do Microsoft Defender para Nuvem (versão prévia)

Caso você tenha uma necessidade organizacional de ignorar uma descoberta em vez de corrigi-la, poderá desativar a descoberta. As descobertas desabilitadas não afetam sua classificação de segurança nem geram um ruído indesejado. Veja a localização desabilitada na seção "Não aplicável" dos resultados da verificação.

Quando uma descoberta corresponde aos critérios definidos nas regras de desabilitação, ela não será exibida na lista de descobertas. Os cenários típicos podem incluir:

  • Desabilitar descobertas com severidade média ou inferior
  • Desabilitar conclusões que não permitem a aplicação de patch
  • Desabilitar conclusões de parâmetros de comparação que não são de interesse para um escopo definido

Importante

Para desabilitar descobertas específicas, você precisa de permissões para editar uma política no Azure Policy. Saiba mais em Permissões do RBAC do Azure no Azure Policy.

Para criar uma regra:

  1. Na página de detalhes de recomendações para As conclusões da avaliação de vulnerabilidades dos SQL Servers no computador devem ser corrigidas, selecione Desabilitar regra.

  2. Selecione o escopo relevante.

  3. Defina seus critérios. Você pode usar qualquer um dos seguintes critérios:

    • ID da descoberta
    • Severidade
    • Parâmetros de comparação
  4. Crie uma regra de desabilitação para as descobertas da VA em servidores SQL nos computadores

  5. Selecione Aplicar regra. As alterações podem levar até 24 horas para entrar em vigor.

  6. Para exibir, substituir ou excluir uma regra:

    1. Selecione Desabilitar regra.
    2. Na lista de escopo, as assinaturas com regras ativas são mostradas como Regra aplicada.
    3. Para exibir ou excluir a regra, selecione o menu de reticências ("...").

Configurar notificações por email usando os Aplicativos Lógicos do Azure

Para receber atualizações regulares do status de avaliação de vulnerabilidade para seu banco de dados, use o modelo personalizável dos Aplicativos Lógicos do Azure.

O uso do modelo permitirá que você:

  • Escolha o tempo dos relatórios de email.
  • Tenha uma exibição consistente do status de avaliação de vulnerabilidade que inclui regras desabilitadas.
  • Envie relatórios para servidores SQL do Azure e VMs do SQL.
  • Personalize a estrutura do relatório e a aparência para corresponder aos seus padrões organizacionais.

Gerenciar avaliações de vulnerabilidade programaticamente

A configuração expressa tem suporte na versão mais recente da API REST com a seguinte funcionalidade:

Descrição Escopo API
Operações em massa de linha de base Banco de Dados do Sistema Linhas de Base da Avaliação de Vulnerabilidade do SQL
Linha de Base da Avaliação de Vulnerabilidade do SQL
Operações em massa de linha de base Banco de Dados de Usuário Linhas de Base da Avaliação de Vulnerabilidade do Banco de Dados SQL
Operações de linha de base de regra única Banco de Dados de Usuário Linhas de Base da Regra de Avaliação de Vulnerabilidade do Banco de Dados SQL
Operações de linha de base de regra única Banco de Dados do Sistema Linhas de Base da Regra de Avaliação de Vulnerabilidade do SQL
Linha de Base da Regra de Avaliação de Vulnerabilidade do SQL
Resultados da verificação única Banco de Dados de Usuário Resultados da Verificação da Avaliação de Vulnerabilidade do Banco de Dados SQL
Resultados da verificação única Banco de Dados do Sistema Resultados da Verificação da Avaliação de Vulnerabilidade do SQL
Detalhes da verificação (resumo) Banco de Dados de Usuário Verificações da Avaliação de Vulnerabilidade do Banco de Dados SQL
Detalhes da verificação (resumo) Banco de Dados do Sistema Verificações da Avaliação de Vulnerabilidade do SQL
Executar verificação manual Banco de Dados de Usuário Executar a Verificação da Avaliação de Vulnerabilidade do Banco de Dados SQL
Executar verificação manual Banco de Dados do Sistema Executar a Verificação da Avaliação de Vulnerabilidade do SQL
Configurações de VA (somente GET tem suporte para Configuração Expressa) Banco de Dados de Usuário Configurações de Avaliações de Vulnerabilidade do Banco de Dados SQL
Operações de configurações de VA Servidor Configurações de Avaliações de Vulnerabilidade do SQL
Avaliações de Vulnerabilidade do SQL

Usar modelos do Azure Resource Manager

Use o modelo do ARM a seguir para criar um novo Servidor Lógico SQL do Azure com configuração expressa para avaliação de vulnerabilidade do SQL.

Para configurar as linhas de base de avaliação de vulnerabilidade usando modelos de Azure Resource Manager, use o tipo Microsoft.Sql/servers/databases/sqlVulnerabilityAssessments/baselines. Verifique se vulnerabilityAssessments está habilitado antes de adicionar linhas de base.

Aqui estão vários exemplos de como configurar linhas de base usando modelos do ARM:

  • Configure a linha de base do lote com base nos resultados mais recentes da verificação:

    {
        "type": "Microsoft.Sql/servers/databases/sqlVulnerabilityAssessments/baselines",
        "apiVersion": "2022-02-01-preview",
        "name": "[concat(parameters('serverName'),'/', parameters('databaseName') , '/default/default')]",
        "properties": {
            "latestScan": true
            }
    }
    
  • Configure a linha de base do lote com base em 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 a linha de base para uma regra 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 as linhas de base dos lotes no banco de dados mestre com base nos resultados da verificação mais recentes:

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

Usando o PowerShell

Não há suporte para a configuração expressa em cmdlets do PowerShell, mas você pode usar o PowerShell para invocar os recursos mais recentes de avaliação de vulnerabilidade usando a API REST, por exemplo:

Usando a CLI do Azure

Invoque a configuração expressa usando a CLI do Azure.

Solução de problemas

Reverter para a configuração clássica

Para alterar um banco de dados SQL do Azure da configuração de avaliação de vulnerabilidade expressa para a configuração clássica:

  1. Desabilite o plano do Defender para SQL do Azure do portal do Azure.

  2. Use o PowerShell para reconfigurar usando a experiência clássica:

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

    Talvez você precise ajustar Update-AzSqlServerVulnerabilityAssessmentSetting de acordo com O resultado da verificação da Avaliação de Vulnerabilidades do Repositório em uma conta de armazenamento acessível por trás de firewalls e VNets.

Errors

"A Avaliação de Vulnerabilidade está habilitada neste servidor ou em um de seus bancos de dados subjacentes com uma versão incompatível"

Possíveis causas:

  • Falha ao alternar para a configuração expressa devido a um erro de política de servidor.

    Solução: tente habilitar novamente a configuração expressa. Se o problema persistir, tente desabilitar o Microsoft Defender para SQL no recurso SQL do Azure, selecione Salvar, habilite o Microsoft Defender para SQL novamente e selecione Salvar.

  • Falha ao alternar para a configuração expressa devido a um erro de política de banco de dados. As políticas de banco de dados não são visíveis no portal do Azure para avaliação de vulnerabilidade do Defender para SQL, portanto, elas são verificadas durante o estágio de validação da mudança para a configuração expressa.

    Solução: desabilite todas as políticas de banco de dados para o servidor relevante e tente alternar para a configuração expressa novamente.

  • Considere usar o script PowerShell fornecido para obter assistência.

Configuração clássica

Exibir o histórico de verificação

Clique em Histórico de Verificação no painel de Avaliação de Vulnerabilidade para exibir um histórico de todas as verificações executadas anteriormente nesse banco de dados.

Desabilitar descobertas específicas do Microsoft Defender para Nuvem (versão prévia)

Caso você tenha uma necessidade organizacional para ignorar uma descoberta, em vez de corrigi-la, você pode opcionalmente desabilitá-la. As descobertas desabilitadas não afetam sua classificação de segurança nem geram um ruído indesejado.

Quando uma descoberta corresponde aos critérios definidos nas regras de desabilitação, ela não será exibida na lista de descobertas. Os cenários típicos podem incluir:

  • Desabilitar descobertas com severidade média ou inferior
  • Desabilitar conclusões que não permitem a aplicação de patch
  • Desabilitar conclusões de parâmetros de comparação que não são de interesse para um escopo definido

Importante

  • Para desabilitar descobertas específicas, você precisa de permissões para editar uma política no Azure Policy. Saiba mais em Permissões do RBAC do Azure no Azure Policy.
  • As descobertas desabilitadas ainda serão incluídas no relatório de email semanal da avaliação de vulnerabilidade do SQL.
  • As regras desabilitadas são mostradas na seção "Não aplicável" dos resultados da verificação.

Para criar uma regra:

  1. Na página de detalhes de recomendações para As conclusões da avaliação de vulnerabilidades dos SQL Servers no computador devem ser corrigidas, selecione Desabilitar regra.

  2. Selecione o escopo relevante.

  3. Defina seus critérios. Você pode usar qualquer um dos seguintes critérios:

    • ID da descoberta
    • Severidade
    • Parâmetros de comparação

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

  4. Selecione Aplicar regra. As alterações podem levar até 24 horas para entrar em vigor.

  5. Para exibir, substituir ou excluir uma regra:

    1. Selecione Desabilitar regra.

    2. Na lista de escopo, as assinaturas com regras ativas são mostradas como Regra aplicada.

      Screenshot of modify or delete an existing rule.

    3. Para exibir ou excluir a regra, selecione o menu de reticências ("...").

Gerenciar avaliações de vulnerabilidade programaticamente

Azure PowerShell

Observação

Este artigo usa o módulo do PowerShell Azure Az, que é o módulo do PowerShell recomendado para interagir com o Azure. Para começar a usar o módulo do Az PowerShell, confira Instalar o Azure PowerShell. Para saber como migrar para o módulo Az PowerShell, confira Migrar o Azure PowerShell do AzureRM para o Az.

Importante

O módulo do Azure Resource Manager do PowerShell ainda tem suporte, mas todo o desenvolvimento futuro destina-se ao módulo Az.Sql. Para esses cmdlets, confira AzureRM.Sql. Os argumentos para os comandos no módulo Az e nos módulos AzureRm são substancialmente idênticos.

Você pode usar os cmdlets do Microsoft Azure PowerShell para gerenciar suas avaliações de vulnerabilidade de forma programática. Os cmdlets com suporte são:

Nome do cmdlet como um link Descrição
Clear-AzSqlDatabaseVulnerabilityAssessmentRuleBaseline Limpa a linha de base da regra de avaliação de vulnerabilidades.
Primeiro, defina a linha de base antes de usar este cmdlet para limpá-la.
Clear-AzSqlDatabaseVulnerabilityAssessmentSetting Limpa as configurações de avaliação de vulnerabilidades de um banco de dados.
Clear-AzSqlInstanceDatabaseVulnerabilityAssessmentRuleBaseline Limpa a linha de base da regra de avaliação de vulnerabilidade de um banco de dados gerenciado.
Primeiro, defina a linha de base antes de usar este cmdlet para limpá-la.
Clear-AzSqlInstanceDatabaseVulnerabilityAssessmentSetting Limpa as configurações de avaliação de vulnerabilidades de um banco de dados gerenciado.
Clear-AzSqlInstanceVulnerabilityAssessmentSetting Limpa as configurações de avaliação de vulnerabilidades de uma instância gerenciada.
Convert-AzSqlDatabaseVulnerabilityAssessmentScan Converte os resultados de verificação de avaliação de vulnerabilidades de um banco de dados em um arquivo do Excel (exportação).
Convert-AzSqlInstanceDatabaseVulnerabilityAssessmentScan Converte os resultados da verificação da avaliação de vulnerabilidades de um banco de dados gerenciado em um arquivo do Excel (exportação).
Get-AzSqlDatabaseVulnerabilityAssessmentRuleBaseline Obtém a linha de base da regra de avaliação de vulnerabilidades de um banco de dados para uma determinada regra.
Get-AzSqlInstanceDatabaseVulnerabilityAssessmentRuleBaseline Obtém a linha de base da regra de avaliação de vulnerabilidades de um banco de dados gerenciado para uma determinada regra.
Get-AzSqlDatabaseVulnerabilityAssessmentScanRecord Obtém todos os registros de verificação de avaliação de vulnerabilidade associados a um determinado banco de dados.
Get-AzSqlInstanceDatabaseVulnerabilityAssessmentScanRecord Obtém todos os registros de verificação de avaliação de vulnerabilidade associados a um determinado banco de dados gerenciado.
Get-AzSqlDatabaseVulnerabilityAssessmentSetting Retorna as configurações de avaliação de vulnerabilidades de um banco de dados.
Get-AzSqlInstanceDatabaseVulnerabilityAssessmentSetting Retorna as configurações de avaliação de vulnerabilidades de um banco de dados gerenciado.
Set-AzSqlDatabaseVulnerabilityAssessmentRuleBaseline Define a linha de base da regra de avaliação de vulnerabilidades.
Set-AzSqlInstanceDatabaseVulnerabilityAssessmentRuleBaseline Define a linha de base da regra de avaliação de vulnerabilidade de um banco de dados gerenciado.
Start-AzSqlDatabaseVulnerabilityAssessmentScan Dispara o início de uma verificação de avaliação de vulnerabilidades em um banco de dados.
Start-AzSqlInstanceDatabaseVulnerabilityAssessmentScan Dispara o início de uma verificação de avaliação de vulnerabilidades em um banco de dados gerenciado.
Update-AzSqlDatabaseVulnerabilityAssessmentSetting Atualiza as configurações de avaliação de vulnerabilidades de um banco de dados.
Update-AzSqlInstanceDatabaseVulnerabilityAssessmentSetting Atualiza as configurações de avaliação de vulnerabilidades de um banco de dados gerenciado.
Update-AzSqlInstanceVulnerabilityAssessmentSetting Atualiza as configurações de avaliação de vulnerabilidades de uma instância gerenciada.

Para obter um exemplo de script, consulte suporte do PowerShell de avaliação de vulnerabilidade de SQL do Azure.

CLI do Azure

Importante

Os comandos da CLI do Azure a seguir são para bancos de dados SQL hospedados em VMs ou máquinas locais. Para obter avaliações de vulnerabilidade sobre bancos de dados do SQL do Azure, confira a seção no portal do Azure ou PowerShell.

Você pode usar os comandos da CLI do Azure para gerenciar programaticamente suas avaliações de vulnerabilidade. Os comandos com suporte são:

Nome do comando como um link Descrição
az security va sql baseline delete Exclui a linha de base da regra de avaliação de vulnerabilidade do SQL.
az security va sql baseline list Exibe a linha de base de avaliação de vulnerabilidade do SQL para todas as regras.
az security va sql baseline set Define a linha de base de avaliação de vulnerabilidade do SQL. Substitui a linha de base atual.
az security va sql baseline show Exibe a linha de base da regra de avaliação de vulnerabilidade do SQL.
az security va sql baseline update Atualiza a linha de base da regra de avaliação de vulnerabilidade do SQL. Substitui a linha de base da regra atual.
az security va sql results list Exibe todos os resultados da verificação de avaliação de vulnerabilidade do SQL.
az security va sql results show Exibe resultados da verificação da avaliação de vulnerabilidade do SQL.
az security va sql scans list Lista todos os resumos da verificação de avaliação de vulnerabilidade do SQL.
az security va sql scans show Exibe resumos da verificação de avaliação de vulnerabilidade do SQL.

Modelos do Gerenciador de Recursos

Para configurar as linhas de base de avaliação de vulnerabilidade usando modelos de Azure Resource Manager, use o tipo Microsoft.Sql/servers/databases/vulnerabilityAssessments/rules/baselines.

Certifique-se de que você tenha habilitado vulnerabilityAssessments antes de adicionar linhas de base.

Aqui está um exemplo para definir a regra de linha de base VA2065 para o master banco de dados e VA1143 para o user banco de dados como recursos em um modelo do 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"
                  ]
               }
            ]
         }
      }
   ]

Para banco de dados master e banco de dados user, os nomes de recursos são definidos de forma diferente:

  • Banco de dados mestre - "name": "[concat(parameters('server_name'),'/', parameters('database_name'), '/default/VA2065/master')]",
  • Banco de dados de usuário - "name": "[concat(parameters('server_name'),'/', parameters('database_name'), '/default/VA2065/default')]",

Para tratar tipos boolianos como true/false, defina o resultado da linha de base com a entrada binária, 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"
               ]
            }
         ]
      }

   }