Управление обнаруженными уязвимостями в базах данных SQL Azure

Microsoft Defender для облака предоставляет оценку уязвимостей для баз данных SQL Azure. Оценка уязвимостей проверяет базы данных на наличие уязвимостей программного обеспечения и предоставляет список выводов. Вы можете использовать результаты для устранения уязвимостей программного обеспечения и отключения результатов.

Необходимые компоненты

Перед продолжением убедитесь, что вы используете экспресс-или классические конфигурации .

Чтобы узнать, какая конфигурация используется, выполните следующие действия.

  1. На портале Azure откройте конкретный ресурс в Базе данных SQL Azure, Управляемый экземпляр Базы данных SQL или Azure Synapse.
  2. Под заголовком Безопасность выберите Defender для облака.
  3. В разделе "Состояние включения" выберите "Настроить", чтобы открыть панель параметров Microsoft Defender для SQL для всего сервера или управляемого экземпляра.

Если параметры уязвимости показывают параметр настройки учетной записи хранения, вы используете классическую конфигурацию. Если нет, вы используете экспресс-конфигурацию.

Экспресс-конфигурация

Просмотр журнала сканирования

Нажмите кнопку Журнал сканирования в области оценки уязвимостей, чтобы просмотреть журнал всех проверок этой базы данных.

Экспресс-конфигурация не сохраняет результаты сканирования, если они идентичны предыдущим сканированиям. Время сканирования, показанное в журнале сканирования, — это время последнего сканирования, в котором были изменены результаты сканирования.

Отключение определенных результатов в Microsoft Defender для облака (предварительная версия)

Если у вас есть организация, необходимо игнорировать поиск, а не исправить ее, можно отключить поиск. Отключенные результаты не учитываются в оценке безопасности и не создают нежелательный шум. Вы можете увидеть отключенный поиск в разделе "Неприменимо" результатов сканирования.

Если результат поиска соответствует критерию, заданному в правилах отключения, он не будет отображаться в списке результатов. Типичные сценарии могут включать:

  • Отключение результатов с средней или более низкой степенью серьезности
  • Отключение обнаруженных проблем, которые не подлежат исправлению
  • Отключение результатов тестов производительности, которые не интересны для определенной области

Внимание

Чтобы отключить определенные результаты, необходимо иметь разрешения на изменение политики в Политике Azure. Дополнительные сведения см. в разделе Разрешения Azure RBAC в Политике Azure.

Чтобы создать правило, выполните следующие действия.

  1. На странице сведений о рекомендациях для рекомендации Найденные в ходе оценки уязвимости SQL Server на компьютерах должны быть устранены выберите Отключить правило.

  2. Выберите соответствующую область.

  3. Определите условие. Вы можете использовать любое из следующих условий:

    • Идентификатор обнаруженной проблемы
    • Важность
    • Тесты производительности
  4. Создание правила отключения для результатов оценки уязвимостей SQL Server на компьютерах.

  5. Нажмите Применить правило. Изменения могут занять до 24 часов.

  6. Чтобы просмотреть, переопределить или удалить правило, выполните следующие действия.

    1. Выберите Отключить правило.
    2. В списке области подписки с активными правилами отображаются с пометкой Правило применено.
    3. Чтобы просмотреть или удалить правило, выберите меню с многоточием (...).

Настройка уведомлений по электронной почте с помощью Azure Logic Apps

Чтобы получать регулярные обновления состояния оценки уязвимостей для базы данных, можно использовать настраиваемый шаблон Azure Logic Apps.

Использование шаблона позволит вам:

  • Выберите время отправки отчетов электронной почты.
  • У вас есть согласованное представление о состоянии оценки уязвимостей, включающее отключенные правила.
  • Отправка отчетов для серверов SQL Azure и виртуальных машин SQL.
  • Настройте структуру отчетов и внешний вид, чтобы соответствовать стандартам организации.

Программное управление оценкой уязвимостей

Экспресс-конфигурация поддерживается в последней версии REST API со следующими функциями:

Description Область действия API
Базовые массовые операции Системная база данных Базовые показатели оценки уязвимостей SQL
Базовые показатели оценки уязвимостей SQL
Базовые массовые операции Уровень пользовательской Базовые показатели оценки уязвимостей Базы данных SQL
Базовые операции с одним правилом Уровень пользовательской Базовые показатели правил оценки уязвимостей базы данных SQL
Базовые операции с одним правилом Системная база данных Базовые показатели правил оценки уязвимостей SQL
Базовый план правила оценки уязвимостей SQL
Результаты однократного сканирования Уровень пользовательской Результат проверки уязвимостей базы данных SQL
Результаты однократного сканирования Системная база данных Результат проверки уязвимостей SQL
Сведения о сканировании (сводка) Уровень пользовательской Проверки оценки уязвимостей Базы данных SQL
Сведения о сканировании (сводка) Системная база данных Проверки оценки уязвимостей SQL
Выполнение ручной проверки Уровень пользовательской Проверка выполнения оценки уязвимостей Базы данных SQL
Выполнение ручной проверки Системная база данных Проверка выполнения оценки уязвимостей SQL
Параметры va (get only is supported for Express Configuration) Уровень пользовательской Параметры оценки уязвимостей Базы данных SQL
Операции параметров VA Сервер Параметры оценки уязвимостей SQL
Оценки уязвимостей SQL

Использование шаблонов Azure Resource Manager

Используйте следующий шаблон 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, но можно использовать PowerShell для вызова последних возможностей оценки уязвимостей с помощью REST API, например:

Использование Azure CLI

Вызов экспресс-конфигурации с помощью Azure CLI.

Устранение неполадок

Возврат к классической конфигурации

Чтобы переключить базу данных SQL Azure с конфигурации с экспресс-оценкой уязвимости на классическую конфигурацию:

  1. Отключите план Defender для SQL Azure на портале Azure.

  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"
    

    В соответствии с проверкой уязвимостей магазина может потребоваться настроить Update-AzSqlServerVulnerabilityAssessmentSetting проверку уязвимостей в учетной записи хранения, доступной за брандмауэрами и виртуальными сетями.

ошибки

"Оценка уязвимостей включена на этом сервере или в одной из базовых баз данных с несовместимой версией"

Возможные причины:

  • Сбой переключения на экспресс-конфигурацию из-за ошибки политики сервера.

    Решение. Повторите попытку, чтобы включить экспресс-конфигурацию. Если проблема сохранится, попробуйте отключить Microsoft Defender для SQL в ресурсе SQL Azure, нажмите кнопку "Сохранить", снова включите Microsoft Defender для SQL и нажмите кнопку "Сохранить".

  • Сбой переключения на экспресс-конфигурацию из-за ошибки политики базы данных. Политики базы данных не отображаются в портал Azure оценки уязвимостей Defender для SQL, поэтому мы проверяем их на этапе проверки переключения на экспресс-конфигурацию.

    Решение. Отключите все политики базы данных для соответствующего сервера и повторите попытку переключиться на экспресс-конфигурацию.

  • Рассмотрите возможность использования предоставленного скрипта PowerShell для получения помощи.

Классическая конфигурация

Просмотр журнала сканирования

Нажмите кнопку Журнал сканирования в области оценки уязвимостей, чтобы просмотреть журнал всех проверок этой базы данных.

Отключение определенных результатов в Microsoft Defender для облака (предварительная версия)

Если правила вашей организации требуют игнорировать обнаруженную проблему, а не исправлять ее, вы можете исключить ее из результатов поиска. Отключенные результаты не учитываются в оценке безопасности и не создают нежелательный шум.

Если результат поиска соответствует критерию, заданному в правилах отключения, он не будет отображаться в списке результатов. Типичные сценарии могут включать:

  • Отключение результатов с средней или более низкой степенью серьезности
  • Отключение обнаруженных проблем, которые не подлежат исправлению
  • Отключение результатов тестов производительности, которые не интересны для определенной области

Внимание

  • Чтобы отключить определенные результаты, необходимо иметь разрешения на изменение политики в Политике Azure. Дополнительные сведения см. в разделе Разрешения Azure RBAC в Политике Azure.
  • Отключенные результаты по-прежнему будут включены в еженедельный отчет об оценке уязвимостей SQL.
  • Отключенные правила отображаются в разделе "Неприменимо" результатов сканирования.

Чтобы создать правило, выполните приведенные действия.

  1. На странице сведений о рекомендациях для рекомендации Найденные в ходе оценки уязвимости SQL Server на компьютерах должны быть устранены выберите Отключить правило.

  2. Выберите соответствующую область.

  3. Определите условие. Вы можете использовать любое из следующих условий:

    • Идентификатор обнаруженной проблемы
    • Важность
    • Тесты производительности

    Снимок экрана: создание правила отключения для результатов VA на серверах SQL на компьютерах.

  4. Нажмите Применить правило. Изменения могут занять до 24 часов.

  5. Чтобы просмотреть, переопределить или удалить правило, выполните следующие действия.

    1. Выберите Отключить правило.

    2. В списке области подписки с активными правилами отображаются с пометкой Правило применено.

      Снимок экрана: изменение или удаление существующего правила.

    3. Чтобы просмотреть или удалить правило, выберите меню с многоточием (...).

Программное управление оценкой уязвимостей

Azure PowerShell

Примечание.

В этой статье предусмотрено использование модуля Azure Az PowerShell, который является рекомендуемым модулем PowerShell для взаимодействия с Azure. Чтобы начать работу с модулем Az PowerShell, ознакомьтесь со статьей Установка Azure PowerShell. Дополнительные сведения см. в статье Перенос Azure PowerShell с AzureRM на Az.

Внимание

Модуль PowerShell Azure Resource Manager по-прежнему поддерживается, но вся дальнейшая разработка сосредоточена на модуле Az.Sql. Сведения об этих командлетах см. в разделе AzureRM.Sql. Аргументы команд в модулях Az и AzureRm практически идентичны.

Для программного управления оценками уязвимостей можно использовать командлеты Azure PowerShell. Поддерживаемые командлеты:

Имя командлета в виде ссылки Description
Clear-AzSqlDatabaseVulnerabilityAssessmentRuleBaseline Очищает базовое правило оценки уязвимости.
Следует сначала установить базовые показатели, прежде чем очищать их с помощью этого командлета.
Clear-AzSqlDatabaseVulnerabilityAssessmentSetting Очищает параметры оценки уязвимостей базы данных.
Clear-AzSqlInstanceDatabaseVulnerabilityAssessmentRuleBaseline Очищает базовые показатели для правил оценки уязвимостей управляемой базы данных.
Следует сначала установить базовые показатели, прежде чем очищать их с помощью этого командлета.
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 Обновляет параметры оценки уязвимостей управляемого экземпляра.

Пример сценария см. в статье "Поддержка PowerShell для оценки уязвимостей Azure SQL".

Azure CLI

Внимание

Следующие команды Azure CLI предназначены для баз данных SQL, размещенных на виртуальных машинах или локальных компьютерах. Сведения об оценках уязвимостей в отношении База данных SQL Azure см. в разделе портал Azure или PowerShell.

Для программного управления оценками уязвимостей можно использовать команды Azure CLI. Поддерживаются такие команды :

Имя команды в качестве ссылки Description
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, прежде чем добавлять базовые показатели.

Ниже приведен пример определения базового правила VA2065 для базы данных master и VA1143 для базы данных user в качестве ресурсов в шаблоне 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 имена ресурсов определяются по-разному:

  • База данных Master — "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"
               ]
            }
         ]
      }

   }