Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
рекомендации Security в Microsoft Defender для облака помогут вам улучшить и ужесточить состояние безопасности. Рекомендации основаны на оценках на соответствие стандартам безопасности, определённым для подписок Azure, учётных записей Amazon Web Services (AWS) и проектов Google Cloud Platform (GCP), в которых включён Defender для облака.
В этой статье описывается, как выполнить следующее:
- Создайте пользовательские рекомендации для всех облаков (Azure, AWS и GCP) с помощью запроса языка запросов Kusto (KQL).
- Назначьте пользовательские рекомендации пользовательскому стандарту безопасности.
Необходимые условия
Прежде чем создавать индивидуальные рекомендации или стандарты, убедитесь, что вы соответствуете следующим требованиям:
- Для создания нового стандарта безопасности требуется разрешение владельца подписки.
- Вам нужны разрешения администратора безопасности для создания пользовательских рекомендаций.
- Чтобы создать пользовательские рекомендации на основе языка запросов Kusto (KQL), необходимо включить план Defender Cloud Security Posture Management (CSPM. Все клиенты могут создавать пользовательские рекомендации на основе Политика Azure.
- Просмотрите поддержку в облаках Azure для пользовательских рекомендаций.
Мы рекомендуем посмотреть этот выпуск Defender для облака in the field, чтобы узнать больше о пользовательских рекомендациях и узнать, как писать запросы KQL.
Создание пользовательской рекомендации
Создайте настраиваемые рекомендации, включая шаги по устранению, уровень серьезности и стандарты, к которым следует отнести рекомендацию. Вы добавляете логику рекомендаций с помощью KQL. Вы можете использовать простой редактор запросов со встроенными шаблонами запросов, которые можно настроить по мере необходимости или записать запрос KQL с нуля.
Чтобы создать пользовательскую рекомендацию, выполните следующее:
Войдите на портал Azure.
Перейдите в Microsoft Defender для облака>Параметры среды> для соответствующей подписки.
Выберите Политики безопасности>+ Создать пользовательскую рекомендацию.
Введите данные: обязательные поля: имя, область действия, степень серьёзности и проблема безопасности. Необязательно. Описание, исправление.
Нажмите кнопку Далее.
Введите запрос KQL или выберите редактор запросов Open.
Нажмите кнопку Далее.
Выберите соответствующие стандарты для рекомендации.
Нажмите кнопку Далее.
Выберите настраиваемые стандарты для назначения.
Выберите "Рецензирование" и "Создать".
Просмотрите сведения о рекомендации.
Нажмите кнопку "Создать".
Использование редактора запросов
Мы рекомендуем использовать редактор запросов для создания запроса рекомендаций. Вы также можете использовать предоставленные шаблоны запросов и примеры , чтобы просмотреть примеры запросов и узнать, как создавать собственные.
- Использование редактора помогает создавать и тестировать запрос перед началом работы с ним.
- Выберите How to, чтобы получить справку о том, как структурировать запрос, а также дополнительные инструкции и ссылки.
- Редактор содержит встроенные примеры запросов рекомендаций, которые можно использовать для создания собственного запроса. Данные отображаются в той же структуре, что и в API.
Выберите новый запрос.
Используйте пример шаблона запроса со своими инструкциями или выберите пример встроенного запроса рекомендаций из нижней части страницы, чтобы приступить к работе.
Выберите "Выполнить запрос", чтобы проверить созданный запрос .
Когда запрос будет готов, вырезать и вставить его из редактора в область запросов рекомендаций .
Выберите «Далее», выберите соответствующие стандарты для рекомендации, выберите пользовательские стандарты для назначения, а затем выберите «Обзор и создать».
Ознакомьтесь с деталями рекомендаций и выберите Создать.
Шаблоны запросов и примеры
Редактор запросов включает встроенные примеры, а шаблоны в этом разделе показывают, как структурировать распространенные проверки безопасности. Каждый шаблон возвращает ресурсы в пределах области действия и помечает несоответствующие ресурсы как UNHEALTHY. В этом шаблоне измените только выражение condition и оставьте строку HealthStatus без изменений.
Note
Шаблоны в этом разделе используют типы ресурсов Azure. Для ресурсов AWS и GCP измените Environment == 'Azure' на Environment == 'AWS' или Environment == 'GCP' и обновите Identifiers.Type, чтобы он соответствовал типу ресурса в вашей среде.
Требования к выходной схеме KQL
Прежде чем писать запрос, изучите необходимую схему выходных данных. Это то, как Microsoft Defender для облака интерпретирует результаты и сопоставляет результаты с ресурсами.
Обязательные выходные столбцы:
| Column | Type | Purpose |
|---|---|---|
Id |
Строка (обязательно) | Идентификатор ресурса, используемый Defender для облака для ссылки на ресурс. |
Name |
Строка (обязательно) | Имя ресурса, доступное для чтения человеком, отображаемое в результатах. |
Environment |
Строка (обязательно) | Облачная среда: Azure, AWS или GCP. |
Identifiers |
Динамический (обязательный) | Тип и идентификаторы ресурсов, передаваемые из исходной записи. |
AdditionalData |
Динамический (обязательный) | Дополнительные метаданные ресурсов, передаваемые из исходной записи. |
Record |
Динамический (обязательный) | Полная запись ресурса, содержащая все свойства. |
HealthStatus |
Строка (обязательно) | Результат оценки: UNHEALTHY (несоответствующий) или HEALTHY (совместимый). |
Всегда заканчивайте запрос следующими параметрами: | project Id, Name, Environment, Identifiers, AdditionalData, Record, HealthStatus
Сопоставление оценок:
Каждый запрос должен задать HealthStatus значение для каждого ресурса. Используйте следующий шаблон в качестве основной логики оценки состояния в вашем запросе для пользовательской рекомендации, заменив временное условие на свой собственный тест:
| extend condition = (your condition here)
| extend HealthStatus = iff(condition, 'UNHEALTHY', 'HEALTHY')
В этом шаблоне измените только выражение condition. Оставьте следующее HealthStatus выражение без изменений в вашем запросе, чтобы Defender для облака мог классифицировать соответствующие ресурсы как соответствующие или несоответствующие требованиям:
| extend HealthStatus = iff(condition, 'UNHEALTHY', 'HEALTHY')
Ресурсы, в которых HealthStatus имеет значение UNHEALTHY, отображаются в Defender для облака как выводы о несоответствии. Ресурсы, для которых HealthStatus имеет значение HEALTHY, соответствуют требованиям и не отображаются в результатах проверки.
Это важно
Всегда устанавливайте HealthStatus в значение 'UNHEALTHY' или 'HEALTHY'. Вернуть все ресурсы в заданной области видимости. Defender для облака использует столбец HealthStatus для определения соответствия требованиям. Исключение ресурсов из набора результатов рассматривается как отсутствие данных, а не как признак работоспособности.
Распространенные ошибки и исправления:
-
Отсутствующие обязательные столбцы: Если отсутствует любой из семи обязательных столбцов, запрос завершается ошибкой. Всегда заканчивайте с
| project Id, Name, Environment, Identifiers, AdditionalData, Record, HealthStatus. -
Неправильные
HealthStatusзначения: Только'UNHEALTHY'и'HEALTHY'являются допустимыми значениями (с учетом регистра). Другие значения или null вызывают ошибки синтаксического анализа. -
Неверные пути к свойствам: Доступ к свойствам осуществляется через
Record.properties.*, а не напрямую. Например, используйтеRecord.properties.httpsOnly, а неproperties.httpsOnly. -
Чувствительность к регистру типа ресурса: Используйте
=~(сравнение без учета регистра) для сравненияIdentifiers.Type. Например:Identifiers.Type =~ 'Microsoft.Storage/storageAccounts'. -
Свойства со значением NULL в разных подписках: Протестируйте запрос в разных подписках с различными конфигурациями. Используйте проверки
isnull()там, где свойства могут отсутствовать.
Используйте персонализированные рекомендации в больших масштабах
Создание пользовательских рекомендаций на портале Azure лучше всего подходит для большинства пользователей. Интерфейс предоставляет удобный редактор KQL и встроенные средства проверки. Программный подход также может оказаться полезным, если необходимо развернуть рекомендации во многих средах или подписках.
Автоматизация с помощью API
Если вы предварительно проверили запросы KQL и хотите автоматизировать создание пользовательских рекомендаций, вы можете использовать API Microsoft Defender для облака. Этот метод позволяет быстро развертывать рекомендации, обеспечивая согласованность и масштабируемость в облачных средах.
- Преимущества. Вы можете автоматизировать и масштабировать развертывание пользовательских рекомендаций.
- При использовании: этот метод идеально подходит для крупномасштабных реализаций, где необходимо последовательно применять рекомендации в нескольких средах.
Дополнительные сведения об использовании API для управления пользовательскими рекомендациями см. в справочнике по составным API Defender для облака.
Создайте собственный стандарт
Пользовательские рекомендации можно назначить одному или нескольким пользовательским стандартам.
Чтобы создать пользовательский стандарт, выполните приведенные действия.
Войдите на портал Azure.
Перейдите в Microsoft Defender для облака>Параметры среды> для соответствующей подписки.
Выберите Политики безопасности>+ Создать>Стандарт.
Выберите рекомендации, которые необходимо добавить в пользовательский стандарт.
(Необязательно) Для Azure подписок просмотрите столбец Source.
Нажмите кнопку "Создать".
Создание и улучшение настраиваемых рекомендаций в Политика Azure (устаревшая версия)
Для подписок Azure можно создавать пользовательские рекомендации и стандарты, а также улучшать их с помощью Политика Azure. Это устаревшая функция, и мы рекомендуем использовать новую пользовательскую функцию рекомендаций.
Создание пользовательской рекомендации и стандарта (устаревшая версия)
Пользовательские рекомендации и стандарты можно создавать в Defender для облака путем создания определений и инициатив политики в Политика Azure и их адаптации в Defender для облака.
Чтобы создать пользовательскую рекомендацию или стандарт с Политика Azure (устаревшая версия):
- Создайте одно или несколько определений политик в портале Политика Azure или программно.
- Создайте инициативу политики, содержащую определения настраиваемых политик.
Добавьте инициативу как пользовательский стандарт (устаревший)
Назначения политик используются в Политике Azure для привязки ресурсов Azure к политике или инициативе.
Чтобы подключить инициативу к пользовательскому стандарту безопасности в Defender для облака, необходимо включить "ASC":"true" в текст запроса, как показано здесь. Поле ASC подключает инициативу к Microsoft Defender для облака.
Чтобы подключить настраиваемую инициативу, выполните приведенные действия.
Пример подключения настраиваемой инициативы
Используйте следующий REST-запрос для создания или обновления инициативы Политика Azure, которая поддерживает ваш собственный стандарт Defender для облака:
PUT https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/policySetDefinitions/{policySetDefinitionName}?api-version=2021-06-01
Текст запроса (JSON):
{
"properties": {
"displayName": "Cost Management",
"description": "Policies to enforce low cost storage SKUs",
"metadata": {
"category": "Cost Management",
"ASC":"true"
},
"parameters": {
"namePrefix": {
"type": "String",
"defaultValue": "myPrefix",
"metadata": {
"displayName": "Prefix to enforce on resource names"
}
}
},
"policyDefinitions": [
{
"policyDefinitionId": "/subscriptions/<Subscription ID>/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1",
"policyDefinitionReferenceId": "Limit_Skus",
"parameters": {
"listOfAllowedSKUs": {
"value": [
"Standard_GRS",
"Standard_LRS"
]
}
}
},
{
"policyDefinitionId": "/subscriptions/<Subscription ID>/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming",
"policyDefinitionReferenceId": "Resource_Naming",
"parameters": {
"prefix": {
"value": "[parameters('namePrefix')]"
},
"suffix": {
"value": "-LC"
}
}
}
]
}
}
Пример удаления назначения
Чтобы удалить устаревший пользовательский стандарт из подписки, используйте следующий запрос REST, чтобы удалить назначение политики:
DELETE https://management.azure.com/{subscription}/providers/Microsoft.Authorization/policyAssignments/{policyAssignmentName}?api-version=2018-05-01
Улучшение пользовательских рекомендаций (устаревшая версия)
Встроенные рекомендации, предоставляемые Microsoft Defender для облака, включают в себя такие сведения, как уровни серьезности и инструкции по исправлению. Если вы хотите добавить эту информацию в пользовательские рекомендации для Azure, используйте REST API.
Можно добавить два типа сведений.
- RemediationDescription (описание исправления) — строка
- Severity (степень серьёзности) — перечисление [Низкий, Средний, Высокий]
Метаданные следует добавить в определение политики для политики, входящей в состав пользовательской инициативы. Метаданные должны находиться в свойстве 'securityCenter', как показано:
{
"metadata": {
"securityCenter": {
"RemediationDescription": "Custom description goes here",
"Severity": "High"
}
}
}
Следующий пример демонстрирует полное определение пользовательской политики, включающее свойство securityCenter метаданных с деталями устранения и степени тяжести:
{
"properties": {
"displayName": "Security - ERvNet - AuditRGLock",
"policyType": "Custom",
"mode": "All",
"description": "Audit required resource groups lock",
"metadata": {
"securityCenter": {
"RemediationDescription": "Resource Group locks can be set via Azure Portal -> Resource Group -> Locks",
"Severity": "High"
}
},
"parameters": {
"expressRouteLockLevel": {
"type": "String",
"metadata": {
"displayName": "Lock level",
"description": "Required lock level for ExpressRoute resource groups."
},
"allowedValues": [
"CanNotDelete",
"ReadOnly"
]
}
},
"policyRule": {
"if": {
"field": "type",
"equals": "Microsoft.Resources/subscriptions/resourceGroups"
},
"then": {
"effect": "auditIfNotExists",
"details": {
"type": "Microsoft.Authorization/locks",
"existenceCondition": {
"field": "Microsoft.Authorization/locks/level",
"equals": "[parameters('expressRouteLockLevel')]"
}
}
}
}
}
}
Дополнительные примеры свойств securityCenter см. в примерах REST API для метаданных оценок.
Дальнейшие действия
Для получения дополнительных сведений о запросах Kusto можно использовать следующие ссылки: