スキーマと演算子の概要

Microsoft Security Exposure Management のエンタープライズ 露出グラフ スキーマは、潜在的な脅威がどのように到達し、侵害される可能性のある貴重な資産に到達するかを理解するのに役立つ、攻撃対象の情報を提供します。 この記事では、公開グラフのスキーマ テーブルと演算子について説明します。

セキュリティ公開管理は現在パブリック プレビュー段階です。

重要

この記事の一部の情報は、市販される前に大幅に変更される可能性があるプレリリース製品に関するものです。 Microsoft は、ここで提供されるいかなる情報に関して、明示または黙示を問わず、いかなる保証も行いません。

スキーマ テーブル

露出グラフは、次の表に依存しています。

  • ExposureGraphNodes
  • ExposureGraphEdges

ExposureGraphNodes

ExposureGraphNodes には、組織のエンティティとそのプロパティが含まれています。 これには、デバイス、ID、ユーザー グループ、仮想マシン (VM)、ストレージ、コンテナーなどのクラウド資産などのエンティティが含まれます。 各ノードは、個々のエンティティに対応し、その特性、属性、およびセキュリティ関連の分析情報に関する情報を組織構造内にカプセル化します。

ExposureGraphNodes の列名、型、および説明を次に示します。

  • NodeId (string) - 一意のノード識別子。 例: "650d6aa0-10a5-587e-52f4-280bfc014a08"
  • NodeLabel (string)- ノード ラベル。 例: "microsoft.compute/virtualmachines"、"elasticloadbalancing.loadbalancer"
  • NodeName (string)- ノードの表示名。 例: "nlb-test" (ネットワーク ロード バランサー名)
  • Categories (Dynamic (json)) - ノードのカテゴリ。 例:
[
  "compute",
  "virtual_machine"
] 
  • NodeProperties (Dynamic (json)) - ノードのプロパティ。リソースがインターネットに公開されているかどうか、リモート コード実行に対して脆弱かどうかなど、リソースに関連する分析情報を含みます。 値は生データ形式 (非構造化) です。 例:
{   
"rawData": {
"osType": "linux",   
"exposed to the internet": 
{     
"routes": [ { … } ]   
}
} 
}
  • EntityIds ( (Dynamic json)) - 既知のすべてのノード識別子。 例:
{ 
"AzureResourceId": "A1",  
"MdeMachineId": "M1", 
}

ExposureGraphEdges

ExposureGraphEdges スキーマは、補完する ExposureGraphNodes スキーマと共に、グラフ内のエンティティと資産間のリレーションシップを可視化します。 多くのハンティング シナリオでは、エンティティリレーションシップと攻撃パスの探索が必要です。 たとえば、特定の重大な脆弱性にさらされているデバイスを検索するときに、エンティティ間の関係を把握すると、重要な組織資産が検出される可能性があります。

ExposureGraphEdges 列名、ラベル、および説明を次に示します。

  • EdgeId (string) - リレーションシップ/エッジの一意の識別子。
  • EdgeLabel (string) - エッジ ラベル。 例: "影響を与える"、"トラフィックをにルーティングする"、"実行中"、"contains"グラフに対してクエリを実行すると、エッジ ラベルの一覧を表示できます。 詳細については、「 テナント内のすべてのエッジ ラベルを一覧表示する」を参照してください。
  • SourceNodeId (string) - エッジのソースのノード ID。 例: "12346aa0-10a5-587e-52f4-280bfc014a08"
  • SourceNodeName (string) - ソース ノードの表示名。 例: "mdvmaas-win-123"
  • SourceNodeLabel (string) - ソース ノード ラベル。 例: "microsoft.compute/virtualmachines"
  • SourceNodeCategories ( (Dynamic json)) - ソース ノードのカテゴリリスト。
  • TargetNodeId (string) - エッジのターゲットのノード ID。 例: "45676aa0-10a5-587e-52f4-280bfc014a08"
  • TargetNodeName (string) - ターゲット ノードの表示名。 例: gke-test-cluster-1
  • TargetNodeLabel (string) - ターゲット ノード ラベル。 例: "compute.instances"
  • TargetNodeCategories (Dynamic (json)) - ターゲット ノードのカテゴリリスト。
  • EdgeProperties (Dynamic (json)) - ノード間の関係に関連する省略可能なデータ。 例: の を使用してEdgeLabelトラフィックをEdgePropertiesnetworkReachabilityルーティングする場合は、ポイント A から B へのトラフィックの転送に使用されるポートとプロトコル範囲に関する情報を指定します。
{   
 "rawData": {
  "networkReachability": {
    "type": "NetworkReachability",
    "routeRules": [
      {
        "portRanges": [
          "8083"
        ],
        "protocolRanges": [
          "6"
        ]
      },
      {
        "portRanges": [
          "80"
        ],
        "protocolRanges": [
          "6"
        ]
      },
      {
        "portRanges": [
          "443"
        ],
        "protocolRanges": [
          "6"
        ]
      }
    ]
  }
}
}

グラフ Kusto 照会言語 (KQL) 演算子

Microsoft Security Exposure Management は、グラフ構造に対する操作を有効にするために、露出グラフ テーブルと一意の露出グラフ演算子に依存しています。 グラフは、演算子を使用して make-graph 表形式のデータから構築された後、グラフ演算子を使用してクエリを実行します。

グラフ作成演算子

make-graph operator 、エッジとノードの表形式の入力からグラフ構造を構築します。 その使用方法と構文の詳細については、 make-graph 演算子に関するページを参照してください。

graph-match 演算子

演算子は graph-match 、入力グラフ ソース内のグラフ パターンのすべての出現箇所を検索します。 詳細については、「 graph-match 演算子」を参照してください。

次の手順

エンタープライズ露出グラフにクエリを実行します