次の方法で共有


Microsoft Defender for Cloud のカスタム セキュリティの標準と推奨事項

Microsoft Defender for Cloud のセキュリティに関する推奨事項は、セキュリティ態勢の改善と強化に役立ちます。 推奨事項は、Defender for Cloud が有効になっている Azure サブスクリプション、AWS アカウント、GCP プロジェクト用に定義されたセキュリティ標準に対する評価に基づいています。

この記事では、次の方法について説明します。

  • KQL クエリを使用し、すべてのクラウド (Azure、AWS、GCP) のカスタム推奨事項を作成します。
  • カスタム推奨事項をカスタム セキュリティ標準に割り当てます。

開始する前に

  • 新しいセキュリティ標準を作成するには、サブスクリプションに対する所有者アクセス許可が必要です。
  • カスタム推奨事項を作成するには、セキュリティ管理者のアクセス許可が必要です。
  • KQL に基づいてカスタム推奨事項を作成するには、Defender CSPM プランが有効になっている必要があります。 顧客は全員、Azure Policy に基づいてカスタムの推奨事項を作成できます。
  • カスタム推奨事項のための Azure クラウドでのサポートを確認します。

フィールドでの Defender for Cloud のエピソードを見て、機能の詳細を学習し、KQL クエリの作成について詳しく確認することをお勧めします。

カスタム推奨事項を作成する

修復手順、重大度、推奨事項を割り当てる必要がある標準を含めて、カスタム推奨事項を作成します。 KQL を使用して推奨事項のロジックを追加します。 必要に応じて調整できる組み込みのクエリ テンプレートが含まれたシンプルなクエリ エディターを使用することも、KQL クエリを一から作成することもできます。

  1. Defender for Cloud ポータルの >[環境設定] で、関連する範囲を選択します。

  2. [セキュリティ ポリシー]>[+ 作成]>[カスタム標準] を選択します。

  3. [推奨事項の詳細] で、推奨事項の詳細 (名前、重大度など) を入力し、推奨事項を適用する標準を選択します。

    推奨事項の説明の詳細を入力する場所を示すスクリーンショット。

  4. [次へ] を選択します。

  5. [推奨事項クエリ] で、KQL クエリを記述するか、[クエリ エディターを開く] を選択してクエリを作成します。 クエリ エディターを使用する場合は、次の手順に従います。

  6. クエリの準備ができたら、[次へ] を選択します。

  7. [標準] で、カスタム推奨事項を追加するカスタム標準を選択します。

  8. [確認と作成] で推奨事項の詳細を確認します。

    推奨事項の詳細を確認する場所を示すスクリーンショット。

クエリ エディターの使用

クエリ エディターを使用して推奨事項クエリを作成することをお勧めします。

  • エディターを使用すると、クエリを使用開始前にビルドしてテストできます。
  • クエリの構成に関するヘルプと、追加の手順とリンクを表示するには、[操作方法] を選択します。
  • エディターには、独自のクエリの作成に使用できる、組み込みの推奨事項クエリの例が含まれています。 データは、API 内と同じ構造で表示されます。
  1. クエリ エディターで、[新しいクエリ] を選択してクエリを作成します

  2. 手順と共にクエリ テンプレートの例を使用するか、組み込みの推奨クエリの例を選択して開始します。

    クエリ エディターの使用方法を示すスクリーンショット。

  3. [クエリの実行] を選択し、作成したクエリをテストします。

  4. クエリの準備ができたら、エディターから切り取って [推奨事項クエリ] ペインに貼り付けます。

カスタム推奨事項を大規模に使用する

ほとんどのユーザーには、Azure portal ユーザー インターフェイスを使用してカスタム推奨事項を作成することをお勧めします。 このインターフェイスには、便利な Kusto 照会言語 (KQL) エディターと組み込みの検証ツールが用意されています。 ただし、プログラムによるアプローチを使用して推奨事項の作成を自動化すると役立つ場合があります。 この方法は、多くの環境またはサブスクリプションに推奨事項を展開する必要がある場合に特に便利です。

API を使用して自動化する

KQL クエリを事前に検証し、カスタム推奨事項の作成を自動化する場合は、Azure Defender for Cloud アプリケーション プログラミング インターフェイス (API) を使用できます。 この方法を使用すると、推奨事項を迅速に展開し、クラウド環境全体で一貫性とスケーラブルを確保できます。

  • 利点: カスタム推奨事項のデプロイを自動化およびスケーリングできます。
  • 使用する場合: このメソッドは、複数の環境に一貫して推奨事項を適用する必要がある大規模な実装に最適です。

API を使用してカスタム推奨事項を管理する方法の詳細については、API のドキュメントを参照してください。

カスタム標準を作成する

カスタム推奨事項は、1 つ以上のカスタム標準に割り当てることができます。

  1. Azure portal にサインインします。

  2. [Microsoft Defender for Cloud]>[Environment settings](環境設定) に移動します。

  3. 関連するスコープを選択します。

  4. [セキュリティ ポリシー]>[+ 作成]>[標準] を選択します。

  5. [推奨事項] で、カスタム標準に追加する推奨事項を選びます。 Azure サブスクリプションの場合、ソースも確認できます。

    カスタム標準に選択できる全推奨事項の一覧を示すスクリーンショット。

  6. [作成] を選択します

Azure Policy を使用してカスタム推奨事項を作成および強化する (レガシ)

Azure サブスクリプションの場合、Azure Policy を使用してカスタムの推奨事項と標準を作成し、強化できます。 これはレガシ機能であり、新しいカスタム推奨事項機能を使用することをお勧めします。

カスタムの推奨事項/標準 (レガシ) を作成する

Azure Policy でポリシー定義とイニシアティブを作成し、それらを Defender for Cloud にオンボードすることで、Defender for Cloud でカスタムの推奨事項と標準を作成できます。

その方法は次のとおりです。

  1. Azure Policy ポータルで、またはプログラムによって 1 つ以上のポリシー定義を作成します。
  2. カスタム ポリシー定義を含むポリシー イニシアティブを作成します。

イニシアティブをカスタム標準としてオンボードする (レガシ)

ポリシー割り当ては、Azure リソースをポリシーやイニシアティブに割り当てるために Azure Policy によって使われます。

Defender のカスタム セキュリティ標準にイニシアティブをオンボードするには、ここに示すように要求本文に "ASC":"true" を含める必要があります。 ASC フィールドにより、Microsoft Defender for Cloud にイニシアチブがオンボードされます。

これを行う方法の例を次に示します。

カスタム イニシアティブをオンボードする例

  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 for Cloud に用意されている組み込みの推奨事項には、重大度レベルや修復手順などの詳細が含まれています。 この種の情報を Azure のカスタム推奨事項に追加する場合は、REST API を使います。

追加できる情報は次の 2 種類です。

  • RemediationDescription – 文字列
  • Severity – 列挙 [Low、Medium、High]

カスタム イニシアティブの一部であるポリシーのポリシー定義に、メタデータを追加する必要があります。 次のように、'securityCenter' プロパティに含める必要があります。

 "metadata": {
  "securityCenter": {
    "RemediationDescription": "Custom description goes here",
    "Severity": "High"
    },

metadata と securityCenter プロパティが含まれるカスタム ポリシーのもう 1 つの例は次のとおりです。

{
"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 クエリの詳細を確認できます。