Delen via


Algemene scenario's voor het gebruik van grafieksemantiek

Van toepassing op: ✅Microsoft FabricAzure Data ExplorerAzure MonitorMicrosoft 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

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:

Voorbeelddiagram met behulp van analyse van sociale netwerken.

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:

Voorbeeldgrafiek die is gemaakt op basis van logboekgegevens.

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.

Voorbeeldgrafiek dat is gemaakt met onderzoek naar middelen.

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.

Voorbeeld van een beveiligingsanalysegrafiek voor meerdere domeinen.

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.

Voorbeeld van een werkstroomdiagram met behulp van tijdreeks- en grafiekanalyses.

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:

  1. Detectie van verificatieafwijkingen - Aanmeldingen markeren die afwijken van gebruikelijke patronen (tijd, locatie, frequentie)
  2. Analyse van toegangspaden - Bepalen welke gevoelige resources afwijkende gebruikers kunnen bereiken via machtigingsketens
  3. 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.

Voorbeeldafbeelding van een werkstroomdiagram met behulp van digitale tweelingen en grafiekhistorisatie.

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:

  1. Evolutie in de loop van de tijd bijhouden - Controleren hoe fysieke ruimten en systemen veranderen
  2. Historische analyse uitvoeren - Patronen en trends in gebruik en prestaties identificeren
  3. Historische statussen vergelijken - Afwijkingen detecteren of verbeteringen meten in verschillende perioden
  4. 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.