Agregação de dados e esquema de análise de tráfego
Análise de Tráfego é uma solução baseada em nuvem, que oferece visibilidade sobre atividade de usuário e aplicativo nas redes em nuvem. A análise de tráfego analisa os logs de fluxo do Observador de Rede do Azure para fornecer insights sobre o fluxo de tráfego em sua nuvem do Azure. Com a Análise de Tráfego, você pode:
- Visualizar a atividade de rede nas assinaturas do Azure e identificar pontos de acesso.
- Identificar ameaças à segurança e proteger sua rede com informações como portas abertas, aplicativos tentando acesso à internet e máquinas virtuais (VMs) conectando-se a redes não autorizadas.
- Compreender os padrões de fluxo de tráfego entre regiões do Azure e a internet para otimizar a implantação de rede para desempenho e capacidade.
- Identificar problemas de configuração de rede originando conexões com falha em sua rede.
- Conheça o uso da rede em bytes, pacotes ou fluxos.
Agregação de dados
- Todos os logs de fluxo em um grupo de segurança de rede entre
FlowIntervalStartTime_t
eFlowIntervalEndTime_t
são capturados em intervalos de um minuto como blobs em uma conta de armazenamento. - O intervalo de processamento padrão da análise de tráfego é de 60 minutos, o que significa que, a cada hora, a análise de tráfego escolhe blobs da conta de armazenamento para agregação. No entanto, se um intervalo de processamento de 10 minutos for selecionado, a análise de tráfego escolherá blobs da conta de armazenamento a cada 10 minutos.
- Os fluxos que têm o mesmo
Source IP
,Destination IP
,Destination port
,NSG name
,NSG rule
,Flow Direction
eTransport layer protocol (TCP or UDP)
são agrupados em um único fluxo pela análise de tráfego (Observação: a porta de origem é excluída para agregação). - Este registro único é decorado (detalhes na seção abaixo) e ingerido nos logs do Azure Monitor pela análise de tráfego. Esse processo pode levar até 1 hora.
- O campo
FlowStartTime_t
indica a primeira ocorrência desse fluxo agregado (mesma tupla de quatro) no intervalo de processamento do log de fluxo entreFlowIntervalStartTime_t
eFlowIntervalEndTime_t
. - Para qualquer recurso na análise de tráfego, os fluxos indicados no portal do Azure são fluxos totais vistos pelo grupo de segurança de rede, mas nos logs do Azure Monitor o usuário vê apenas o registro único, reduzido. Para ver todos os fluxos, use o campo
blob_id
, que pode ser referenciado do armazenamento. A contagem total de fluxo para esse registro corresponde aos fluxos individuais vistos no blob.
A consulta a seguir ajuda a examinar todas as sub-redes que interagem com IPs públicos não pertencentes ao Azure nos últimos 30 dias.
AzureNetworkAnalytics_CL
| where SubType_s == "FlowLog" and FlowStartTime_t >= ago(30d) and FlowType_s == "ExternalPublic"
| project Subnet1_s, Subnet2_s
Para exibir o caminho do blob para os fluxos na consulta anterior, use a consulta a seguir:
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
A consulta anterior constrói uma URL para acessar o blob diretamente. A URL com espaços reservados encontra-se a seguir:
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
Esquema de análise de tráfego
A análise é baseada nos logs do Azure Monitor, para que você possa executar consultas personalizadas em dados decorados pela análise de tráfego e definir alertas.
A tabela a seguir lista os campos no esquema e o que eles significam para logs de fluxo do grupo de segurança de rede.
Campo | Formatar | Comentários |
---|---|---|
TableName | AzureNetworkAnalytics_CL | Tabela para dados da análise de tráfego. |
SubType_s | FlowLog | Subtipo para os logs de fluxo. Use apenas FlowLog, outros valores de SubType_s são para uso interno. |
FASchemaVersion_s | 2 | Versão do esquema. Não reflete a versão do log de fluxo do grupo de segurança de rede. |
TimeProcessed_t | Data e hora em UTC | Hora em que a análise de tráfego processou os logs de fluxo brutos da conta de armazenamento. |
FlowIntervalStartTime_t | Data e hora em UTC | Hora inicial do intervalo de processamento do log de fluxo (tempo do qual o intervalo de fluxo é medido). |
FlowIntervalEndTime_t | Data e hora em UTC | Hora de término do intervalo de processamento do log de fluxo. |
FlowStartTime_t | Data e hora em UTC | Primeira ocorrência do fluxo (que é agregada) no intervalo de processamento do log de fluxo entre FlowIntervalStartTime_t e FlowIntervalEndTime_t . Esse fluxo é agregado com base na lógica de agregação. |
FlowEndTime_t | Data e hora em UTC | Última ocorrência do fluxo (que é agregada) no intervalo de processamento do log de fluxo entre FlowIntervalStartTime_t e FlowIntervalEndTime_t . Em termos de log de fluxo v2, esse campo contém a hora em que o último fluxo com a mesma tupla de quatro foi iniciado (marcado como B no registro de fluxo bruto). |
FlowType_s | - IntraVNet - InterVNet - S2S - P2S - AzurePublic - ExternalPublic - MaliciousFlow - Privado Desconhecido - Desconhecido |
Confira Anotações para obter definições. |
SrcIP_s | Endereço IP de origem | Em branco nos fluxos AzurePublic e ExternalPublic |
DestIP_s | Endereço IP de destino | Em branco nos fluxos AzurePublic e ExternalPublic |
VMIP_s | IP da VM | Usado para os fluxos AzurePublic e ExternalPublic. |
DestPort_d | Porta de destino | Porta na qual o tráfego é recebido. |
L4Protocol_s | - T - U |
Protocolo de transporte. T = TCP U = UDP. |
L7Protocol_s | Nome do protocolo | Derivado da porta de destino. |
FlowDirection_s | - I = Entrada - O = Saída |
Direção do fluxo: entrada ou saída do grupo de segurança de rede por log de fluxo. |
FlowStatus_s | - A = Permitido - D = Negado |
Status do fluxo permitido ou negado pelo grupo de segurança de rede por log de fluxo. |
NSGList_s | <SUBSCRIPTIONID>/<RESOURCEGROUP_NAME>/<NSG_NAME> | Grupo de segurança de rede associado ao fluxo. |
NSGRules_s | <Valor do índice 0>|<NSG_RULENAME>|<Direção do fluxo>|<Status do fluxo>|<FlowCount ProcessedByRule> | Regra do grupo de segurança de rede que permitiu ou negou esse fluxo. |
NSGRule_s | NSG_RULENAME | Regra do grupo de segurança de rede que permitiu ou negou esse fluxo. |
NSGRuleType_s | - Usuário Definido – Padrão |
O tipo de regra de grupo de segurança de rede usado pelo fluxo. |
MACAddress_s | Endereço MAC | Endereço MAC da NIC no qual o fluxo foi capturado. |
Subscription_g | A assinatura da rede virtual/interface de rede/máquina virtual do Azure é preenchida neste campo | Aplicável somente aos tipos de fluxo FlowType = S2S, P2S, AzurePublic, ExternalPublic, MaliciousFlow e UnknownPrivate (tipos de fluxo em que apenas um lado é o Azure). |
Subscription1_g | ID da assinatura | ID de assinatura da rede virtual/interface de rede/máquina virtual à qual o IP de origem no fluxo pertence. |
Subscription2_g | ID da assinatura | ID de assinatura da rede virtual/interface de rede/máquina virtual à qual o IP de destino no fluxo pertence. |
Region_s | Região do Azure da rede virtual/interface de rede/máquina virtual à qual o IP no fluxo pertence. | Aplicável somente aos tipos de fluxo FlowType = S2S, P2S, AzurePublic, ExternalPublic, MaliciousFlow e UnknownPrivate (tipos de fluxo em que apenas um lado é o Azure). |
Region1_s | Região do Azure | Região do Azure da rede virtual/interface de rede/máquina virtual à qual o IP de origem no fluxo pertence. |
Region2_s | Região do Azure | Região do Azure da rede virtual à qual o IP de destino no fluxo pertence. |
NIC_s | <resourcegroup_Name>/<NetworkInterfaceName> | NIC associada à VM que envia ou recebe o tráfego. |
NIC1_s | <resourcegroup_Name>/<NetworkInterfaceName> | NIC associada ao IP de origem no fluxo. |
NIC2_s | <resourcegroup_Name>/<NetworkInterfaceName> | NIC associada ao IP de destino no fluxo. |
VM_s | <resourcegroup_Name>/<NetworkInterfaceName> | Máquina virtual associada à interface de rede NIC_s. |
VM1_s | <resourcegroup_Name>/<VirtualMachineName> | Máquina virtual associada ao IP de origem no fluxo. |
VM2_s | <resourcegroup_Name>/<VirtualMachineName> | Máquina virtual associada ao IP de destino no fluxo. |
Subnet_s | <ResourceGroup_Name>/<VirtualNetwork_Name>/<SubnetName> | Sub-rede associada ao NIC_s. |
Subnet1_s | <ResourceGroup_Name>/<VirtualNetwork_Name>/<SubnetName> | Sub-rede associada ao IP de origem no fluxo. |
Subnet2_s | <ResourceGroup_Name>/<VirtualNetwork_Name>/<SubnetName> | Sub-rede associada ao IP de destino no fluxo. |
ApplicationGateway1_s | <SubscriptionID>/<ResourceGroupName>/<ApplicationGatewayName> | Gateway de aplicativo associado ao IP de origem no fluxo. |
ApplicationGateway2_s | <SubscriptionID>/<ResourceGroupName>/<ApplicationGatewayName> | Gateway de aplicativo associado ao IP de destino no fluxo. |
ExpressRouteCircuit1_s | <SubscriptionID>/<ResourceGroupName>/<ExpressRouteCircuitName> | ID do circuito do ExpressRoute: quando o fluxo é enviado a partir do site por meio do ExpressRoute. |
ExpressRouteCircuit2_s | <SubscriptionID>/<ResourceGroupName>/<ExpressRouteCircuitName> | ID do circuito do ExpressRoute: quando o fluxo é recebido da nuvem pelo ExpressRoute. |
ExpressRouteCircuitPeeringType_s | - AzurePrivatePeering - AzurePublicPeering - MicrosoftPeering |
Tipo de peering do ExpressRoute envolvido no fluxo. |
LoadBalancer1_s | <SubscriptionID>/<ResourceGroupName>/<LoadBalancerName> | Balanceador de carga associado ao IP de origem no fluxo. |
LoadBalancer2_s | <SubscriptionID>/<ResourceGroupName>/<LoadBalancerName> | Balanceador de carga associado ao IP de destino no fluxo. |
LocalNetworkGateway1_s | <SubscriptionID>/<ResourceGroupName>/<LocalNetworkGatewayName> | Gateway de rede local associado ao IP de origem no fluxo. |
LocalNetworkGateway2_s | <SubscriptionID>/<ResourceGroupName>/<LocalNetworkGatewayName> | Gateway de rede local associado ao IP de destino no fluxo. |
ConnectionType_s | - VNetPeering - VpnGateway - ExpressRoute |
O tipo de conexão. |
ConnectionName_s | <SubscriptionID>/<ResourceGroupName>/<ConnectionName> | O Nome da conexão. Para o tipo de fluxo P2S, o formato é <nome do gateway>_<IP do cliente VPN>. |
ConnectingVNets_s | Lista separada por espaços de nomes da rede virtual | No caso de topologia hub e spoke, as redes virtuais de hub são preenchidas aqui. |
Country_s | O código de duas letras do país (ISO 3166-1 alpha-2) | Preenchido para o tipo de fluxo ExternalPublic. Todos os endereços IP no campo PublicIPs_s compartilham o mesmo código de país/região. |
AzureRegion_s | Locais da região do Azure | Preenchido para o tipo de fluxo AzurePublic. Todos os endereços IP no campo PublicIPs_s compartilham a região do Azure. |
AllowedInFlows_d | Contagem de fluxos de entrada permitidos, que representa o número de fluxos que compartilharam a mesma entrada de quatro tuplas para a interface de rede na qual o fluxo foi capturado. | |
DeniedInFlows_d | Contagem de fluxos de entrada negados. (Entrada para o adaptador de rede no qual o fluxo foi capturado). | |
AllowedOutFlows_d | Contagem de fluxos de saída permitidos (Saída para o adaptador de rede no qual o fluxo foi capturado). | |
DeniedOutFlows_d | Contagem de fluxos de saída negados (Saída para o adaptador de rede no qual o fluxo foi capturado). | |
FlowCount_d | Preterido. Total de fluxos que corresponderam à mesma tupla de quatro. No caso de tipos de fluxo ExternalPublic e AzurePublic, a contagem inclui também os fluxos de vários endereços de PublicIP. | |
InboundPackets_d | Representa os pacotes enviados do destino para a origem do fluxo | Populado somente para a versão 2 do esquema de log de fluxo do grupo de segurança de rede. |
OutboundPackets_d | Representa os pacotes enviados da origem para o destino do fluxo | Populado somente para a versão 2 do esquema de log de fluxo do grupo de segurança de rede. |
InboundBytes_d | Representa os bytes enviados do destino para a origem do fluxo | Populado somente para a versão 2 do esquema de log de fluxo do grupo de segurança de rede. |
OutboundBytes_d | Representa os bytes enviados da origem para o destino do fluxo | Populado somente para a versão 2 do esquema de log de fluxo do grupo de segurança de rede. |
CompletedFlows_d | Populado com valor diferente de zero apenas para a versão 2 do esquema de log de fluxo do grupo de segurança de rede. | |
PublicIPs_s | <PUBLIC_IP>|<FLOW_STARTED_COUNT>|<FLOW_ENDED_COUNT>|<OUTBOUND_PACKETS>|<INBOUND_PACKETS>|<OUTBOUND_BYTES>|<INBOUND_BYTES> | Entradas separadas por barras. |
SrcPublicIPs_s | <SOURCE_PUBLIC_IP>|<FLOW_STARTED_COUNT>|<FLOW_ENDED_COUNT>|<OUTBOUND_PACKETS>|<INBOUND_PACKETS>|<OUTBOUND_BYTES>|<INBOUND_BYTES> | Entradas separadas por barras. |
DestPublicIPs_s | <DESTINATION_PUBLIC_IP>|<FLOW_STARTED_COUNT>|<FLOW_ENDED_COUNT>|<OUTBOUND_PACKETS>|<INBOUND_PACKETS>|<OUTBOUND_BYTES>|<INBOUND_BYTES> | Entradas separadas por barras. |
IsFlowCapturedAtUDRHop_b | - Verdade - False |
Se o fluxo foi capturado em um salto de UDR, o valor será True. |
Importante
O esquema de análise de tráfego foi atualizado em 22 de agosto de 2019. O novo esquema fornece IPs de origem e de destino separadamente, removendo a necessidade de analisar o campo FlowDirection
para que as consultas sejam mais simples. O esquema atualizado teve as seguintes alterações:
FASchemaVersion_s
atualizado de 1 para 2.- Campos preteridos:
VMIP_s
,Subscription_g
,Region_s
,NSGRules_s
,Subnet_s
,VM_s
,NIC_s
,PublicIPs_s
,FlowCount_d
- Novos campos:
SrcPublicIPs_s
,DestPublicIPs_s
,NSGRule_s
Esquema de detalhes de IP público
A Análise de Tráfego fornece dados de whois e localização geográfica para todos os IPs públicos no seu ambiente. Para IP mal-intencionado, a análise de tráfego fornece o domínio DNS, o tipo de ameaça e as descrições do thread, identificados pelas soluções de inteligência de segurança da Microsoft. Os detalhes do IP são publicados no workspace da Análise de Logs para que você possa criar consultas personalizadas e colocar alertas nelas. Você também pode acessar consultas já preenchidas no painel de análise de tráfego.
A tabela a seguir detalha o esquema de IP público:
Campo | Formatar | Comentários |
---|---|---|
TableName | AzureNetworkAnalyticsIPDetails_CL | Tabela que contém os dados de detalhes de IP da análise de tráfego. |
SubType_s | FlowLog | Subtipo para os logs de fluxo. Use apenas "FlowLog", outros valores de SubType_s são para o funcionamento interno do produto. |
FASchemaVersion_s | 2 | Versão do esquema. Não reflete a versão do log de fluxo do grupo de segurança de rede. |
FlowIntervalStartTime_t | Data e hora em UTC | Hora inicial do intervalo de processamento do log de fluxo (tempo do qual o intervalo de fluxo é medido). |
FlowIntervalEndTime_t | Data e hora em UTC | Hora de término do intervalo de processamento do log de fluxo. |
FlowType_s | - AzurePublic - ExternalPublic - MaliciousFlow |
Confira Anotações para obter definições. |
IP | IP público | IP público cujas informações são fornecidas no registro. |
Localização | Local do IP | – Para o IP público do Azure: a região do Azure da rede virtual, do adaptador de rede ou da máquina virtual à qual o IP pertence OU global para o IP 168.63.129.16. – Para IP público externo e IP mal-intencionado: Código do país de duas letras no qual o IP está localizado (ISO 3166-1 alpha-2). |
PublicIPDetails | Informações sobre IP | - Para o IP do AzurePublic: serviço do Azure que possui o IP OU "IP público virtual da Microsoft" do IP 168.63.129.16. – IP ExternalPublic/Mal-intencionado: Informações sobre WhoIS do IP. |
ThreatType | Ameaça apresentada por IP mal-intencionado | Somente para IPs mal-intencionados: Uma das ameaças da lista de valores permitidos no momento (descritas na próxima tabela). |
ThreatDescription | Descrição da ameaça | Somente para IPs mal-intencionados. Descrição da ameaça apresentada pelo IP mal-intencionado. |
DNSDomain | Domínio DNS | Somente para IPs mal-intencionados. O nome de domínio associado ao IP mal-intencionado. |
URL | URL correspondente ao IP mal-intencionado | Somente para IPs mal-intencionados. |
Porta | Porta correspondente ao IP mal-intencionado | Somente para IPs mal-intencionados. |
Lista de tipos de ameaça:
Valor | Descrição |
---|---|
Botnet | Indicador detalhando um nó ou membro de botnet. |
C2 | Indicador detalhando um nó de comando e controle de um botnet. |
CryptoMining | O tráfego que envolve esse endereço de rede ou URL é uma indicação de abuso de CyrptoMining ou de recurso. |
DarkNet | O indicador de um nó ou uma rede Darknet. |
DDoS | Indicadores relacionados a uma campanha de DDoS ativa ou futura. |
MaliciousUrl | URL que está atendendo o malware. |
Malware | Indicador que descreve um arquivo ou arquivos mal-intencionados. |
Phishing | Indicadores relacionados a uma campanha de phishing. |
Proxy | O indicador de um serviço proxy. |
PUA | Aplicativo Potencialmente Indesejado. |
WatchList | Um bucket genérico no qual os indicadores são colocados quando não é possível determinar exatamente qual é a ameaça ou quando há necessidade de interpretação manual. WatchList não deve ser usada pelos parceiros que enviam dados ao sistema. |
Observações
- No caso de fluxos de
AzurePublic
eExternalPublic
, o IP da máquina virtual do Azure de propriedade do cliente é populado no campoVMIP_s
, enquanto os endereço IP Públicos são populados no campoPublicIPs_s
. Para esses dois tipos de fluxo, você deve usar os camposVMIP_s
ePublicIPs_s
em vez deSrcIP_s
eDestIP_s
. Para endereços IP AzurePublic e ExternalPublic, agregamos ainda mais, para que o número de registros ingeridos no workspace do Log Analytics seja mínimo. (Este campo será preterido. Use SrcIP_s e DestIP_s dependendo se a máquina virtual era a origem ou o destino no fluxo). - Alguns nomes de campo são acrescentados com
_s
ou_d
, que não significam origem e destino, mas indicam os tipos de dados cadeia de caracteres e decimal, respectivamente. - Com base nos endereços IP envolvidos no fluxo, categorizamos os fluxos entre os seguintes tipos de fluxo:
IntraVNet
: Ambos os endereços IP no fluxo residem na mesma rede virtual do Azure.InterVNet
: Os endereços IP no fluxo residem nas duas redes virtuais do Azure diferentes.S2S
(site a site): Um dos endereços IP pertence à rede virtual do Azure enquanto o outro endereço IP pertence à rede do cliente (site) conectada à rede virtual do Azure por meio do gateway de VPN ou da Rota Expressa.P2S
(ponto a site): Um dos endereços IP pertence à rede virtual do Azure enquanto o outro endereço IP pertence à rede do cliente (site) conectada à Rede Virtual do Azure por meio do gateway de VPN.AzurePublic
: Um dos endereços IP pertence a uma rede virtual do Azure, enquanto o outro endereço IP é um endereço IP público do Azure pertencente à Microsoft. Os endereços IP públicos de propriedade do cliente não fazem parte desse tipo de fluxo. Por exemplo, qualquer VM de propriedade do cliente que envie tráfego a um Serviço do Azure (ponto de extremidade do Armazenamento) será categorizada sob esse tipo de fluxo.ExternalPublic
: Um dos endereços IP pertence a uma rede birtual do Azure, enquanto o outro endereço IP é um IP público que não é do Azure, não é relatado como mal-intencionado nos feeds ASC que a análise de tráfego consome para o intervalo de processamento entre “FlowIntervalStartTime_t” e “FlowIntervalEndTime_t”.MaliciousFlow
: Um dos endereços IP pertence a uma rede virtual do Azure, enquanto o outro endereço IP é um IP público que não está no Azure e é relatado como mal-intencionado nos feeds do ASC que a Análise de Tráfego consome para o intervalo de processamento entre “FlowIntervalStartTime_t” e “FlowIntervalEndTime_t”.UnknownPrivate
: Um dos endereços IP pertence a uma rede Virtual do Azure enquanto o outro endereço IP pertence ao intervalo de IP privado, conforme definido no RFC 1918, e não pôde ser mapeado pela análise de tráfego até um site de propriedade do cliente ou até uma rede virtual do Azure.Unknown
: Não é possível mapear um dos endereços IP nos fluxos com a topologia do cliente no Azure e no local (site).
Conteúdo relacionado
- Para saber mais sobre análise de tráfego, confira Visão geral da análise de tráfego.
- Confira Perguntas frequentes sobre análise de tráfego para obter respostas às perguntas mais frequentes sobre análise de tráfego.