Оценка уязвимостей SQL помогает выявить уязвимости баз данных

Область применения: База данных SQL Azure Управляемый экземпляр SQL Azure Azure Synapse Analytics

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

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

Примечание

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

Что представляет собой оценка уязвимостей SQL?

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

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

Эти правила основаны на рекомендациях корпорации Майкрософт и направлены на устранение проблем безопасности, представляющих наивысший риск для базы данных и ее ценного содержимого. Сюда входят проблемы безопасности на уровне как самой базы данных, так и сервера, например настройки брандмауэра сервера и установленные для сервера разрешения.

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

  • конфигурации разрешений;
  • конфигурации функций;
  • Параметры базы данных

Настройка оценки уязвимостей

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

  1. На портале Azure откройте конкретный ресурс в Базе данных SQL Azure, Управляемый экземпляр Базы данных SQL или Azure Synapse.

  2. Под заголовком Безопасность выберите Defender для облака.

  3. Щелкните ссылку Настроить, чтобы открыть область параметров Microsoft Defender для SQL, относящуюся ко всему серверу или управляемому экземпляру.

    Открытие параметров Azure Defender для SQL

    Примечание

    Для оценки уязвимостей SQL требуется, чтобы план Microsoft Defender для SQL допускал выполнение проверок. Дополнительные сведения о том, как включить Microsoft Defender для SQL, см. в статье Microsoft Defender для SQL.

  4. На странице Параметры сервера задайте параметры Microsoft Defender для SQL:

    Настройка параметров проверок для оценки уязвимостей SQL

    1. Начните с настройки учетной записи хранения, в которой будут храниться результаты проверки всех баз данных на сервере или в управляемом экземпляре. Дополнительные сведения об учетных записях хранения см. в разделе Об учетных записях хранения Azure.

      Совет

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

    2. Чтобы настроить автоматические еженедельные проверки для оценки уязвимостей с целью выявления недочетов в конфигурации, установите для параметра Периодически повторяющиеся проверки значение Вкл. . Результаты отправляются на адреса электронной почты, указанные в поле Куда отправлять отчеты о проверке. Можно также отправлять уведомления по электронной почте администраторам и владельцам подписок, установив флажок Также отправлять уведомления по электронной почте администраторам и владельцам подписок.

      Примечание

      Каждой базе данных случайным образом назначается время сканирования в заданный день недели. Email уведомления планируются случайным образом на сервер в течение заданного дня недели. Отчет об уведомлении по электронной почте содержит данные всех повторяющихся проверок базы данных, выполненных в течение предыдущей недели (не включает проверки по запросу).

  5. Проверки для оценки уязвимостей SQL можно выполнять и по запросу.

    1. На странице Defender для облака ресурса выберите Просмотреть дополнительные результаты оценки уязвимостей, чтобы получить доступ к результатам предыдущих проверок.

      Открытие результатов сканирования и параметров сканирования вручную.

    2. Чтобы выполнить проверку для оценки уязвимостей базы данных по запросу, нажмите кнопку Проверить на панели инструментов.

      Выберите

Примечание

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

Страница "Исправление уязвимостей"

По завершении проверки отчет отображается на портале Azure. Отчет содержит:

  • общие сведения о состоянии безопасности;
  • Количество обнаруженных проблем
  • сводные данные о серьезности рисков;
  • список результатов для дальнейшего исследования.

Образец отчета о проверке для оценки уязвимостей SQL

Для исправления обнаруженных уязвимостей выполните следующие действия.

  1. Просмотрите результаты и определите, какие из представленных в отчете проблем действительно представляют опасность для вашей среды.

  2. Выберите каждую проблему, чтобы понять, на что она влияет и почему именно проверка не пройдена.

    Совет

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

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

  3. При просмотре результатов оценки можно пометить определенные результаты как допустимые базовые показатели в вашей среде. Базовые показатели — это, по сути, параметры для настройки содержимого отчета о проверке. При последующих проверках результаты, которые соответствуют базовым показателям, будут считаться пройденными проверками. После того как вы зададите базовое состояние безопасности, служба оценки уязвимостей будет сообщать только об отклонениях от этого состояния. Таким образом вы можете сосредоточиться на важных проблемах.

    Утверждение результата как базового показателя для последующих проверок

  4. Если вы изменили базовые показатели, нажмите кнопку Проверить для выполнения проверки по запросу и просмотра настроенного отчета. Все результаты, помеченные вами как базовые показатели, будут теперь отображаться в списке Проверка пройдена с указанием о том, что соответствующие проверки пройдены вследствие изменения базовых показателей.

    Пройденные проверки с указанием о том, что они прошли согласно заданным базовым показателям

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

Расширенные возможности

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

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

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

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

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

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

Важно!

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

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

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

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

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

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

    Создание правила отключения для результатов va на серверах SQL Server на компьютерах

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

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

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

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

      Изменение или удаление существующего правила

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

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

Примечание

В этой статье предусмотрено использование модуля 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. Поддерживаемые командлеты:

Имя командлета в виде ссылки Описание
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".

Использование шаблонов 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/vulnerabilityAssessments/rules/baselines",
         "apiVersion": "2018-06-01-preview",
         "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/vulnerabilityAssessments/rules/baselines",
         "apiVersion": "2018-06-01-preview",
         "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')]",
  • База данных User — "name": "[concat(parameters('server_name'),'/', parameters('database_name') , '/default/VA2065/default')]",

Для работы с логическими типами, такими true/false, установите базовый результат с двоичными входными данными, например "1"/"0".

   {
      "type": "Microsoft.Sql/servers/databases/vulnerabilityAssessments/rules/baselines",
      "apiVersion": "2018-06-01-preview",
      "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"
               ]
            }
         ]
      }

   }

Разрешения

Чтобы увидеть результаты оценки уязвимости в рекомендации Microsoft Defender для облака, необходимо одно из следующих разрешений в базах данных SQL:

  • администратор безопасности;
  • Читатель сведений о безопасности

Для сохранения изменений в параметрах оценки уязвимостей требуются следующие разрешения:

  • Диспетчер безопасности SQL
  • Читатель данных больших двоичных объектов хранилища
  • Роль владельца учетной записи хранения

Чтобы открывать ссылки в уведомлениях по электронной почте о результатах сканирования или просматривать эти результаты, необходимы следующие разрешения:

  • Диспетчер безопасности SQL
  • Читатель данных больших двоичных объектов хранилища

Местонахождение данных

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

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

Следующие шаги