Zarządzanie wynikami luk w zabezpieczeniach w bazach danych Azure SQL

Microsoft Defender dla Chmury zapewnia ocenę luk w zabezpieczeniach dla baz danych Azure SQL Database. Ocena luk w zabezpieczeniach skanuje bazy danych pod kątem luk w zabezpieczeniach oprogramowania i udostępnia listę wyników. Możesz użyć wyników, aby skorygować luki w zabezpieczeniach oprogramowania i wyłączyć wyniki.

Wymagania wstępne

Przed kontynuowanie upewnij się, że wiesz, czy używasz konfiguracji ekspresowej, czy klasycznej.

Aby zobaczyć, której konfiguracji używasz:

  1. W witrynie Azure Portal otwórz konkretny zasób w usłudze Azure SQL Database, usłudze SQL Managed Instance Database lub usłudze Azure Synapse.
  2. W obszarze Zabezpieczenia wybierz pozycję Defender dla Chmury.
  3. W obszarze Stan włączania wybierz pozycję Konfiguruj , aby otworzyć okienko ustawień usługi Microsoft Defender for SQL dla całego serwera lub wystąpienia zarządzanego.

Jeśli ustawienia luk w zabezpieczeniach pokazują opcję skonfigurowania konta magazynu, używasz konfiguracji klasycznej. Jeśli nie, używasz konfiguracji ekspresowej.

Konfiguracja ekspresowa

Wyświetl historię skanowania

Wybierz pozycję Historia skanowania w okienku oceny luk w zabezpieczeniach, aby wyświetlić historię wszystkich skanowań uruchomionych wcześniej w tej bazie danych.

Konfiguracja ekspresowa nie przechowuje wyników skanowania, jeśli są identyczne z poprzednimi skanowaniami. Czas skanowania wyświetlany w historii skanowania to czas ostatniego skanowania, w którym zmieniły się wyniki skanowania.

Wyłącz określone wyniki z Microsoft Defender dla Chmury (wersja zapoznawcza)

Jeśli masz organizację, musisz zignorować znalezienie, a nie skorygować go, możesz wyłączyć wyszukiwanie. Wyłączone wyniki nie wpływają na wskaźnik bezpieczeństwa ani nie generują niechcianego szumu. Wyłączone wyszukiwanie jest widoczne w sekcji "Nie dotyczy" wyników skanowania.

Gdy wyszukiwanie jest zgodne z kryteriami zdefiniowanymi w regułach wyłączania, nie będzie ono wyświetlane na liście wyników. Typowe scenariusze mogą obejmować:

  • Wyłączanie wyników o średniej lub niższej ważności
  • Wyłącz wyniki, które nie można zastosować poprawek
  • Wyłącz wyniki z testów porównawczych, które nie są interesujące dla zdefiniowanego zakresu

Ważne

Aby wyłączyć określone wyniki, musisz mieć uprawnienia do edytowania zasad w usłudze Azure Policy. Dowiedz się więcej w temacie Uprawnienia RBAC platformy Azure w usłudze Azure Policy.

Aby utworzyć regułę:

  1. Na stronie szczegółów zaleceń dla wyników oceny luk w zabezpieczeniach na serwerach SQL na maszynach powinny zostać skorygowane, wybierz pozycję Wyłącz regułę.

  2. Wybierz odpowiedni zakres.

  3. Zdefiniuj kryteria. Można użyć dowolnego z następujących kryteriów:

    • Identyfikator znajdowania
    • Ważność
    • Testy porównawcze
  4. Tworzenie reguły wyłączania wyników oceny luk w zabezpieczeniach na serwerach SQL na maszynach

  5. Wybierz pozycję Zastosuj regułę. Wprowadzenie zmian może potrwać do 24 godzin.

  6. Aby wyświetlić, zastąpić lub usunąć regułę:

    1. Wybierz pozycję Wyłącz regułę.
    2. Z listy zakresów subskrypcje z aktywnymi regułami są wyświetlane jako Zastosowana reguła.
    3. Aby wyświetlić lub usunąć regułę, wybierz menu wielokropka ("...").

Konfigurowanie powiadomień e-mail przy użyciu usługi Azure Logic Apps

Aby otrzymywać regularne aktualizacje stanu oceny luk w zabezpieczeniach dla bazy danych, możesz użyć szablonu usługi Azure Logic Apps, który można dostosować.

Użycie szablonu umożliwi:

  • Wybierz czas raportów poczty e-mail.
  • Spójny widok stanu oceny luk w zabezpieczeniach, który obejmuje wyłączone reguły.
  • Wysyłanie raportów dla serwerów Azure SQL Server i maszyn wirtualnych SQL.
  • Dostosuj strukturę raportu i wygląd i działanie, aby dopasować je do standardów organizacji.

Programowe zarządzanie ocenami luk w zabezpieczeniach

Konfiguracja ekspresowa jest obsługiwana w najnowszej wersji interfejsu API REST z następującymi funkcjami:

opis Scope interfejs API
Operacje zbiorcze według planu bazowego Systemowa baza danych Punkty odniesienia oceny luk w zabezpieczeniach SQL
Punkt odniesienia oceny luk w zabezpieczeniach SQL
Operacje zbiorcze według planu bazowego Baza danych użytkowników Punkty odniesienia oceny luk w zabezpieczeniach sql bazy danych
Operacje linii bazowej pojedynczej reguły Baza danych użytkowników Punkty odniesienia reguły oceny luk w zabezpieczeniach sql bazy danych
Operacje linii bazowej pojedynczej reguły Systemowa baza danych Punkty odniesienia reguły oceny luk w zabezpieczeniach SQL
Punkt odniesienia reguły oceny luk w zabezpieczeniach SQL
Wyniki pojedynczego skanowania Baza danych użytkowników Wynik skanowania oceny luk w zabezpieczeniach sql bazy danych
Wyniki pojedynczego skanowania Systemowa baza danych Wynik skanowania oceny luk w zabezpieczeniach SQL
Szczegóły skanowania (podsumowanie) Baza danych użytkowników Skanowanie oceny luk w zabezpieczeniach sql bazy danych
Szczegóły skanowania (podsumowanie) Systemowa baza danych Skanowanie oceny luk w zabezpieczeniach SQL
Wykonywanie skanowania ręcznego Baza danych użytkowników Skanowanie wykonywane przez ocenę luk w zabezpieczeniach sql bazy danych
Wykonywanie skanowania ręcznego Systemowa baza danych Skanowanie wykonywane przez ocenę luk w zabezpieczeniach SQL
Ustawienia va (opcja GET jest obsługiwana tylko w przypadku usługi Express Configuration) Baza danych użytkowników Oceny luk w zabezpieczeniach sql bazy danych Ustawienia
Operacje Ustawienia va Serwer Oceny luk w zabezpieczeniach SQL Ustawienia
Oceny luk w zabezpieczeniach SQL

Korzystanie z szablonów usługi Azure Resource Manager

Użyj następującego szablonu usługi ARM, aby utworzyć nowy serwer logiczny Azure SQL z ekspresową konfiguracją oceny luk w zabezpieczeniach SQL.

Aby skonfigurować punkty odniesienia oceny luk w zabezpieczeniach przy użyciu szablonów usługi Azure Resource Manager, użyj Microsoft.Sql/servers/databases/sqlVulnerabilityAssessments/baselines typu . Przed dodaniem punktów odniesienia upewnij się, że vulnerabilityAssessments ta opcja jest włączona.

Poniżej przedstawiono kilka przykładów konfigurowania punktów odniesienia przy użyciu szablonów usługi ARM:

  • Skonfiguruj punkt odniesienia wsadowy na podstawie najnowszych wyników skanowania:

    {
        "type": "Microsoft.Sql/servers/databases/sqlVulnerabilityAssessments/baselines",
        "apiVersion": "2022-02-01-preview",
        "name": "[concat(parameters('serverName'),'/', parameters('databaseName') , '/default/default')]",
        "properties": {
            "latestScan": true
            }
    }
    
  • Skonfiguruj punkt odniesienia wsadowy na podstawie określonych wyników:

    {
        "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"
                ]
            ]
         }
      }
    }
    
  • Skonfiguruj punkt odniesienia dla określonej reguły:

    {
        "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" ]
            ]
        }
    }
    
  • Skonfiguruj punkty odniesienia wsadowe w bazie danych master na podstawie najnowszych wyników skanowania:

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

Korzystanie z programu PowerShell

Konfiguracja ekspresowa nie jest obsługiwana w poleceniach cmdlet programu PowerShell, ale możesz użyć programu PowerShell do wywoływania najnowszych możliwości oceny luk w zabezpieczeniach przy użyciu interfejsu API REST, na przykład:

Korzystanie z interfejsu wiersza polecenia platformy Azure

Wywoływanie konfiguracji ekspresowej przy użyciu interfejsu wiersza polecenia platformy Azure.

Rozwiązywanie problemów

Przywracanie konfiguracji klasycznej

Aby zmienić bazę danych Azure SQL Database z konfiguracji ekspresowej oceny luk w zabezpieczeniach na konfigurację klasyczną:

  1. Wyłącz plan usługi Defender for Azure SQL w witrynie Azure Portal.

  2. Użyj programu PowerShell, aby ponownie skonfigurować przy użyciu środowiska klasycznego:

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

    Może być konieczne dostosowanie Update-AzSqlServerVulnerabilityAssessmentSetting zgodnie ze skanowaniem oceny luk w zabezpieczeniach magazynu na koncie magazynu dostępnym za zaporami i sieciami wirtualnymi.

Błędy

"Ocena luk w zabezpieczeniach jest włączona na tym serwerze lub w jednej z bazowych baz danych z niezgodną wersją"

Możliwe przyczyny:

  • Przełączenie do konfiguracji ekspresowej nie powiodło się z powodu błędu zasad serwera.

    Rozwiązanie: spróbuj ponownie włączyć konfigurację ekspresową. Jeśli problem będzie się powtarzać, spróbuj wyłączyć usługę Microsoft Defender for SQL w zasobie Usługi Azure SQL, wybierz pozycję Zapisz, ponownie włącz usługę Microsoft Defender for SQL i wybierz pozycję Zapisz.

  • Przełączenie do konfiguracji ekspresowej nie powiodło się z powodu błędu zasad bazy danych. Zasady bazy danych nie są widoczne w witrynie Azure Portal dla usługi Defender dla oceny luk w zabezpieczeniach SQL, dlatego sprawdzamy je podczas etapu weryfikacji przełączania do konfiguracji ekspresowej.

    Rozwiązanie: Wyłącz wszystkie zasady bazy danych dla odpowiedniego serwera, a następnie spróbuj ponownie przełączyć się na konfigurację ekspresową.

  • Rozważ użycie dostarczonego skryptu programu PowerShell, aby uzyskać pomoc.

Konfiguracja klasyczna

Wyświetl historię skanowania

Wybierz pozycję Historia skanowania w okienku oceny luk w zabezpieczeniach, aby wyświetlić historię wszystkich skanowań uruchomionych wcześniej w tej bazie danych.

Wyłącz określone wyniki z Microsoft Defender dla Chmury (wersja zapoznawcza)

Jeśli masz organizacyjną potrzebę ignorowania znajdowania, a nie korygowania, możesz ją opcjonalnie wyłączyć. Wyłączone wyniki nie wpływają na wskaźnik bezpieczeństwa ani nie generują niechcianego szumu.

Gdy wyszukiwanie jest zgodne z kryteriami zdefiniowanymi w regułach wyłączania, nie będzie ono wyświetlane na liście wyników. Typowe scenariusze mogą obejmować:

  • Wyłączanie wyników o średniej lub niższej ważności
  • Wyłącz wyniki, które nie można zastosować poprawek
  • Wyłącz wyniki z testów porównawczych, które nie są interesujące dla zdefiniowanego zakresu

Ważne

  • Aby wyłączyć określone wyniki, musisz mieć uprawnienia do edytowania zasad w usłudze Azure Policy. Dowiedz się więcej w temacie Uprawnienia RBAC platformy Azure w usłudze Azure Policy.
  • Wyłączone wyniki będą nadal uwzględniane w cotygodniowym raporcie e-mail oceny luk w zabezpieczeniach SQL.
  • Wyłączone reguły są wyświetlane w sekcji "Nie dotyczy" wyników skanowania.

Aby utworzyć regułę:

  1. Na stronie szczegółów zaleceń dla wyników oceny luk w zabezpieczeniach na serwerach SQL na maszynach powinny zostać skorygowane, wybierz pozycję Wyłącz regułę.

  2. Wybierz odpowiedni zakres.

  3. Zdefiniuj kryteria. Można użyć dowolnego z następujących kryteriów:

    • Identyfikator znajdowania
    • Ważność
    • Testy porównawcze

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

  4. Wybierz pozycję Zastosuj regułę. Wprowadzenie zmian może potrwać do 24 godzin.

  5. Aby wyświetlić, zastąpić lub usunąć regułę:

    1. Wybierz pozycję Wyłącz regułę.

    2. Z listy zakresów subskrypcje z aktywnymi regułami są wyświetlane jako Zastosowana reguła.

      Screenshot of modify or delete an existing rule.

    3. Aby wyświetlić lub usunąć regułę, wybierz menu wielokropka ("...").

Programowe zarządzanie ocenami luk w zabezpieczeniach

Azure PowerShell

Uwaga

W tym artykule użyto modułu Azure Az programu PowerShell, który jest zalecanym modułem programu PowerShell do interakcji z platformą Azure. Aby rozpocząć pracę z modułem Azure PowerShell, zobacz Instalowanie programu Azure PowerShell. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.

Ważne

Moduł Azure Resource Manager programu PowerShell jest nadal obsługiwany, ale wszystkie przyszłe programowanie dotyczy modułu Az.Sql. Aby uzyskać te polecenia cmdlet, zobacz AzureRM.Sql. Argumenty poleceń w module Az i modułach AzureRm są zasadniczo identyczne.

Polecenia cmdlet programu Azure PowerShell umożliwiają programowe zarządzanie ocenami luk w zabezpieczeniach. Obsługiwane polecenia cmdlet to:

Nazwa polecenia cmdlet jako link opis
Clear-AzSqlDatabaseVulnerabilityAssessmentRuleBaseline Czyści punkt odniesienia reguły oceny luk w zabezpieczeniach.
Najpierw ustaw punkt odniesienia przed użyciem tego polecenia cmdlet, aby go wyczyścić.
Clear-AzSqlDatabaseVulnerabilityAssessmentSetting Czyści ustawienia oceny luk w zabezpieczeniach bazy danych.
Clear-AzSqlInstanceDatabaseVulnerabilityAssessmentRuleBaseline Czyści punkt odniesienia reguły oceny luk w zabezpieczeniach zarządzanej bazy danych.
Najpierw ustaw punkt odniesienia przed użyciem tego polecenia cmdlet, aby go wyczyścić.
Clear-AzSqlInstanceDatabaseVulnerabilityAssessmentSetting Czyści ustawienia oceny luk w zabezpieczeniach zarządzanej bazy danych.
Clear-AzSqlInstanceVulnerabilityAssessmentSetting Czyści ustawienia oceny luk w zabezpieczeniach wystąpienia zarządzanego.
Convert-AzSqlDatabaseVulnerabilityAssessmentScan Konwertuje wyniki skanowania oceny luk w zabezpieczeniach bazy danych na plik programu Excel (eksport).
Convert-AzSqlInstanceDatabaseVulnerabilityAssessmentScan Konwertuje wyniki skanowania oceny luk w zabezpieczeniach zarządzanej bazy danych na plik programu Excel (eksport).
Get-AzSqlDatabaseVulnerabilityAssessmentRuleBaseline Pobiera punkt odniesienia reguły oceny luk w zabezpieczeniach bazy danych dla danej reguły.
Get-AzSqlInstanceDatabaseVulnerabilityAssessmentRuleBaseline Pobiera punkt odniesienia reguły oceny luk w zabezpieczeniach zarządzanej bazy danych dla danej reguły.
Get-AzSqlDatabaseVulnerabilityAssessmentScanRecord Pobiera wszystkie rekordy skanowania oceny luk w zabezpieczeniach skojarzone z daną bazą danych.
Get-AzSqlInstanceDatabaseVulnerabilityAssessmentScanRecord Pobiera wszystkie rekordy skanowania oceny luk w zabezpieczeniach skojarzone z daną zarządzaną bazą danych.
Get-AzSqlDatabaseVulnerabilityAssessmentSetting Zwraca ustawienia oceny luk w zabezpieczeniach bazy danych.
Get-AzSqlInstanceDatabaseVulnerabilityAssessmentSetting Zwraca ustawienia oceny luk w zabezpieczeniach zarządzanej bazy danych.
Set-AzSqlDatabaseVulnerabilityAssessmentRuleBaseline Ustawia punkt odniesienia reguły oceny luk w zabezpieczeniach.
Set-AzSqlInstanceDatabaseVulnerabilityAssessmentRuleBaseline Ustawia punkt odniesienia reguły oceny luk w zabezpieczeniach dla zarządzanej bazy danych.
Start-AzSqlDatabaseVulnerabilityAssessmentScan Wyzwala rozpoczęcie skanowania oceny luk w zabezpieczeniach w bazie danych.
Start-AzSqlInstanceDatabaseVulnerabilityAssessmentScan Wyzwala rozpoczęcie skanowania oceny luk w zabezpieczeniach w zarządzanej bazie danych.
Update-AzSqlDatabaseVulnerabilityAssessmentSetting Aktualizacje ustawienia oceny luk w zabezpieczeniach bazy danych.
Update-AzSqlInstanceDatabaseVulnerabilityAssessmentSetting Aktualizacje ustawienia oceny luk w zabezpieczeniach zarządzanej bazy danych.
Update-AzSqlInstanceVulnerabilityAssessmentSetting Aktualizacje ustawienia oceny luk w zabezpieczeniach wystąpienia zarządzanego.

Aby zapoznać się z przykładem skryptu, zobacz Obsługa oceny luk w zabezpieczeniach usługi Azure SQL w programie PowerShell.

Interfejs wiersza polecenia platformy Azure

Ważne

Następujące polecenia interfejsu wiersza polecenia platformy Azure są przeznaczone dla baz danych SQL hostowanych na maszynach wirtualnych lub na maszynach lokalnych. Aby zapoznać się z ocenami luk w zabezpieczeniach dotyczącymi baz danych Azure SQL Database, zapoznaj się z sekcją Witryny Azure Portal lub programu PowerShell.

Polecenia interfejsu wiersza polecenia platformy Azure umożliwiają programowe zarządzanie ocenami luk w zabezpieczeniach. Obsługiwane polecenia to:

Nazwa polecenia jako link opis
az security va sql baseline delete Usuń punkt odniesienia reguły oceny luk w zabezpieczeniach SQL.
az security va sql baseline list Wyświetl punkt odniesienia oceny luk w zabezpieczeniach SQL dla wszystkich reguł.
az security va sql baseline set Ustawia punkt odniesienia oceny luk w zabezpieczeniach SQL. Zastępuje bieżący punkt odniesienia.
az security va sql baseline show Wyświetl punkt odniesienia reguły oceny luk w zabezpieczeniach SQL.
az security va sql baseline update Zaktualizuj punkt odniesienia reguły oceny luk w zabezpieczeniach SQL. Zastępuje bieżącą linię bazową reguły.
az security va sql results list Wyświetl wszystkie wyniki skanowania oceny luk w zabezpieczeniach SQL.
az security va sql results show Wyświetl wyniki skanowania oceny luk w zabezpieczeniach SQL.
az security va sql scans list Wyświetl wszystkie podsumowania skanowania oceny luk w zabezpieczeniach SQL.
az security va sql scans show Wyświetl podsumowania skanowania oceny luk w zabezpieczeniach SQL.

Szablony usługi Resource Manager

Aby skonfigurować punkty odniesienia oceny luk w zabezpieczeniach przy użyciu szablonów usługi Azure Resource Manager, użyj Microsoft.Sql/servers/databases/vulnerabilityAssessments/rules/baselines typu .

Przed dodaniem punktów odniesienia upewnij się, że włączono vulnerabilityAssessments tę opcję.

Oto przykład definiowania reguły linii bazowej VA2065 do master bazy danych i VA1143 do user bazy danych jako zasobów w szablonie usługi 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"
                  ]
               }
            ]
         }
      }
   ]

W przypadku master bazy danych i user bazy danych nazwy zasobów są definiowane inaczej:

  • Baza danych master — "name": "[concat(parameters('server_name'),'/', parameters('database_name'), '/default/VA2065/master')]",
  • Baza danych użytkownika — "name": "[concat(parameters('server_name'),'/', parameters('database_name'), '/default/VA2065/default')]",

Aby obsłużyć typy logiczne jako true/false, ustaw wynik punktu odniesienia z danymi wejściowymi binarnymi, takimi jak "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"
               ]
            }
         ]
      }

   }