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

ОБЛАСТЬ ПРИМЕНЕНИЯ: База данных SQL Azure Управляемый экземпляр SQL Azure Azure Synapse Analytics

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

Оценка уязвимостей входит в состав Azure Defender для SQL — единого пакета расширенных средств обеспечения безопасности SQL. Получить доступ к оценке уязвимостей, а также управлять ею можно через центральный портал Azure 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. Под заголовком Безопасность выберите Центр безопасности.

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

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

    Примечание

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

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

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

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

      Совет

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

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

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

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

      Открытие результатов проверки и параметров ручной проверки

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

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

Примечание

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

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

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

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

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

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

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

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

    Совет

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

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

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

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

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

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

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

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

Экспорт отчета об оценке

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

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

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

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

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

Примечание

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

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

   }

Дальнейшие действия