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:

  1. Öppna den specifika resursen i Azure SQL Database, SQL Managed Instance Database eller Azure Synapse i Azure-portalen.
  2. Under rubriken Säkerhet väljer du Defender för molnet.
  3. 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:

  1. På informationssidan för rekommendationer för sårbarhetsbedömningsresultat på dina SQL-servrar på datorer ska åtgärdas väljer du Inaktivera regel.

  2. Välj relevant omfång.

  3. Definiera dina kriterier. Du kan använda något av följande kriterier:

    • Hitta ID
    • Allvarlighet
    • Benchmark-värden
  4. Skapa en inaktivera-regel för VA-resultat på SQL-servrar på datorer

  5. Välj Tillämpa regel. Det kan ta upp till 24 timmar innan ändringarna börjar gälla.

  6. Så här visar, åsidosätter eller tar du bort en regel:

    1. Välj Inaktivera regel.
    2. I omfångslistan visas prenumerationer med aktiva regler som Regel tillämpad.
    3. 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:

beskrivning Definitionsområde API
Massåtgärder för baslinje Systemdatabas Sql Vulnerability Assessment-baslinjer
Sql Vulnerability Assessment-baslinje
Massåtgärder för baslinje Användardatabas Databasbaslinjer för sql-sårbarhetsbedömning
Baslinjeåtgärder med en regel Användardatabas Databasbaslinjer för sql-sårbarhetsbedömningsregel
Baslinjeåtgärder med en regel Systemdatabas Regelbaslinjer för Sql Vulnerability Assessment
Regelbaslinje för Sql Vulnerability Assessment
Resultat av enkel genomsökning Användardatabas Databasresultat för Sql Vulnerability Assessment-genomsökning
Resultat av enkel genomsökning Systemdatabas Genomsökningsresultat för Sql Vulnerability Assessment
Genomsökningsinformation (sammanfattning) Användardatabas Genomsökningar av sårbarhetsbedömning i Database Sql
Genomsökningsinformation (sammanfattning) Systemdatabas Genomsökningar av Sql Vulnerability Assessment
Kör manuell genomsökning Användardatabas Database Sql Vulnerability Assessment Kör genomsökning
Kör manuell genomsökning Systemdatabas Sql Vulnerability Assessment Kör genomsökning
VA-inställningar (ENDAST GET stöds för Express Configuration) Användardatabas Database Sql Vulnerability Assessments Inställningar
VA-Inställningar åtgärder Server Sql Vulnerability Assessments Inställningar
Sårbarhetsbedömningar i Sql

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:

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:

  1. Inaktivera Defender för Azure SQL-planen från Azure-portalen.

  2. 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:

  1. På informationssidan för rekommendationer för sårbarhetsbedömningsresultat på dina SQL-servrar på datorer ska åtgärdas väljer du Inaktivera regel.

  2. Välj relevant omfång.

  3. Definiera dina kriterier. Du kan använda något av följande kriterier:

    • Hitta ID
    • Allvarlighet
    • Benchmark-värden

    Screenshot of create a disable rule for VA findings on SQL servers on machines.

  4. Välj Tillämpa regel. Det kan ta upp till 24 timmar innan ändringarna börjar gälla.

  5. Så här visar, åsidosätter eller tar du bort en regel:

    1. Välj Inaktivera regel.

    2. I omfångslistan visas prenumerationer med aktiva regler som Regel tillämpad.

      Screenshot of modify or delete an existing rule.

    3. 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"
               ]
            }
         ]
      }

   }