Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Recomendações de segurança no Microsoft Defender para Nuvem ajudam a melhorar e fortalecer sua postura de segurança. As recomendações são baseadas em avaliações com base nos padrões de segurança definidos para assinaturas do Azure, contas do Amazon Web Services (AWS) e projetos do Google Cloud Platform (GCP) que têm o Defender para Nuvem habilitado.
Este artigo descreve como:
- Crie recomendações personalizadas para todas as nuvens (Azure, AWS e GCP) com uma consulta KQL (Kusto Query Language).
- Atribua recomendações personalizadas a um padrão de segurança personalizado.
Antes de começar
- Você precisa de permissões de Proprietário na assinatura para criar um novo padrão de segurança.
- Você precisa de permissões de administrador de segurança para criar recomendações personalizadas.
- Para criar recomendações personalizadas com base no KQL (Linguagem de Consulta Kusto), você deve ter o plano Defender CSPM (Cloud Security Posture Management) habilitado. Todos os clientes podem criar recomendações personalizadas com base no Azure Policy.
- Examine o suporte em nuvens do Azure para recomendações personalizadas.
É recomendável assistir a este episódio de Defender para Nuvem no campo para saber mais sobre recomendações personalizadas e como escrever consultas KQL.
Criar uma recomendação personalizada
Crie recomendações personalizadas, incluindo etapas para correção, gravidade e os padrões aos quais a recomendação deve ser atribuída. Adicione lógica de recomendação com KQL. Você pode usar um editor de consultas simples com modelos de consulta internos que você pode ajustar conforme necessário ou pode escrever sua consulta KQL do zero.
Para criar uma recomendação personalizada:
Entre no portal do Azure.
Vá para Microsoft Defender para Nuvem>Configurações do ambiente> da assinatura relevante.
Selecione Políticas> de segurança+ Criar recomendação personalizada.
Insira os detalhes: Obrigatório: Nome, Escopo, Gravidade e Problema de Segurança. Opcional: Descrição, Correção.
Selecione Avançar.
Insira uma consulta KQL ou selecione Abrir editor de consultas.
Selecione Avançar.
Selecione os padrões relevantes para a recomendação.
Selecione Avançar.
Selecione os padrões personalizados a serem atribuídos.
Selecione Examinar e criar.
Examine os detalhes da recomendação.
Selecione Criar.
Use o editor de consulta
É recomendável usar o editor de consultas para criar uma consulta de recomendação. Você também pode usar os modelos de consulta e exemplos fornecidos para exibir consultas de exemplo e aprender a criar suas próprias.
- O uso do editor ajuda você a criar e testar sua consulta antes de começar a usá-la.
- Selecione Como para obter ajuda na estruturação da consulta e instruções e links adicionais.
- O editor contém exemplos de consulta de recomendação internos que você pode usar para ajudar a criar sua própria consulta. Os dados aparecem na mesma estrutura em que aparecem na API.
Selecione Nova consulta.
Use o modelo de consulta de exemplo com suas instruções ou selecione um exemplo de consulta de recomendação interna na parte inferior da página para começar.
Selecione Executar consulta para testar a consulta que você criou.
Quando a consulta estiver pronta, corte-a e cole-a do editor no painel Consulta de recomendação .
Continue com a etapa 7 da seção Criar uma recomendação personalizada.
Modelos e exemplos de consulta
O editor de consultas inclui exemplos internos e os modelos nesta seção mostram como estruturar verificações de segurança comuns. Cada modelo retorna os recursos no escopo e marca os recursos não compatíveis como UNHEALTHY. Neste padrão de modelo, edite apenas a condition expressão e mantenha a HealthStatus linha inalterada.
Note
Os modelos nesta seção usam tipos de recurso do Azure. Para recursos AWS e GCP, altere Environment == 'Azure' para Environment == 'AWS' ou Environment == 'GCP' e atualize Identifiers.Type para corresponder ao tipo de recurso em seu ambiente.
Requisitos do esquema de saída KQL
Antes de escrever sua consulta, entenda o esquema de saída necessário. É assim que o Microsoft Defender para Nuvem interpreta seus resultados e associa as descobertas aos recursos.
Colunas de saída necessárias:
| Coluna | Tipo | Purpose |
|---|---|---|
Id |
String (obrigatório) | Identificador de recurso usado por Defender para Nuvem para fazer referência ao recurso. |
Name |
String (obrigatório) | Nome do recurso legível por pessoas exibido nos resultados. |
Environment |
String (obrigatório) | Ambiente de nuvem: Azure, AWS ou GCP. |
Identifiers |
Dinâmico (obrigatório) | Tipo de recurso e identificadores transferidos do registro de origem. |
AdditionalData |
Dinâmico (obrigatório) | Metadados complementares do recurso transferidos a partir do registro de origem. |
Record |
Dinâmico (obrigatório) | Registro de recurso completo contendo todas as propriedades. |
HealthStatus |
String (obrigatório) | Resultado da avaliação: UNHEALTHY (não compatível) ou HEALTHY (em conformidade). |
Sempre termine sua consulta com: | project Id, Name, Environment, Identifiers, AdditionalData, Record, HealthStatus
Mapeamento de avaliação:
Cada consulta deve definir um HealthStatus valor para cada recurso. Use a iff() função para avaliar sua condição e atribuir o status:
| extend condition = (your condition here)
| extend HealthStatus = iff(condition, 'UNHEALTHY', 'HEALTHY')
Nesse padrão, edite apenas a condition expressão. Mantenha a HealthStatus linha inalterada:
| extend HealthStatus = iff(condition, 'UNHEALTHY', 'HEALTHY')
Os recursos em que HealthStatus é UNHEALTHY aparecem como descobertas não compatíveis em Defender para Nuvem. Os recursos em que HealthStatus está HEALTHY estão em conformidade e não aparecem nos resultados.
Importante
Sempre defina HealthStatus como 'UNHEALTHY' ou 'HEALTHY'. Devolva todos os recursos dentro do escopo. Defender para Nuvem usa a coluna HealthStatus para determinar a conformidade. Omitir recursos do conjunto de resultados é tratado como ausência de dados, não como saudável.
Erros e correções comuns:
-
Colunas necessárias ausentes: Se alguma das sete colunas necessárias estiver ausente, a consulta falhará. Sempre termine com
| project Id, Name, Environment, Identifiers, AdditionalData, Record, HealthStatus. -
Valores incorretos
HealthStatus: Somente'UNHEALTHY'e'HEALTHY'são valores válidos (sensível a maiúsculas e minúsculas). Outros valores ou nulos causam erros de análise. -
Caminhos de propriedade incorretos: As propriedades são acessadas por meio de
Record.properties.*, não diretamente. Por exemplo, useRecord.properties.httpsOnly, e nãoproperties.httpsOnly. -
Diferenciação entre maiúsculas e minúsculas no tipo de recurso: use
=~(correspondência que não diferencia maiúsculas de minúsculas) para comparações deIdentifiers.Type. Por exemplo,Identifiers.Type =~ 'Microsoft.Storage/storageAccounts'. -
Propriedades nulas em várias assinaturas: Teste sua consulta em assinaturas com configurações variadas. Use as verificações
isnull()quando as propriedades talvez estejam ausentes.
Use recomendações personalizadas em escala
Criar recomendações personalizadas no portal Azure é melhor para a maioria dos usuários. A interface fornece um editor de KQL conveniente e ferramentas de validação internas. Uma abordagem programática também pode ser útil quando você precisa implantar recomendações em vários ambientes ou assinaturas.
Automatizar por meio da API
Se você prevalidar consultas KQL e quiser automatizar a criação de recomendações personalizadas, poderá usar a API Microsoft Defender para Nuvem. Esse método permite implantar recomendações rapidamente, garantindo que elas sejam consistentes e escalonáveis em seus ambientes de nuvem.
- Vantagens: você pode automatizar e dimensionar a implantação de recomendações personalizadas.
- Quando usar: esse método é ideal para implementações em larga escala em que você precisa aplicar recomendações consistentemente em vários ambientes.
Para obter mais informações sobre como usar a API para gerenciar recomendações personalizadas, consulte a referência da API composta Defender para Nuvem.
Criar um padrão personalizado
Recomendações personalizadas podem ser atribuídas a um ou mais padrões personalizados.
Para criar um padrão personalizado:
Entre no portal do Azure.
Vá para Microsoft Defender para Nuvem>Configurações do ambiente> da assinatura relevante.
Selecione Políticas de segurança>+ Criar>Standard.
Selecione as recomendações que você deseja adicionar ao padrão personalizado.
(Opcional) Para Azure assinaturas, examine a coluna Origem.
Selecione Criar.
Criar e aprimorar recomendações personalizadas com o Azure Policy (herdado)
Para assinaturas do Azure, você pode criar recomendações e padrões personalizados e aprimorá-los usando o Azure Policy. Este é um recurso herdado e é recomendável usar o novo recurso de recomendações personalizadas.
Criar uma recomendação personalizada e padrão (herdado)
Você pode criar recomendações e padrões personalizados em Defender para Nuvem criando definições de política e iniciativas em Azure Policy e integrando-as em Defender para Nuvem.
Para criar uma recomendação personalizada ou padrão com Azure Policy (herdado):
- Crie uma ou mais definições de política no portal do Azure Policyou programaticamente.
- Crie uma iniciativa de política que contenha as definições de política personalizadas.
Integrar a iniciativa como um padrão personalizado (herdado)
Atribuições de política são usadas pelo Azure Policy para atribuir recursos do Azure a uma política ou iniciativa.
Para integrar uma iniciativa a um padrão de segurança personalizado em Defender para Nuvem, você precisa incluir "ASC":"true" no corpo da solicitação, conforme mostrado aqui. O campo ASC adiciona a iniciativa ao Microsoft Defender para Nuvem.
Para integrar uma iniciativa personalizada:
Exemplo para integrar uma iniciativa personalizada
PUT https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/policySetDefinitions/{policySetDefinitionName}?api-version=2021-06-01
Corpo da solicitação (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"
}
}
}
]
}
}
Exemplo para remover uma atribuição
Este exemplo mostra como remover uma atribuição:
DELETE https://management.azure.com/{subscription}/providers/Microsoft.Authorization/policyAssignments/{policyAssignmentName}?api-version=2018-05-01
Aprimorar recomendações personalizadas (herdado)
As recomendações internas fornecidas com o Microsoft Defender para Nuvem incluem detalhes como níveis de severidade e instruções de correção. Se você quiser adicionar esse tipo de informação às recomendações personalizadas do Azure, use a API REST.
Os dois tipos de informações que você pode adicionar são:
- RemediationDescription – cadeia de caracteres
- Severidade – Enum [Baixa, Média, Alta]
Os metadados devem ser adicionados à definição de política para uma política que faz parte da iniciativa personalizada. Ela deve estar na propriedade "securityCenter", conforme mostrado:
{
"metadata": {
"securityCenter": {
"RemediationDescription": "Custom description goes here",
"Severity": "High"
}
}
}
Este é outro exemplo de política personalizada, incluindo a propriedade metadata/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')]"
}
}
}
}
}
}
Para outro exemplo de propriedade securityCenter, consulte exemplos de API REST para metadados de avaliações.
Próximas Etapas
Use os seguintes links para saber mais sobre as consultas Kusto: