엔드포인트용 Microsoft Defender 런타임 보호 서비스 소개

MDE(엔드포인트용 Microsoft Defender) 런타임 보호 서비스는 Nexus 클러스터에 대한 런타임 보호를 구성하고 관리하는 도구를 제공합니다.

Azure CLI를 사용하면 런타임 보호 ‘적용 수준’을 구성하고 모든 노드에서 ‘MDE 검사’를 트리거하는 기능을 구성할 수 있습니다. 이 문서에서는 이러한 작업을 실행하는 단계를 제공합니다.

참고 항목

MDE 런타임 보호 서비스는 포괄적인 EDR(엔드포인트 검색 및 응답) 기능을 제공하는 엔드포인트용 Microsoft Defender와 통합됩니다. 엔드포인트용 Microsoft Defender 통합을 사용하면 비정상적인 상태를 파악하고 취약성을 검색할 수 있습니다.

시작하기 전에

변수 설정

MDE 검사를 구성 및 트리거하는 데 도움이 되도록 이 가이드 전반에서 다양한 명령에 의해 사용되는 이러한 환경 변수를 정의합니다.

참고 항목

이러한 환경 변수 값은 실제 배포를 반영하지 않으며 사용자는 자신의 환경에 맞게 값을 변경해야 합니다.

# SUBSCRIPTION_ID: Subscription of your cluster
export SUBSCRIPTION_ID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
# RESOURCE_GROUP: Resource group of your cluster
export RESOURCE_GROUP="contoso-cluster-rg"
# MANAGED_RESOURCE_GROUP: Managed resource group managed by your cluster
export MANAGED_RESOURCE_GROUP="contoso-cluster-managed-rg"
# CLUSTER_NAME: Name of your cluster
export CLUSTER_NAME="contoso-cluster"

MDE 런타임 보호 기본값

클러스터를 배포할 때 런타임 보호는 다음 기본값으로 설정됩니다.

  • 적용 수준: 클러스터를 만들 때 지정되지 않은 경우 Disabled
  • MDE 서비스: Disabled

참고 항목

인수 --runtime-protection enforcement-level="<enforcement level>"은 MDE 서비스 활성화/비활성화 및 적용 수준 업데이트의 두 가지 용도로 사용됩니다.

클러스터에서 MDE 서비스를 사용하지 않으려면 <enforcement level>Disabled로 설정합니다.

적용 수준 구성

az networkcloud cluster update 명령을 사용하면 인수 --runtime-protection enforcement-level="<enforcement level>"을 사용하여 클러스터 런타임 보호 ‘적용 수준’ 설정을 업데이트할 수 있습니다.

다음 명령은 클러스터에 대한 enforcement level을 구성합니다.

az networkcloud cluster update \
--subscription ${SUBSCRIPTION_ID} \
--resource-group ${RESOURCE_GROUP} \
--cluster-name ${CLUSTER_NAME} \
--runtime-protection enforcement-level="<enforcement level>"

<enforcement level>에 허용되는 값: Disabled, RealTime, OnDemand, Passive.

  • Disabled: 실시간 보호가 해제되고 검사가 수행되지 않습니다.
  • RealTime: 실시간 보호(파일이 수정될 때 파일 검사)가 사용됩니다.
  • OnDemand: 파일이 요청 시에만 검사됩니다. 이 설정에서는
    • 실시간 보호가 꺼져 있습니다.
  • Passive: 수동 모드에서 바이러스 백신 엔진을 실행합니다. 이 설정에서는
    • 실시간 보호가 꺼져 있습니다. 위협이 Microsoft Defender 바이러스 백신에 의해 수정되지 않습니다.
    • 주문형 검사가 켜져 있습니다. 엔드포인트에서 검사 기능을 계속 사용합니다.
    • 자동 위협 수정이 꺼져 있습니다. 파일이 이동되지 않으며 보안 관리자가 필요한 조치를 취할 것으로 기대됩니다.
    • 보안 인텔리전스 업데이트가 켜져 있습니다. 보안 관리자 테넌트에서 경고를 사용할 수 있습니다.

다음 json 코드 조각의 출력을 검사하여 적용 수준이 업데이트되었는지 확인할 수 있습니다.

  "runtimeProtectionConfiguration": {
    "enforcementLevel": "<enforcement level>"
  }

모든 노드에서 MDE 검사 트리거

클러스터의 모든 노드에서 MDE 검사를 트리거하려면 다음 명령을 사용합니다.

az networkcloud cluster scan-runtime \
--subscription ${SUBSCRIPTION_ID} \
--resource-group ${RESOURCE_GROUP} \
--cluster-name ${CLUSTER_NAME} \
--scan-activity Scan

참고: MDE 검사 작업을 수행하려면 MDE 서비스를 사용하도록 설정해야 합니다. 그렇지 않으면 명령이 실패합니다. 이 경우 Enforcement LevelDisabled가 아닌 값으로 설정하여 MDE 서비스를 사용하도록 설정합니다.

각 노드에서 MDE 검사 정보 검색

이 섹션에서는 MDE 검사 정보를 검색하는 단계를 제공합니다. 먼저 클러스터의 노드 이름 목록을 검색해야 합니다. 다음 명령은 노드 이름 목록을 환경 변수에 할당합니다.

nodes=$(az networkcloud baremetalmachine list \
--subscription ${SUBSCRIPTION_ID} \
--resource-group ${MANAGED_RESOURCE_GROUP} \
| jq -r '.[].machineName')

노드 이름 목록을 사용하여 클러스터의 각 노드에 대한 MDE 에이전트 정보를 추출하는 프로세스를 시작할 수 있습니다. 다음 명령은 각 노드에서 MDE 에이전트 정보를 준비합니다.

for node in $nodes
do
    echo "Extracting MDE agent information for node ${node}"
    az networkcloud baremetalmachine run-data-extract \
    --subscription ${SUBSCRIPTION_ID} \
    --resource-group ${MANAGED_RESOURCE_GROUP} \
    --name ${node} \
    --commands '[{"command":"mde-agent-information"}]' \
    --limit-time-seconds 600
done

이 명령의 결과에는 MDE 검사의 자세한 보고서를 다운로드할 수 있는 URL이 포함됩니다. MDE 에이전트 정보에 대한 결과는 다음 예제를 참조하세요.

Extracting MDE agent information for node rack1control01
====Action Command Output====
Executing mde-agent-information command
MDE agent is running, proceeding with data extract
Getting MDE agent information for rack1control01
Writing to /hostfs/tmp/runcommand

================================
Script execution result can be found in storage account: 
 <url to download mde scan results>
 ...

MDE 검사 결과 추출

MDE 검사를 추출하려면 MDE 검사 보고서를 다운로드하고, 검사 실행 정보를 추출하고, 자세한 결과 보고서를 검색하는 몇 가지 수동 단계가 필요합니다. 이 섹션에서는 이러한 각 단계를 안내합니다.

검사 보고서 다운로드

앞서 설명한 대로 MDE 에이전트 정보 응답은 자세한 보고서 데이터를 저장하는 URL을 제공합니다.

반환된 URL <url to download mde scan results>에서 보고서를 다운로드하고 mde-agent-information.json 파일을 엽니다.

mde-agent-information.json 파일에는 검사에 대한 많은 정보가 포함되어 있으며 이러한 긴 상세 보고서를 분석하는 것은 어려울 수 있습니다. 이 가이드에서는 보고서를 철저히 분석해야 하는지 여부를 결정하는 데 도움이 되도록 몇 가지 필수 정보를 추출하는 예제를 몇 가지 제공합니다.

MDE 검사 목록 추출

mde-agent-information.json 파일에는 자세한 검사 보고서가 포함되어 있지만 먼저 몇 가지 세부 정보에 집중할 수 있습니다. 이 섹션에서는 각 검사의 시작 및 종료 시간, 발견된 위협, 상태(성공 또는 실패) 등과 같은 정보를 제공하는 검사 실행 목록을 추출하는 단계를 자세히 설명합니다.

다음 명령은 이 간소화된 보고서를 추출합니다.

cat <path to>/mde-agent-information.json| jq .scanList

다음 예제에서는 mde-agent-information.json에서 추출된 검사 보고서를 보여줍니다.

[
  {
    "endTime": "1697204632487",
    "filesScanned": "1750",
    "startTime": "1697204573732",
    "state": "succeeded",
    "threats": [],
    "type": "quick"
  },
  {
    "endTime": "1697217162904",
    "filesScanned": "1750",
    "startTime": "1697217113457",
    "state": "succeeded",
    "threats": [],
    "type": "quick"
  }
]

Unix date 명령을 사용하여 시간을 더 읽기 쉬운 형식으로 변환할 수 있습니다. 편의를 위해 Unix 타임스탬프(밀리초)를 year-month-day 및 hour:min:sec 형식으로 변환하는 예제를 참조하세요.

예시:

date -d @$(echo "1697204573732/1000" | bc) "+%Y-%m-%dT%H:%M:%S"

2023-10-13T13:42:53

MDE 검사 결과 추출

이 섹션에서는 MDE 검사에서 식별된 위협 목록에 대한 보고서를 추출하는 단계를 자세히 설명합니다. mde-agent-information.json 파일에서 검사 결과 보고서를 추출하려면 다음 명령을 실행합니다.

cat <path to>/mde-agent-information.json| jq .threatInformation

다음 예제에서는 mde-agent-information.json 파일에서 추출된, 검사로 식별된 위협 보고서를 보여줍니다.

{
  "list": {
    "threats": {
      "scans": [
        {
          "type": "quick",
          "start_time": 1697204573732,
          "end_time": 1697204632487,
          "files_scanned": 1750,
          "threats": [],
          "state": "succeeded"
        },
        {
          "type": "quick",
          "start_time": 1697217113457,
          "end_time": 1697217162904,
          "files_scanned": 1750,
          "threats": [],
          "state": "succeeded"
        }
      ]
    }
  },
  "quarantineList": {
    "type": "quarantined",
    "threats": []
  }
}