共用方式為


管理 Azure SQL 資料庫中的弱點結果

適用於雲端的 Microsoft Defender 會為您的 Azure SQL 資料庫提供弱點評量。 弱點評量會掃描您的資料庫是否有軟體弱點,並提供結果清單。 您可以使用結果來補救軟體弱點並停用結果。

必要條件

請在您繼續之前確定您知道正在使用快速或傳統設定

若要查看您使用的設定:

  1. Azure 入口網站中,開啟 Azure SQL Database、SQL 受控執行個體資料庫,或 Azure Synapse 中的特定資源。
  2. 在 [安全性] 標題下,選取 [適用於雲端的 Defender]。
  3. 在 [啟用狀態] 中選取 [設定],針對整個伺服器或受控執行個體,開啟「適用於 SQL 的 Microsoft Defender 設定」窗格。

如果弱點設定顯示設定儲存體帳戶的選項,您正在使用傳統設定。 如果不是,則您正在使用快速設定。

快速設定

檢視掃描歷程記錄

在「弱點評定」窗格中選取 [掃描歷程記錄],檢閱先前在此資料庫上執行的所有掃描歷程記錄。

如果快速設定與先前的掃描相同,則不會儲存掃描結果。 掃描歷程記錄中顯示的掃描時間是掃描結果變更的最後一次掃描時間。

停用「適用於雲端的 Microsoft Defender (預覽版)」特定結果

如果您的組織需要忽略某個結果,而不是將其修復,您可以停用該結果。 停用的結果不會影響您的安全分數或產生不想要的雜訊。 您可以在掃描結果的 [不適用] 區段中看到已停用的結果。

當某個結果符合停用規則中定義的準則時,其就不會出現在結果清單中。 一般案例可能包括:

  • 停用中等或較低嚴重性的結果
  • 停用無法修補的結果
  • 停用與定義範圍不相關的基準結果

重要

若要停用特定的結果,您需要可在 Azure 原則中編輯原則的權限。 若要深入了解,請參閱 Azure 原則中的 Azure RBAC 權限。

若要建立規則:

  1. 在應補救機器中 SQL 伺服器的弱點評定結果頁面, 選取[停用規則]。

  2. 選取相關範圍。

  3. 定義準則。 您也可以使用下列準則:

    • 結果識別碼
    • 嚴重性
    • 效能評定
  4. 針對機器上 SQL 伺服器的 VA 結果建立停用規則

  5. 選取 [套用規則]。 變更可能需要 24 小時才會生效。

  6. 若要檢視、覆寫或刪除規則:

    1. 選取 [停用規則]。
    2. 從範圍清單中,具有作用中規則的訂用帳戶會顯示為已套用規則。
    3. 若要檢視或刪除規則,請選取省略符號功能表 ("...")。

使用 Azure Logic Apps 設定電子郵件通知

若要接收資料庫的弱點評量狀態定期更新,您可以使用可自訂的 Azure Logic Apps 範本

使用範本可讓您:

  • 選擇電子郵件報告的時間。
  • 獲得一致的弱點評量狀態檢視,其中包含已停用的規則。
  • 傳送 Azure SQL Server 和 SQL VM 的報告。
  • 自訂報告結構和外觀與風格,以符合您的組織標準。

以程式設計方式管理弱點評定

最新的 REST API 版本中支援快速設定,具有下列功能:

描述 範圍 API
基準大量作業 系統資料庫 SQL 弱點評量基準
SQL 弱點評量基準
基準大量作業 使用者資料庫 資料庫 SQL 弱點評量基準
單一規則基準作業 使用者資料庫 資料庫 Sql 弱點評量規則基準
單一規則基準作業 系統資料庫 Sql 弱點評量規則基準
Sql 弱點評量規則基準
單一掃描結果 使用者資料庫 資料庫 SQL 弱點評量掃描結果
單一掃描結果 系統資料庫 SQL 弱點評量掃描結果
掃描詳細資料 (摘要) 使用者資料庫 資料庫 Sql 弱點評量掃描
掃描詳細資料 (摘要) 系統資料庫 SQL 弱點評量掃描
執行手動掃描 使用者資料庫 資料庫 Sql 弱點評量執行掃描
執行手動掃描 系統資料庫 Sql 弱點評量執行掃描
VA 設定 (僅支援快速設定的 GET) 使用者資料庫 資料庫 Sql 弱點評量設定
VA 設定作業 伺服器 SQL 弱點評量設定
SQL 漏洞評量

使用 Azure 資源管理員範本

使用下列 ARM 範本來建立具有 SQL 弱點評量快速設定的新 Azure SQL 邏輯伺服器。

若要使用 Azure Resource Manager 範本來設定弱點評定基準,請使用 Microsoft.Sql/servers/databases/sqlVulnerabilityAssessments/baselines 類型。 在新增基準之前,請確定已啟用 vulnerabilityAssessments

以下數個範例說明如何使用 ARM 範本來設定基準:

  • 根據最新的掃描結果設定批次基準:

    {
        "type": "Microsoft.Sql/servers/databases/sqlVulnerabilityAssessments/baselines",
        "apiVersion": "2022-02-01-preview",
        "name": "[concat(parameters('serverName'),'/', parameters('databaseName') , '/default/default')]",
        "properties": {
            "latestScan": true
            }
    }
    
  • 根據特定結果設定批次基準:

    {
        "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"
                ]
            ]
         }
      }
    }
    
  • 設定特定規則的基準:

    {
        "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" ]
            ]
        }
    }
    
  • 根據最新的掃描結果,在 master 資料庫上設定批次基準:

    {
        "type": "Microsoft.Sql/servers/databases/sqlVulnerabilityAssessments/baselines",
        "apiVersion": "2022-02-01-preview",
        "name": "[concat(parameters('serverName'),'/master/default/default')]",
        "properties": {
            "latestScan": true
            }
    }
    

使用 PowerShell

PowerShell Cmdlet 不支援快速設定,但您可以使用 PowerShell 利用 REST API 叫用最新的弱點評量功能,例如:

使用 Azure CLI

使用 Azure CLI 叫用快速設定。

疑難排解

還原回傳統設定

若要將 Azure SQL 資料庫從弱點評估快速設定變更為傳統設定:

  1. 從 Azure 入口網站停用適用於 Azure SQL 的 Defender 方案。

  2. 使用 PowerShell 透過傳統體驗重新設定:

    Update-AzSqlServerAdvancedThreatProtectionSetting `
                -ResourceGroupName "demo-rg" `
                -ServerName "dbsrv1" `
                -Enable 1
    Update-AzSqlServerVulnerabilityAssessmentSetting `
                -ResourceGroupName "demo-rg" `
                -ServerName "dbsrv1" `
                -StorageAccountName "mystorage" `
                -RecurringScansInterval Weekly `
                -ScanResultsContainerName "vulnerability-assessment"
    

    您可能必須根據將弱點評量掃描結果儲存至可在防火牆和 VNet 後面存取的儲存體帳戶來調整 Update-AzSqlServerVulnerabilityAssessmentSetting

錯誤

「此伺服器或伺服器其中一個包含不相容版本的基礎資料庫已啟用弱點評量」

可能的原因:

  • 切換至快速設定失敗,因為伺服器原則錯誤。

    解決方案:再試一次以啟用快速設定。 如果問題持續發生,請嘗試在 Azure SQL 資源中停用適用於 SQL 的 Microsoft Defender,選取 [儲存],再次啟用適用於 SQL 的 Microsoft Defender,然後選取 [儲存]

  • 切換至快速設定失敗,因為資料庫原則錯誤。 在 SQL 適用於 Defender 的 Azure 入口網站中看不到資料庫原則,因此我們會在切換至快速設定的驗證階段檢查這些原則。

    解決方案:停用相關伺服器的所有資料庫原則,然後嘗試再次切換為快速設定。

  • 請考慮使用提供的 PowerShell 指令碼來取得協助。

傳統設定

檢視掃描歷程記錄

在「弱點評定」窗格中選取 [掃描歷程記錄],檢閱先前在此資料庫上執行的所有掃描歷程記錄。

停用「適用於雲端的 Microsoft Defender (預覽版)」特定結果

如果您的組織需要忽略某個結果,而不是將其修復,您可以選擇性地停用該結果。 停用的結果不會影響您的安全分數或產生不想要的雜訊。

當某個結果符合停用規則中定義的準則時,其就不會出現在結果清單中。 一般案例可能包括:

  • 停用中等或較低嚴重性的結果
  • 停用無法修補的結果
  • 停用與定義範圍不相關的基準結果

重要

  • 若要停用特定的結果,您需要可在 Azure 原則中編輯原則的權限。 若要深入了解,請參閱 Azure 原則中的 Azure RBAC 權限
  • 每週的 SQL 弱點評量電子郵件報告中仍會包含停用的結果。
  • 到已停用的規則會顯示在掃描結果的 [不適用] 區段中。

若要建立規則

  1. 應補救機器中 SQL 伺服器的弱點評定結果頁面, 選取[停用規則]。

  2. 選取相關範圍。

  3. 定義準則。 您也可以使用下列準則:

    • 結果識別碼
    • 嚴重性
    • 效能評定

    針對機器上 SQL 伺服器的 VA 結果建立停用規則的螢幕擷取畫面。

  4. 選取 [套用規則]。 變更可能需要 24 小時才會生效。

  5. 若要檢視、覆寫或刪除規則:

    1. 選取 [停用規則]。

    2. 從範圍清單中,具有作用中規則的訂用帳戶會顯示為已套用規則

      修改或刪除現有規則的螢幕擷取畫面。

    3. 若要檢視或刪除規則,請選取省略符號功能表 ("...")。

以程式設計方式管理弱點評定

Azure PowerShell

注意

本文使用 Azure Az PowerShell 模組,這是與 Azure 互動時建議使用的 PowerShell 模組。 若要開始使用 Az PowerShell 模組,請參閱安裝 Azure PowerShell。 若要瞭解如何遷移至 Az PowerShell 模組,請參閱將 Azure PowerShell 從 AzureRM 遷移至 Az。

重要

PowerShell Azure Resource Manager 模組仍受支援,但未來所有開發都是針對 Az.Sql 模組進行。 如需這些 Cmdlet,請參閱 AzureRM.Sql \(英文\)。 Az 模組和 AzureRm 模組中命令的引數本質上完全相同。

您可以使用 Azure PowerShell Cmdlet,以程式設計方式管理您的弱點評定。 支援的 Cmdlet 如下:

將 Cmdlet 名稱作為連結 描述
Clear-AzSqlDatabaseVulnerabilityAssessmentRuleBaseline 清除弱點評量規則基準。
必須先設定基準,才能使用此 Cmdlet 來進行清除。
Clear-AzSqlDatabaseVulnerabilityAssessmentSetting 清除資料庫的弱點評定設定。
Clear-AzSqlInstanceDatabaseVulnerabilityAssessmentRuleBaseline 清除受控資料庫的弱點評定規則基準。
必須先設定基準,才能使用此 Cmdlet 來進行清除。
Clear-AzSqlInstanceDatabaseVulnerabilityAssessmentSetting 清除受控資料庫的弱點評定設定。
Clear-AzSqlInstanceVulnerabilityAssessmentSetting 清除受控執行個體的弱點評定設定。
Convert-AzSqlDatabaseVulnerabilityAssessmentScan 將資料庫的弱點評量掃描結果轉換為 Excel 檔案 (匯出)。
Convert-AzSqlInstanceDatabaseVulnerabilityAssessmentScan 將受控資料庫的弱點評量掃描結果轉換為 Excel 檔案 (匯出)。
Get-AzSqlDatabaseVulnerabilityAssessmentRuleBaseline 針對指定規則,取得資料庫的弱點評定規則基準。
Get-AzSqlInstanceDatabaseVulnerabilityAssessmentRuleBaseline 針對指定規則,取得受控資料庫的弱點評定規則基準。
Get-AzSqlDatabaseVulnerabilityAssessmentScanRecord 取得所有與指定資料庫相關聯的弱點評定掃描結果。
Get-AzSqlInstanceDatabaseVulnerabilityAssessmentScanRecord 取得所有與指定受控資料庫相關聯的弱點評定掃描結果。
Get-AzSqlDatabaseVulnerabilityAssessmentSetting 傳回資料庫的弱點評定設定。
Get-AzSqlInstanceDatabaseVulnerabilityAssessmentSetting 傳回受控資料庫的弱點評定設定。
Set-AzSqlDatabaseVulnerabilityAssessmentRuleBaseline 設定弱點評量規則基準。
Set-AzSqlInstanceDatabaseVulnerabilityAssessmentRuleBaseline 設定受控資料庫的弱點評定規則基準。
Start-AzSqlDatabaseVulnerabilityAssessmentScan 在資料庫上觸發弱點評定掃描。
Start-AzSqlInstanceDatabaseVulnerabilityAssessmentScan 在受控資料庫上觸發弱點評定掃描。
Update-AzSqlDatabaseVulnerabilityAssessmentSetting 更新資料庫的弱點評定設定。
Update-AzSqlInstanceDatabaseVulnerabilityAssessmentSetting 更新受控資料庫的弱點評定設定。
Update-AzSqlInstanceVulnerabilityAssessmentSetting 更新受控執行個體的弱點評定設定。

如需指令碼範例,請參閱 Azure SQL 弱點評定的 PowerShell 支援

Azure CLI

重要

下列 Azure CLI 命令適用於裝載在 VM,或內部部署機器上的 SQL 資料庫。 如需 Azure SQL 資料庫的弱點評量,請參閱 Azure 入口網站或 PowerShell 區段。

您可以使用 Azure CLI 命令,以程式設計方式管理弱點評定。 支援的命令為:

將命令名稱作為連結 描述
az security va sql baseline delete 刪除 SQL 弱點評量規則基準。
az security va sql baseline list 檢視所有規則的 SQL 弱點評量基準。
az security va sql baseline set 設定 SQL 弱點評量基準。 取代目前的基準。
az security va sql baseline show 檢視 SQL 弱點評量規則基準。
az security va sql baseline update 更新 SQL 弱點評量規則基準。 取代目前的規則基準。
az security va sql results list 檢視所有 SQL 弱點評量掃描結果。
az security va sql results show 檢視 SQL 弱點評量掃描結果。
az security va sql scans list 列出所有 SQL 弱點評量掃描摘要。
az security va sql scans show 檢視 SQL 弱點評量掃描摘要。

Resource Manager 範本

若要使用 Azure Resource Manager 範本來設定弱點評定基準,請使用 Microsoft.Sql/servers/databases/vulnerabilityAssessments/rules/baselines 類型。

在新增基準之前,請確定您已啟用 vulnerabilityAssessments

下列範例會說明如何將 master 資料庫的 Baseline Rule VA2065,以及 user 資料庫的 VA1143,定義為 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"
                  ]
               }
            ]
         }
      }
   ]

針對 master 資料庫和 user 資料庫,資源名稱的定義方式會有所不同:

  • 主要資料庫 - "name": "[concat(parameters('server_name'),'/', parameters('database_name') , '/default/VA2065/master')]",
  • 使用者資料庫 - "name": "[concat(parameters('server_name'),'/', parameters('database_name') , '/default/VA2065/default')]",

若要將布林值類型處理為 true/false,請使用二進位輸入(例如 "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"
               ]
            }
         ]
      }

   }