流量分析結構描述和資料彙總
流量分析是一個雲端式解決方案,可顯示雲端網路中的使用者和應用程式活動。 流量分析可以分析 Azure 網路監看員流量記錄,以針對 Azure 雲端中的流量流程提供見解。 使用流量分析,您可以:
- 將 Azure 訂用帳戶上的網路活動視覺化,並找出作用點。
- 透過開放的連接埠、嘗試存取網際網路的應用程式,和連線至流氓網路的虛擬機器 (VM) 等資訊,識別網路的安全性威脅並保護您的網路。
- 了解跨 Azure 區域和網際網路的流量模式,以針對效能和容量最佳化網路部署。
- 找出導致網路中連線失敗的網路設定錯誤。
- 了解以位元組、封包或流量計算的網路使用量。
資料彙總
FlowIntervalStartTime_t
與FlowIntervalEndTime_t
之間網路安全性群組的所有流量記錄都會以一分鐘間隔擷取為儲存體帳戶中的 Blob。- 流量分析的預設處理間隔為 60 分鐘,這表示每一個小時流量分析都會從儲存體帳戶中挑選 Blob 以進行彙總。 不過,如果選取的處理間隔為 10 分鐘,則流量分析會改為每隔 10 分鐘從儲存體帳戶挑選 Blob。
- 具有相同
Source IP
、Destination IP
、Destination port
、NSG name
、NSG rule
、Flow Direction
和Transport layer protocol (TCP or UDP)
的流量會由流量分析加入單一流量 (注意:來源連接埠會針對彙總排除)。 - 此單一記錄會加以裝飾 (下方小節中有詳細資料),並由流量分析內嵌至 Azure 監視器記錄。 此流程可能需要花費 1 小時。
FlowStartTime_t
欄位表示在FlowIntervalStartTime_t
與FlowIntervalEndTime_t
之間的流量記錄處理間隔中,第一次出現這類彙總流量 (相同的四元組)。- 針對流量分析中的任何資源,Azure 入口網站中指出的流量是網路安全性群組所看到的流量總計,但在 Azure 監視器記錄中,使用者只會看到經過縮減的單一記錄。 若要查看所有流量,請使用可從儲存體參考的
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/resoureId=/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
上述查詢會建構 URL 以直接存取 Blob。 具有預留位置的 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 監視器記錄之上,因此您可以在由流量分析裝飾的資料上執行自訂查詢,並在其上方設定警示。
下表列出結構描述中的欄位,以及它們代表網路安全性群組流量記錄的欄位。
欄位 | 格式 | 註解 |
---|---|---|
TableName | AzureNetworkAnalytics_CL | 流量分析資料的資料表。 |
SubType_s | FlowLog | 流量記錄的子類型。 僅使用 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 而言,此欄位包含相同四位元的最後流量 (在原始流量記錄中標示為 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_RULENAME>|<流量方向>|<流量狀態>|<FlowCount ProcessedByRule> | 允許或拒絕此流量的網路安全性群組規則。 |
NSGRule_s | NSG_RULENAME | 允許或拒絕此流量的網路安全性群組規則。 |
NSGRuleType_s | - 使用者定義 - 預設值 |
流量所使用的網路安全性群組規則類型。 |
MACAddress_s | MAC 位址 | 擷取流量所在之 NIC 的 MAC 位址。 |
Subscription_g | 此欄位中會填入 Azure 虛擬網路/網路介面/虛擬機器的訂用帳戶 | 僅適用於 FlowType = S2S、P2S、AzurePublic、ExternalPublic、MaliciousFlow 和 UnknownPrivate 流量類型 (只有一端是 Azure 的流量類型)。 |
Subscription1_g | 訂用帳戶識別碼 | 流量中來源 IP 所屬虛擬網路/網路介面/虛擬機器的訂用帳戶識別碼。 |
Subscription2_g | 訂用帳戶識別碼 | 流量中目的地 IP 所屬虛擬網路/網路介面/虛擬機器的訂用帳戶識別碼。 |
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> | 與流量中來源 IP 相關聯的虛擬機器。 |
VM2_s | <resourcegroup_Name>/<VirtualMachineName> | 與流量中目的地 IP 相關聯的虛擬機器。 |
Subnet_s | <ResourceGroup_Name>/<VirtualNetwork_Name>/<SubnetName> | 與 NIC_s 相關聯的子網路。 |
Subnet1_s | <ResourceGroup_Name>/<VirtualNetwork_Name>/<SubnetName> | 與流量中來源 IP 相關聯的子網路。 |
Subnet2_s | <ResourceGroup_Name>/<VirtualNetwork_Name>/<SubnetName> | 與流量中目的地 IP 相關聯的子網路。 |
ApplicationGateway1_s | <SubscriptionID>/<ResourceGroupName>/<ApplicationGatewayName> | 與流量中來源 IP 相關聯的應用程式閘道。 |
ApplicationGateway2_s | <SubscriptionID>/<ResourceGroupName>/<ApplicationGatewayName> | 與流量中目的地 IP 相關聯的應用程式閘道。 |
ExpressRouteCircuit1_s | <SubscriptionID>/<ResourceGroupName>/<ExpressRouteCircuitName> | ExpressRoute 線路識別碼 - 當流量是透過 ExpressRoute 從網站傳送時。 |
ExpressRouteCircuit2_s | <SubscriptionID>/<ResourceGroupName>/<ExpressRouteCircuitName> | ExpressRoute 線路識別碼 - 當流量是由 ExpressRoute 從雲端接收時。 |
ExpressRouteCircuitPeeringType_s | - AzurePrivatePeering - AzurePublicPeering - MicrosoftPeering |
流量中涉及的 ExpressRoute 對等互連類型。 |
LoadBalancer1_s | <SubscriptionID>/<ResourceGroupName>/<LoadBalancerName> | 與流量中來源 IP 相關聯的負載平衡器。 |
LoadBalancer2_s | <SubscriptionID>/<ResourceGroupName>/<LoadBalancerName> | 與流量中目的地 IP 相關聯的負載平衡器。 |
LocalNetworkGateway1_s | <SubscriptionID>/<ResourceGroupName>/<LocalNetworkGatewayName> | 與流量中來源 IP 相關聯的本機網路閘道。 |
LocalNetworkGateway2_s | <SubscriptionID>/<ResourceGroupName>/<LocalNetworkGatewayName> | 與流量中目的地 IP 相關聯的本機網路閘道。 |
ConnectionType_s | - VNetPeering - VpnGateway - ExpressRoute |
連線類型。 |
ConnectionName_s | <SubscriptionID>/<ResourceGroupName>/<ConnectionName> | 連線名稱。 針對流量類型 P2S,其會格式化為 <閘道名稱>_<VPN 用戶端 IP>。 |
ConnectingVNets_s | 以空格分隔的虛擬網路名稱清單 | 如果是中樞和輪輻拓撲,則會在此填入中樞虛擬網路。 |
Country_s | 雙字母國碼 (地區碼) (ISO 3166-1 alpha-2) | 使用 ExternalPublic 流量類型時填入。 PublicIPs_s 欄位中的所有 IP 位址都會共用相同的國碼 (地區碼)。 |
AzureRegion_s | Azure 區域位置 | 使用 AzurePublic 流量類型時填入。 PublicIPs_s 欄位中的所有 IP 位址都會共用 Azure 區域。 |
AllowedInFlows_d | 允許的輸入流量計數,其代表輸入網路介面 (擷取流量的位置) 且共用相同四元組的流量數。 | |
DeniedInFlows_d | 拒絕的輸入流量計數。 (輸入至擷取流量的網路介面)。 | |
AllowedOutFlows_d | 允許的輸出流量計數 (輸出至擷取流量的網路介面)。 | |
DeniedOutFlows_d | 拒絕的輸出流量計數 (輸出至擷取流量的網路介面)。 | |
FlowCount_d | 已取代。 符合相同四元組的總流量。 如果是 ExternalPublic 和 AzurePublic 流量類型,計數也會包括來自各種 PublicIP 位址的流量。 | |
InboundPackets_d | 代表從目的地傳送至流量來源的封包 | 僅針對網路安全性群組流量記錄結構描述第 2 版填入。 |
OutboundPackets_d | 代表從來源傳送至流量目的地的封包 | 僅針對網路安全性群組流量記錄結構描述第 2 版填入。 |
InboundBytes_d | 代表從目的地傳送至流量來源的位元組 | 僅針對網路安全性群組流量記錄結構描述第 2 版填入。 |
OutboundBytes_d | 代表從來源傳送至流量目的地的位元組 | 僅針對網路安全性群組流量記錄結構描述第 2 版填入。 |
CompletedFlows_d | 僅針對網路安全性群組流量記錄結構描述第 2 版填入非零值。 | |
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 | <DESTINATION_PUBLIC_IP>|<FLOW_STARTED_COUNT>|<FLOW_ENDED_COUNT>|<OUTBOUND_PACKETS>|<INBOUND_PACKETS>|<OUTBOUND_BYTES>|<INBOUND_BYTES> | 以分隔線分隔的項目。 |
IsFlowCapturedAtUDRHop_b | - True - False |
如果流量是在 UDR 躍點擷取,則值為 True。 |
重要
流量分析結構描述已於 2019 年 8 月 22 日更新。 新的結構描述會個別提供來源和目的地 IP,而不需要剖析 FlowDirection
欄位,因此查詢變得更簡單。 更新的結構描述具有下列變更:
FASchemaVersion_s
已從 1 更新為 2。- 已淘汰的欄位:
VMIP_s
、Subscription_g
、Region_s
、NSGRules_s
、Subnet_s
、VM_s
、NIC_s
、PublicIPs_s
、FlowCount_d
- 新欄位:
SrcPublicIPs_s
、DestPublicIPs_s
、NSGRule_s
公用 IP 詳細資料結構描述
流量分析可為您環境中的所有公用 IP 提供 WHOIS 資料和地理位置。 針對惡意 IP,流量分析會提供由 Microsoft 安全情報解決方案所識別的 DNS 網域、威脅類型和執行緒描述。 IP 詳細資料會發佈至 Log Analytics 工作區,以便您建立自訂查詢,並對其放置警示。 您也可以從流量分析儀表板存取預先填入的查詢。
下表詳細說明公用 IP 結構描述:
欄位 | 格式 | 註解 |
---|---|---|
TableName | AzureNetworkAnalyticsIPDetails_CL | 包含流量分析 IP 詳細資料的資料表。 |
SubType_s | FlowLog | 流量記錄的子類型。 僅使用 "FlowLog",SubType_s 的其他值會用於產品的內部運作。 |
FASchemaVersion_s | 2 | 結構描述版本。 不會反映網路安全性群組流量記錄版本。 |
FlowIntervalStartTime_t | 日期和時間 (UTC) | 流量記錄處理間隔的開始時間 (測量流量間隔的時間)。 |
FlowIntervalEndTime_t | 日期和時間 (UTC) | 流量記錄處理間隔的結束時間。 |
FlowType_s | - AzurePublic - ExternalPublic - MaliciousFlow |
請參閱備註以取得定義。 |
IP | 公用 IP | 記錄中有提供其資訊的公用 IP。 |
地點 | IP 的位置 | - 針對 Azure 公用 IP:IP 所屬虛擬網路/網路介面/虛擬機器的 Azure 區域,或 IP 168.63.129.16 的全域範圍。 - 針對外部公用 IP 和惡意 IP:IP 所在的雙字母國碼 (地區碼) (ISO 3166-1 alpha-2)。 |
PublicIPDetails | IP 的相關資訊 | - 針對 AzurePublic IP:擁有 168.63.129.16 的 IP 或 Microsoft 虛擬公用 IP 的 Azure 服務。 - ExternalPublic/惡意 IP:IP 的 WhoIS 資訊。 |
ThreatType | 惡意 IP 所造成的威脅 | 僅限惡意 IP:目前允許值清單中的其中一個威脅 (如下表所述)。 |
ThreatDescription | 威脅的描述 | 僅限惡意 IP。 惡意 IP 所造成的威脅描述。 |
DNSDomain | DNS 網域 | 僅限惡意 IP。 與惡意 IP 相關聯的功能變數名稱。 |
Url | 對應至惡意 IP 的 URL | 僅限惡意 IP |
通訊埠 | 對應至惡意 IP 的連接埠 | 僅限惡意 IP |
威脅類型清單:
值 | Description |
---|---|
殭屍網路 | 詳細說明殭屍網路節點/成員的指標。 |
C2 | 詳細說明殭屍網路的命令與控制節點的指標。 |
CryptoMining | 涉及此網路位址/URL 的流量代表 CyrptoMining /資源濫用。 |
DarkNet | Darknet 節點/網路的指標。 |
DDos | 與作用中或即將到來的 DDoS 活動相關的指標。 |
MaliciousUrl | 提供惡意程式碼的 URL。 |
惡意程式碼 | 描述惡意檔案的指標。 |
網路釣魚 | 與網路釣魚活動相關的指標。 |
Proxy | Proxy 服務的指標。 |
PUA | 潛在的垃圾應用程式。 |
WatchList | 一般貯體,當無法確切判斷威脅是什麼,或需要手動解譯時,就會將指標放置其中。 WatchList 通常不應該由提交資料給系統的合作夥伴使用。 |
備註
- 如果是
AzurePublic
和ExternalPublic
流量,則客戶擁有的 Azure 虛擬機器 IP 會在VMIP_s
欄位中填入,而公用 IP 位址則會填入PublicIPs_s
欄位中。 針對這兩種流量類型,您應該使用VMIP_s
和PublicIPs_s
,而不是使用SrcIP_s
和DestIP_s
欄位。 針對 AzurePublic 和 ExternalPublic IP 位址,我們會進一步進行彙總,以便將擷取至 Log Analytics 工作區的記錄數目降到最低。 (此欄位將被取代。視虛擬機器是流程中的來源或目的地而定,使用SrcIP_s 和 DestIP_s)。 - 某些欄位名稱會附加
_s
或_d
,其並不表示來源和目的地,而是分別表示資料類型「字串」和「十進位」。 - 根據流量所涉及的 IP 位址,我們會將流量分為下列流量類型:
IntraVNet
:流量中的 IP 位址都位於相同的 Azure 虛擬網路中。InterVNet
:流量中的 IP 位址位於兩個不同的 Azure 虛擬網路中。S2S
(站對站):其中一個 IP 位址屬於 Azure 虛擬網路,而另一個 IP 位址屬於客戶網路 (網站),其透過 VPN 閘道或 ExpressRoute 連線到虛擬網路。P2S
(點對站):其中一個 IP 位址屬於 Azure 虛擬網路,而另一個 IP 位址屬於客戶網路 (網站),其透過 VPN 閘道連線到 Azure 虛擬網路。AzurePublic
:其中一個 IP 位址屬於 Azure 虛擬網路,而另一個 IP 位址則是 Microsoft 所擁有的 Azure 公用 IP 位址。 客戶擁有的公用 IP 位址不屬於此流量類型。 例如,任何客戶所擁有且將流量傳送至 Azure 服務 (儲存體端點) 的 VM 會分類為此流量類型。ExternalPublic
:其中一個 IP 位址屬於 Azure 虛擬網路,而另一個 IP 位址是不在 Azure 中的公用 IP,並且在 “FlowIntervalStartTime_t” 和 “FlowIntervalEndTime_t” 之間的處理間隔中,未在流量分析取用的 ASC 摘要中回報惡意 IP。MaliciousFlow
:其中一個 IP 位址屬於 Azure 虛擬網路,而另一個 IP 位址是不在 Azure 中的公用 IP,並且在 “FlowIntervalStartTime_t” 和 “FlowIntervalEndTime_t” 之間的處理間隔中,在流量分析取用的 ASC 摘要中回報惡意 IP。UnknownPrivate
:其中一個 IP 位址屬於 Azure 虛擬網路,而另一個 IP 位址屬於 RFC 1918 中定義的私人 IP 範圍,而且無法由流量分析對應至客戶擁有的網站或 Azure 虛擬網路。Unknown
:無法將流量中的任一 IP 位址與 Azure 及內部部署環境 (網站) 中的客戶拓撲對應。