VNet-Datenflussprotokolle

VNet-Datenflussprotokolle sind ein Feature von Azure Network Watcher. Sie können sie verwenden, um Informationen zum IP-Datenverkehr zu protokollieren, der über ein virtuelles Netzwerk fließt.

Datenflussdaten aus VNet-Datenflussprotokollen werden an Azure Storage gesendet. Von dort aus können Sie auf die Daten zugreifen und sie in jedes Visualisierungstool, eine SIEM-Lösung (Security Information and Event Management) oder ein Intrusion Detection System (IDS, Angriffserkennungssystem) exportieren. Bei VNet-Datenflussprotokollen gelten einige der Einschränkungen von NSG-Datenflussprotokollen nicht.

Gründe für die Verwendung von Datenflussprotokollen

Es ist wichtig, dass Sie Ihr Netzwerk überwachen, verwalten und kennen, damit Sie es schützen und optimieren können. Sie müssen möglicherweise den aktuellen Status des Netzwerks kennen, wer eine Verbindung herstellt und von wo aus Benutzer eine Verbindung herstellen. Außerdem müssen Sie möglicherweise wissen, welche Ports für das Internet geöffnet sind, welches Netzwerkverhalten erwartet wird, welches Netzwerkverhalten irregulär ist und wann plötzlich ein Anstieg des Datenverkehrs eintritt.

Datenflussprotokolle sind die Quelle der Wahrheit für alle Netzwerkaktivitäten in ihrer Cloudumgebung. Unabhängig davon, ob Sie zu einem Startup-Unternehmen gehören, das versucht, Ressourcen zu optimieren, oder zu einem großen Unternehmen, das Eindringlinge erkennen möchte, Datenflussprotokolle können hilfreich sein. Sie können sie zur Optimierung des Netzwerkdatenflusses, zur Überwachung des Durchsatzes, zur Überprüfung der Compliance, zur Erkennung von Eindringversuchen und für vieles mehr verwenden.

Gängige Anwendungsfälle

Netzwerküberwachung

  • Identifizieren Sie unbekannten oder unerwünschten Datenverkehr.
  • Überwachen Sie die Datenverkehrsebenen und die Bandbreitennutzung.
  • Filtern Sie Datenflussprotokolle nach IP-Adresse und Port, um das Anwendungsverhalten zu verstehen.
  • Exportieren Sie Datenflussprotokolle in Analyse- und Visualisierungstools Ihrer Wahl, um Überwachungsdashboards einzurichten.

Nutzungsüberwachung und -optimierung

  • Identifizieren Sie die Top Talker in Ihrem Netzwerk.
  • Kombinieren Sie Datenflüsse mit GeoIP-Daten, um regionsübergreifenden Datenverkehr zu identifizieren.
  • Verstehen Sie das Wachstum des Datenverkehrs, um Kapazitätsprognosen abgeben zu können.
  • Verwenden Sie Daten, um übermäßig restriktive Datenverkehrsregeln zu entfernen.

Kompatibilität

  • Überprüfen Sie anhand von Datenflussdaten die Netzwerkisolation und die Konformität mit den Unternehmenszugriffsregeln.

Netzwerkforensik und Sicherheitsanalyse

  • Analysieren Sie Netzwerkdatenflüsse von kompromittierten IPs und Netzwerkschnittstellen.
  • Exportieren Sie Datenflussprotokolle in ein beliebiges SIEM- oder IDS-Tool Ihrer Wahl.

Gegenüberstellung von VNet- und NSG-Datenflussprotokollen

Sowohl VNet-Datenflussprotokolle als auch NSG-Datenflussprotokolle zeichnen IP-Datenverkehr auf. Sie unterscheiden sich allerdings beim Verhalten und Funktionsumfang.

VNet-Datenflussprotokolle vereinfachen die Datenverkehrsüberwachung, da Sie die Protokollierung in virtuellen Netzwerken aktivieren können. Der Datenverkehr über alle unterstützten Workloads in einem virtuellen Netzwerk wird aufgezeichnet.

Bei VNet-Datenflussprotokollen ist es außerdem nicht nötig, die Datenflussprotokollierung mit mehreren Ebenen zu aktivieren, wie dies etwa bei NSG-Datenflussprotokollen der Fall ist. In NSG-Datenflussprotokollen werden Netzwerksicherheitsgruppen sowohl im Subnetz als auch an der Netzwerkschnittstelle (NIC) konfiguriert.

Zusätzlich zur vorhandenen Unterstützung für die Identifizierung von Datenverkehr, den Netzwerksicherheitsgruppenregeln zulassen oder verweigern, unterstützen VNet-Datenflussprotokolle die Identifizierung von Datenverkehr, den Azure Virtual Network Manager-Sicherheitsadministratorregeln zulassen oder verweigern. VNet-Datenflussprotokolle unterstützen auch die Auswertung des Verschlüsselungsstatus Ihres Netzwerkdatenverkehrs in Szenarien, in denen Sie Verschlüsselung virtueller Netzwerke verwenden.

Wichtig

Es wird empfohlen, NSG-Datenflussprotokolle zu deaktivieren, bevor Sie VNet-Datenflussprotokolle für die gleichen zugrunde liegenden Workloads aktivieren, um doppelte Datenverkehrsaufzeichnungen und zusätzliche Kosten zu vermeiden.

Wenn Sie NSG-Datenflussprotokolle für die Netzwerksicherheitsgruppe eines Subnetzes aktivieren und dann VNet-Datenflussprotokolle für das gleiche Subnetz oder übergeordnete virtuellen Netzwerk aktivieren, kann es zu einer doppelten Protokollierung kommen, oder es kann passieren, dass nur VNet-Datenflussprotokolle generiert werden.

Wie die Protokollierung funktioniert

Zu den wichtigsten Eigenschaften von VNet-Datenflussprotokollen zählen unter anderem folgende:

  • Datenflussprotokolle arbeiten auf Layer 4 des OSI-Modells (Open Systems Interconnection) und zeichnen alle IP-Datenflüsse auf, die ein virtuelles Netzwerk passieren.
  • Protokolle werden in 1-Minuten-Intervallen über die Azure-Plattform gesammelt. Sie wirken sich nicht auf Ihre Azure-Ressourcen oder den Netzwerkdatenverkehr aus.
  • Protokolle werden im JSON-Format (JavaScript Object Notation) geschrieben.
  • Jeder Protokolleintrag enthält die Netzwerkschnittstelle, für die der Datenfluss gilt sowie 5-Tupel-Informationen, Datenverkehrsrichtung, Datenflussstatus, Verschlüsselungsstatus und Durchsatzinformationen.
  • Jeglicher Datenverkehr, der durch Ihr Netzwerk fließt, wird anhand der gültigen Regeln für Netzwerksicherheitsgruppen oder Azure Virtual Network Manager-Sicherheitsverwaltungsregeln ausgewertet.

Protokollformat

VNet-Datenflussprotokolle haben folgende Eigenschaften:

  • time: Zeitpunkt (UTC), zu dem das Ereignis ausgelöst wurde
  • flowLogVersion: Version des Datenflussprotokolls.
  • flowLogGUID: Ressourcen-GUID der FlowLog-Ressource.
  • macAddress: MAC-Adresse der Netzwerkschnittstelle, an der das Ereignis erfasst wurde.
  • category: Kategorie des Ereignisses. Die Kategorie ist immer FlowLogFlowEvent.
  • flowLogResourceID: Ressourcen-ID der FlowLog-Ressource.
  • targetResourceID: Ressourcen-ID der Zielressource, die der FlowLog-Ressource zugeordnet ist.
  • operationName: ImmerFlowLogFlowEvent
  • flowRecords: Sammlung von Datenflussdatensätzen.
    • flows: Sammlung von Datenflüssen. Diese Eigenschaft verfügt über mehrere Einträge für Zugriffssteuerungslisten (ACLs):
      • aclID: Bezeichner für die Ressource, die den Datenverkehr auswertet, entweder eine Netzwerkgruppe oder ein Virtual Network Manager. Für Datenverkehr, der aufgrund der Verschlüsselung verweigert wird, lautet dieser Wert unspecified.
      • flowGroups: Sammlung von Datenflussdatensätzen auf Regelebene:
        • rule: Name der Regel, die den Datenverkehr zugelassen oder abgelehnt hat. Für Datenverkehr, der aufgrund der Verschlüsselung verweigert wird, lautet dieser Wert unspecified.
        • flowTuples: Zeichenfolge, die mehrere Eigenschaften für das Datenflusstupel in einem Format mit Trennzeichen enthält:
          • Time Stamp: Zeitstempel für den Zeitpunkt, zu dem der Datenfluss auftrat, im UNIX Epoch-Format
          • Source IP: Quell-IP-Adresse
          • Destination IP: Ziel-IP-Adresse
          • Source port: Quellport
          • Destination port: Zielport
          • Protocol: Layer-4-Protokoll des Datenflusses, ausgedrückt in durch die IANA zugewiesenen Werten.
          • Flow direction: Richtung des Datenverkehrflusses Gültige Werte sind I für eingehende (inbound) und O für ausgehende (outbound) Nachrichten.
          • Flow state: Zustand des Datenflusses Mögliche Statusangaben:
            • B: Beginn; Erstellung eines Datenflusses Es werden keine Statistiken bereitgestellt.
            • C: Fortsetzung für einen laufenden Datenfluss Statistiken werden in Intervallen von fünf Minuten bereitgestellt.
            • E: Ende; Beendigung eines Datenflusses Statistiken werden bereitgestellt.
            • D: Ablehnen, wenn ein Datenfluss abgelehnt wird.
          • Flow encryption: Verschlüsselungsstatus des Datenflusses. In der Tabelle nach dieser Liste werden die möglichen Werte beschrieben.
          • Packets sent: Gesamtanzahl von Paketen, die seit dem letzten Update von der Quelle zum Ziel gesendet wurden.
          • Bytes sent: Gesamtanzahl von Paketbytes, die seit dem letzten Update von der Quelle zum Ziel gesendet wurden. Paketbytes enthalten den Paketheader und die Nutzlast.
          • Packets received: Gesamtanzahl von Paketen, die seit der letzten Aktualisierung vom Ziel an die Quelle gesendet wurden.
          • Bytes received: Gesamtanzahl von Paketbytes, die seit dem letzten Update von der Quelle zum Ziel gesendet wurden. Paketbytes enthalten den Paketheader und die Nutzlast.

Flow encryption kann die folgenden möglichen Verschlüsselungsstatus annehmen:

Verschlüsselungsstatus Beschreibung
X Verbindung ist verschlüsselt. Die Verschlüsselung ist konfiguriert, und die Plattform hat die Verbindung verschlüsselt.
NX Die Verbindung ist nicht verschlüsselt. Dieses Ereignis wird in zwei Szenarien protokolliert:
– Wenn die Verschlüsselung nicht konfiguriert ist.
– Wenn ein verschlüsselter virtueller Computer mit einem Endpunkt ohne Verschlüsselung (z. B. einem Internetendpunkt) kommuniziert.
NX_HW_NOT_SUPPORTED Die Hardware wird nicht unterstützt. Die Verschlüsselung ist konfiguriert, aber der virtuelle Computer wird auf einem Host ausgeführt, der die Verschlüsselung nicht unterstützt. Dieses Problem tritt in der Regel auf, wenn das Field Programmable Gate Array (FPGA) nicht an den Host angefügt oder fehlerhaft ist. Melden Sie dieses Problem zur Untersuchung an Microsoft.
NX_SW_NOT_READY Die Software ist nicht bereit. Die Verschlüsselung ist konfiguriert, aber die Softwarekomponente (GFT) im Hostnetzwerkstapel ist nicht für die Verarbeitung verschlüsselter Verbindungen bereit. Dieses Problem kann auftreten, wenn der virtuelle Computer zum ersten Mal gestartet wird, neu gestartet oder erneut bereitgestellt wird. Es kann auch auftreten, wenn auf dem Host, auf dem der virtuelle Computer ausgeführt wird, ein Update für die Netzwerkkomponenten vorhanden ist. In all diesen Szenarien wird das Paket verworfen. Das Problem sollte vorübergehend sein. Die Verschlüsselung sollte gestartet werden, nachdem der virtuelle Computer vollständig ausgeführt wurde oder das Softwareupdate auf dem Host abgeschlossen ist. Wenn das Problem länger dauert, melden Sie es zur Untersuchung an Microsoft.
NX_NOT_ACCEPTED Aufgrund nicht vorhandener Verschlüsselung verwerfen. Die Verschlüsselung wird sowohl für Quell- als auch für Zielendpunkte mit den Richtlinien „Verwerfen, wenn nicht verschlüsselt“ konfiguriert. Wenn die Datenverkehrsverschlüsselung fehlschlägt, wird das Paket gelöscht.
NX_NOT_SUPPORTED Die Ermittlung wird nicht unterstützt. Die Verschlüsselung ist konfiguriert, aber die Verschlüsselungssitzung wurde nicht eingerichtet, da der Hostnetzwerkstapel die Ermittlung nicht unterstützt. In diesem Fall wird das Paket verworfen. Wenn dieses Problem auftritt, melden Sie es zur Untersuchung an Microsoft.
NX_LOCAL_DST Das Ziel befindet sich auf demselben Host. Die Verschlüsselung ist konfiguriert, aber die virtuellen Quell- und Zielcomputer werden auf demselben Azure-Host ausgeführt. In diesem Fall ist die Verbindung per Design nicht verschlüsselt.
NX_FALLBACK Fallback zu „keine Verschlüsselung“. Die Verschlüsselung ist mit der Richtlinie Unverschlüsselten Datenverkehr zulassen sowohl für Quell- als auch für Zielendpunke konfiguriert. Das System hat versucht Verschlüsselung zu verwenden, hatte aber ein Problem. In diesem Fall wird die Verbindung zugelassen, sie ist aber nicht verschlüsselt. Zum Beispiel kann ein virtueller Computer zunächst auf einem Knoten landen, der die Verschlüsselung unterstützt, aber diese Unterstützung wurde später entfernt.

Der Datenverkehr in virtuellen Netzwerken ist standardmäßig unverschlüsselt (NX). Informationen zu verschlüsseltem Datenverkehr finden Sie unter Verschlüsselung virtueller Netzwerke.

Beispiel für Protokolldatensatz

Im folgenden Beispiel für VNet-Datenflussprotokolle folgen mehrere Datensätze der oben beschriebenen Eigenschaftenliste.

{
    "records": [
        {
            "time": "2022-09-14T09:00:52.5625085Z",
            "flowLogVersion": 4,
            "flowLogGUID": "66aa66aa-bb77-cc88-dd99-00ee00ee00ee",
            "macAddress": "112233445566",
            "category": "FlowLogFlowEvent",
            "flowLogResourceID": "/SUBSCRIPTIONS/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/RESOURCEGROUPS/NETWORKWATCHERRG/PROVIDERS/MICROSOFT.NETWORK/NETWORKWATCHERS/NETWORKWATCHER_EASTUS2EUAP/FLOWLOGS/VNETFLOWLOG",
            "targetResourceID": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVNet",
            "operationName": "FlowLogFlowEvent",
            "flowRecords": {
                "flows": [
                    {
                        "aclID": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
                        "flowGroups": [
                            {
                                "rule": "DefaultRule_AllowInternetOutBound",
                                "flowTuples": [
                                    "1663146003599,10.0.0.6,192.0.2.180,23956,443,6,O,B,NX,0,0,0,0",
                                    "1663146003606,10.0.0.6,192.0.2.180,23956,443,6,O,E,NX,3,767,2,1580",
                                    "1663146003637,10.0.0.6,203.0.113.17,22730,443,6,O,B,NX,0,0,0,0",
                                    "1663146003640,10.0.0.6,203.0.113.17,22730,443,6,O,E,NX,3,705,4,4569",
                                    "1663146004251,10.0.0.6,203.0.113.17,22732,443,6,O,B,NX,0,0,0,0",
                                    "1663146004251,10.0.0.6,203.0.113.17,22732,443,6,O,E,NX,3,705,4,4569",
                                    "1663146004622,10.0.0.6,203.0.113.17,22734,443,6,O,B,NX,0,0,0,0",
                                    "1663146004622,10.0.0.6,203.0.113.17,22734,443,6,O,E,NX,2,134,1,108",
                                    "1663146017343,10.0.0.6,198.51.100.84,36776,443,6,O,B,NX,0,0,0,0",
                                    "1663146022793,10.0.0.6,198.51.100.84,36776,443,6,O,E,NX,22,2217,33,32466"
                                ]
                            }
                        ]
                    },
                    {
                        "aclID": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
                        "flowGroups": [
                            {
                                "rule": "BlockHighRiskTCPPortsFromInternet",
                                "flowTuples": [
                                    "1663145998065,101.33.218.153,10.0.0.6,55188,22,6,I,D,NX,0,0,0,0",
                                    "1663146005503,192.241.200.164,10.0.0.6,35276,119,6,I,D,NX,0,0,0,0"
                                ]
                            },
                            {
                                "rule": "Internet",
                                "flowTuples": [
                                    "1663145989563,192.0.2.10,10.0.0.6,50557,44357,6,I,D,NX,0,0,0,0",
                                    "1663145989679,203.0.113.81,10.0.0.6,62797,35945,6,I,D,NX,0,0,0,0",
                                    "1663145989709,203.0.113.5,10.0.0.6,51961,65515,6,I,D,NX,0,0,0,0",
                                    "1663145990049,198.51.100.51,10.0.0.6,40497,40129,6,I,D,NX,0,0,0,0",
                                    "1663145990145,203.0.113.81,10.0.0.6,62797,30472,6,I,D,NX,0,0,0,0",
                                    "1663145990175,203.0.113.5,10.0.0.6,51961,28184,6,I,D,NX,0,0,0,0",
                                    "1663146015545,192.0.2.10,10.0.0.6,50557,31244,6,I,D,NX,0,0,0,0"
                                ]
                            }
                        ]
                    }
                ]
            }
        }
    ]
}

Protokolltupel und Bandbreitenberechnung

Tabelle: Format eines Datenflussprotokolls für ein virtuelles Netzwerk.

Hier sehen Sie eine Beispielbandbreitenberechnung für Datenflusstupel aus einer TCP-Konversation zwischen 203.0.113.105:35370 und 10.0.0.5:23:

1708978215,203.0.113.105,10.0.0.5,35370,23,6,I,B,NX,,,, 1708978215,203.0.113.105,10.0.0.5,35370,23,6,I,C,NX,1021,588096,8005,4610880 1708978215,203.0.113.105,10.0.0.5,35370,23,6,I,E,NX,52,29952,47,27072

Für die Datenflusszustände C (Fortsetzung) und E (Beendigung) wird die Anzahl von Bytes und Paketen ab dem Zeitpunkt des vorherigen Datenfluss-Tupeldatensatzes aggregiert. In der Beispielkonversation ist die Gesamtanzahl der übertragenen Pakete 1.021 + 52 + 8.005 + 47 = 9.125. Die Gesamtanzahl der übertragenen Bytes ist 588.096 + 29.952 + 4.610.880 + 27.072 = 5.256.000.

Überlegungen zu Datenflussprotokollen für virtuelle Netzwerke

Speicherkonto

  • Speicherort: Das Speicherkonto muss sich in derselben Region wie das virtuelle Netzwerk befinden.
  • Abonnement: Das Speicherkonto muss sich im selben Abonnement wie das virtuelle Netzwerk oder in einem Abonnement befinden, das demselben Microsoft Entra-Mandanten zugeordnet ist wie das Abonnement des virtuellen Netzwerks.
  • Leistungsstufe: Die Leistungsstufe des Speicherkontos muss „Standard“ sein. Premium-Speicherkonten werden nicht unterstützt.
  • Selbstverwaltete Schlüsselrotation: Wenn Sie die Zugriffsschlüssel für Ihr Speicherkonto ändern oder rotieren, funktionieren VNet-Datenflussprotokolle nicht mehr. Um dieses Problem zu beheben, müssen Sie die VNet-Datenflussprotokolle deaktivieren und anschließend wieder aktivieren.

Privater Endpunktdatenverkehr

Der Datenverkehr kann nicht am privaten Endpunkt selbst aufgezeichnet werden. Sie können den Datenverkehr zu einem privaten Endpunkt an der Quell-VM erfassen. Der Datenverkehr wird mit der Quell-IP-Adresse der VM und der Ziel-IP-Adresse des privaten Endpunkts aufgezeichnet. Sie können das Feld PrivateEndpointResourceId verwenden, um Datenverkehr zu identifizieren, der zu einem privaten Endpunkt fließt. Weitere Informationen finden Sie unter Schema für die Datenverkehrsanalyse.

Preise

  • VNet-Datenflussprotokolle werden pro GB der erfassten Netzwerkdatenflussprotokolle abgerechnet und bieten einen Free-Tarif mit 5 GB pro Monat und Abonnement.

  • Wenn die Datenverkehrsanalyse mit VNet-Datenflussprotokollen aktiviert ist, gelten die Preise für die Datenverkehrsanalyse zu Verarbeitungsraten pro Gigabyte. Die Datenverkehrsanalyse wird beim Free-Tarif nicht angeboten. Weitere Informationen finden Sie unter Network Watcher – Preise.

  • Die Speicherung von Protokollen wird separat in Rechnung gestellt. Weitere Informationen finden Sie unter Azure Blob Storage – Preise.

Unterstützte Szenarios

In der folgenden Tabelle wird der Unterstützungsbereich von Datenflussprotokollen beschrieben.

Bereich Datenflussprotokollierung für Netzwerksicherheitsgruppen VNet-Datenflussprotokolle
Bytes und Pakete in zustandslosen Flüssen Nicht unterstützt Unterstützt
Identifizierung der VNet-Verschlüsselung Nicht unterstützt Unterstützt
Azure API Management Nicht unterstützt Unterstützt
Azure Application Gateway Nicht unterstützt Unterstützt
Azure Virtual Network Manager Nicht unterstützt Unterstützt
ExpressRoute-Gateway Nicht unterstützt Unterstützt
VM-Skalierungsgruppen Unterstützt Unterstützt
VPN Gateway Nicht unterstützt Unterstützt

Verfügbarkeit

VNet-Datenflussprotokolle sind in allen öffentlichen Azure-Regionen allgemein verfügbar und befinden sich in Azure Government derzeit in der Vorschauphase.