次の方法で共有


トラフィック分析のスキーマとデータ集計

トラフィック分析は、クラウド ネットワークでのユーザーとアプリケーションのアクティビティを視覚化するクラウドベースのソリューションです。 トラフィック分析は Azure Network Watcher のフロー ログを分析して、Azure クラウドでのトラフィック フローに関する分析情報を提供します。 トラフィック分析を使用すると、次のことが可能になります。

  • Azure サブスクリプション全体のネットワーク アクティビティを視覚化し、ホットスポットを特定する。
  • 開いているポート、インターネット にアクセスしようとしているアプリケーション、承認されていないネットワークに接続している仮想マシン (VM) などの情報を使用して、セキュリティの脅威を特定し、ネットワークをセキュリティで保護する。
  • Azure リージョン間やインターネット上でのトラフィック フロー パターンを把握して、ネットワークのデプロイに関してパフォーマンスと容量を最適化する。
  • ネットワークでの接続の失敗の原因となるネットワークの構成の誤りを特定する。
  • ネットワークの使用状況 (バイト数、パケット数、またはフロー数) を把握する。

データの集計

  • ネットワーク セキュリティ グループのすべてのフロー ログが、FlowIntervalStartTime_t から FlowIntervalEndTime_t まで、ストレージ アカウント内の BLOB として 1 分間隔でキャプチャされます。
  • トラフィック分析の既定の処理間隔は 60 分です。つまり、1 時間ごとに集計のため、トラフィック分析によってストレージ アカウントから BLOB が取得されます。 ただし、10 分の処理間隔が選択された場合、トラフィック分析により 10 分ごとにストレージ アカウントから BLOB が取得されます。
  • Source IPDestination IPDestination portNSG nameNSG ruleFlow DirectionTransport layer protocol (TCP or UDP) が同じフローは、トラフィック分析によって 1 つのフローにまとめられます (注: 送信元ポートは集計から除外されます)。
  • この単一レコードはトラフィック分析によって修飾され (詳しくは下記のセクションを参照)、Azure Monitor ログに取り込まれます。 このプロセスは最大で 1 時間かかる場合があります。
  • FlowStartTime_t フィールドは、FlowIntervalStartTime_t から FlowIntervalEndTime_t までのフロー ログ処理間隔の間に集計されたフロー (同じ 4 タプル) の最初の発生日時を示します。
  • トラフィック分析内のリソースについては、Azure portal に示されるフロー数はネットワーク セキュリティ グループから見たフロー総数ですが、Azure Monitor ログでは、ユーザーはそれらをまとめた 1 件のレコードのみ確認できます。 すべてのフローを表示するには、blob_id フィールドを使用します。これはストレージから参照できます。 そのレコードの合計フロー数は、BLOB 内にある個々 のフローの数と一致します。

下記のクエリは、過去 30 日間に Azure 以外のパブリック IP と対話したすべてのサブネットを確認するのに役立ちます。

AzureNetworkAnalytics_CL
| where SubType_s == "FlowLog" and FlowStartTime_t >= ago(30d) and FlowType_s == "ExternalPublic"
| project Subnet1_s, Subnet2_s  

前記のクエリのフローに対する BLOB パスを表示するには、次のクエリを使用します。

let TableWithBlobId =
(AzureNetworkAnalytics_CL
   | where SubType_s == "Topology" and ResourceType == "NetworkSecurityGroup" and DiscoveryRegion_s == Region_s and IsFlowEnabled_b
   | extend binTime = bin(TimeProcessed_t, 6h),
            nsgId = strcat(Subscription_g, "/", Name_s),
            saNameSplit = split(FlowLogStorageAccount_s, "/")
   | extend saName = iif(arraylength(saNameSplit) == 3, saNameSplit[2], '')
   | distinct nsgId, saName, binTime)
| join kind = rightouter (
   AzureNetworkAnalytics_CL
   | where SubType_s == "FlowLog"  
   | extend binTime = bin(FlowEndTime_t, 6h)
) on binTime, $left.nsgId == $right.NSGList_s  
| extend blobTime = format_datetime(todatetime(FlowIntervalStartTime_t), "yyyy MM dd hh")
| extend nsgComponents = split(toupper(NSGList_s), "/"), dateTimeComponents = split(blobTime, " ")
| extend BlobPath = strcat("https://", saName,
                        "@insights-logs-networksecuritygroupflowevent/resourceId=/SUBSCRIPTIONS/", nsgComponents[0],
                        "/RESOURCEGROUPS/", nsgComponents[1],
                        "/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUPS/", nsgComponents[2],
                        "/y=", dateTimeComponents[0], "/m=", dateTimeComponents[1], "/d=", dateTimeComponents[2], "/h=", dateTimeComponents[3],
                        "/m=00/macAddress=", replace(@"-", "", MACAddress_s),
                        "/PT1H.json")
| project-away nsgId, saName, binTime, blobTime, nsgComponents, dateTimeComponents;

TableWithBlobId
| where SubType_s == "FlowLog" and FlowStartTime_t >= ago(30d) and FlowType_s == "ExternalPublic"
| project Subnet_s , BlobPath

前記のクエリでは、BLOB に直接アクセスするための URL が構築されます。 プレースホルダーを含む URL は次のようになります。

https://{storageAccountName}@insights-logs-networksecuritygroupflowevent/resoureId=/SUBSCRIPTIONS/{subscriptionId}/RESOURCEGROUPS/{resourceGroup}/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUPS/{networkSecurityGroupName}/y={year}/m={month}/d={day}/h={hour}/m=00/macAddress={macAddress}/PT1H.json

トラフィック分析のスキーマ

トラフィック分析は Azure Monitor ログに基づいて構築されています。そのため、トラフィック分析によって修飾されたデータに対してカスタム クエリを実行し、アラートを設定できます。

次の表に、スキーマ内のフィールドとネットワーク セキュリティ グループのフロー ログにおける意味を列挙します。

フィールド フォーマット 説明
テーブル名 AzureNetworkAnalytics_CL トラフィック分析データのテーブル。
SubType_s フローログ フロー ログのサブタイプ。 FlowLog のみを使用します。SubType_s の他の値は内部で使用されます。
FASchemaVersion_s 2 スキーマのバージョン。 ネットワーク セキュリティ グループのフロー ログのバージョンは反映されません。
TimeProcessed_t 日付と時刻 (UTC) トラフィック分析がストレージ アカウントからの未加工のフロー ログを処理した時刻。
FlowIntervalStartTime_t 日付と時刻 (UTC) フロー ログ処理間隔の開始時刻 (フロー間隔の測定が開始された時刻)。
FlowIntervalEndTime_t 日付と時刻 (UTC) フロー ログ処理間隔の終了時刻。
FlowStartTime_t 日付と時刻 (UTC) FlowIntervalStartTime_t から FlowIntervalEndTime_t までのフロー ログ処理間隔の間の (集計対象の) 最初のフローが発生した日時。 このフローは、集計ロジックに基づいて集計されます。
FlowEndTime_t 日付と時刻 (UTC) FlowIntervalStartTime_t から FlowIntervalEndTime_t までのフロー ログ処理間隔の間の (集計対象の) 最後のフローが発生した日時。 フロー ログ v2 の場合、このフィールドには、同じ 4 タプルを持つ最後のフローが開始された時刻が格納されます (未加工のフロー レコードでは B のマークが付きます)。
FlowType_s - IntraVNet
- InterVNet
- S2S
- P2S
- AzurePublic (英語)
- ExternalPublic
- MaliciousFlow
- Unknown Private
- 不明
定義については、「注意」を参照してください。
SrcIP_s 送信元 IP アドレス AzurePublic フローと ExternalPublic フローでは空白です。
DestIP_s 送信先 IP アドレス AzurePublic フローと ExternalPublic フローでは空白です。
VMIP_s VM の IP AzurePublic フローと ExternalPublic フローに使用されます。
DestPort_d 送信先ポート トラフィックを受信中のポート。
L4Protocol_s - T
- U
トランスポート プロトコル。 T = TCP
U は UDP を指します。
L7Protocol_s プロトコル名 送信先ポートから派生されます。
FlowDirection_s - I = インバウンド
- O = 送信
フローの方向: ネットワーク セキュリティ グループへの受信またはそこからの送信 (フロー ログごと)。
FlowStatus_s - A = 許可
- D = 拒否
フローの状態: ネットワーク セキュリティ グループによって許可または拒否されたかどうか (フロー ログごと)。
NSGList_s <SubscriptionID>/<resourcegroup_Name>/<NSG_Name> フローに関連付けられているネットワーク セキュリティ グループ。
NSGRules_s <インデックス値 0>|<NSG_Rule_Name>|<流れの方向>|<フローの状態>|<FlowCount ProcessedByRule> このフローを許可または拒否したネットワーク セキュリティ グループ規則。
NSGRule_s NSG_Rule_Name このフローを許可または拒否したネットワーク セキュリティ グループ規則。
NSGRuleType_s - ユーザー定義
- 既定値
フローで使用されるネットワーク セキュリティ グループ規則の種類。
MACAddress_s MAC アドレス フローがキャプチャされた NIC の MAC アドレス。
Subscription_g このフィールドには、Azure 仮想ネットワーク、ネットワーク インターフェイス、または仮想マシンのサブスクリプションが表示されます FlowType が S2S、P2S、AzurePublic、ExternalPublic、MaliciousFlow、および UnknownPrivate の場合 (片側だけが Azure であるフローの種類) のみ適用されます。
Subscription1_g サブスクリプション ID フロー内の送信元 IP が属している仮想ネットワーク、ネットワーク インターフェイス、または仮想マシンのサブスクリプション ID。
Subscription2_g サブスクリプション ID フロー内の送信先 IP が属している仮想ネットワーク、ネットワーク インターフェイス、または仮想マシンのサブスクリプション ID。
Region_s フロー内の IP が属している仮想ネットワーク、ネットワーク インターフェイス、または仮想マシンの Azure リージョン。 FlowType が S2S、P2S、AzurePublic、ExternalPublic、MaliciousFlow、および UnknownPrivate の場合 (片側だけが Azure であるフローの種類) のみ適用されます。
Region1_s Azure リージョン フロー内の送信元 IP が属している仮想ネットワーク、ネットワーク インターフェイス、または仮想マシンの Azure リージョン。
Region2_s Azure リージョン フロー内の送信先 IP が属している仮想ネットワークの Azure リージョン。
NIC_s <resourcegroup_Name>/<NetworkInterfaceName> トラフィックを送信または受信している VM に関連付けられている NIC。
NIC1_s <resourcegroup_Name>/<NetworkInterfaceName> フロー内の送信元 IP に関連付けられている NIC。
NIC2_s <resourcegroup_Name>/<NetworkInterfaceName> フロー内の送信先 IP に関連付けられている NIC。
VM_s <resourcegroup_Name>/<NetworkInterfaceName> ネットワーク インターフェイス NIC_s に関連付けられている仮想マシン。
VM1_s <resourcegroup_Name>/<VirtualMachineName> フロー内のソース ID に関連付けられている仮想マシン。
VM2_s <resourcegroup_Name>/<VirtualMachineName> フロー内の宛先 ID に関連付けられている仮想マシン。
Subnet_s <ResourceGroup_Name>/<VirtualNetwork_Name>/<サブネット名> NIC_s に関連付けられているサブネット。
Subnet1_s <ResourceGroup_Name>/<VirtualNetwork_Name>/<サブネット名> フロー内のソース ID に関連付けられているサブネット。
Subnet2_s <ResourceGroup_Name>/<VirtualNetwork_Name>/<サブネット名> フロー内の宛先 ID に関連付けられているサブネット。
ApplicationGateway1_s <サブスクリプションID>/<ResourceGroupName>/<ApplicationGatewayName> フロー内のソース ID に関連付けられているアプリケーション ゲートウェイ。
ApplicationGateway2_s <サブスクリプションID>/<ResourceGroupName>/<ApplicationGatewayName> フロー内の送信先 IP に関連付けられているアプリケーション ゲートウェイ。
ExpressRouteCircuit1_s <サブスクリプションID>/<リソースグループ名>/<ExpressRouteCircuitName> ExpressRoute 回線 ID - ExpressRoute 経由でサイトからフローが送信される場合。
ExpressRouteCircuit2_s <サブスクリプションID>/<リソースグループ名>/<ExpressRouteCircuitName> ExpressRoute 回線 ID - ExpressRoute によってクラウドからフローを受信する場合。
ExpressRouteCircuitPeeringType_s - AzurePrivatePeering
- AzurePublicPeering
- マイクロソフトピアリング
フローに関係する ExpressRoute ピアリングの種類。
LoadBalancer1_s <サブスクリプションID>/<リソースグループ名>/<ロードバランサー名> フロー内の送信元 IP に関連付けられているロード バランサー。
LoadBalancer2_s <サブスクリプションID>/<リソースグループ名>/<ロードバランサー名> フロー内の送信先 IP に関連付けられているロード バランサー。
LocalNetworkGateway1_s <SubscriptionID>/<ResourceGroupName>/<LocalNetworkGatewayName> フロー内の送信元 IP に関連付けられているローカル ネットワーク ゲートウェイ。
LocalNetworkGateway2_s <SubscriptionID>/<ResourceGroupName>/<LocalNetworkGatewayName> フロー内の送信先 IP に関連付けられているローカル ネットワーク ゲートウェイ。
ConnectionType_s - VNetピアリング
- Vpnゲートウェイ
- ExpressRoute
接続の種類。
ConnectionName_s <SubscriptionID>/<ResourceGroupName>/<ConnectionName> 接続の名前。 フローの種類が P2S の場合、<ゲートウェイ名>_<VPN クライアント IP> という形式です。
ConnectingVNets_s 仮想ネットワーク名のスペース区切りのリスト ハブとスポークのトポロジの場合は、ハブの仮想ネットワークがここに表示されます。
Country_s 2 文字の国コード (ISO 3166-1 alpha-2) フローの種類が ExternalPublic の場合に表示されます。 PublicIPs_s フィールド内の IP アドレスはすべて、同じ国番号になります。
AzureRegion_s Azure リージョンの場所 フローの種類が AzurePublic の場合に表示されます。 PublicIPs_s フィールド内の IP アドレスはすべて、同じ Azure リージョンになります。
AllowedInFlows_d 許可された受信フローの数。これは、同じ 4 タプルを共有したフローの数を表します (フローがキャプチャされたネットワーク インターフェイスへの受信)。
DeniedInFlows_d 拒否された受信フローの数。 (フローがキャプチャされたネットワーク インターフェイスへの受信)。
AllowedOutFlows_d 許可された送信フローの数 (フローがキャプチャされたネットワーク インターフェイスへの送信)。
DeniedOutFlows_d 拒否された送信フローの数 (フローがキャプチャされたネットワーク インターフェイスへの送信)。
FlowCount_d 非推奨になりました。 同じ 4 タプルに一致したフローの合計数。 フローの種類が ExternalPublic や AzurePublic の場合、さまざまな PublicIP アドレスからのフローもカウントに含められます。
InboundPackets_d フローの送信先から送信元に送信されたパケット数を表します ネットワーク セキュリティ グループのフロー ログ スキーマがバージョン 2 の場合にのみ値が表示されます。
OutboundPackets_d フローの送信元から送信先に送信されたパケット数を表します ネットワーク セキュリティ グループのフロー ログ スキーマがバージョン 2 の場合にのみ値が表示されます。
InboundBytes_d フローの送信先から送信元に送信されたバイト数を表します ネットワーク セキュリティ グループのフロー ログ スキーマがバージョン 2 の場合にのみ値が表示されます。
OutboundBytes_d フローの送信元から送信先に送信されたバイト数を表します ネットワーク セキュリティ グループのフロー ログ スキーマがバージョン 2 の場合にのみ値が表示されます。
CompletedFlows_d ネットワーク セキュリティ グループのフロー ログ スキーマがバージョン 2 の場合にのみ 0 以外の値が表示されます。
PublicIPs_s <PUBLIC_IP>|<FLOW_STARTED_COUNT>|<FLOW_ENDED_COUNT>|<OUTBOUND_PACKETS>|<INBOUND_PACKETS>|<OUTBOUND_BYTES>|<INBOUND_BYTES> バーで区切られたエントリ。
SrcPublicIPs_s <SOURCE_PUBLIC_IP>|<FLOW_STARTED_COUNT>|<FLOW_ENDED_COUNT>|<OUTBOUND_PACKETS>|<INBOUND_PACKETS>|<OUTBOUND_BYTES>|<INBOUND_BYTES> バーで区切られたエントリ。
DestPublicIPs_s <宛先パブリックIP>|<フロー開始カウント>|<フロー終了カウント>|<送信パケット>|<受信パケット>|<送信バイト>|<受信バイト> バーで区切られたエントリ。
IsFlowCapturedAtUDRHop_b - 正しい
- False
UDR ホップでフローがキャプチャされた場合、値は True です。

重要

トラフィック分析スキーマは 2019 年 8 月 22 日に更新されました。 新しいスキーマでは、送信元 IP と送信先 IP が別々に得られ、FlowDirection フィールドを解析する必要がないため、クエリが簡素化されます。 更新されたスキーマでは、次の点が変更されています。

  • FASchemaVersion_s が 1 から 2 に更新されました。
  • 非推奨となったフィールド: VMIP_sSubscription_gRegion_sNSGRules_sSubnet_sVM_sNIC_sPublicIPs_sFlowCount_d
  • 新しいフィールド: SrcPublicIPs_sDestPublicIPs_sNSGRule_s

パブリック IP の詳細のスキーマ

トラフィック分析を使用すると、お客様の環境内のすべてのパブリック IP について、WHOIS データと地理的な場所を取得できます。 悪意のある IP の場合は、トラフィック分析により、Microsoft セキュリティ インテリジェンス ソリューションによって識別される DNS ドメイン、脅威の種類、スレッドの説明が提供されます。 IP の詳細は Log Analytics ワークスペースに発行されるため、カスタム クエリを作成してアラートを設定できます。 トラフィック分析ダッシュボードから、事前に設定されたクエリにアクセスすることもできます。

次の表に、パブリック IP スキーマの詳細を示します。

フィールド フォーマット 説明
テーブル名 AzureNetworkAnalyticsIPDetails_CL トラフィック分析の IP の詳細のデータが含まれるテーブル。
SubType_s フローログ フロー ログのサブタイプ。 "FlowLog" のみを使用します。SubType_s の他の値は製品の内部処理用です。
FASchemaVersion_s 2 スキーマのバージョン。 ネットワーク セキュリティ グループのフロー ログのバージョンは反映されません。
FlowIntervalStartTime_t 日付と時刻 (UTC) フロー ログ処理間隔の開始時刻 (フロー間隔の測定が開始される時刻)。
FlowIntervalEndTime_t 日付と時刻 (UTC) フロー ログ処理間隔の終了時刻。
FlowType_s - AzurePublic (英語)
- ExternalPublic
- MaliciousFlow
定義については、「注意」を参照してください。
IP パブリック IP レコード内に情報が示されるパブリック IP。
Location IP の場所 - Azure パブリック IP の場合: IP が属している仮想ネットワーク、ネットワーク インターフェイス、仮想マシンの Azure リージョン。または、IP 168.63.129.16 の場合は Global。
- 外部パブリック IP と悪意のある IP の場合: IP が存在している国の 2 文字の国番号 (ISO 3166-1 alpha-2)。
PublicIPDetails(英語) IP に関する情報 - AzurePublic IP の場合: IP を所有している Azure サービス。または、168.63.129.16 の場合は Microsoft 仮想パブリック IP。
- ExternalPublic/Malicious IP: IP の WhoIS 情報。
脅威の種類 悪意のある IP によってもたらされる脅威 悪意のある IP の場合のみ: 現在許可された値の一覧に含まれる脅威のいずれか (次の表で説明します)。
脅威説明 脅威の説明 悪意のある IP の場合のみ。 悪意のある IP によってもたらされる脅威の説明。
DNSドメイン DNS ドメイン 悪意のある IP の場合のみ。 悪意のある IP に関連付けられているドメイン名。
Url 悪意のある IP に対応する URL 悪意のある IP の場合のみ
Port 悪意のある IP に対応するポート 悪意のある IP の場合のみ

脅威の種類の一覧:
説明
ボットネット ボットネット ノードまたはメンバーについて詳述するインジケーター。
C2 ボットネットのコマンド アンド コントロール ノードについて詳述するインジケーター。
クリプトマイニング このネットワーク アドレスと URL に関連するトラフィックは、CyrptoMining とリソースの不正使用を示します。
ダークネット Darknet ノードまたはネットワークのインジケーター。
DDoS攻撃 現在発生中または今後発生する DDoS キャンペーンに関連するインジケーター。
悪意のあるURL マルウェアを配信している URL。
マルウェア 悪意のあるファイルを記述するインジケーター。
フィッシング フィッシング キャンペーンに関連するインジケーター。
プロキシ プロキシ サービスのインジケーター。
PUA 望ましくない可能性のあるアプリケーション。
ウォッチリスト 脅威が何であるかを正確に判断できない場合、または人による解釈を必要とする場合にインジケーターが配置される汎用バケット。 WatchList は、通常、システムにデータを送信するパートナーが使用してはいけません。

注意

  • AzurePublic フローと ExternalPublic フローの場合、VMIP_s フィールドにお客様所有の Azure 仮想マシンの IP が表示され、PublicIPs_s フィールドにパブリック IP アドレスが表示されます。 これらの 2 種類のフローの場合、SrcIP_s フィールドと DestIP_s フィールドではなく、VMIP_sPublicIPs_s を使用する必要があります。 AzurePublic および ExternalPublic の IP アドレスの場合はさらに集計を行い、Log Analytics ワークスペースに取り込まれるレコードの数を最小限に抑えます。 (このフィールドは非推奨になります。仮想マシンがフローの送信元であったか送信先であったかに応じて、SrcIP_s と DestIP_s を使用します)。

  • 一部のフィールド名には、_s または _d が追加されます。これは送信元や送信 先を意味しておらず、それぞれ、データ型の stringdecimal を示します。

  • フローに関係している IP アドレスに基づき、Microsoft ではフローを以下のフロー型に分類しています。

    • IntraVNet: フロー内の両方の IP アドレスが、同じ Azure 仮想ネットワーク内に存在しています。
    • InterVNet: フロー内の IP アドレスが、2 つの異なる Azure 仮想ネットワーク内に存在しています。
    • S2S (サイト対サイト): 一方の IP アドレスは Azure 仮想ネットワークに属していますが、他方の IP アドレスは、VPN ゲートウェイまたは ExpressRoute 経由で仮想ネットワークに接続されたお客様のネットワーク (サイト) に属しています。
    • P2S (ポイント対サイト): 一方の IP アドレスは Azure 仮想ネットワークに属していますが、他方の IP アドレスは、VPN ゲートウェイ経由で Azure Virtual Network に接続されたお客様のネットワーク (サイト) に属しています。
    • AzurePublic: 一方の IP アドレスは Azure 仮想ネットワークに属していますが、他方の IP アドレスは Microsoft が所有する Azure パブリック IP アドレスです。 お客様が所有するパブリック IP アドレスは、このフロー型の一部ではありません。 たとえば、お客様が所有する VM が Azure のサービス (ストレージ エンドポイント) にトラフィックを送信している場合は、このフロー型に分類されます。
    • ExternalPublic: 一方の IP アドレスは Azure 仮想ネットワークに属していますが、他方の IP アドレスは、Microsoft 所有ではなく、お客様所有のサブスクリプションの一部でもないパブリック IP であり、トラフィック分析に表示され、トラフィック分析が FlowIntervalStartTime_tFlowIntervalEndTime_t の間の処理間隔で使用する ASC フィード内で悪意のあるものとして報告されません。
    • MaliciousFlow: 一方の IP アドレスは Azure 仮想ネットワークに属していますが、他方の IP アドレスは、Microsoft 所有ではなく、お客様所有のサブスクリプションの一部でもないパブリック IP であり、トラフィック分析に表示され、トラフィック分析が FlowIntervalStartTime_tFlowIntervalEndTime_t の間の処理間隔で使用する ASC フィード内で悪意のあるものとして報告されます。
    • UnknownPrivate: 一方の IP アドレスは Azure 仮想ネットワークに属していますが、他方の IP アドレスは、RFC 1918 で定義されたプライベート IP 範囲に属していて、トラフィック分析ではお客様が所有するサイトまたは Azure 仮想ネットワークにマッピングできませんでした。
    • Unknown: フロー内のどちらの IP アドレスも、Azure やオンプレミス (サイト) 内のお客様のトポロジとマッピングできません。

    サブスクリプションが Log Analytics ワークスペース内のトラフィック分析に表示されるのは、そのワークスペースに対して構成されたフロー ログが含まれている場合です。