Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Zero Trust is een beveiligingsstrategie. Het is geen product of een service, maar een benadering bij het ontwerpen en implementeren van de volgende set beveiligingsprincipes.
| Principe | Beschrijving |
|---|---|
| Uitdrukkelijk verifiëren | Altijd verifiëren en autoriseren op basis van alle beschikbare gegevenspunten. |
| Toegang tot minimale bevoegdheden gebruiken | Beperk gebruikerstoegang met Just-In-Time en Just-Enough-Access (JIT/JEA), op risico gebaseerd adaptief beleid en gegevensbeveiliging. |
| Stel dat er sprake is van een schending | Minimaliseer de impactradius en segmenteer de toegang. Controleer end-to-end-versleuteling en gebruik analyse om zichtbaarheid te krijgen, detectie van bedreigingen te stimuleren en verdediging te verbeteren. |
Met Zero Trust schakelt u van een standaardvertrouwensperspectief over naar vertrouwen op basis van uitzonderingen. Een geïntegreerde mogelijkheid om deze uitzonderingen en waarschuwingen automatisch te beheren, is belangrijk. U kunt bedreigingen gemakkelijker detecteren, reageren op bedreigingen en ongewenste gebeurtenissen in uw organisatie voorkomen of blokkeren.
Het cloudnetwerk van Azure is ontworpen met meerdere lagen segmentatie die kunnen fungeren als grenzen of vertrouwenszones. Zie Zero Trust-principes toepassen op het segmenteren van netwerkcommunicatie op basis van Azure voor meer informatie over het segmenteren van uw Azure-netwerk met behulp van Zero Trust-principes.
Zero Trust Rijpheidsmodel
Het Cybersecurity & Infrastructure Security Agency (CISA) Zero Trust Maturity Model (ZTMM) is gebaseerd op vijf pijlers die functies omvatten om Zero Trust-beveiligingsgebieden te verbeteren. Zie Microsoft-cloudservices configureren voor het CISA Zero Trust Maturity Model voor meer informatie
- Identiteit
- Apparaten
- Netwerken
- Toepassingen en workloads
- Gegevens
De pijlers omvatten de vier fasen van het ZTMM-traject. Zie ZTMM-trajectfasen voor meer informatie.
- Traditioneel
- Initiaal
- Geavanceerd
- Optimaal
De vier fasen zijn als volgt van toepassing op de netwerkenpijler:
| Fase | Netwerkenpijler |
|---|---|
| Traditioneel | - Grote omtrek/macrosegmentatie - Beperkte tolerantie en handmatig beheerde regelsets en configuratie |
| Initiaal | - Initiële isolatie van kritieke workloads - Netwerkmogelijkheden beheren beschikbaarheidsvereisten voor meer toepassingen - Gedeeltelijke dynamische netwerkconfiguratie |
| Geavanceerd | - Isolatie- en tolerantiemechanisme uitbreiden - Configuraties worden aangepast op basis van risicobewuste evaluaties van toepassingsprofielen |
| Optimaal | - Microperimeter distribueren met Just-In-Time en precies genoeg toegangscontroles en proportionele tolerantie - Configuratie ontwikkelt zich om te voldoen aan de behoeften van het toepassingsprofiel |
Hoe kunt u traffic analytics gebruiken om Zero Trust-beveiliging te bereiken?
Traffic Analytics biedt inzicht in netwerkverkeersstromen binnen uw Azure-omgeving. Het maakt gebruik van stroomlogboeken voor virtuele netwerken en voert aggregatie uit om het gegevensvolume te verminderen terwijl belangrijke verkeerspatronen behouden blijven. De samengevoegde logboeken worden vervolgens verrijkt met geografische, beveiligings- en topologiegegevens en opgeslagen in een Log Analytics-werkruimte.
Verkeerspatronen worden gevisualiseerd met behulp van ingebouwde dashboards, met flexibiliteit om verkeersinzichten aan te passen met behulp van Azure Workbooks. Met het dashboard voor verkeersanalyse kunt u ook waarschuwingen configureren en onderzoeken initiëren als reactie op mogelijke beveiligingsschendingen.
Netwerkverkeer bewaken: Leg binnenkomend en uitgaand verkeer vast met behulp van stroomlogboeken en gebruik traffic analytics om deze gegevens te verwerken en te visualiseren. Krijg inzicht in communicatiepatronen, bandbreedtegebruik en verkeerstromen tussen workloads.
Communicatiepatronen voor werkbelasting identificeren: Analyseer verkeersanalysegegevens om te begrijpen hoe resources communiceren binnen en tussen tenants, abonnementen, virtuele netwerken, subnetten, protocollen, op beveiliging gebaseerde groepen, services en toepassingen. Identificeer onnodige of afwijkende verkeerspatronen die potentiële beveiligingsrisico's kunnen aangeven.
Inzichtelijke visualisaties: Gebruik ingebouwde en aanpasbare visualisaties in verkeersanalyse om verkeerspatronen te verkennen en afwijkingen effectiever te detecteren.
Gecompromitteerde IP-adressen/resources detecteren: Gebruik traffic analytics om mogelijk gecompromitteerde IP-adressen of resources te identificeren, waardoor de beveiliging wordt versterkt en de prestaties worden gehandhaafd.
Zero Trust Segmentation (ZTS) implementeren met Traffic Analytics
Als eerste kritieke stap voor het implementeren van Zero Trust Segmentation bij bestaande of nieuwe Azure-implementaties moet de gebruiker
Bekijk de patronen via Traffic Analytics: Stroomlogboeken analyseren om de verkeerspatronen te identificeren die essentieel zijn voor uw workload.
Begin met standaard weigeren houding: het begint met het verwijderen of uitschakelen van alle bestaande regels voor binnenkomend en uitgaand verkeer dat verkeer in het algemeen toestaat (bijvoorbeeld Alles toestaan, Toestaan) en expliciete weigeringen toevoegen voor zowel inkomend als uitgaand verkeer.
Regels voor selectief toestaan maken: definieer op basis van inzichten uit Traffic Analytics regels die expliciet alleen het waargenomen en noodzakelijke verkeer toestaan. Deze aanpak zorgt ervoor dat alleen gevalideerd, vereist verkeer is toegestaan, in overeenstemming met het zero trust-principe van expliciet verifiëren.
In de volgende secties worden belangrijke scenario's beschreven waarin traffic analytics segmentatie ondersteunt om Zero Trust-principes in Azure te implementeren.
Scenario 1: Verkeer detecteren dat door riskante of beperkte regio's stroomt
Gebruik verkeersanalyse om binnenkomend of uitgaand verkeer te detecteren naar regio's met een hoog risico, zoals gedefinieerd door het beleid van uw organisatie. U kunt bijvoorbeeld verkeersstromen naar of van regio's identificeren die worden beschouwd als gevoelig of beperkt op basis van de beveiligings- en nalevingsvereisten van uw organisatie.
let ExternalIps = NTAIpDetails
| where Location in ("country1", "country2")
| where FlowType in ("MaliciousFlow", "ExternalPublic")
//and FlowIntervalStartTime between (datetime('{timeInterval') .. datetime('{timeInterval'))
| project-away
TimeGenerated,
SubType,
FaSchemaVersion,
FlowIntervalEndTime,
FlowIntervalStartTime,
FlowType,
Type
| distinct Ip, ThreatType, DnsDomain, ThreatDescription, Location, PublicIpDetails, Url;
let ExternalFlows = NTANetAnalytics
//| where FlowStartTime between (datetime('{timeInterval}') .. datetime('{timeInterval}'))
| where SubType == "FlowLog" and FlowType in ("ExternalPublic", "MaliciousFlow")
| extend PublicIP = SrcPublicIps
| extend ExtractedIPs = split(PublicIP, " ") // Split IPs by spaces
| mv-expand ExtractedIPs // Expand into multiple rows
| extend IP = tostring(split(ExtractedIPs, "|")[0])
| extend AllSrcIps = coalesce(SrcIp, IP)
| project
AllSrcIps,
DestIp,
SrcVm,
DestVm,
SrcSubscription,
DestSubscription,FlowType;
let SrcMalicious = ExternalFlows
| lookup kind=inner ExternalIps on $left.AllSrcIps == $right.Ip
| extend CompromisedVM = iff(isnotempty(DestVm),strcat("/subscriptions/",DestSubscription,"/resourceGroups/",tostring(split(DestVm,"/")[0]),"/providers/Microsoft.Compute/virtualMachines/",tostring(split(DestVm,"/")[1])),'')
| project
SrcExternalIp = strcat('🌐 ', AllSrcIps),
DestCompromisedIp = strcat('🖥️', DestIp),
CompromisedVM,
PublicIpDetails,
FlowType,
ThreatType,
DnsDomain,
ThreatDescription,
Location,
Url;
SrcMalicious
| summarize count() by SrcExternalIp ,DestCompromisedIp, CompromisedVM,
PublicIpDetails,
FlowType,
ThreatType,
DnsDomain,
ThreatDescription,
Location,
Url
Scenario 2: Verkeerssegmentatie bereiken op basis van Interacties tussen Azure-services
Gebruik verkeersanalyse om een vogelperspectief te krijgen van de manier waarop verschillende workloads met Azure-services communiceren. SAP-workloads kunnen bijvoorbeeld communiceren met de Azure Arc-infrastructuur, terwijl andere workloads, zoals ontwikkelomgevingen of productiviteitsservices, communiceren met Azure Monitor. Deze inzichten helpen u inzicht te krijgen in serviceafhankelijkheden, onverwachte of afwijkende verkeerspatronen te detecteren en gedetailleerdere beveiligingsbeleidsregels af te dwingen via microsegmentatie.
let SpecificServices = NTAIpDetails
| where FlowType == "AzurePublic"
| where FlowIntervalStartTime > ago(4h)
| project Ip, PublicIpDetails;
let PublicIPs = NTANetAnalytics
| where SubType == 'FlowLog'
| where FlowIntervalStartTime > ago(4h)
| where(isnotempty(SrcPublicIps) or isnotempty(DestPublicIps))
| extend PublicIP = coalesce(SrcPublicIps, DestPublicIps), Vnet = iff(isnotempty(SrcSubnet), strcat("/subscriptions/", SrcSubscription, "/resourceGroups/", tostring(split(SrcSubnet, "/")[0]), "/providers/Microsoft.Network/virtualNetworks/", tostring(split(SrcSubnet, "/")[1])), iff(isnotempty(DestSubnet), strcat("/subscriptions/", DestSubscription, "/resourceGroups/", tostring(split(DestSubnet, "/")[0]), "/providers/Microsoft.Network/virtualNetworks/", tostring(split(DestSubnet, "/")[1])),''))
| extend ExtractedIPs = split(PublicIP, " ") // Split IPs by spaces
| mv-expand ExtractedIPs // Expand into multiple rows
| extend IP = tostring(split(ExtractedIPs, "|")[0]) // Extract IP address
| lookup kind=inner SpecificServices on $left.IP == $right.Ip
| project Vnet, PublicIpDetails;
PublicIPs
| summarize CounterValue = count() by Vnet, PublicIpDetails
| top 100 by CounterValue desc
Scenario 3: Impactgebied identificeren in geval van netwerkinbreuk
Gebruik verkeersanalyse om het pad te traceren van mogelijk schadelijke IP-adressen die proberen te communiceren met uw resources. In het geval van een gecompromitteerde virtuele machine (VM) kan traffic analytics helpen bij het in kaart brengen van alle communicatie die door die virtuele machine in de afgelopen 24 uur is gestart, wat helpt bij het identificeren van mogelijke gegevensexfiltratie en het beperken van de schadeomvang.
De volgende query identificeert alle directe en indirecte IP-adressen die communiceren met schadelijke stromen uit regio's met een hoog risico:
let MAliciousIps = NTAIpDetails
| where FlowIntervalStartTime between (datetime('{timeInterval:startISO}') .. datetime('{timeInterval:endISO}'))
| where FlowType == "MaliciousFlow"
| distinct Ip;
let MaliciousFlows = NTANetAnalytics
| where FlowStartTime between (todatetime('{timeInterval:startISO}') .. todatetime('{timeInterval:endISO}'))
| where SubType == "FlowLog" and FlowType == "MaliciousFlow"
| project SrcIp, DestIp, FlowLogResourceId, TargetResourceId;
let SrcMalicious = MaliciousFlows
| lookup kind=leftouter MAliciousIps on $left.SrcIp == $right.Ip
| project SrcIp, DestIp;
let DestMalicious = MaliciousFlows
| lookup kind=leftouter MAliciousIps on $left.DestIp == $right.Ip
| project SrcIp, DestIp;
let MaliciousIps = SrcMalicious
| union DestMalicious
| distinct *;
let SpecificCountryIPs = NTAIpDetails
| where Location in ("country1", "country2")
| project Ip;
let SrcIpCountry = SpecificCountryIPs
| join kind=inner NTANetAnalytics on $left.Ip == $right.SrcIp
| project SrcIp, DestIp;
let DestIpCountry = SpecificCountryIPs
| join kind=inner NTANetAnalytics on $left.Ip == $right.DestIp
| project SrcIp, DestIp;
let SpecificCountryFlows = SrcIpCountry
| union DestIpCountry;
let MaliciousFlowsObserved = MaliciousIps
| union SpecificCountryFlows
| distinct SrcIp, DestIp;
let MaliciousFlowsTransitive = MaliciousFlowsObserved
| join kind=inner MaliciousFlowsObserved on $left.DestIp == $right.SrcIp
| project SrcIp, DestIp = DestIp1
| distinct SrcIp, DestIp;
let MaliciousFlowsObserved1 = MaliciousFlowsObserved
| union MaliciousFlowsTransitive
| distinct SrcIp, DestIp;
let MaliciousFlowsTransitive1 = MaliciousFlowsObserved1
| join kind=inner MaliciousFlowsObserved1 on $left.DestIp == $right.SrcIp
| project SrcIp, DestIp = DestIp1
| distinct SrcIp, DestIp;
let MaliciousFlowsObserved2 = MaliciousFlowsObserved1
| union MaliciousFlowsTransitive1
| distinct SrcIp, DestIp;
MaliciousFlowsObserved2
| project SrcIp = strcat('🖥️ ', SrcIp), DestIp = strcat('🖥️ ', DestIp)
Scenario 4: Abonnementsgrenzen afdwingen
Gebruik traffic analytics om abonnementsgrenzen af te dwingen en ervoor te zorgen dat verkeer tussen verschillende Azure-abonnementen correct is gesegmenteerd.
NTANetAnalytics
| where SubType == "FlowLog" and FlowType !in ("AzurePublic","ExternalPublic","Unknown","UnknownPrivate") // Filter to flows for which we know the Subscription Details
| where FlowStartTime between (start .. end)
| where AclGroup !contains "Unspecified"
|extend Dest = iff(isnotempty(DestSubnet),strcat("/subscriptions/",DestSubscription,"/resourceGroups/",tostring(split(DestSubnet,"/")[0]),"/providers/Microsoft.Network/virtualNetworks/",tostring(split(DestSubnet,"/")[1])),'')
| extend Src = iff(isnotempty(SrcSubnet),strcat("/subscriptions/",SrcSubscription,"/resourceGroups/",tostring(split(SrcSubnet,"/")[0]),"/providers/Microsoft.Network/virtualNetworks/",tostring(split(SrcSubnet,"/")[1])),'')
| extend SrcSubscription = strcat("/subscriptions/",SrcSubscription), DestSubscription = strcat("/subscriptions/",DestSubscription)
| where SrcSubscription != DestSubscription // Cross Subscription
| summarize Flows = sum(CompletedFlows) by Src, Dest, SrcSubscription, DestSubscription, AclGroup,AclRule, FlowType
//| top 10 by Flows