클라우드용 Microsoft Defender에서 사용자 지정 보안 표준 및 권장 사항 만들기

클라우드용 Microsoft Defender의 보안 권장 사항은 보안 태세를 개선하고 강화하는 데 도움이 됩니다. 권장 사항은 클라우드용 Defender가 사용하도록 설정된 Azure 구독, AWS 계정 및 GCP 프로젝트에 대해 정의된 보안 표준에 대한 평가를 기반으로 합니다.

이 문서에서는 다음과 같이 방법을 설명합니다.

  • KQL 쿼리를 사용하여 모든 클라우드(Azure, AWS, GCP)에 대한 사용자 지정 권장 사항을 만듭니다.
  • 사용자 지정 보안 표준에 사용자 지정 권장 사항을 할당합니다.

시작하기 전에

  • 새 보안 표준을 만들려면 구독에 대한 소유자 권한이 필요합니다.
  • 사용자 지정 권장 사항을 만들려면 보안 관리자 권한이 필요합니다.
  • KQL을 기반으로 사용자 지정 권장 사항을 만들려면 Defender CSPM 플랜을 사용하도록 설정해야 합니다. 모든 고객은 Azure Policy를 기반으로 사용자 지정 권장 사항을 만들 수 있습니다.
  • 사용자 지정 권장 사항을 보려면 Azure 클라우드의 지원을 검토합니다.

기능에 대해 자세히 알아보고 KQL 쿼리 만들기에 대해 자세히 알아보려면 필드의 클라우드용 Defender 에피소드를 시청하는 것이 좋습니다.

사용자 지정 권장 사항 만들기

수정 단계, 심각도 및 권장 사항을 할당해야 하는 표준을 포함하여 사용자 지정 권장 사항을 만듭니다. KQL을 사용하여 권장 사항 논리를 추가합니다. 필요에 따라 조정할 수 있는 기본 제공 쿼리 템플릿이 포함된 간단한 쿼리 편집기를 사용하거나 처음부터 KQL 쿼리를 빌드할 수 있습니다.

  1. 클라우드용 Defender 포털 >환경 설정에서 관련 범위를 선택합니다.

  2. 보안 정책>+ 만들기>사용자 지정 권장 사항을 선택합니다.

  3. 권장 사항 세부 정보에서 권장 사항 세부 정보(예: 이름, 심각도)를 입력하고 권장 사항을 적용할 기준을 선택합니다.

    권장 사항의 설명 세부 정보를 입력할 위치를 보여 주는 스크린샷

  4. 다음을 선택합니다.

  5. 권장 사항 쿼리에서 KQL 쿼리를 작성하거나 쿼리 편집기 열기를 선택하여 쿼리를 구성합니다. 쿼리 편집기를 사용하려면 아래 지침을 따릅니다.

  6. 쿼리가 준비되면 다음을 선택합니다.

  7. 표준에서 사용자 지정 권장 사항을 추가할 사용자 지정 표준을 선택합니다.

  8. 검토 및 만들기에서 권장 사항 세부 정보를 검토합니다.

    권장 사항 세부 정보를 검토할 위치를 보여 주는 스크린샷

쿼리 편집기 사용

권장 사항 쿼리를 만들려면 쿼리 편집기를 사용하는 것이 좋습니다.

  • 편집기를 사용하면 사용을 시작하기 전에 쿼리를 빌드하고 테스트하는 데 도움이 됩니다.
  • 쿼리 구성에 대한 도움말과 추가 지침 및 링크를 보려면 방법을 선택합니다.
  • 편집기에는 자체 쿼리를 빌드하는 데 사용할 수 있는 기본 제공 권장 사항 쿼리의 예가 포함되어 있습니다. 데이터는 API와 동일한 구조로 나타납니다.
  1. 쿼리 편집기에서 새 쿼리를 선택하여 쿼리를 만듭니다.

  2. 쿼리 템플릿 예를 해당 지침과 함께 사용하거나 기본 제공된 권장 사항 쿼리 예를 선택하여 시작합니다.

    쿼리 편집기를 사용하는 방법을 보여 주는 스크린샷

  3. 작성한 쿼리를 테스트하려면 쿼리 실행을 선택합니다.

  4. 쿼리가 준비되면 편집기에서 쿼리를 잘라내어 권장 사항 쿼리 창에 붙여넣습니다.

사용자 지정 표준 만들기

사용자 지정 권장 사항은 하나 이상의 사용자 지정 표준에 할당될 수 있습니다.

  1. Azure Portal에 로그인합니다.

  2. 클라우드용 Microsoft Defender>환경 설정으로 이동합니다.

  3. 관련 범위를 선택합니다.

  4. 보안 정책>+ 만들기>표준을 선택합니다.

  5. 권장 사항에서 사용자 지정 표준에 추가할 권장 사항을 선택합니다. Azure 구독의 경우 원본도 볼 수 있습니다.

    사용자 지정 표준에 대해 선택할 수 있는 모든 권장 사항 목록을 보여 주는 스크린샷

  6. 만들기를 실행합니다.

Azure Policy(레거시)를 사용하여 사용자 지정 권장 사항 만들기 및 향상

Azure 구독의 경우 Azure Policy를 사용하여 사용자 지정 권장 사항 및 표준을 만들고 개선할 수 있습니다. 이 기능은 레거시 기능이며 새 사용자 지정 권장 사항 기능을 사용하는 것이 좋습니다.

사용자 지정 권장 사항/표준 만들기(레거시)

Azure Policy에서 정책 정의 및 이니셔티브를 만들고 이를 클라우드용 Defender에 온보딩하여 클라우드용 Defender에서 사용자 지정 권장 사항 및 표준을 만들 수 있습니다.

그 방법은 다음과 같습니다.

  1. Azure Policy 포털에서 또는 프로그래밍 방식으로 하나 이상의 정책 정의를 만듭니다.
  2. 사용자 지정 정책 정의가 포함된 정책 이니셔티브를 만듭니다.

이니셔티브를 사용자 지정 표준(레거시)으로 온보딩

정책 할당은 Azure Policy에서 정책이나 이니셔티브에 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/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/providers/Microsoft.Authorization/policyDefinitions/7433c107-6db4-4ad1-b57a-a76dce0154a1",
          "policyDefinitionReferenceId": "Limit_Skus",
          "parameters": {
            "listOfAllowedSKUs": {
              "value": [
                "Standard_GRS",
                "Standard_LRS"
              ]
            }
          }
        },
        {
          "policyDefinitionId": "/subscriptions/ae640e6b-ba3e-4256-9d62-2993eecfa6f2/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 

::: zone-end

사용자 지정 권장 사항 강화(레거시)

클라우드용 Microsoft Defender에서 제공하는 기본 제공 권장 사항에는 심각도 수준과 수정 지침 등의 세부 정보가 포함됩니다. 이러한 형식의 정보를 Azure에 대한 사용자 지정 권장 사항에 추가하려면 REST API를 사용합니다.

다음과 같은 두 가지 유형의 정보를 추가할 수 있습니다.

  • RemediationDescription – 문자열
  • Severity – 열거형 [낮음, 보통, 높음]

사용자 지정 이니셔티브의 일부인 정책에 대한 정의에 메타데이터를 추가해야 합니다. 이는 다음과 같이 ‘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 쿼리에 대해 자세히 알아볼 수 있습니다.