流量分析是一种基于云的解决方案,可用于洞察云网络中的用户和应用程序活动。 流量分析可以分析 Azure 网络观察程序流日志,帮助洞察 Azure 云中的流量流。 使用流量分析可以:
- 直观查看各个 Azure 订阅中的网络活动,以及识别热点。
- 参考有关开放的端口、尝试访问 Internet 的应用程序以及连接到恶意网络的虚拟机 (VM) 的信息,识别网络安全威胁和保护网络。
- 了解 Azure 区域与 Internet 之间的流量流模式,优化网络部署以提高性能和容量。
- 查明导致网络连接失败的不当网络配置。
- 了解网络用量(字节、数据包或流)。
Data aggregation
-
FlowIntervalStartTime
与FlowIntervalEndTime
之间的所有流日志都以一分钟间隔,以 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 Monitor 日志中。 此过程最多可能需要 1 小时。
-
FlowStartTime
字段指示流日志处理间隔中出现在FlowIntervalStartTime
与FlowIntervalEndTime
之间的第一个此类聚合流(相同的四元组)。 - 对于流量分析中的任何资源,Azure 门户中指示的流是看到的总流数,但在 Azure Monitor 日志中,用户只会看到一条简化的记录。 若要查看所有流,请使用可从存储引用的
blob_id
字段。 该记录的总流数与 Blob 中出现的各个流相匹配。
以下查询有助于查看过去 30 天内与非 Azure 公共 IP 交互的所有子网。
NTANetAnalytics
| where SubType == "FlowLog" and FlowStartTime >= ago(30d) and FlowType == "ExternalPublic"
| project SrcSubnet, DestSubnet
流量分析架构
流量分析构建在 Azure Monitor 日志的基础之上,因此你可以针对流量分析修饰的数据运行自定义查询,并设置警报。
下表列出了架构中的字段及其对虚拟网络流日志的含义。 有关详细信息,请参阅 NTANetAnalytics。
Field | Format | Comments |
---|---|---|
TableName | NTANetAnalytics | 流量分析数据表。 |
SubType | FlowLog | 流日志的子类型。 仅使用 FlowLog,SubType 的其他值供内部使用。 |
FASchemaVersion | 3 | Schema version. 未反映虚拟网络流日志版本。 |
TimeProcessed | 日期和时间 (UTC) | 流量分析处理存储帐户中的原始流日志的时间。 |
FlowIntervalStartTime | 日期和时间 (UTC) | 流日志处理间隔的开始时间(计量流间隔的开始时间)。 |
FlowIntervalEndTime | 日期和时间 (UTC) | 流日志处理间隔的结束时间。 |
FlowStartTime | 日期和时间 (UTC) | 从 FlowIntervalStartTime 到 FlowIntervalEndTime 的流日志处理间隔中(聚合)流的首次出现。 此流将会基于聚合逻辑进行聚合。 |
FlowEndTime | 日期和时间 (UTC) | 从 FlowIntervalStartTime 到 FlowIntervalEndTime 的流日志处理间隔中(聚合)流的末次出现。 |
FlowType | - IntraVNet - InterVNet - S2S - P2S - AzurePublic - ExternalPublic - MaliciousFlow - Unknown Private - Unknown |
请参阅注释了解定义。 |
SrcIp | 源 IP 地址 | AzurePublic 和 ExternalPublic 流中的空白。 |
DestIp | 目标 IP 地址 | AzurePublic 和 ExternalPublic 流中的空白。 |
TargetResourceId | ResourceGroupName/ResourceName | 启用流日志记录和流量分析的资源的 ID。 |
TargetResourceType | VirtualNetwork/Subnet/NetworkInterface | 启用流日志记录和流量分析的资源类型(虚拟网络、子网、NIC 或网络安全组)。 |
FlowLogResourceId | ResourceGroupName/NetworkWatcherName/FlowLogName | 流日志的资源 ID。 |
DestPort | Destination Port | 传入流量的端口。 |
L4Protocol | - T - U |
Transport Protocol.
T = TCP U = UDP |
L7Protocol | Protocol Name | 派生自目标端口。 |
FlowDirection |
-
I = 入站 - O = 出站 |
流的方向:流入还是流出每个流日志的目标资源。 |
FlowStatus |
-
A = 允许 - D = 拒绝 |
流的状态:每个流日志的目标资源是允许还是拒绝。 |
AclList | <SubscriptionID>/<resourcegroup_Name>/<NSG_Name> | 与流关联的网络安全组。 |
AclRule | NSG_Rule_Name | 允许或拒绝此流的网络安全组规则。 |
MACAddress | MAC Address | 捕获流的 NIC 的 MAC 地址。 |
SrcSubscription | Subscription ID | 流中的源 IP 所属的虚拟网络/网络接口/虚拟机的订阅 ID。 |
DestSubscription | Subscription ID | 流中的目标 IP 所属的虚拟网络/网络接口/虚拟机的订阅 ID。 |
SrcRegion | Azure Region | 流中的源 IP 所属的虚拟网络/网络接口/虚拟机的 Azure 区域。 |
DestRegion | Azure Region | 流中的目标 IP 所属的虚拟网络的 Azure 区域。 |
SrcNic | <资源组名称>/<网络接口名称> | 与流中的源 IP 关联的 NIC。 |
DestNic | <资源组名称>/<网络接口名称> | 与流中的目标 IP 关联的 NIC。 |
SrcVm | <资源组名称>/<虚拟机名称> | 与流中的源 IP 关联的虚拟机。 |
DestVm | <资源组名称>/<虚拟机名称> | 与流中的目标 IP 关联的虚拟机。 |
SrcSubnet | < >ResourceGroup_Name/<VirtualNetwork_Name>/<SubnetName> | 与流中的源 IP 关联的子网。 |
DestSubnet | < >ResourceGroup_Name/<VirtualNetwork_Name>/<SubnetName> | 与流中的目标 IP 关联的子网。 |
SrcApplicationGateway | <订阅 ID>/<资源组名称>/<应用程序网关名称> | 与流中的源 IP 关联的应用程序网关。 |
DestApplicationGateway | <订阅 ID>/<资源组名称>/<应用程序网关名称> | 与流中的目标 IP 关联的应用程序网关。 |
SrcExpressRouteCircuit | <SubscriptionID>/<ResourceGroupName>/<ExpressRouteCircuitName> | ExpressRoute 线路 ID - 通过 ExpressRoute 从站点发送流时。 |
DestExpressRouteCircuit | <SubscriptionID>/<ResourceGroupName>/<ExpressRouteCircuitName> | ExpressRoute 线路 ID - 通过 ExpressRoute 从云接收流时。 |
ExpressRouteCircuitPeeringType | - AzurePrivatePeering - AzurePublicPeering - MicrosoftPeering |
流中涉及的 ExpressRoute 对等互连类型。 |
SrcLoadBalancer | <订阅 ID>/<资源组名称>/<负载均衡器名称> | 与流中的源 IP 关联的负载均衡器。 |
DestLoadBalancer | <订阅 ID>/<资源组名称>/<负载均衡器名称> | 与流中的目标 IP 关联的负载均衡器。 |
SrcLocalNetworkGateway | <订阅 ID>/<资源组名称>/<本地网络网关名称> | 与流中的源 IP 关联的本地网络网关。 |
DestLocalNetworkGateway | <订阅 ID>/<资源组名称>/<本地网络网关名称> | 与流中的目标 IP 关联的本地网络网关。 |
ConnectionType | - VNetPeering - VpnGateway - ExpressRoute |
连接类型。 |
ConnectionName | <订阅 ID>/<资源组名称>/<连接名称> | 连接名称。 对于流类型 P2S,其格式设置为 <GatewayName>_<VPNClientIP> |
ConnectingVNets | 虚拟网络名称的空格分隔列表。 | 在中心辐射型拓扑中,此处将会填充中心虚拟网络。 |
Country | 双字母国家/地区代码 (ISO 3166-1 alpha-2) | 为流类型 ExternalPublic 填充此字段。 PublicIPs 字段中的所有 IP 地址会共享同一个国家/地区代码。 |
AzureRegion | Azure 区域位置 | 为流类型 AzurePublic 填充此字段。 PublicIPs 字段中的所有 IP 地址会共享该 Azure 区域。 |
AllowedInFlows | - | 允许的入站流计数,表示共享入站到捕获流的网络接口的同一个四元组的流数。 |
DeniedInFlows | - | 拒绝的入站流数。 (入站到捕获流的网络接口)。 |
AllowedOutFlows | - | 允许的出站流数(出站到捕获流的网络接口)。 |
DeniedOutFlows | - | 拒绝的出站流数(出站到捕获流的网络接口)。 |
PacketsDestToSrc | - | 表示已从目标向流源发送的数据包。 |
PacketsSrcToDest | - | 表示已从源向流目标发送的数据包。 |
BytesDestToSrc | - | 表示已从目标向流源发送的字节。 |
BytesSrcToDest | - | 表示已从源向流目标发送的字节。 |
CompletedFlows | - | 已完成的流总数(在流获取已完成事件时,用非零值填充)。 |
SrcPublicIPs | <源公共 IP>|<启动的流计数>|<结束的流计数>|<出站数据包数>|<入站数据包数>|<出站字节数>|<入站字节数> | 条形分隔的条目。 |
DestPublicIPs | <目标公共 IP>|<启动的流计数>|<结束的流计数>|<出站数据包数>|<入站数据包数>|<出站字节数>|<入站字节数> | 条形分隔的条目。 |
FlowEncryption | - Encrypted - Unencrypted - 不支持的硬件 - 软件未就绪 - 由于没有加密而删除 - 不支持发现 - 同一主机上的目标 - 回退到无加密。 |
流的加密级别。 |
PrivateEndpointResourceId | ResourceGroup/privateEndpointResource<> | 专用终结点的资源 ID。 当流量流入或流出专用终结点资源时填充。 |
PrivateLinkResourceId | ResourceGroup/ResourceType/privateLinkResource<> | 专用链接服务的资源 ID。 当流量流入或流出专用终结点资源时填充。 |
PrivateLinkResourceName | Plain text | 专用链接服务的资源名称。 当流量流入或流出专用终结点资源时填充。 |
IsFlowCapturedAtUDRHop | - True - False |
如果在 UDR 跃点处捕获流,则值为 True。 |
Note
虚拟网络流日志中的 NTANetAnalytics 取代了网络安全组流日志中使用的 AzureNetworkAnalytics_CL。
公共 IP 详细信息架构
流量分析为环境中的所有公共 IP 提供 WHOIS 数据和地理位置。 针对恶意 IP,流量分析提供由 Azure 安全智能解决方案识别的 DNS 域、威胁类型和线程说明。 我们已将 IP 详细信息发布到 Log Analytics 工作区,以便你可以创建自定义查询并在其中放置警报。 你还可以通过流量分析仪表板访问已预填充的查询。
下表详细介绍了公共 IP 架构。 有关详细信息,请参阅 NTAIpDetails。
Field | Format | Comments |
---|---|---|
TableName | NTAIpDetails | 包含流量分析 IP 详细信息数据的表格。 |
SubType | FlowLog | 流日志的子类型。 仅使用 FlowLog。 SubType 的其他值用于产品内部运作。 |
FASchemaVersion | 2 | Schema version. 未反映虚拟网络流日志版本。 |
FlowIntervalStartTime | 日期和时间 (UTC) | 流日志处理间隔的开始时间(计量流间隔的开始时间)。 |
FlowIntervalEndTime | 日期和时间 (UTC) | 流日志处理间隔的结束时间。 |
FlowType | - AzurePublic - ExternalPublic - MaliciousFlow |
请参阅注释了解定义。 |
IP | Public IP | 记录中提供信息的公共 IP。 |
PublicIPDetails | IP 信息 | 对于 AzurePublic IP:拥有 IP 的 Azure 服务,或者,对于 IP 168.63.129.16,则为 Microsoft 虚拟公共 IP。 ExternalPublic/恶意 IP:IP 的 WhoIS 信息。 |
ThreatType | 恶意 IP 带来的威胁 | 仅针对恶意 IP。 当前允许值列表中的一个威胁。 有关详细信息,请参阅注释。 |
DNSDomain | DNS domain | 仅针对恶意 IP。 与此 IP 相关的域名。 |
ThreatDescription | 威胁说明 | 仅针对恶意 IP。 恶意 IP 所造成威胁的说明。 |
Location | IP 位置 | 对于 Azure 公共 IP:IP 所属的虚拟网络/网络接口/虚拟机的 Azure 区域,或者,对于 IP 168.63.129.16,则为“全局”。 - 针对外部公共 IP 和恶意 IP:IP 位置的双字母国家/地区代码 (ISO 3166-1 alpha-2)。 |
Url | 对应于恶意 IP 的 URL | 仅针对恶意 IP。 |
Port | 对应于恶意 IP 的端口 | 仅针对恶意 IP。 |
Note
虚拟网络流日志中的 NTAIPDetails 取代了网络安全组流日志中使用的 AzureNetworkAnalyticsIPDetails_CL。
流量分析可以记录与恶意流的 IP 相关的任何恶意 FQDN。 若要筛选掉,请根据需要使用端口、URL 和域字段。
Threat types
下表列出了流量分析 IP 详细信息架构中字段当前允许的值 ThreatType
。
Value | Description |
---|---|
Botnet | 指示器详细介绍了僵尸网络节点/成员。 |
C2 | 指示器,详细介绍了僵尸网络的命令与控制节点。 |
CryptoMining | 涉及此网络地址/URL 的流量表示加密挖矿/资源滥用。 |
DarkNet | Darknet 节点/网络的指示器。 |
DDoS | 与有效或即将到来的 DDoS 活动相关的指示器。 |
MaliciousUrl | 服务于恶意软件的 URL。 |
Malware | 描述一个或多个恶意文件的指示器。 |
Phishing | 与网络钓鱼活动相关的指示器。 |
Proxy | 代理服务的指示器。 |
PUA | 可能多余的应用程序。 |
WatchList | 通用存储桶,当不能准确确定威胁的具体内容或需要手动解释时,将在其中放置指示器。 合作伙伴在将数据提交到系统时通常不应使用 WatchList 。 |
Notes
对于
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 网关或 Express Route 连接到虚拟网络的客户网络(站点)。 -
P2S
(点到站点):一个 IP 地址属于 Azure 虚拟网络,而另一个 IP 地址属于通过 VPN 网关连接到 Azure 虚拟网络的客户网络(站点)。 -
AzurePublic
:一个 IP 地址属于 Azure 虚拟网络,而另一个 IP 地址是 Microsoft 拥有的 Azure 公共 IP 地址。 客户拥有的公共 IP 地址不属于此流类型。 例如,将流量发送到 Azure 服务(存储终结点)的任何客户拥有的 VM 都将划分到此流类型。 -
ExternalPublic
:其中一个 IP 地址属于 Azure 虚拟网络,而另一个 IP 地址是一个公共 IP,既不属于 Azure,也不是客户拥有的订阅的一部分。该公共 IP 对流量分析可见,并且在流量分析处理时间间隔FlowIntervalStartTime_t
到FlowIntervalEndTime_t
期间,ASC 源中并未报告其为恶意。 -
MaliciousFlow
:其中一个 IP 地址属于 Azure 虚拟网络,而另一个 IP 地址则是 公共 IP,它既不归属于 Azure,也不是对流量分析可见的客户自有订阅的一部分,并且在FlowIntervalStartTime_t
和FlowIntervalEndTime_t
之间的处理间隔内流量分析使用的 ASC 源中报告为恶意。 -
UnknownPrivate
:一个 IP 地址属于 Azure 虚拟网络,而另一个 IP 地址属于 RFC 1918 中定义的专用 IP 范围,无法由流量分析映射到客户拥有的站点或 Azure 虚拟网络。 -
Unknown
:无法将流中的任一 IP 地址映射到 Azure 中的客户拓扑和本地(站点)。
Note
如果订阅包含配置给 Log Analytics 工作区的流日志,则该订阅对于该工作区中的流量分析可见。
-
Related content
- 若要详细了解流量分析,请参阅流量分析概述。
- 请参阅流量分析常见问题解答,以获取针对流量分析最常见问题的解答。