A avaliação da vulnerabilidade DO SQL ajuda-o a identificar vulnerabilidades de base de dados

APLICA-SE A: Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics

A avaliação da vulnerabilidade SQL é um serviço fácil de configurar que pode descobrir, rastrear e ajudar a corrigir potenciais vulnerabilidades de base de dados. Utilize-a para melhorar proativamente a segurança da base de dados.

A avaliação de vulnerabilidade faz parte da oferta do Azure Defender para a oferta SQL, que é um pacote unificado para capacidades avançadas de segurança SQL. A avaliação de vulnerabilidade pode ser acedida e gerida através do Azure Defender central para o portal SQL.

Nota

A avaliação de vulnerabilidade é suportada para Azure SQL Database, Azure SQL Managed Instance e Azure Synapse Analytics. As bases de dados em Azure SQL Database, Azure SQL Managed Instance e Azure Synapse Analytics são referidas coletivamente no restante deste artigo como bases de dados, e o servidor refere-se ao servidor que acolhe bases de dados para Azure SQL Database e Azure Synapse.

O que é a avaliação da vulnerabilidade do SQL?

A avaliação da vulnerabilidade SQL é um serviço que proporciona visibilidade ao seu estado de segurança. A avaliação da vulnerabilidade inclui medidas accuáveis para resolver problemas de segurança e melhorar a segurança da sua base de dados. Pode ajudá-lo a monitorizar um ambiente dinâmico de base de dados onde as mudanças são difíceis de rastrear e melhorar a sua postura de segurança SQL.

A avaliação de vulnerabilidade é um serviço de digitalização incorporado na Base de Dados Azure SQL. O serviço emprega uma base de conhecimento de regras que sinalizam vulnerabilidades de segurança. Destaca desvios das melhores práticas, tais como configurações erradas, permissões excessivas e dados sensíveis desprotegidos.

As regras baseiam-se nas melhores práticas da Microsoft e focam-se nos problemas de segurança que apresentam os maiores riscos para a sua base de dados e os seus dados valiosos. Cobrem problemas de nível de base de dados e problemas de segurança ao nível do servidor, como definições de firewall de servidor e permissões de nível de servidor.

Os resultados da digitalização incluem passos acccáveis para resolver cada problema e fornecer scripts de remediação personalizados, quando aplicável. Pode personalizar um relatório de avaliação para o seu ambiente definindo uma linha de base aceitável para:

  • Configurações de permissão
  • Configurações de recursos
  • Definições de base de dados

Configure avaliação da vulnerabilidade

Tome as seguintes medidas para configurar a avaliação da vulnerabilidade:

  1. No portal Azure,abra o recurso específico na Base de Dados Azure SQL, base de dados de casos geridos SQL ou Azure Synapse.

  2. Sob a direção de Segurança, selecione Security Center.

  3. Selecione Configurar no link para abrir o painel de definições do Azure Defender para o painel de definições SQL para todo o servidor ou instância gerida.

    Abertura do Defender para configuração SQL

    Nota

    A avaliação da vulnerabilidade SQL requer que o Azure Defender para o plano SQL seja capaz de executar digitalizações. Para obter mais informações sobre como ativar o Azure Defender para o SQL, consulte o Azure Defender para SQL.

  4. Na página de definições do Servidor, defina o Azure Defender para as definições DE SQL:

    Configurar os exames de avaliação de vulnerabilidades SQL

    1. Configure uma conta de armazenamento onde a sua verificação resulta de todas as bases de dados do servidor ou da instância gerida será armazenada. Para obter informações sobre contas de armazenamento, consulte as contas de armazenamento da Azure.

      Dica

      Para obter mais informações sobre o armazenamento de avaliações de vulnerabilidades por trás de firewalls e VNets, consulte os resultados da avaliação da vulnerabilidade da Loja numa conta de armazenamento acessível atrás de firewalls e VNets.

    2. Para configurar avaliações de vulnerabilidade para executar automaticamente as verificações semanais para detetar configurações erradas de segurança, dediboe as análises periódicas recorrentes para On. Os resultados são enviados para os endereços de e-mail que fornece em Enviar relatórios de digitalização para. Também pode enviar notificação por e-mail aos administradores e proprietários de subscrições, permitindo também enviar a notificação de e-mail aos administradores e proprietários de subscrições.

  5. As análises de vulnerabilidades SQL também podem ser executadas a pedido:

    1. Na página do Centro de Segurança do recurso, selecione Ver as conclusões adicionais na Avaliação de Vulnerabilidade para aceder aos resultados da digitalização de verificações anteriores.

      Abertura dos resultados da varredura e das opções de digitalização manual

    2. Para executar uma verificação a pedido para digitalizar a sua base de dados para obter vulnerabilidades, selecione Scan a partir da barra de ferramentas:

      Selecione a verificação para executar uma avaliação de vulnerabilidade a pedido do seu recurso SQL

Nota

A tomografia é leve e segura. Leva alguns segundos para correr e é inteiramente lido. Não faz alterações na sua base de dados.

Remediar vulnerabilidades

Quando uma verificação de vulnerabilidade termina, o relatório é apresentado no portal Azure. O relatório apresenta:

  • Uma visão geral do seu estado de segurança
  • O número de questões que foram encontradas, e
  • Um resumo pela gravidade dos riscos
  • Uma lista das conclusões para investigações posteriores

Relatório de digitalização de Sampl do scanner de avaliação de vulnerabilidades SQL

Para remediar as vulnerabilidades descobertas:

  1. Reveja os seus resultados e determine quais das conclusões do relatório são verdadeiras questões de segurança para o seu ambiente.

  2. Selecione cada resultado falhado para entender o seu impacto e por que a verificação de segurança falhou.

    Dica

    A página de detalhes dos resultados inclui informações de reparação accitivas explicando como resolver o problema.

    Examinando as descobertas de uma verificação de vulnerabilidade

  3. Ao rever os resultados da sua avaliação, pode marcar resultados específicos como sendo uma linha de base aceitável no seu ambiente. Uma linha de base é essencialmente uma personalização de como os resultados são relatados. Nas análises subsequentes, os resultados que correspondem à linha de base são considerados como passes. Depois de estabelecer o seu estado de segurança de base, a avaliação da vulnerabilidade apenas reporta desvios da linha de base. Desta forma, pode concentrar a sua atenção nas questões relevantes.

    Aprovação de uma descoberta como base para futuras análises

  4. Se alterar as linhas de base, utilize o botão Scan para executar uma varredura a pedido e ver o relatório personalizado. Quaisquer descobertas que tenha adicionado à linha de base aparecerão agora em Passed com uma indicação de que passaram devido às alterações de base.

    Avaliações aprovadas indicando que passaram por linha de base personalizada

As suas análises de vulnerabilidade podem agora ser usadas para garantir que a sua base de dados mantém um alto nível de segurança e que as suas políticas organizacionais são cumpridas.

Capacidades avançadas

Exporte um relatório de avaliação

Selecione Resultados da Verificação de Exportação para criar um relatório excel descarregador do resultado da sua digitalização. Este relatório contém um separador sumário que apresenta um resumo da avaliação. O relatório inclui todos os controlos falhados. Também inclui um separador resultados que contém o conjunto completo de resultados da digitalização. Os resultados incluem todos os controlos que foram executados e os detalhes do resultado para cada um.

Veja o histórico de análises

Selecione Scan History no painel de avaliação de vulnerabilidade para visualizar um histórico de todas as digitalizações executadas anteriormente nesta base de dados. Selecione uma verificação específica na lista para visualizar os resultados detalhados dessa verificação.

Desativar as conclusões específicas do Azure Security Center (pré-visualização)

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

Quando uma descoberta corresponde aos critérios que definiu nas suas regras de desativação, não constará na lista de resultados. Os cenários típicos incluem:

  • Desativar as descobertas com severidade abaixo do meio
  • Desativar as conclusões que não são remendáveis
  • Desativar as conclusões de critérios de referência que não são de interesse para um âmbito definido

Importante

Para desativar descobertas específicas, precisa de permissões para editar uma política na Política Azure. Saiba mais nas permissões Azure RBAC na Azure Policy.

Para criar uma regra:

  1. A partir da página de detalhes das recomendações para a avaliação da vulnerabilidade, os resultados dos seus servidores SQL em máquinas devem ser remediados, selecione Regra de Desativação.

  2. Selecione o âmbito relevante.

  3. Defina os seus critérios. Pode utilizar qualquer um dos seguintes critérios:

    • Encontrar ID
    • Gravidade
    • Testes de referências

    Criar uma regra de desativação para as descobertas de VA em servidores SQL em máquinas

  4. Selecione Aplicar a regra. As mudanças podem levar até 24 horas para fazer efeito.

  5. Para ver, anular ou apagar uma regra:

    1. Selecione Regra de desativação.

    2. Da lista de âmbito, as subscrições com regras ativas mostram como regra aplicada.

      Modificar ou eliminar uma regra existente

    3. Para visualizar ou eliminar a regra, selecione o menu de elipses ("...").

Gerir avaliações de vulnerabilidade programáticamente

Utilizar o Azure PowerShell

Nota

Este artigo foi atualizado para utilizar o módulo Azure Az PowerShell. O módulo Az PowerShell é o módulo do 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 estes cmdlets, consulte AzureRM.Sql. Os argumentos para os comandos no módulo Az e nos módulos AzureRm são substancialmente idênticos.

Pode utilizar cmdlets Azure PowerShell para gerir programaticamente as suas avaliações de vulnerabilidade. Os cmdlets suportados são:

Nome cmdlet como ligação Description
Clear-AzSqlDatabaseVulnerabilityAssessmentRuleBaseline Limpa a linha de base da regra de avaliação da vulnerabilidade.
Primeiro, desa estada antes de utilizar este cmdlet para limpá-lo.
Clear-AzSqlDatabaseVulnerabilityAssessmentSetting Limpa as definições de avaliação de vulnerabilidade de uma base de dados.
Clear-AzSqlInstanceDatabaseVulnerabilityAssessmentRuleBaseline Limpa a linha de base da regra de avaliação de vulnerabilidade de uma base de dados gerida.
Primeiro, desa estada antes de utilizar este cmdlet para limpá-lo.
Clear-AzSqlInstanceDatabaseVulnerabilityAssessmentSetting Limpa as definições de avaliação de vulnerabilidade de uma base de dados gerida.
Clear-AzSqlInstanceVulnerabilityAssessmentSetting Limpa as definições de avaliação de vulnerabilidade de um caso gerido.
Convert-AzSqlDatabaseVulnerabilityAssessmentScan Converte os resultados da avaliação da vulnerabilidade de uma base de dados para um ficheiro Excel.
Convert-AzSqlInstanceDatabaseVulnerabilityAssessmentScan Converte os resultados da avaliação da vulnerabilidade de uma base de dados gerida para um ficheiro Excel.
Get-AzSqlDatabaseVulnerabilityAssessmentRuleBaseline Obtém a regra de avaliação de vulnerabilidade de uma base de dados para uma determinada regra.
Get-AzSqlInstanceDatabaseVulnerabilityAssessmentRuleBaseline Obtém a base de regra de avaliação de vulnerabilidade de uma base de dados gerida para uma determinada regra.
Get-AzSqlDatabaseVulnerabilityAssessmentScanRecord Obtém todos os registos de avaliação de vulnerabilidade associados a uma determinada base de dados.
Get-AzSqlInstanceDatabaseVulnerabilityAssessmentScanRecord Obtém todos os registos de avaliação de vulnerabilidade associados a uma determinada base de dados gerida.
Get-AzSqlDatabaseVulnerabilityAssessmentSetting Devolve as definições de avaliação de vulnerabilidade de uma base de dados.
Get-AzSqlInstanceDatabaseVulnerabilityAssessmentSetting Devolve as definições de avaliação de vulnerabilidade de uma base de dados gerida.
Set-AzSqlDatabaseVulnerabilityAssessmentRuleBaseline Define a regra de avaliação de vulnerabilidade.
Set-AzSqlInstanceDatabaseVulnerabilityAssessmentRuleBaseline Define a linha de base da regra de avaliação de vulnerabilidade para uma base de dados gerida.
Start-AzSqlDatabaseVulnerabilityAssessmentScan Desencadeia o início de uma avaliação de vulnerabilidade numa base de dados.
Start-AzSqlInstanceDatabaseVulnerabilityAssessmentScan Desencadeia o início de uma avaliação de vulnerabilidade numa base de dados gerida.
Atualização-AzSqlDatabaseVulnerabilityAssessmentSetting Atualiza as definições de avaliação de vulnerabilidade de uma base de dados.
Atualização-AzSqlInstanceDatabaseVulnerabilityAssessmentSetting Atualiza as definições de avaliação de vulnerabilidade de uma base de dados gerida.
Atualização-AzSqlInstanceVulnerabilityAssessmentSetting Atualiza as definições de avaliação de vulnerabilidade de um caso gerido.
   

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

Utilizar modelos do Azure Resource Manager

Para configurar as linhas de base de avaliação de vulnerabilidades utilizando modelos de Gestor de Recursos Azure, utilize o Microsoft.Sql/servers/databases/vulnerabilityAssessments/rules/baselines tipo.

Certifique-se de que ativou vulnerabilityAssessments antes de adicionar linhas de base.

Aqui está um exemplo para definir a Regra de Base VA2065 para base master de dados e VA1143 para base user de dados como recursos num modelo de Gestor de Recursos:

   "resources": [
      {
         "type": "Microsoft.Sql/servers/databases/vulnerabilityAssessments/rules/baselines",
         "apiVersion": "2018-06-01-preview",
         "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/vulnerabilityAssessments/rules/baselines",
         "apiVersion": "2018-06-01-preview",
         "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 a base de dados e base de user dados, os nomes dos recursos são definidos de forma diferente:

  • Base de dados principal - "nome": "[concat(parâmetros('server_name')'/', parâmetros('database_name') , '/default/VA2065/master')],»,
  • Base de dados do utilizador - "nome": "[concat(parâmetros('server_name')'/', parâmetros('database_name') , '/predefinido/VA2065/padrão')],»,

Para manusear os tipos Boolean como verdadeiros/falsos, desafine o resultado da linha de base com a entrada binária como "1"/"0".

   {
      "type": "Microsoft.Sql/servers/databases/vulnerabilityAssessments/rules/baselines",
      "apiVersion": "2018-06-01-preview",
      "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"
               ]
            }
         ]
      }

   }

Passos seguintes