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:
- 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.
- No título Segurança, selecione Defender for Cloud.
- 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:
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.
Selecione o escopo relevante.
Defina os seus critérios. Você pode usar qualquer um dos seguintes critérios:
- Localizando ID
- Gravidade
- Testes de referências
Criar uma regra de desabilitação para descobertas de VA em servidores SQL em máquinas
Selecione Aplicar regra. As alterações podem levar até 24 horas para entrar em vigor.
Para visualizar, substituir ou excluir uma regra:
- Selecione Desativar regra.
- Na lista de escopo, as assinaturas com regras ativas são exibidas como Regra aplicada.
- 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:
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:
- 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
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:
Desativar o plano do Defender para SQL do Azure a partir do portal do Azure.
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:
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.
Selecione o escopo relevante.
Defina os seus critérios. Você pode usar qualquer um dos seguintes critérios:
- Localizando ID
- Gravidade
- Testes de referências
Selecione Aplicar regra. As alterações podem levar até 24 horas para entrar em vigor.
Para visualizar, substituir ou excluir uma regra:
Selecione Desativar regra.
Na lista de escopo, as assinaturas com regras ativas são exibidas como Regra aplicada.
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"
]
}
]
}
}
Conteúdos relacionados
- Saiba mais sobre o Microsoft Defender for Azure SQL.
- Saiba mais sobre descoberta e classificação de dados.
- Saiba mais sobre como armazenar os resultados da verificação de avaliação de vulnerabilidades em uma conta de armazenamento acessível por trás de firewalls e redes virtuais.
- Confira as perguntas comuns sobre os bancos de dados SQL do Azure.