在適用於雲端的 Microsoft Defender 中建立自訂安全性標準和建議
適用於雲端的 Microsoft Defender 中的安全性建議可協助您改善並強化安全性態勢。 建議是以根據安全性標準進行的評量為基礎,這些標準是針對已啟用適用於雲端的 Defender 的 Azure 訂用帳戶、AWS 帳戶和 GCP 專案所定義的。
這篇文章說明如何:
- 使用 KQL 查詢為所有雲端 (Azure、AWS 和 GCP) 建立自訂建議。
- 將自訂建議指派給自訂安全性標準。
在您開始使用 Intune 之前
- 您需要訂用帳戶的擁有者權限,才能建立新的安全性標準。
- 您需要安全性管理員權限,才能建立自訂建議。
- 若要根據 KQL 建立自訂建議,您必須啟用 Defender CSPM 方案。 所有客戶都可以根據 Azure 原則建立自訂建議。
- 檢閱 Azure 雲端中的支援,以取得自訂建議。
建議在現場觀看這一集的適用於雲端的 Defender,以深入了解功能,並鑽研如何建立 KQL 查詢。
建立自訂建議
建立自訂建議,包括補救步驟、嚴重性,以及應指派建議的標準。 您會使用 KQL 新增建議邏輯。 您可以使用簡單的查詢編輯器,搭配內建的查詢範本,您可以視需要調整此範本,也可以從頭開始撰寫 KQL 查詢。
在適用於雲端的 Defender 入口網站 > [環境設定] 中,選取相關的範圍。
選取 [安全性原則]>[+ 建立]>[自訂建議]。
在 [建議詳細資料] 中,填入建議詳細資料 (例如:名稱、嚴重性),然後選取您要建議適用的標準。
選取 [下一步]。
在 [建議查詢]中,撰寫 KQL 查詢,或選取 [開啟查詢編輯器] 來建構您的查詢。 如果您想要使用查詢編輯器,請遵循下列指示。
查詢就緒之後,請選取 [下一步]。
在 [標準]中,選取要新增自訂建議的自訂標準。
在 [檢閱並建立] 中,檢閱建議詳細資料。
使用查詢編輯器
建議使用查詢編輯器來建立建議查詢。
- 使用編輯器可協助您先建置並測試查詢,再開始使用該查詢。
- 選取 [操作說明] 以取得如何建構查詢的協助,以及其他指示和連結。
- 編輯器包含內建建議查詢的範例,您可以用來協助建置自己的查詢。 資料會以 API 中的相同結構出現。
在查詢編輯器中,選取 [新增查詢] 以建立查詢
使用範例查詢範本搭配其指示,或選取範例內建建議查詢以開始。
選取 [執行查詢],來測試您已建立的查詢。
當查詢就緒時,請將其從編輯器剪下並貼入 [建議查詢] 窗格中。
大規模使用自定義建議
透過 Azure 入口網站 使用者介面建立自定義建議最適合大多數使用者。 介面提供方便的 Kusto 查詢語言 (KQL) 編輯器和內建驗證工具。 不過,使用程式設計方法自動建立建議可能很有説明。 當您需要跨許多環境或訂用帳戶部署建議時,這個方法特別有用。
透過 API 自動化
如果您預先驗證 KQL 查詢並想要自動建立自訂建議,您可以使用 Azure 適用於雲端的 Defender 應用程式開發介面 (API)。 此方法可讓您快速部署建議,確保其在整個雲端環境中保持一致且可調整。
- 優點:您可以自動化和調整自定義建議的部署。
- 使用時機:這個方法很適合大規模實作,您需要在多個環境中一致地套用建議。
如需使用 API 來管理自定義建議的詳細資訊,請參閱 API 檔。
建立自訂標準
自訂建議可以指派給一或多個自訂標準。
登入 Azure 入口網站。
瀏覽至 [適用於雲端的 Microsoft Defender]>[環境設定]。
選取相關範圍。
選取 [安全性原則]>[+ 建立]>[標準]。
在 [建議] 中,選取您想要新增至自訂標準的建議。 若是 Azure 訂用帳戶,您也可以查看其來源。
選取 建立。
使用 Azure 原則 (舊版) 建立和增強自訂建議
若是 Azure 訂用帳戶,您可以使用 Azure 原則建立自訂建議和標準,並加以增強。 這是舊版功能,我們建議使用新的自訂建議功能。
建立自訂建議/標準 (舊版)
您可以在適用於雲端的 Defender 中建立自訂建議和標準,方法是在 Azure 原則中建立原則定義和倡議,並在適用於雲端的 Defender 中上線。
以下是執行此動作的方式:
- 在 Azure 原則入口網站中建立一或多個原則定義,或以程式設計方式建立。
- 建立原則倡議,其中包含自訂原則定義。
將倡議上線為自訂標準 (舊版)
Azure 原則會使用原則指派將 Azure 資源指派給原則或倡議。
若要將倡議上線至 Defender 中的自訂安全性標準,您必須在要求本文中包含 "ASC":"true"
,如下所示。 該ASC
欄位會將方案上線以適用於雲端的 Microsoft Defender。
以下是操作範例。
將自訂倡議上線的範例
PUT
PUT https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/policySetDefinitions/{policySetDefinitionName}?api-version=2021-06-01
Request Body (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"
}
}
}
]
}
}
移除指派的範例
此範例會示範如何移除指派:
DELETE
https://management.azure.com/{scope}/providers/Microsoft.Authorization/policyAssignments/{policyAssignmentName}?api-version=2018-05-01
增強自訂建議 (舊版)
適用於雲端的 Microsoft Defender 內建所提供的建議會包含詳細資料,例如嚴重性層級和補救指示。 若您想要將這種類型的資訊新增至 Azure 的自訂建議,請使用 REST API。
您可以新增兩種類型的資訊:
- RemediationDescription – 字串
- Severity – Enum [低, 中, 高]
針對屬於自訂方案一部份的原則,您應將中繼資料新增至原則定義。 其應該如下所示,位於 'securityCenter' 屬性中:
"metadata": {
"securityCenter": {
"RemediationDescription": "Custom description goes here",
"Severity": "High"
},
以下是包括 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')]"
}
}
}
}
}
}
如需使用 securityCenter 屬性的另一個範例,請參閱 REST API 文件的這一節 (部分機器翻譯)。
相關內容
您可以使用下列連結來深入了解 Kusto 查詢: