Hantera sårbarhetsresultat i dina Azure SQL-databaser
Microsoft Defender för molnet tillhandahåller sårbarhetsbedömning för dina Azure SQL-databaser. Sårbarhetsbedömning söker igenom dina databaser efter sårbarheter i programvaran och innehåller en lista över resultat. Du kan använda resultaten för att åtgärda sårbarheter i programvara och inaktivera resultat.
Förutsättningar
Kontrollera att du vet om du använder expresskonfigurationer eller klassiska konfigurationer innan du fortsätter.
Så här ser du vilken konfiguration du använder:
- Öppna den specifika resursen i Azure SQL Database, SQL Managed Instance Database eller Azure Synapse i Azure-portalen.
- Under rubriken Säkerhet väljer du Defender för molnet.
- I fönstret Aktivera status väljer du Konfigurera för att öppna fönstret Microsoft Defender för SQL-inställningar för antingen hela servern eller den hanterade instansen.
Om sårbarhetsinställningarna visar alternativet för att konfigurera ett lagringskonto använder du den klassiska konfigurationen. Annars använder du expresskonfigurationen.
Expresskonfiguration
Visa genomsökningshistorik
Välj Genomsökningshistorik i fönstret sårbarhetsbedömning för att visa en historik över alla genomsökningar som tidigare körts på den här databasen.
Expresskonfiguration lagrar inte genomsökningsresultat om de är identiska med tidigare genomsökningar. Genomsökningstiden som visas i genomsökningshistoriken är tidpunkten för den senaste genomsökningen där genomsökningsresultatet ändrades.
Inaktivera specifika resultat från Microsoft Defender för molnet (förhandsversion)
Om du har en organisation som behöver ignorera en sökning i stället för att åtgärda den kan du inaktivera sökningen. Inaktiverade resultat påverkar inte din säkerhetspoäng eller genererar oönskat brus. Du kan se den inaktiverade sökningen i avsnittet "Inte tillämpligt" i genomsökningsresultatet.
När en sökning matchar de kriterier som du har definierat i dina inaktiverade regler visas den inte i listan över resultat. Vanliga scenarier kan vara:
- Inaktivera resultat med medelhög eller lägre allvarlighetsgrad
- Inaktivera resultat som inte kan korrigeras
- Inaktivera resultat från riktmärken som inte är intressanta för ett definierat omfång
Viktigt!
Om du vill inaktivera specifika resultat behöver du behörighet att redigera en princip i Azure Policy. Läs mer i Azure RBAC-behörigheter i Azure Policy.
Så här skapar du en regel:
På informationssidan för rekommendationer för sårbarhetsbedömningsresultat på dina SQL-servrar på datorer ska åtgärdas väljer du Inaktivera regel.
Välj relevant omfång.
Definiera dina kriterier. Du kan använda något av följande kriterier:
- Hitta ID
- Allvarlighet
- Benchmark-värden
Skapa en inaktivera-regel för VA-resultat på SQL-servrar på datorer
Välj Tillämpa regel. Det kan ta upp till 24 timmar innan ändringarna börjar gälla.
Så här visar, åsidosätter eller tar du bort en regel:
- Välj Inaktivera regel.
- I omfångslistan visas prenumerationer med aktiva regler som Regel tillämpad.
- Om du vill visa eller ta bort regeln väljer du ellipsmenyn ("...").
Konfigurera e-postaviseringar med Azure Logic Apps
Om du vill få regelbundna uppdateringar av sårbarhetsbedömningsstatusen för databasen kan du använda den anpassningsbara Azure Logic Apps-mallen.
Med hjälp av mallen kan du:
- Välj tidpunkten för e-postrapporterna.
- Ha en konsekvent vy över din status för sårbarhetsbedömning som innehåller inaktiverade regler.
- Skicka rapporter för Azure SQL-servrar och virtuella SQL-datorer.
- Anpassa rapportstrukturen och look-and-feel så att de matchar organisationens standarder.
Hantera sårbarhetsbedömningar programmatiskt
Expresskonfigurationen stöds i den senaste REST API-versionen med följande funktioner:
Använda Azure Resource Manager-mallar
Använd följande ARM-mall för att skapa en ny logisk Azure SQL-server med expresskonfiguration för SQL-sårbarhetsbedömning.
Använd typen Microsoft.Sql/servers/databases/sqlVulnerabilityAssessments/baselines
för att konfigurera baslinjer för sårbarhetsbedömning med hjälp av Azure Resource Manager-mallar. Kontrollera att är vulnerabilityAssessments
aktiverat innan du lägger till baslinjer.
Här följer flera exempel på hur du kan konfigurera baslinjer med ARM-mallar:
Konfigurera batchbaslinje baserat på de senaste genomsökningsresultaten:
{ "type": "Microsoft.Sql/servers/databases/sqlVulnerabilityAssessments/baselines", "apiVersion": "2022-02-01-preview", "name": "[concat(parameters('serverName'),'/', parameters('databaseName') , '/default/default')]", "properties": { "latestScan": true } }
Konfigurera batchbaslinje baserat på specifika resultat:
{ "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" ] ] } } }
Konfigurera baslinje för en specifik regel:
{ "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" ] ] } }
Konfigurera batchbaslinjer på huvuddatabasen baserat på de senaste genomsökningsresultaten:
{ "type": "Microsoft.Sql/servers/databases/sqlVulnerabilityAssessments/baselines", "apiVersion": "2022-02-01-preview", "name": "[concat(parameters('serverName'),'/master/default/default')]", "properties": { "latestScan": true } }
Använda PowerShell
Expresskonfiguration stöds inte i PowerShell-cmdletar, men du kan använda PowerShell för att anropa de senaste funktionerna för sårbarhetsbedömning med hjälp av REST API, till exempel:
- Aktivera expresskonfiguration på en Azure SQL Server
- Konfigurera baslinjer baserat på de senaste genomsökningsresultaten för alla databaser i en Azure SQL Server
- Referens för PowerShell-kommandon för Express-konfiguration
Använda Azure CLI
Anropa expresskonfiguration med Hjälp av Azure CLI.
Felsökning
Återgå till den klassiska konfigurationen
Så här ändrar du en Azure SQL-databas från konfigurationen för express sårbarhetsbedömning till den klassiska konfigurationen:
Inaktivera Defender för Azure SQL-planen från Azure-portalen.
Använd PowerShell för att konfigurera om med den klassiska upplevelsen:
Update-AzSqlServerAdvancedThreatProtectionSetting ` -ResourceGroupName "demo-rg" ` -ServerName "dbsrv1" ` -Enable 1 Update-AzSqlServerVulnerabilityAssessmentSetting ` -ResourceGroupName "demo-rg" ` -ServerName "dbsrv1" ` -StorageAccountName "mystorage" ` -RecurringScansInterval Weekly ` -ScanResultsContainerName "vulnerability-assessment"
Du kan behöva justera
Update-AzSqlServerVulnerabilityAssessmentSetting
enligt genomsökningen av sårbarhetsbedömning i Store och resultera i ett lagringskonto som är tillgängligt bakom brandväggar och virtuella nätverk.
Fel
"Sårbarhetsbedömning är aktiverat på den här servern eller någon av dess underliggande databaser med en inkompatibel version"
Möjliga orsaker:
Det gick inte att växla till expresskonfiguration på grund av ett serverprincipfel.
Lösning: Försök igen för att aktivera expresskonfigurationen. Om problemet kvarstår försöker du inaktivera Microsoft Defender för SQL i Azure SQL-resursen, väljer Spara, aktiverar Microsoft Defender för SQL igen och väljer Spara.
Det gick inte att växla till expresskonfiguration på grund av ett databasprincipfel. Databasprinciper visas inte i Azure-portalen för Sårbarhetsbedömning för Defender för SQL, så vi söker efter dem under valideringssteget för att växla till expresskonfiguration.
Lösning: Inaktivera alla databasprinciper för den relevanta servern och försök sedan växla till expresskonfiguration igen.
Överväg att använda det angivna PowerShell-skriptet för hjälp.
Klassisk konfiguration
Visa genomsökningshistorik
Välj Genomsökningshistorik i fönstret sårbarhetsbedömning för att visa en historik över alla genomsökningar som tidigare körts på den här databasen.
Inaktivera specifika resultat från Microsoft Defender för molnet (förhandsversion)
Om du har en organisation som behöver ignorera en sökning i stället för att åtgärda den kan du inaktivera den. Inaktiverade resultat påverkar inte din säkerhetspoäng eller genererar oönskat brus.
När en sökning matchar de kriterier som du har definierat i dina inaktiverade regler visas den inte i listan över resultat. Vanliga scenarier kan vara:
- Inaktivera resultat med medelhög eller lägre allvarlighetsgrad
- Inaktivera resultat som inte kan korrigeras
- Inaktivera resultat från riktmärken som inte är intressanta för ett definierat omfång
Viktigt!
- Om du vill inaktivera specifika resultat behöver du behörighet att redigera en princip i Azure Policy. Läs mer i Azure RBAC-behörigheter i Azure Policy.
- Inaktiverade resultat kommer fortfarande att ingå i e-postrapporten för sql-sårbarhetsbedömning varje vecka.
- Inaktiverade regler visas i avsnittet "Inte tillämpligt" i genomsökningsresultatet.
Så här skapar du en regel:
På informationssidan för rekommendationer för sårbarhetsbedömningsresultat på dina SQL-servrar på datorer ska åtgärdas väljer du Inaktivera regel.
Välj relevant omfång.
Definiera dina kriterier. Du kan använda något av följande kriterier:
- Hitta ID
- Allvarlighet
- Benchmark-värden
Välj Tillämpa regel. Det kan ta upp till 24 timmar innan ändringarna börjar gälla.
Så här visar, åsidosätter eller tar du bort en regel:
Välj Inaktivera regel.
I omfångslistan visas prenumerationer med aktiva regler som Regel tillämpad.
Om du vill visa eller ta bort regeln väljer du ellipsmenyn ("...").
Hantera sårbarhetsbedömningar programmatiskt
Azure PowerShell
Kommentar
Den här artikeln använder Azure Az PowerShell-modulen, som är den rekommenderade PowerShell-modulen för interaktion med Azure. För att komma igång med Az PowerShell kan du läsa artikeln om att installera Azure PowerShell. Information om hur du migrerar till Az PowerShell-modulen finns i artikeln om att migrera Azure PowerShell från AzureRM till Az.
Viktigt!
PowerShell Azure Resource Manager-modulen stöds fortfarande, men all framtida utveckling gäller för Az.Sql-modulen. Dessa cmdletar finns i AzureRM.Sql. Argumenten för kommandona i Az-modulen och i AzureRm-modulerna är väsentligen identiska.
Du kan använda Azure PowerShell-cmdletar för att programmatiskt hantera dina sårbarhetsbedömningar. De cmdletar som stöds är:
Cmdlet-namn som en länk | beskrivning |
---|---|
Clear-AzSqlDatabaseVulnerabilityAssessmentRuleBaseline | Rensar baslinjen för sårbarhetsbedömningsregeln. Ange först baslinjen innan du använder den här cmdleten för att rensa den. |
Clear-AzSqlDatabaseVulnerabilityAssessmentSetting | Rensar inställningarna för sårbarhetsbedömning för en databas. |
Clear-AzSqlInstanceDatabaseVulnerabilityAssessmentRuleBaseline | Rensar baslinjen för sårbarhetsbedömningsregeln för en hanterad databas. Ange först baslinjen innan du använder den här cmdleten för att rensa den. |
Clear-AzSqlInstanceDatabaseVulnerabilityAssessmentSetting | Rensar inställningarna för sårbarhetsbedömning för en hanterad databas. |
Clear-AzSqlInstanceVulnerabilityAssessmentSetting | Rensar inställningarna för sårbarhetsbedömning för en hanterad instans. |
Convert-AzSqlDatabaseVulnerabilityAssessmentScan | Konverterar genomsökningsresultat för sårbarhetsbedömning för en databas till en Excel-fil (export). |
Convert-AzSqlInstanceDatabaseVulnerabilityAssessmentScan | Konverterar genomsökningsresultat för sårbarhetsbedömning för en hanterad databas till en Excel-fil (export). |
Get-AzSqlDatabaseVulnerabilityAssessmentRuleBaseline | Hämtar baslinjen för sårbarhetsbedömningsregeln för en databas för en viss regel. |
Get-AzSqlInstanceDatabaseVulnerabilityAssessmentRuleBaseline | Hämtar baslinjen för sårbarhetsbedömningsregeln för en hanterad databas för en viss regel. |
Get-AzSqlDatabaseVulnerabilityAssessmentScanRecord | Hämtar alla sårbarhetsbedömningsgenomsökningsposter som är associerade med en viss databas. |
Get-AzSqlInstanceDatabaseVulnerabilityAssessmentScanRecord | Hämtar alla sårbarhetsbedömningsgenomsökningsposter som är associerade med en viss hanterad databas. |
Get-AzSqlDatabaseVulnerabilityAssessmentSetting | Returnerar inställningarna för sårbarhetsbedömning för en databas. |
Get-AzSqlInstanceDatabaseVulnerabilityAssessmentSetting | Returnerar inställningarna för sårbarhetsbedömning för en hanterad databas. |
Set-AzSqlDatabaseVulnerabilityAssessmentRuleBaseline | Anger baslinjen för sårbarhetsbedömningsregeln. |
Set-AzSqlInstanceDatabaseVulnerabilityAssessmentRuleBaseline | Anger baslinjen för sårbarhetsbedömningsregeln för en hanterad databas. |
Start-AzSqlDatabaseVulnerabilityAssessmentScan | Utlöser starten av en sårbarhetsbedömningsgenomsökning i en databas. |
Start-AzSqlInstanceDatabaseVulnerabilityAssessmentScan | Utlöser starten av en genomsökning av sårbarhetsbedömning i en hanterad databas. |
Update-AzSqlDatabaseVulnerabilityAssessmentSetting | Uppdateringar inställningarna för sårbarhetsbedömning i en databas. |
Update-AzSqlInstanceDatabaseVulnerabilityAssessmentSetting | Uppdateringar inställningarna för sårbarhetsbedömning för en hanterad databas. |
Update-AzSqlInstanceVulnerabilityAssessmentSetting | Uppdateringar inställningarna för sårbarhetsbedömning för en hanterad instans. |
Ett skriptexempel finns i PowerShell-stöd för Azure SQL-sårbarhetsbedömning.
Azure CLI
Viktigt!
Följande Azure CLI-kommandon är för SQL-databaser som finns på virtuella datorer eller lokala datorer. Sårbarhetsbedömningar om Azure SQL-databaser finns i avsnittet Azure-portalen eller PowerShell.
Du kan använda Azure CLI-kommandon för att programmatiskt hantera dina sårbarhetsbedömningar. De kommandon som stöds är:
Kommandonamn som en länk | beskrivning |
---|---|
az security va sql baseline delete |
Ta bort sql-regelbaslinje för sårbarhetsbedömning. |
az security va sql baseline list |
Visa sql-baslinjen för sårbarhetsbedömning för alla regler. |
az security va sql baseline set |
Anger baslinje för SQL-sårbarhetsbedömning. Ersätter den aktuella baslinjen. |
az security va sql baseline show |
Visa sql-regelbaslinje för sårbarhetsbedömning. |
az security va sql baseline update |
Uppdatera SQL:s regelbaslinje för sårbarhetsbedömning. Ersätter den aktuella regelbaslinjen. |
az security va sql results list |
Visa alla resultat av sql-sårbarhetsbedömningsgenomsökning. |
az security va sql results show |
Visa resultat för SQL-sårbarhetsbedömningsgenomsökning. |
az security va sql scans list |
Visa en lista över alla sammanfattningar av sql-sårbarhetsbedömningsgenomsökningar. |
az security va sql scans show |
Visa sammanfattningar av SQL:s sårbarhetsbedömningsgenomsökning. |
Resource Manager-mallar
Använd typen Microsoft.Sql/servers/databases/vulnerabilityAssessments/rules/baselines
för att konfigurera baslinjer för sårbarhetsbedömning med hjälp av Azure Resource Manager-mallar.
Kontrollera att du har aktiverat vulnerabilityAssessments
innan du lägger till baslinjer.
Här är ett exempel för att definiera baslinjeregeln VA2065 till master
databas och VA1143 till user
databas som resurser i en Resource Manager-mall:
"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"
]
}
]
}
}
]
För master
databas och user
databas definieras resursnamnen på olika sätt:
- Huvuddatabas – "name": "[concat(parameters('server_name'),'/', parameters('database_name'), '/default/VA2065/master')]",
- Användardatabas – "name": "[concat(parameters('server_name'),'/', parameters('database_name'), '/default/VA2065/default')]",
Om du vill hantera booleska typer som true/false anger du baslinjeresultatet med binära indata som "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"
]
}
]
}
}
Relaterat innehåll
- Läs mer om Microsoft Defender för Azure SQL.
- Läs mer om dataidentifiering och -klassificering.
- Läs mer om att lagra genomsökning av sårbarhetsbedömningar i ett lagringskonto som är tillgängligt bakom brandväggar och virtuella nätverk.
- Läs vanliga frågor om Azure SQL-databaser.