Partilhar via


Gerir descobertas de vulnerabilidades nas suas bases de dados SQL do Azure

O Microsoft Defender for Cloud fornece avaliação de vulnerabilidade para seus bancos de dados SQL do Azure. A avaliação de vulnerabilidades verifica seus bancos de dados em busca de vulnerabilidades de software e fornece uma lista de descobertas. Você pode usar as descobertas para corrigir vulnerabilidades de software e desabilitar as descobertas.

Pré-requisitos

Certifique-se de que sabe se está a utilizar as configurações expressa ou clássica 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 de Instância Gerenciada do SQL ou no Azure Synapse.
  2. No título Segurança, selecione Defender for Cloud.
  3. No Status de Habilitação, selecione Configurar para abrir o painel de configurações do Microsoft Defender for SQL para todo o servidor ou instância gerenciada.

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

Configuração express

Veja o histórico de análises

Selecione Histórico de varredura no painel de avaliação de vulnerabilidades para exibir um histórico de todas as verificações executadas anteriormente neste banco de dados.

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

Desabilitar descobertas específicas do Microsoft Defender for Cloud (visualização)

Se você tiver uma necessidade organizacional de ignorar uma descoberta em vez de corrigi-la, poderá desativá-la. As descobertas desativadas não afetam sua pontuação segura ou geram ruídos indesejados. Você pode ver a localização desativada na seção "Não aplicável" dos resultados da verificação.

Quando uma localização corresponder aos critérios que você definiu nas regras de desativação, ela não aparecerá na lista de descobertas. Os cenários típicos podem incluir:

  • Desativar descobertas com gravidade média ou menor
  • Desativar descobertas que não podem ser corrigidas
  • Desativar descobertas de benchmarks 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 na Política do Azure. Saiba mais em Permissões do RBAC do Azure na Política do Azure.

Para criar uma regra:

  1. Na página de detalhes de recomendações para Descobertas de avaliação de vulnerabilidade em seus servidores SQL em máquinas que devem ser corrigidas, selecione Desabilitar regra.

  2. Selecione o escopo relevante.

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

    • Localizando ID
    • Gravidade
    • Testes de referências
  4. Criar uma regra de desabilitação para descobertas de VA em servidores SQL em máquinas

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

  6. Para visualizar, substituir ou excluir uma regra:

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

Configurar notificações por e-mail com o Azure Logic Apps

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

A utilização do modelo permitir-lhe-á:

  • Escolha o tempo dos relatórios por e-mail.
  • Tenha uma visão consistente do seu status de avaliação de vulnerabilidade que inclua regras desabilitadas.
  • Envie relatórios para SQL Servers do Azure e VMs SQL.
  • Personalize a estrutura e a aparência dos relatórios para corresponder aos seus padrões organizacionais.

Gerencie avaliações de vulnerabilidade programaticamente

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

Description Scope API
Operações em massa de linha de base Base de Dados do Sistema Linhas de base de avaliação de vulnerabilidade do Sql
Linha de base de avaliação de vulnerabilidade do SQL
Operações em massa de linha de base Base de Dados de Utilizadores Linhas de base de avaliação de vulnerabilidade do Database Sql
Operações de linha de base de regra única Base de Dados de Utilizadores Linhas de base da regra de avaliação de vulnerabilidade do Database Sql
Operações de linha de base de regra única Base 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 de uma única verificação Base de Dados de Utilizadores Resultado da verificação da avaliação de vulnerabilidade do Database Sql
Resultados de uma única verificação Base de Dados do Sistema Resultado da verificação da avaliação de vulnerabilidade do SQL
Detalhes da digitalização (resumo) Base de Dados de Utilizadores Verificações de avaliação de vulnerabilidade do Database Sql
Detalhes da digitalização (resumo) Base de Dados do Sistema Verificações de avaliação de vulnerabilidade do Sql
Executar varredura manual Base de Dados de Utilizadores Database Sql Vulnerability Assessment Execute Scan
Executar varredura manual Base de Dados do Sistema Avaliação de vulnerabilidade do SQL Executar verificação
Configurações de VA (somente GET é suportado para Configuração Expressa) Base de Dados de Utilizadores Configurações de avaliações de vulnerabilidade do Database Sql
Operações de configurações de VA Servidor Configurações de avaliações de vulnerabilidade do SQL
Avaliações de vulnerabilidade do Sql

Utilizar modelos do Azure Resource Manager

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

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

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

  • Configure a linha de base em 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
            }
    }
    
  • Configurar linha de base em 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 linhas de base em lote no banco de dados mestre 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'),'/master/default/default')]",
        "properties": {
            "latestScan": true
            }
    }
    

Através do PowerShell

A configuração expressa não é suportada nos cmdlets do PowerShell, mas você pode usar o PowerShell para invocar os recursos de avaliação de vulnerabilidade mais recentes usando a API REST, por exemplo:

Utilizar a CLI do Azure

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

Resolução de Problemas

Reverter para a configuração clássica

Para alterar uma base de dados SQL do Azure da configuração de avaliação de vulnerabilidades Express para a configuração Clássica:

  1. Desativar o plano do Defender para SQL do Azure a partir do portal do Azure.

  2. Utilize 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 seja necessário ajustar Update-AzSqlServerVulnerabilityAssessmentSetting de acordo com os resultados da verificação de Avaliação de Vulnerabilidade da Loja em uma conta de armazenamento acessível por trás de firewalls e redes virtuais.

Erros

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

Causas possíveis:

  • A mudança para a configuração expressa falhou devido a um erro de política do servidor.

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

  • A alternância para a configuração expressa falhou devido a um erro de diretiva 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 for SQL, portanto, verificamos se elas ocorrem durante o estágio de validação da mudança para a configuração expressa.

    Solução: desative 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 do PowerShell fornecido para obter assistência.

Configuração clássica

Veja o histórico de análises

Selecione Histórico de varredura no painel de avaliação de vulnerabilidades para exibir um histórico de todas as verificações executadas anteriormente neste banco de dados.

Desabilitar descobertas específicas do Microsoft Defender for Cloud (visualização)

Se você tiver uma necessidade organizacional de ignorar uma descoberta, em vez de corrigi-la, você pode opcionalmente desativá-la. As descobertas desativadas não afetam sua pontuação segura ou geram ruídos indesejados.

Quando uma localização corresponder aos critérios que você definiu nas regras de desativação, ela não aparecerá na lista de descobertas. Os cenários típicos podem incluir:

  • Desativar descobertas com gravidade média ou menor
  • Desativar descobertas que não podem ser corrigidas
  • Desativar descobertas de benchmarks 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 na Política do Azure. Saiba mais em Permissões do RBAC do Azure na Política do Azure.
  • As descobertas desabilitadas ainda serão incluídas no relatório semanal de e-mail de avaliação de vulnerabilidade do SQL.
  • As regras desativadas 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 Descobertas de avaliação de vulnerabilidade em seus servidores SQL em máquinas que devem ser corrigidas, selecione Desabilitar regra.

  2. Selecione o escopo relevante.

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

    • Localizando ID
    • Gravidade
    • Testes de referências

    Captura de tela da criação de uma regra de desabilitação para descobertas de VA em servidores SQL em máquinas.

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

  5. Para visualizar, substituir ou excluir uma regra:

    1. Selecione Desativar regra.

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

      Captura de ecrã a mostrar a modificação ou eliminação de uma regra existente.

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

Gerencie avaliações de vulnerabilidade programaticamente

Azure PowerShell

Nota

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

Importante

O módulo PowerShell Azure Resource Manager ainda é suportado, mas todo o desenvolvimento futuro é para o módulo Az.Sql. Para esses cmdlets, consulte AzureRM.Sql. Os argumentos para os comandos no módulo Az e nos módulos AzureRm são substancialmente idênticos.

Você pode usar cmdlets do Azure PowerShell para gerenciar programaticamente suas avaliações de vulnerabilidade. Os cmdlets suportados são:

Nome do cmdlet como um link Description
Clear-AzSqlDatabaseVulnerabilityAssessmentRuleBaseline Limpa a linha de base da regra de avaliação de vulnerabilidade.
Primeiro, defina a linha de base antes de usar esse cmdlet para limpá-la.
Clear-AzSqlDatabaseVulnerabilityAssessmentSetting Limpa as configurações de avaliação de vulnerabilidade 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 esse cmdlet para limpá-la.
Clear-AzSqlInstanceDatabaseVulnerabilityAssessmentSetting Limpa as configurações de avaliação de vulnerabilidade de um banco de dados gerenciado.
Clear-AzSqlInstanceVulnerabilityAssessmentSetting Limpa as configurações de avaliação de vulnerabilidade de uma instância gerenciada.
Convert-AzSqlDatabaseVulnerabilityAssessmentScan Converte os resultados da verificação de avaliação de vulnerabilidade de um banco de dados em um arquivo do Excel (exportação).
Convert-AzSqlInstanceDatabaseVulnerabilityAssessmentScan Converte os resultados da verificação de avaliação de vulnerabilidade 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 vulnerabilidade de um banco de dados para uma determinada regra.
Get-AzSqlInstanceDatabaseVulnerabilityAssessmentRuleBaseline Obtém a linha de base da regra de avaliação de vulnerabilidade de um banco de dados gerenciado para uma determinada regra.
Get-AzSqlDatabaseVulnerabilidadeAssessmentScanRecord 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 vulnerabilidade de um banco de dados.
Get-AzSqlInstanceDatabaseVulnerabilityAssessmentSetting Retorna as configurações de avaliação de vulnerabilidade de um banco de dados gerenciado.
Set-AzSqlDatabaseVulnerabilityAssessmentRuleBaseline Define a linha de base da regra de avaliação de vulnerabilidade.
Set-AzSqlInstanceDatabaseVulnerabilityAssessmentRuleBaseline Define a linha de base da regra de avaliação de vulnerabilidade para um banco de dados gerenciado.
Start-AzSqlDatabaseVulnerabilityAssessmentScan Aciona o início de uma verificação de avaliação de vulnerabilidade em um banco de dados.
Start-AzSqlInstanceDatabaseVulnerabilityAssessmentScan Aciona o início de uma verificação de avaliação de vulnerabilidade em um banco de dados gerenciado.
Update-AzSqlDatabaseVulnerabilityAssessmentSetting Atualiza as configurações de avaliação de vulnerabilidade de um banco de dados.
Update-AzSqlInstanceDatabaseVulnerabilityAssessmentSetting Atualiza as configurações de avaliação de vulnerabilidade de um banco de dados gerenciado.
Update-AzSqlInstanceVulnerabilityAssessmentSetting Atualiza as configurações de avaliação de vulnerabilidade de uma instância gerenciada.

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

CLI do Azure

Importante

Os seguintes comandos da CLI do Azure são para bancos de dados SQL hospedados em VMs ou máquinas locais. Para obter avaliações de vulnerabilidade relativas aos Bancos de Dados SQL do Azure, consulte a seção Portal do Azure ou PowerShell.

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

Nome do comando como um link Description
az security va sql baseline delete Exclua a linha de base da regra de avaliação de vulnerabilidade do SQL.
az security va sql baseline list Exiba 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 Exiba a linha de base da regra de avaliação de vulnerabilidade do SQL.
az security va sql baseline update Atualize 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 Veja todos os resultados da verificação de avaliação de vulnerabilidade SQL.
az security va sql results show Exiba os resultados da verificação de avaliação de vulnerabilidade do SQL.
az security va sql scans list Liste todos os resumos de verificação de avaliação de vulnerabilidade SQL.
az security va sql scans show Exiba resumos de verificação de avaliação de vulnerabilidade do SQL.

Modelos do Resource Manager

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

Certifique-se de ter ativado vulnerabilityAssessments antes de adicionar linhas de base.

Aqui está um exemplo para definir a Regra de Linha de Base VA2065 para master banco de dados e VA1143 para user banco de dados como recursos em um modelo do Gerenciador de Recursos:

   "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 master banco de dados e user banco de dados, os nomes de recursos são definidos de forma diferente:

  • Base de dados principal - "name": "[concat(parameters('server_name'),'/', parameters('database_name'), '/default/VA2065/master')]",
  • Base de dados de utilizadores - "name": "[concat(parameters('server_name'),'/', parameters('database_name'), '/default/VA2065/default')]",

Para manipular tipos booleanos como verdadeiro/falso, defina o resultado da linha de base com 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"
               ]
            }
         ]
      }

   }