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.
Van toepassing op: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Met graph-semantiek kunt u gegevens modelleren en opvragen als onderling verbonden netwerken. Deze benadering excelleert bij het weergeven van complexe gegevens met veel-op-veel-relaties, hiërarchische structuren en netwerksystemen, waaronder sociale netwerken, aanbevelingsengines, verbonden assets en kennisgrafieken.
In dit artikel worden de volgende algemene scenario's voor het gebruik van KQL graph-semantiek besproken:
- Analyse van sociale netwerken
- Inzichten in logboekgegevens
- Resourcegrafiek verkennen
- Beveiligingsanalyse voor meerdere domeinen
- Tijdreeks- en grafiekanalyse
- Digitale dubbels en grafen historisatie
Analyse van sociale netwerken
Analyse van sociale netwerken vertegenwoordigt een fundamenteel gebruiksscenario voor grafieken waarbij knooppunten gebruikers en randen zijn die relaties of interacties vertegenwoordigen. Overweeg een gegevensmodel met een tabel Gebruikers met gebruikerskenmerken (naam, organisatie) en een knows-tabel die relaties tussen gebruikers documenteert:
Problemen met traditionele benaderingen
Zonder graafsemantiek zijn voor het vinden van 'vrienden-van-vrienden' meerdere complexe joins vereist:
let Users = datatable (UserId: string, name: string, org: string)[]; // nodes
let Knows = datatable (FirstUser: string, SecondUser: string)[]; // edges
Users
| where org == "Contoso"
| join kind=inner (Knows) on $left.UserId == $right.FirstUser
| join kind=innerunique(Users) on $left.SecondUser == $right.UserId
| join kind=inner (Knows) on $left.SecondUser == $right.FirstUser
| join kind=innerunique(Users) on $left.SecondUser1 == $right.UserId
| where UserId != UserId1
| project name, name1, name2
Semantiekoplossing voor grafieken
De semantiek van KQL-grafieken vereenvoudigt dit aanzienlijk. De operator make-graph maakt een gerichte grafiek, terwijl de operator voor grafiekovereenkomsten het patroon beknopt uitdrukt:
let Users = datatable (UserId:string , name:string , org:string)[]; // nodes
let Knows = datatable (FirstUser:string , SecondUser:string)[]; // edges
Knows
| make-graph FirstUser --> SecondUser with Users on UserId
| graph-match (user)-->(middle_man)-->(friendOfAFriend)
where user.org == "Contoso" and user.UserId != friendOfAFriend.UserId
project contoso_person = user.name, middle_man = middle_man.name, kusto_friend_of_friend = friendOfAFriend.name
Inzichten in logboekgegevens
Analyse van logboekgegevens vereist vaak het extraheren van inzichten uit platte tabellen met tijdreeksinformatie. Voor het converteren van deze gegevens naar een grafiekstructuur moeten relevante entiteiten en relaties worden geïdentificeerd. Overweeg een tabel met de naam rawLogs met informatie over webserveraanvragen:
let rawLogs = datatable (rawLog: string) [
"31.56.96.51 - - [2019-01-22 03:54:16 +0330] \"GET /product/27 HTTP/1.1\" 200 5379 \"https://www.contoso.com/m/filter/b113\" \"some client\" \"-\"",
"31.56.96.51 - - [2019-01-22 03:55:17 +0330] \"GET /product/42 HTTP/1.1\" 200 5667 \"https://www.contoso.com/m/filter/b113\" \"some client\" \"-\"",
"54.36.149.41 - - [2019-01-22 03:56:14 +0330] \"GET /product/27 HTTP/1.1\" 200 30577 \"-\" \"some client\" \"-\""
];
Een grafiek maken op basis van logboekgegevens
Modelleer de grafiek door bron-IP-adressen te behandelen als knooppunten en webaanvragen voor resources als randen. Gebruik de parse-operator om vereiste kolommen te extraheren:
let parsedLogs = rawLogs
| parse rawLog with ipAddress: string " - - [" timestamp: datetime "] \"" httpVerb: string " " resource: string " " *
| project-away rawLog;
let edges = parsedLogs;
let nodes =
union
(parsedLogs
| distinct ipAddress
| project nodeId = ipAddress, label = "IP address"),
(parsedLogs | distinct resource | project nodeId = resource, label = "resource");
let graph = edges
| make-graph ipAddress --> resource with nodes on nodeId;
Hiermee maakt u een gerichte grafiek waarin knooppunten IP-adressen of resources zijn en randen aanvragen vertegenwoordigen met tijdstempel- en HTTP-werkwoordeigenschappen:
Querypatronen voor aanbevelingen
Gebruik graph-match om eenvoudige aanbevelingen te maken op basis van resources die zijn aangevraagd door andere IP-adressen:
graph
| graph-match (startIp)-[request]->(resource)<--(otherIP)-[otherRequest]->(otherResource)
where startIp.label == "IP address" and //start with an IP address
resource.nodeId != otherResource.nodeId and //recommending a different resource
startIp.nodeId != otherIP.nodeId and //only other IP addresses are interesting
(request.timestamp - otherRequest.timestamp < 5m) //filter on recommendations based on the last 5 minutes
project Recommendation=otherResource.nodeId
Uitvoer:
Aanbeveling |
---|
/product/42 |
Dit laat zien hoe semantiek van grafieken zinvolle inzichten kan extraheren uit onbewerkte logboekgegevens.
Resourcegrafiek verkennen
Resourcegrafieken maken efficiënt verkennen en opvragen van resources op schaal mogelijk, ondersteuning voor governance, beheer en beveiligingsvereisten. Deze grafieken worden continu bijgewerkt wanneer resources veranderen, waardoor uw resource-inventaris dynamisch wordt bijgehouden.
Uitdagingen voor ondernemingsresourcebeheer
Overweeg een onderneming met een complexe cloudinfrastructuur met:
- Virtuele machines, databases, opslagaccounts en netwerkonderdelen
- Gebruikersidentiteiten met verschillende machtigingen in meerdere omgevingen
- Complexe resourcehiërarchieën die verschillende organisatie-eenheden omvatten
De belangrijkste uitdaging is het efficiënt beheren en opvragen van deze uitgebreide resource-inventarisatie voor beveiligingsnaleving en toegangsbeheer.
Oplossingen op basis van grafieken
Met Semantiek van KQL-grafieken kunnen beveiligingsbeheerders complexe resourcehiërarchieën en machtigingsstructuren als grafieken modelleren. Deze aanpak biedt ondersteuning voor krachtige query's die het volgende kunnen doen:
- Toegangspaden van gebruikers via groepen naar resources traceren
- Overprivilegeerde accounts en mogelijke beveiligingsproblemen identificeren
- Configuratieproblemen in resourcemachtigingen detecteren
- Naleving van organisatiebeleid valideren
Voor resourcegrafieken op ondernemingsniveau kunnen materiële weergaven het huidige toestandsbeeld van de knooppunten en verbindingen vertegenwoordigen, waardoor zowel realtime-analyse als historische query's mogelijk zijn over wijzigingen in resources en machtigingen over de tijd heen.
Zie de Resource Graph-voorbeelden op GitHub voor gedetailleerde voorbeelden en voorbeeldcode.
Beveiligingsanalyse voor meerdere domeinen
Voor beveiligingsbewerkingen is vaak het analyseren van relaties tussen meerdere domeinen tegelijk vereist. Met de methode Graph of Graph kunnen onderling verbonden gegevensstructuren worden gemodelleerd en geanalyseerd door afzonderlijke grafiekdomeinen te combineren: identiteits-, netwerk- en assetgrafieken.
Methodologie voor analyse van meerdere domeinen
Deze methodologie onderhoudt de scheiding tussen domeinspecifieke grafieken en maakt geavanceerde analyse tussen domeinen mogelijk via querysamenstelling. Overweeg een scenario waarin een organisatie geavanceerde aanvallen moet detecteren met behulp van:
- Identiteitsgrafiek : gebruikers, groepen en machtigingen modelleren om inzicht te krijgen in toegangsrechten
- Netwerkgrafiek : apparaten en verbindingen vertegenwoordigen om ongebruikelijke netwerkpatronen te detecteren
- Assetgrafiek - Resources en gevoeligheidsniveaus catalogiseren om mogelijke impact te beoordelen
Geavanceerde beveiligingsinzichten
Door relaties in deze domeinen te doorlopen, kunnen beveiligingsanalisten aanvalspaden onzichtbaar identificeren wanneer ze elk domein afzonderlijk onderzoeken. Deze benadering excelleert op:
- Laterale verplaatsing tussen netwerksegmenten detecteren
- Pogingen tot escalatie van privileges identificeren via wijzigingen in groepslidmaatschap
- Gegevensexfiltratie detecteren vanuit resources met hoge gevoeligheid
- Het correleren van authenticatiepatronen met toegang tot middelen
Zie de Graph of Graph-voorbeelden op GitHub voor gedetailleerde voorbeelden en implementatierichtlijnen.
Tijdreeks- en grafiekanalyse
Door grafiekanalyse te combineren met tijdreeksanalyses, ontstaat een krachtig framework voor het detecteren van tijdelijke afwijkingen en het begrijpen van hun impact op onderling verbonden systemen. Deze integratie biedt een aanzienlijke waarde voor beveiligingsanalyse, IoT-bewaking en operationele intelligentie.
Tijdelijke anomaliedetectie met context
Tijdreeksgegevens bevatten vaak tijdelijke patronen die normaal of afwijkend gedrag aangeven. In combinatie met grafiekstructuren krijgen deze patronen zinvolle context via relatie- en toegangspadanalyse.
Beveiligingstoepassingen
In beveiligingscontexten identificeert deze integratie mogelijk schadelijke activiteiten via:
- Detectie van verificatieafwijkingen - Aanmeldingen markeren die afwijken van gebruikelijke patronen (tijd, locatie, frequentie)
- Analyse van toegangspaden - Bepalen welke gevoelige resources afwijkende gebruikers kunnen bereiken via machtigingsketens
- Effectbeoordeling : evaluatie van de potentiële straal van ongebruikelijke activiteit
Bredere toepassingen
Naast beveiliging is deze benadering van toepassing op:
- IoT-systemen : afwijkingen van apparaten correleren met verbonden infrastructuur
- Bedrijfsactiviteiten - Transactieafwijkingen koppelen aan organisatiestructuren
- IT-infrastructuur : prestatieafwijkingen verbinden met serviceafhankelijkheden
Door tijdreeks- en grafiekanalyses te combineren, kunnen analisten met KQL zowel de aard van afwijkingen als hun contextuele impact op onderling verbonden systemen begrijpen.
Zie de Time Series- en Graph-voorbeelden op GitHub voor implementatievoorbeelden en gedetailleerde codevoorbeelden.
Digitale tweelingen en grafiekenhistorisering
Digitale dubbels bieden virtuele representaties van fysieke objecten of systemen, waardoor nauwkeurige modellering en simulatie van echte entiteiten mogelijk is. Grafieksemantiek in KQL excell in digitale dubbelscenario's omdat relaties tussen entiteiten( faciliteiten, apparatuur, sensoren en mensen) natuurlijk grafiekstructuren vormen.
Mogelijkheden voor digitale tweeling met KQL
Graph-semantiek maakt uitgebreide digitale dubbelmodellering mogelijk via:
- Hiërarchische modellering - Complexe faciliteit- en apparatuurhiërarchieën vertegenwoordigen
- Relaties tussen meerdere entiteiten : fysieke assets, virtuele representaties en menselijke operators verbinden
- Realtime statustracering - Bezetting, apparatuurstatus en omgevingsomstandigheden bewaken
- Analyse tussen domeinen : het correleren van het gebruik van fysieke ruimte met operationele metrische gegevens
Grafiek historisatie voor tijdelijke analyse
Een essentieel aspect van digital twin management is het vastleggen en analyseren van tijdelijke wijzigingen. Door grafiekwijzigingen te historiseren, kunnen organisaties het volgende doen:
- Evolutie in de loop van de tijd bijhouden - Controleren hoe fysieke ruimten en systemen veranderen
- Historische analyse uitvoeren - Patronen en trends in gebruik en prestaties identificeren
- Historische statussen vergelijken - Afwijkingen detecteren of verbeteringen meten in verschillende perioden
- Voorspellende modellen ontwikkelen : historische gebruikspatronen gebruiken voor toekomstige planning en optimalisatie
Implementatievoordelen
Met deze aanpak kunnen organisaties het volgende doen:
- Patronen voor ruimtegebruik bewaken en faciliteitbeheer optimaliseren
- Prestaties van apparatuur bijhouden en onderhoudsbehoeften voorspellen
- Omgevingsomstandigheden en hun impact op bewerkingen analyseren
- Patronen van menselijk gedrag correleren met het gebruik van fysieke infrastructuur
Zie de Digital Twins-voorbeelden op GitHub voor gedetailleerde implementatievoorbeelden en codevoorbeelden.