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:
- 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.
- No título Segurança, selecione Defender para Nuvem.
- 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:
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.
Selecione o escopo relevante.
Defina seus critérios. Você pode usar qualquer um dos seguintes critérios:
- ID da descoberta
- Severidade
- Parâmetros de comparação
Crie uma regra de desabilitação para as descobertas da VA em servidores SQL nos computadores
Selecione Aplicar regra. As alterações podem levar até 24 horas para entrar em vigor.
Para exibir, substituir ou excluir uma regra:
- Selecione Desabilitar regra.
- Na lista de escopo, as assinaturas com regras ativas são mostradas como Regra aplicada.
- 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:
Usar modelos do Gerenciador de Recursos do Azure
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:
- Habilitar a configuração expressa em um SQL Server do Azure
- Configurar linhas de base com base nos resultados de verificação mais recentes para todos os bancos de dados em um SQL Server do Azure
- Referência de comandos do PowerShell de configuração expressa
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:
Desabilite o plano do Defender para SQL do Azure do portal do Azure.
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:
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.
Selecione o escopo relevante.
Defina seus critérios. Você pode usar qualquer um dos seguintes critérios:
- ID da descoberta
- Severidade
- Parâmetros de comparação
Selecione Aplicar regra. As alterações podem levar até 24 horas para entrar em vigor.
Para exibir, substituir ou excluir uma regra:
Selecione Desabilitar regra.
Na lista de escopo, as assinaturas com regras ativas são mostradas como Regra aplicada.
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"
]
}
]
}
}
Conteúdo relacionado
- Saiba mais sobre o Microsoft Defender para SQL do Azure.
- Saiba mais sobre descoberta e classificação de dados.
- Saiba mais sobre em armazenar os resultados da verificação de avaliação de vulnerabilidade em uma conta de armazenamento acessível por trás de firewalls e VNets.
- Confira as perguntas comuns sobre os bancos de dados SQL do Azure.