Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Recomendações de segurança no Microsoft Defender para a Cloud ajudam-no a melhorar e reforçar a sua postura de segurança. As recomendações baseiam-se em avaliações em relação a normas de segurança definidas para subscrições Azure, contas Amazon Web Services (AWS) e projetos Google Cloud Platform (GCP) que tenham Defender para a Cloud ativados.
Este artigo descreve como:
- Crie recomendações personalizadas para todas as clouds (Azure, AWS e GCP) com uma consulta Kusto Query Language (KQL).
- 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 baseadas na Linguagem de Consulta Kusto (KQL), deve ter ativado o plano Defender Cloud Security Posture Management (CSPM). Todos os clientes podem criar recomendações personalizadas com base na Política do Azure.
- Analise o suporte nas nuvens do Azure para obter recomendações personalizadas .
Recomendamos ver este episódio de Defender para a Cloud 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 de correção, gravidade e os padrões aos quais a recomendação deve ser atribuída. Você adiciona lógica de recomendação com o KQL. Pode usar um editor de consultas simples com modelos de consulta incorporados que pode ajustar conforme necessário, ou pode escrever a sua query KQL do zero.
Para criar uma recomendação personalizada:
Inicie sessão no portal do Azure.
Aceda a Microsoft Defender para a Cloud>Definições do ambiente> da subscrição relevante.
Selecione políticas>de segurança+ Criar recomendação personalizada.
Introduza os detalhes: Obrigatório: Nome, Âmbito, Gravidade e questão de segurança. Opcional: Descrição, Remediação.
Selecione Seguinte.
Introduza uma consulta KQL ou selecione Editor de consultas abertas.
Selecione Seguinte.
Selecione os critérios relevantes para a recomendação.
Selecione Seguinte.
Selecione os padrões personalizados a atribuir.
Selecione Rever e criar.
Veja os detalhes das recomendações.
Selecione Criar.
Usar o editor de consultas
Recomendamos usar o editor de consultas para criar uma consulta de recomendação. Também pode usar os modelos de consulta e exemplos fornecidos para visualizar exemplos de consultas e aprender a construir as suas próprias.
- Usar o editor ajuda você a criar e testar sua consulta antes de começar a usá-la.
- Selecione Como obter ajuda para estruturar a consulta, além de instruções e links adicionais.
- O editor contém exemplos de consultas de recomendação incorporados que pode usar para ajudar a construir a sua própria consulta. Os dados aparecem na mesma estrutura que na API.
Selecionar Nova consulta.
Use o modelo de consulta de exemplo com as suas instruções, ou selecione um exemplo de consulta de recomendação incorporada 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 do editor para o painel de consultas de Recomendações .
Continue com o passo 7 da secção Criar uma recomendação personalizada.
Modelos de consulta e exemplos
O editor de consultas inclui exemplos incorporados, e os modelos nesta secção mostram como estruturar verificações de segurança comuns. Cada modelo devolve os recursos abrangidos e assinala os recursos não conformes como UNHEALTHY. Neste padrão, edite apenas a condition expressão e mantenha a HealthStatus linha inalterada.
Note
Os templates nesta secção utilizam tipos de recursos 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 no seu ambiente.
Requisitos do esquema de saída KQL
Antes de escrever a sua consulta, compreenda o esquema de saída necessário. É assim que o Microsoft Defender para a Cloud interpreta os seus resultados e mapeia as descobertas para os recursos.
Colunas de saída obrigatórias:
| Coluna | Tipo | Purpose |
|---|---|---|
Id |
String (obrigatório) | Identificador de recurso usado pelo Defender para a Cloud para referenciar o recurso. |
Name |
String (obrigatório) | Nome de recurso legível por humanos apresentado nas conclusões. |
Environment |
String (obrigatório) | Ambiente cloud: Azure, AWS ou GCP. |
Identifiers |
Dinâmica (obrigatória) | O tipo de recurso e os identificadores são transmitidos a partir do registo de origem. |
AdditionalData |
Dinâmica (obrigatória) | Metadados suplementares do recurso transferidos do registo de origem. |
Record |
Dinâmica (obrigatória) | Registo completo de recursos contendo todas as propriedades. |
HealthStatus |
String (obrigatório) | Resultado da avaliação: UNHEALTHY (não conforme) ou HEALTHY (conforme). |
Termine sempre a 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 a sua condição e atribuir o estado:
| extend condition = (your condition here)
| extend HealthStatus = iff(condition, 'UNHEALTHY', 'HEALTHY')
Neste padrão, edita apenas a condition expressão. Mantenha a HealthStatus linha inalterada:
| extend HealthStatus = iff(condition, 'UNHEALTHY', 'HEALTHY')
Recursos onde HealthStatus está UNHEALTHY aparecem como conclusões não conformes em Defender para a Cloud. Os recursos em que HealthStatus está HEALTHY são conformes e não aparecem nas conclusões.
Importante
Defina sempre HealthStatus como 'UNHEALTHY' ou 'HEALTHY'. Devolver todos os recursos abrangidos. Defender para a Cloud utiliza 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 obrigatórias em falta: Se alguma das sete colunas obrigatórias estiver em falta, a consulta falha. Termina sempre por
| project Id, Name, Environment, Identifiers, AdditionalData, Record, HealthStatus. -
Valores errados
HealthStatus: Apenas'UNHEALTHY'e'HEALTHY'são valores válidos (distinção de maiúsculas e minúsculas). Outros valores ou nulo causam erros de análise sintática. -
Caminhos de propriedade incorretos: As propriedades são acedidas via
Record.properties.*, não diretamente. Por exemplo, useRecord.properties.httpsOnly, nãoproperties.httpsOnly. -
Sensibilidade a maiúsculas/minúsculas do tipo de recurso: Utilize
=~(correspondência sem distinção entre maiúsculas e minúsculas) nas comparações deIdentifiers.Type. Por exemplo,Identifiers.Type =~ 'Microsoft.Storage/storageAccounts'. -
Propriedades nulas entre subscrições: Teste a sua consulta entre subscrições com configurações variadas. Use verificações
isnull()quando as propriedades possam não existir.
Use recomendações personalizadas em escala
Criar recomendações personalizadas no portal do Azure é o melhor para a maioria dos utilizadores. A interface oferece um editor KQL conveniente e ferramentas de validação integradas. Uma abordagem programática também pode ser útil quando é necessário implementar recomendações em vários ambientes ou subscrições.
Automatize através da API
Se pré-validou as consultas KQL e quiser automatizar a criação de recomendações personalizadas, pode usar a API Microsoft Defender para a Cloud. Esse método permite implantar recomendações rapidamente, garantindo que elas sejam consistentes e escalá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 grande escala nas quais você precisa aplicar recomendações de forma consistente em vários ambientes.
Para mais informações sobre a utilização da API para gerir recomendações personalizadas, consulte a referência Defender para a Cloud Composite API.
Criar um padrão personalizado
As recomendações personalizadas podem ser atribuídas a um ou mais padrões personalizados.
Para criar um padrão personalizado:
Inicie sessão no portal do Azure.
Aceda a Microsoft Defender para a Cloud>Definições do ambiente> da subscrição relevante.
Selecione Políticas de segurança>+ Criar>Padrão.
Selecione as recomendações que pretende adicionar ao padrão personalizado.
(Opcional) Para subscrições do Azure, consulte a coluna Source.
Selecione Criar.
Criar e melhorar recomendações personalizadas com a Política do Azure (legado)
Para assinaturas do Azure, você pode criar recomendações e padrões personalizados e aprimorá-los usando a Política do Azure. Esse é um recurso herdado e recomendamos o uso do novo recurso de recomendações personalizadas.
Crie uma recomendação personalizada e um padrão (legado)
Pode criar recomendações e padrões personalizados no Defender para a Cloud, criando definições e iniciativas de políticas no Azure Policy, e integrando-as no Defender para a Cloud.
Para criar uma recomendação ou padrão personalizado com o Azure Policy (legacy):
- Crie uma ou mais definições de política no portal de Política do Azure ou programaticamente.
- Crie uma iniciativa de política que contenha as definições de política personalizadas.
Adicione a iniciativa como um padrão personalizado (legado)
As atribuições de política são usadas pela Política do Azure para atribuir recursos do Azure a uma política ou iniciativa.
Para integrar uma iniciativa num padrão de segurança personalizado em Defender para a Cloud, é necessário incluir "ASC":"true" no corpo do pedido, como aqui mostrado. O ASC campo integra a iniciativa ao Microsoft Defender para a Cloud.
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 do pedido (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
Melhorar as recomendações personalizadas (legado)
As recomendações internas fornecidas com o Microsoft Defender para a Cloud incluem detalhes como níveis de gravidade e instruções de correção. Se você quiser adicionar esse tipo de informação a recomendações personalizadas para o Azure, use a API REST.
Os dois tipos de informação que pode adicionar são:
- RemediationDescription – String
- Gravidade – 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. Deve estar na propriedade 'securityCenter', conforme mostrado:
{
"metadata": {
"securityCenter": {
"RemediationDescription": "Custom description goes here",
"Severity": "High"
}
}
}
Aqui está outro exemplo de uma 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 do securityCenter, veja exemplos da API REST para metadados de avaliações.
Passos seguintes
Você pode usar os links a seguir para saber mais sobre as consultas Kusto: