スキーマと演算子の概要
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)) - ノード間の関係に関連する省略可能なデータ。 例:networkReachability
のEdgeProperties
を使用して"トラフィックをルーティングする"EdgeLabel
では、ポイント A から B へのトラフィック転送に使用されるポートとプロトコル範囲に関する情報を指定します。
{
"rawData": {
"networkReachability": {
"type": "NetworkReachability",
"routeRules": [
{
"portRanges": [
"8083"
],
"protocolRanges": [
"6"
]
},
{
"portRanges": [
"80"
],
"protocolRanges": [
"6"
]
},
{
"portRanges": [
"443"
],
"protocolRanges": [
"6"
]
}
]
}
}
}
グラフ Kusto 照会言語 (KQL) 演算子
Microsoft セキュリティ露出管理は、露出グラフ テーブルと一意の露出グラフ演算子に依存して、グラフ構造に対する操作を有効にします。 グラフは、 make-graph
演算子を使用して表形式のデータから構築された後、グラフ演算子を使用してクエリを実行します。
グラフ作成演算子
make-graph operator
は、エッジとノードの表形式の入力からグラフ構造を構築します。 その使用方法と構文の詳細については、 make-graph 演算子に関するページを参照してください。
graph-match 演算子
graph-match
演算子は、入力グラフ ソース内のグラフ パターンのすべての出現箇所を検索します。 詳細については、「 graph-match 演算子」を参照してください。