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 e FlowIntervalEndTime_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 e Transport 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 entre FlowIntervalStartTime_t e FlowIntervalEndTime_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/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

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 e ExternalPublic, o IP da máquina virtual do Azure de propriedade do cliente é populado no campo VMIP_s, enquanto os endereço IP Públicos são populados no campo PublicIPs_s. Para esses dois tipos de fluxo, você deve usar os campos VMIP_s e PublicIPs_s em vez de SrcIP_s e DestIP_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_ 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).