Agrégation de schémas et de données dans Azure Network Watcher Traffic Analytics

Traffic Analytics est une solution cloud qui offre une visibilité de l’activité des utilisateurs et des applications dans vos réseaux cloud. Traffic Analytics analyse les journaux de flux d’Azure Network Watcher pour fournir des insights sur le flux de trafic dans votre cloud Azure. Avec Traffic Analytics, vous pouvez effectuer les actions suivantes :

  • Visualiser l’activité réseau de l’ensemble de vos abonnements Azure et identifier les zones réactives.
  • Identifier les menaces de sécurité, et sécuriser votre réseau avec des informations comme les ports ouverts, les applications qui tentent d’accéder à Internet et les machines virtuelles se connectant à des réseaux non fiables.
  • Comprendre les modèles de flux de trafic entre les régions Azure et Internet pour optimiser le déploiement de votre réseau, afin de bénéficier de performances et d’une capacité adéquates.
  • Identifier les erreurs de configuration réseau à l’origine d’échecs de connexion dans votre réseau.
  • Connaître la consommation du réseau en octets, paquets ou flux.

Agrégation de données

  • Tous les journaux de flux au sein d’un groupe de sécurité réseau entre FlowIntervalStartTime_t et FlowIntervalEndTime_t sont capturés à des intervalles d’une minute en tant qu’objets blob dans un compte de stockage.
  • L’intervalle de traitement par défaut de Traffic Analytics est de 60 minutes, ce qui signifie que chaque heure, Traffic Analytics sélectionne des objets blob à partir du compte de stockage pour l’agrégation. Cependant, si un intervalle de traitement de 10 minutes est sélectionné, Traffic Analytics sélectionne plutôt des objets blob à partir du compte de stockage toutes les 10 minutes.
  • Les flux qui ont le même Source IP, Destination IP, Destination port, NSG name, NSG rule, Flow Direction, et Transport layer protocol (TCP or UDP) sont regroupés en un flux unique par l’analyse du trafic (remarque : le port source n’est pas inclus dans l’agrégation).
  • Cet enregistrement unique est décoré (voir les détails dans la section ci-dessous) et ingéré dans les journaux Azure Monitor par l’analyse du trafic. Ce processus peut prendre jusqu’à 1 heure.
  • Le champ FlowStartTime_t indique la première occurrence de ce type de flux agrégé (même tuple de quatre éléments) dans l’intervalle de traitement des journaux de flux entre FlowIntervalStartTime_t et FlowIntervalEndTime_t.
  • Pour les ressources dans l’analyse du trafic, les flux indiqués dans le portail Azure correspondent à tous les flux vus par le groupe de sécurité réseau. Toutefois, dans les journaux Azure Monitor, l’utilisateur voit uniquement l’enregistrement unique réduit. Pour voir tous les flux, utilisez le champ blob_id, qui peut être référencé à partir du stockage. Le nombre total de flux pour cet enregistrement correspond aux flux individuels visibles dans l’objet blob.

La requête suivante vous aide à examiner tous les sous-réseaux qui interagissent avec des adresses IP publiques non-Azure au cours des 30 derniers jours.

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

Pour afficher le chemin d’accès de l’objet blob pour les flux dans la requête précédente, utilisez la requête suivante :

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

La requête précédente construit une URL permettant d’accéder directement à l’objet blob. Vous trouverez l’URL avec des espaces réservés comme suit :

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

Schéma Traffic Analytics

L’analyse du trafic est basée sur les journaux Azure Monitor, ce qui vous permet d’exécuter des requêtes personnalisées sur les données décorées par l’analyse du trafic et de définir des alertes.

Le tableau suivant liste les champs du schéma et leur signification pour les journaux de flux NSG.

Champ Format Commentaires
TableName AzureNetworkAnalytics_CL Table des données Traffic Analytics.
SubType_s FlowLog Sous-type des journaux de flux. Utilisez uniquement FlowLog. Les autres valeurs de SubType_s sont destinées à une utilisation en interne.
FASchemaVersion_s 2 Version du schéma. Ne reflète pas la version des journaux de flux de NSG.
TimeProcessed_t Date et heure (UTC) Date et heure auxquelles Traffic Analytics a traité les journaux de flux bruts issus du compte de stockage.
FlowIntervalStartTime_t Date et heure (UTC) Heure de début de l’intervalle de traitement des journaux de flux (heure à partir de laquelle l’intervalle de flux est mesuré).
FlowIntervalEndTime_t Date et heure (UTC) Date et heure de fin de l’intervalle de traitement des journaux de flux.
FlowStartTime_t Date et heure (UTC) Première occurrence du flux (qui sera ensuite agrégé) dans l’intervalle de traitement des journaux de flux entre FlowIntervalStartTime_t et FlowIntervalEndTime_t. Ce flux est agrégé selon une logique d’agrégation.
FlowEndTime_t Date et heure (UTC) Dernière occurrence du flux (qui sera ensuite agrégé) dans l’intervalle de traitement des journaux de flux entre FlowIntervalStartTime_t et FlowIntervalEndTime_t. Pour les journaux de flux version 2, ce champ contient la date et l’heure à laquelle a démarré le dernier flux ayant le même jeu de quatre tuples (signalé par la lettre B dans l’enregistrement de flux bruts)
FlowType_s - IntraVNet
- InterVNet
- S2S
- P2S
- AzurePublic
- ExternalPublic
- MaliciousFlow
- Inconnu privé
- Inconnu
Pour voir les définitions, consultez Remarques.
SrcIP_s Adresse IP source Espace vide utilisé pour les flux AzurePublic et ExternalPublic.
DestIP_s Adresse IP de destination Espace vide utilisé pour les flux AzurePublic et ExternalPublic.
VMIP_s Adresse IP de la machine virtuelle Champ utilisé pour les flux AzurePublic et ExternalPublic.
DestPort_d Port de destination Port utilisé pour le trafic entrant.
L4Protocol_s - T
– U
Protocole de transport. T = TCP
U = UDP.
L7Protocol_s Nom du protocole Dérivé du port de destination.
FlowDirection_s - I = Entrant
– O = Sortant
Direction du flux : entrant ou sortant du groupe de sécurité réseau par journal de flux.
FlowStatus_s - A = Autorisé
– D = Refusé
État du flux, qu’il soit autorisé ou refusé par le groupe de sécurité réseau par journal de flux.
NSGList_s <SUBSCRIPTIONID>/<RESOURCEGROUP_NAME>/<NSG_NAME> Groupe de sécurité réseau associé au flux.
NSGRules_s <Valeur d'index 0>|<NSG_RULENAME>|<Direction du flux>|<État du flux>|<FlowCount ProcessedByRule> Règle de groupe de sécurité réseau qui a autorisé ou refusé ce flux.
NSGRule_s NSG_RULENAME Règle de groupe de sécurité réseau qui a autorisé ou refusé ce flux.
NSGRuleType_s - Défini par l’utilisateur
- Default
Type de règle de groupe de sécurité réseau utilisée par le flux.
MACAddress_s Adresse MAC Adresse MAC de la carte réseau à laquelle le flux a été capturé.
Subscription_g L’abonnement pour le réseau virtuel, pour l’interface réseau ou pour la machine virtuelle Azure est renseigné dans ce champ Applicable uniquement pour les types de flux S2S, P2S, AzurePublic, ExternalPublic, MaliciousFlow et UnknownPrivate (types de flux où seul un côté est Azure).
Subscription1_g Identifiant d’abonnement ID d’abonnement pour le réseau virtuel, l’interface réseau ou la machine virtuelle dont fait partie l’adresse IP source dans le flux.
Subscription2_g Identifiant d’abonnement ID d’abonnement pour le réseau virtuel, l’interface réseau ou la machine virtuelle dont fait partie l’adresse IP de destination dans le flux.
Région_s Région Azure pour le réseau virtuel, l’interface réseau ou la machine virtuelle dont fait partie l’adresse IP dans le flux. Applicable uniquement pour les types de flux S2S, P2S, AzurePublic, ExternalPublic, MaliciousFlow et UnknownPrivate (types de flux où seul un côté est Azure).
Region1_s Région Azure Région Azure pour le réseau virtuel, l’interface réseau ou la machine virtuelle dont fait partie l’adresse IP source dans le flux.
Region2_s Région Azure Région Azure du réseau virtuel dont fait partie l’adresse IP de destination dans le flux.
NIC_s <resourcegroup_Name>/<NetworkInterfaceName> Carte réseau associée à la machine virtuelle qui envoie ou reçoit le trafic.
NIC1_s <resourcegroup_Name>/<NetworkInterfaceName> Carte réseau associée à l’adresse IP source dans le flux.
NIC2_s <resourcegroup_Name>/<NetworkInterfaceName> Carte réseau associée à l’adresse IP de destination dans le flux.
VM_s <resourcegroup_Name>/<NetworkInterfaceName> Machine virtuelle associée à l’interface réseau NIC_s.
VM1_s <resourcegroup_Name>/<VirtualMachineName> Machine virtuelle associée à l’adresse IP source dans le flux.
VM2_s <resourcegroup_Name>/<VirtualMachineName> Machine virtuelle associée à l’adresse IP de destination dans le flux.
Subnet_s <ResourceGroup_Name>/<VirtualNetwork_Name>/<SubnetName> Sous-réseau associé à NIC_s.
Subnet1_s <ResourceGroup_Name>/<VirtualNetwork_Name>/<SubnetName> Sous-réseau associé à l’adresse IP source dans le flux.
Subnet2_s <ResourceGroup_Name>/<VirtualNetwork_Name>/<SubnetName> Sous-réseau associé à l’adresse IP de destination dans le flux.
ApplicationGateway1_s <SubscriptionID>/<ResourceGroupName>/<ApplicationGatewayName> Passerelle d’application associée à l’adresse IP source dans le flux.
ApplicationGateway2_s <SubscriptionID>/<ResourceGroupName>/<ApplicationGatewayName> Passerelle d’application associée à l’adresse IP de destination dans le flux.
ExpressRouteCircuit1_s <SubscriptionID>/<ResourceGroupName>/<ExpressRouteCircuitName> ID de circuit ExpressRoute : quand le flux est envoyé à partir du site via ExpressRoute.
ExpressRouteCircuit2_s <SubscriptionID>/<ResourceGroupName>/<ExpressRouteCircuitName> ID de circuit ExpressRoute : quand le flux est reçu du cloud par ExpressRoute.
ExpressRouteCircuitPeeringType_s - AzurePrivatePeering
- AzurePublicPeering
- MicrosoftPeering
Type de peering ExpressRoute impliqué dans le flux.
LoadBalancer1_s <SubscriptionID>/<ResourceGroupName>/<LoadBalancerName> Équilibreur de charge associé à l’adresse IP source dans le flux.
LoadBalancer2_s <SubscriptionID>/<ResourceGroupName>/<LoadBalancerName> Équilibreur de charge associé à l’adresse IP de destination dans le flux.
LocalNetworkGateway1_s <SubscriptionID>/<ResourceGroupName>/<LocalNetworkGatewayName> Passerelle de réseau local associée à l’adresse IP source dans le flux.
LocalNetworkGateway2_s <SubscriptionID>/<ResourceGroupName>/<LocalNetworkGatewayName> Passerelle de réseau local associée à l’adresse IP de destination dans le flux.
ConnectionType_s - VNetPeering
- VpnGateway
- ExpressRoute
Type de connexion.
ConnectionName_s <SubscriptionID>/<ResourceGroupName>/<ConnectionName> Nom de la connexion. Pour le type de flux P2S, le format est <nom de passerelle>_<IP du client VPN>.
ConnectingVNets_s Liste de noms de réseau virtuel séparés par un espace Dans une topologie hub-and-spoke, les réseaux virtuels du hub sont renseignés ici.
Country_s Code de pays à deux lettres (ISO 3166-1 alpha-2) Champ rempli pour le type de flux ExternalPublic. Toutes les adresses IP indiquées dans le champ PublicIPs_s ont le même code de pays.
AzureRegion_s Emplacements de la région Azure Champ rempli pour le type de flux AzurePublic. Toutes les adresses IP indiquées dans le champ PublicIPs_s se trouvent dans la même région Azure.
AllowedInFlows_d Nombre de flux entrants qui ont été autorisés. Cela représente le nombre de flux entrants ayant utilisé le même jeu de quatre tuples sur l’interface réseau où les flux ont été capturés.
DeniedInFlows_d Nombre de flux entrants ayant été refusés. (Flux entrants sur l’interface réseau où les flux ont été capturés).
AllowedOutFlows_d Nombre de flux sortants ayant été autorisés. (Flux sortants sur l’interface réseau où les flux ont été capturés).
DeniedOutFlows_d Nombre de flux sortants ayant été refusés. (Flux sortants sur l’interface réseau où les flux ont été capturés).
FlowCount_d Action déconseillée. Total des flux ayant utilisé le même tuple de quatre éléments. Pour les types de flux ExternalPublic et AzurePublic, ce nombre inclut également les flux provenant de différentes adresses PublicIP.
InboundPackets_d Représente les paquets envoyés de la destination à la source du flux Renseigné uniquement pour la version 2 du schéma des journaux de flux de NSG.
OutboundPackets_d Représente les paquets envoyés de la source à la destination du flux Renseigné uniquement pour la version 2 du schéma des journaux de flux de NSG.
InboundBytes_d Représente les octets envoyés de la destination à la source du flux Renseigné uniquement pour la version 2 du schéma des journaux de flux de NSG.
OutboundBytes_d Représente les octets envoyés de la source à la destination du flux Renseigné uniquement pour la version 2 du schéma des journaux de flux de NSG.
CompletedFlows_d Renseigné avec une valeur différente de zéro uniquement pour la version 2 du schéma des journaux de flux de NSG.
PublicIPs_s <PUBLIC_IP>|<FLOW_STARTED_COUNT>|<FLOW_ENDED_COUNT>|<OUTBOUND_PACKETS>|<INBOUND_PACKETS>|<OUTBOUND_BYTES>|<INBOUND_BYTES> Entrées séparées par des barres.
SrcPublicIPs_s <SOURCE_PUBLIC_IP>|<FLOW_STARTED_COUNT>|<FLOW_ENDED_COUNT>|<OUTBOUND_PACKETS>|<INBOUND_PACKETS>|<OUTBOUND_BYTES>|<INBOUND_BYTES> Entrées séparées par des barres.
DestPublicIPs_s <DESTINATION_PUBLIC_IP>|<FLOW_STARTED_COUNT>|<FLOW_ENDED_COUNT>|<OUTBOUND_PACKETS>|<INBOUND_PACKETS>|<OUTBOUND_BYTES>|<INBOUND_BYTES> Entrées séparées par des barres.
IsFlowCapturedAtUDRHop_b - Vrai
- False
Si le flux a été capturé au niveau d’un tronçon UDR, la valeur est Vraie.

Important

Le schéma de Traffic Analytics a été mis à jour le 22 août 2019. Le nouveau schéma fournit les adresses IP source et de destination séparément, ce qui élimine la nécessité d’analyser le champ FlowDirection et simplifie les requêtes. Le schéma mis à jour a subi les modifications suivantes :

  • FASchemaVersion_s mis à jour de 1 vers 2.
  • Champs dépréciés : VMIP_s, Subscription_g, Region_s, NSGRules_s, Subnet_s, VM_s, NIC_s, PublicIPs_s, FlowCount_d
  • Nouveaux champs : SrcPublicIPs_s, DestPublicIPs_s, NSGRule_s

Schéma des détails de l’adresse IP publique

Traffic Analytics fournit des données WHOIS et l’emplacement géographique de toutes les adresses IP publiques dans votre environnement. Pour les adresses IP malveillantes, Traffic Analytics fournit un domaine DNS, un type de menace et des descriptions de threads tels qu’identifiés par les solutions d’aide à la sécurité de Microsoft. Les détails IP sont publiés dans votre espace de travail Log Analytics afin que vous puissiez créer des requêtes personnalisées et y placer des alertes. Vous pouvez également accéder à des requêtes préremplies à partir du tableau de bord Traffic Analytics.

Le tableau suivant détaille le schéma de l’adresse IP publique :

Champ Format Commentaires
TableName AzureNetworkAnalyticsIPDetails_CL Table contenant les données d’adresse IP de Traffic Analytics.
SubType_s FlowLog Sous-type des journaux de flux. Utilisez uniquement « FlowLog ». Les autres valeurs de SubType_s sont destinées au fonctionnement interne du produit.
FASchemaVersion_s 2 Version du schéma. Ne reflète pas la version des journaux de flux de NSG.
FlowIntervalStartTime_t Date et heure (UTC) Heure de début de l’intervalle de traitement des journaux de flux (heure à partir de laquelle l’intervalle de flux est mesuré).
FlowIntervalEndTime_t Date et heure (UTC) Date et heure de fin de l’intervalle de traitement des journaux de flux.
FlowType_s - AzurePublic
- ExternalPublic
- MaliciousFlow
Pour voir les définitions, consultez Remarques.
IP Adresse IP publique Adresse IP publique dont les informations sont fournies dans l’enregistrement.
Emplacement Emplacement de l’adresse IP - Pour Adresse IP publique Azure : région Azure du réseau virtuel, de l’interface réseau ou de la machine virtuelle auxquels l’adresse IP appartient, OU Globale pour l’adresse IP 168.63.129.16.
- Pour l’adresse IP publique externe et l’adresse IP malveillante : code de pays à 2 lettres où l’adresse IP est située (ISO 3166-1 alpha-2).
PublicIPDetails Informations sur l’adresse IP - Pour AzurePublic IP : service Azure possédant l’adresse IP ou Adresse IP publique virtuelle Microsoft pour 168.63.129.16.
- Adresse IP publique externe/adresse IP malveillante : informations WhoIS de l’adresse IP.
ThreatType Menace posée par une adresse IP malveillante Pour les adresses IP malveillantes uniquement : une des menaces de la liste des valeurs actuellement autorisées (décrite dans le tableau suivant).
ThreatDescription Description de la menace Pour les adresses IP malveillantes uniquement : description de la menace posée par l’adresse IP malveillante.
DNSDomain Domaine DNS Pour les adresses IP malveillantes uniquement : nom de domaine associé à cette adresse IP.

Liste des types de menaces :

Valeur Description
Botnet Indicateur détaillant un nœud/membre de botnet.
C2 Indicateur détaillant un nœud Commande &Contrôle d’un botnet.
CryptoMining Le trafic impliquant cette adresse réseau/URL est une indication de l’abus de CyrptoMining/de ressources.
DarkNet Indicateur d’un nœud/réseau darknet.
DDos Indicateurs relatifs à une campagne DDoS active ou à venir.
MaliciousUrl URL de service malveillant.
Programme malveillant Indicateur décrivant un fichier ou des fichiers malveillants.
Hameçonnage Indicateurs relatifs à une campagne de hameçonnage.
Proxy Indicateur d’un service de proxy.
PUA Potentially Unwanted Application.
Liste de surveillance Compartiment générique dans lequel les indicateurs sont placés lorsqu’il est impossible de déterminer exactement ce que la menace est ou lorsque celle-ci nécessite une interprétation manuelle. WatchList ne doit généralement pas être utilisé par les partenaires qui envoient des données dans le système.

Notes

  • En cas de flux AzurePublic et ExternalPublic, l’adresse IP de la machine virtuelle Azure détenue par le client est renseignée dans le champ VMIP_s, alors que les adresses IP publiques sont renseignées dans le champ PublicIPs_s. Pour ces deux types de flux, vous devez utiliser les champs VMIP_s etPublicIPs_s au lieu des champs SrcIP_s etDestIP_s. Pour les adresses IP AzurePublic et ExternalPublic, nous agrégeons davantage pour que le nombre d’enregistrements ingérés dans l’espace de travail Log Analytics soit minimal. (Ce champ sera bientôt déconseillé et vous devez utiliser SrcIP_ et DestIP_s selon que la machine virtuelle était la source ou la destination dans le flux).
  • Certains noms de champs sont ajoutés à _s ou _d, qui ne signifient pas la source et la destination, mais indiquent respectivement les types de données chaîne et décimal.
  • Sur la base des adresses IP impliquées dans les flux, nous classons les flux dans les types de flux suivants :
    • IntraVNet : les deux adresses IP dans le flux se trouvent dans le même réseau virtuel Azure.
    • InterVNet : les adresses IP dans le flux se trouvent dans deux réseaux virtuels Azure différents.
    • S2S (Site à site) : l’une des adresses IP fait partie du réseau virtuel Azure tandis que l’autre adresse IP fait partie du réseau client (Site) qui est connecté au réseau virtuel par le biais d’une passerelle VPN ou Express Route.
    • P2S (Point à site) : l’une des adresses IP fait partie du réseau virtuel Azure tandis que l’autre adresse IP fait partie du réseau client (Site) qui est connecté au réseau virtuel Azure par le biais d’une passerelle VPN.
    • AzurePublic: l’une des adresses IP appartient à un réseau virtuel Azure, tandis que l’autre adresse IP est une adresse IP publique Azure appartenant à Microsoft. Les adresses IP publiques détenues par un client ne font pas partie de ce type de flux. Par exemple, le trafic envoyé à partir d’une machine virtuelle d’un client vers un service Azure (point de terminaison de stockage) est classé dans ce type de flux.
    • ExternalPublic : l’une des adresses IP fait partie d’un réseau virtuel Azure tandis que l’autre adresse IP fait partie d’une adresse IP publique externe à Azure qui n’est pas signalée comme étant malveillante dans les flux ASC consommés par Traffic Analytics dans l’intervalle de traitement entre « FlowIntervalStartTime_t » et « FlowIntervalEndTime_t ».
    • MaliciousFlow : l’une des adresses IP fait partie d’un réseau virtuel Azure tandis que l’autre adresse IP fait partie d’une adresse IP publique externe à Azure qui est signalée comme étant malveillante dans les flux ASC consommés par Traffic Analytics dans l’intervalle de traitement entre « FlowIntervalStartTime_t » et « FlowIntervalEndTime_t ».
    • UnknownPrivate : l’une des adresses IP fait partie d’un réseau virtuel Azure tandis que l’autre adresse IP fait partie de la plage d’adresses IP privées, telles que définies dans la RFC 1918, qui ne peuvent pas être mappées par Traffic Analytics à un site client ou au réseau virtuel Azure.
    • Unknown : impossible de mapper l’une des adresses IP dans les flux avec la topologie cliente dans Azure ou localement (sur site).