Een SOC analyst krijgt een screenshot van Microsoft 365 Copilot. Onder het antwoord staat een citation naar Bid Annex.docx, een contract met het sensitivity label Negotiation. De gebruiker kan op de link klikken. Is de DLP rule verkeerd geconfigureerd? Kijk eerst naar wat Copilot uit de bijlage heeft overgenomen. Een citation mag zichtbaar zijn terwijl de rule de inhoud uitsluit van grounding. De interessante vraag voor het SOC is of de response een detail bevat dat uitsluitend in die bijlage staat.

Ik zou dit testen met twee feiten. In de projectbrief staat de leverweek, in de bijlage een fictieve biedlimiet. Met hetzelfde account vraag je in één prompt naar beide. Vóór enforcement wil je beide feiten terugzien. Na enforcement verwacht je de leverweek, terwijl de limiet uit de bijlage buiten de response blijft. Je mag de bijlage nog steeds handmatig kunnen openen. Zo test je één policy action zonder tegelijk de SharePoint permissions te wijzigen.

De walkthrough gaat uit van een Microsoft 365 E5 demotenant met Microsoft 365 Copilot voor de testgebruikers. Je werkt met een Custom policy, een pilotgroep en een apart adminaccount. De rule voor sensitivity labels is algemeen beschikbaar. Voor deze test heb je de preview voor het blokkeren van gevoelige tekst in prompts niet nodig. Alle resultaten in dit artikel zijn verwachte uitkomsten voor je eigen lab.

Waar de DLP rule ingrijpt op grounding

De rule evalueert het sensitivity label op het file item. In SharePoint bepaal je met permissions wie de bron kan openen. In Purview bepaal je voor welke gebruikers Copilot de gelabelde inhoud moet overslaan. Geef je de bijlage het label Negotiation, dan kan de regel herkennen dat Copilot de inhoud moet overslaan. Een label kan ook versleuteling en gebruiksrechten instellen. Die kunnen op zichzelf al bepalen of een gebruiker of een dienst tekst uit het document mag halen. Kies voor deze proef een gepubliceerd bestandslabel zonder versleuteling. Zo kun je het effect van jouw nieuwe regel apart onderzoeken. Gebruik daarvoor uitsluitend fictieve gegevens.

Copilot werkt met de rechten van degene die de vraag stelt. Iemand zonder leesrecht op een bestand krijgt via deze functie geen extra recht. Omgekeerd zegt een geslaagde handmatige leestest alleen iets over de toegang van die persoon. Daarna komt de vraag of Copilot de inhoud als bron mag gebruiken. Dat gebruik van broninhoud heet grounding. Een citation kan nog in het antwoord staan als Purview het gebruik van de tekst heeft geblokkeerd.

Let ook op wie je selecteert voor het beleid. Je kunt de gebruiker die de vraag stelt opnemen in de pilot. De eigenaar van het bestand is voor die keuze niet bepalend. Laat de contractmanager de bijlage aanmaken en laat de inkoper de vraag stellen. Voeg dan de inkoper toe aan de pilotgroep. Als je alleen de contractmanager opneemt, test je met het verkeerde account. Controleer dit voordat je de regel gaat aanpassen.

Het diagram laat ook zien waar je een ander probleem moet oplossen. Kan iemand buiten inkoop de bijlage zelf openen terwijl de contractmanager dat niet bedoelde, onderzoek dan eerst de gedeelde koppeling of de groepsrechten op de bibliotheek. Een DLP regel voor Copilot herstelt dat toegangsprobleem niet. Klopt de toegang en wil de eigenaar alleen het gebruik in een samenvatting beperken, dan past deze regel wel bij de vraag.

Bouw een baseline met twee SharePoint bestanden

Maak op een besloten SharePoint testsite twee Wordbestanden. Zet in Project Brief de fictieve leverweek, week 18. Zet in Bid Annex één zin met een afwijkende, fictieve biedlimiet, bijvoorbeeld 173850 euro. Gebruik neutrale bestandsnamen en laat de limiet weg uit titels, opmerkingen en de projectbrief. Een bedrag in een bestandsnaam kan al in een bronverwijzing staan. Dan kun je achteraf niet zien of Copilot het bedrag uit de tekst of uit de naam heeft gehaald.

Geef het testaccount leesrechten op beide bestanden. Open ze onder dat account en controleer de tekst. Publiceer het bestandslabel Negotiation voor het account dat de bijlage labelt. Kies in Word bij Sensitivity het bedoelde label, sla de bijlage op en open die opnieuw. Controleer het label op het document zelf. Een label dat je bij de SharePoint site ziet, vertelt je nog niet welk label deze bijlage draagt. Laat de projectbrief buiten de labelregel.

Doe eerst een nulmeting zonder de nieuwe regel. Open een nieuw gesprek in Microsoft 365 Copilot met toegang tot werkgegevens. Verwijs naar de twee bestanden op SharePoint. Vraag welke leverweek de projectbrief noemt en welke biedlimiet in de bijlage staat. Zet het bedrag zelf nergens in de vraag. Noteer of Copilot beide feiten vindt. Als het bedrag nu al ontbreekt, kun je na activering van de regel geen werking afleiden uit hetzelfde resultaat. Kijk eerst naar de toegang, de bronselectie en eventuele bestaande bescherming.

Leg de vraag, het tijdstip, het account, de gebruikte app en de versies van beide bestanden vast. Bewaar ook het antwoord van deze eerste ronde. Start voor de volgende proef een nieuw gesprek. Anders kan een antwoord uit de eerdere conversatie de biedlimiet al bevatten. Met zo weinig testgegevens kun je nog een tweede fout uitsluiten. Laat een collega vooraf zoeken of hetzelfde fictieve bedrag elders op de testsite staat. Een regel op één bijlage beschermt geen kopie die elders zonder dat label staat.

Configureer de policy location en rule action

Open de Microsoft Purview portal. Kies Solutions, Data Loss Prevention en vervolgens Policies. Klik op Create policy, kies de categorie Custom en daarna Custom policy. Geef het beleid een herkenbare naam, bijvoorbeeld Copilot DLP Pilot. Vermeld in de omschrijving het doel en de eigenaar van de pilot. Gebruik een account met passende Purview rechten. De rol Purview Data Security AI Admin kan dit beleid beheren. Controleer apart welke Purview en Copilot licenties je testgebruikers hebben.

Selecteer bij Locations alleen Microsoft 365 Copilot and Copilot Chat. Deze locatie hoort bij de aangepaste template en sluit andere locaties binnen hetzelfde beleid uit. Wil je ook het verzenden van een bijlage vanuit Exchange beperken, behandel dat als een apart beleidsbesluit. Kies bij de Copilot locatie de pilotgebruikers of hun groep. Controleer of het account waarmee je de nulmeting deed binnen die selectie valt en of er een uitsluiting op dat account van toepassing is.

Maak een regel met de conditie Content contains. Kies Sensitivity labels en selecteer Negotiation. Stel als actie Prevent Copilot from processing content in. Lees de regel daarna terug alsof je de inkoper bent. Als jij een vraag stelt en Copilot daarvoor deze gelabelde bijlage wil gebruiken, hoort de inhoud buiten het antwoord te blijven. Staat bij de conditie een sensitive information type, dan heb je een andere test gebouwd. Voor de labelregel hoeft de biedlimiet niet aan een herkenbaar nummerpatroon te voldoen.

Begin met simulation mode als je wilt bekijken welke activiteit de regel raakt. Schakel voor de praktijktest enforcement in voor de afgebakende groep. Noteer wanneer je dat doet. Microsoft geeft aan dat het tot vier uur kan duren voordat een wijziging in Copilot doorwerkt. Voer in die periode geen reeks kleine beleidswijzigingen door. Je kunt de uitkomst dan nauwelijks meer koppelen aan de versie van de regel die je wilde testen. Kies één meetmoment na die termijn en houd een logboek bij.

Laat bij voorkeur de inkoper zelf de tweede ronde doen. Als jij het document opent vanuit je beheerdersaccount, kunnen je licentie, je toegangsrechten en je groepslidmaatschap alle drie afwijken. Een test door de verkeerde persoon kan technisch keurig verlopen en toch geen antwoord geven op de vraag van het inkoopteam.

Valideer enforcement met een control file

Gebruik voor beide runs letterlijk deze prompt. Lees Project Brief en Bid Annex. Geef de leverweek en de maximale biedlimiet uit de opgegeven bestanden. Laat een waarde weg als je die niet uit de bestanden kunt halen.

Stel in een leeg gesprek dezelfde vraag en verwijs opnieuw naar dezelfde opgeslagen bestanden. De gewenste uitkomst is dat Copilot week 18 uit de projectbrief kan noemen en de biedlimiet uit de gelabelde bijlage overslaat. Een link naar de bijlage past binnen dat resultaat. Open de link als inkoper. Kun je het bedrag handmatig lezen, dan heb je precies de combinatie getest waar de eigenaar om vroeg. Leg zowel het antwoord als de controle op het leesrecht vast.

Trek ook uit een leeg antwoord geen snelle conclusie. Als zowel de leverweek als het bedrag ontbreekt, weet je nog niet of de labelregel het verschil heeft gemaakt. Vraag afzonderlijk naar de projectbrief en geef daarbij de bron op. Komt de leverweek terug, herhaal dan de vraag naar alleen de bijlage in een nieuw gesprek. Vergelijk die uitkomst met de nulmeting. Zo voorkom je dat een slecht gevonden projectbrief ten onrechte doorgaat voor een geslaagde beveiligingstest.

RunScope en bronVerwachte uitkomst
BaselinePilotaccount, beide bestandenWeek en bedrag vindbaar
EnforcementPilotaccount, beide bestandenWeek vindbaar, bedrag uit bijlage uitgesloten
Scope controlAccount buiten pilot, gelijke rechtenBeide feiten vindbaar als geen andere rule ingrijpt
Access checkPilotaccount opent Bid AnnexBedrag handmatig leesbaar

Lees de policy en rules terug met PowerShell

Gebruik de ExchangeOnlineManagement module en meld je met de opdracht Connect-IPPSSession aan bij Security and Compliance PowerShell. Onderstaande opdrachten lezen het beleid en de bijbehorende regels. Vul de exacte beleidsnaam uit jouw tenant in. Voer ze als beheerder uit wanneer je de gebruikerstest doet, zodat het tijdstip van de controle bij je meetgegevens past.

Connect-IPPSSession
$naam = “Copilot DLP Pilot”
Get-DlpCompliancePolicy -Identity $naam |
    Select-Object Name, Mode
Get-DlpComplianceRule -Policy $naam |
    Select-Object Name, Disabled, Priority

Controleer de modus, de naam van de regel en of de regel actief is. Bekijk de condities en acties ook in de portal. Het bestaan van een regel bewijst alleen dat je die configuratie hebt opgeslagen. Voor een uitspraak over handhaving heb je de vergelijking tussen de twee gesprekken nodig. Geeft PowerShell geen resultaat, controleer dan eerst je verbinding, je leesrechten en de exacte beleidsnaam voordat je een tweede beleid aanmaakt.

Troubleshooting per invoerroute

De biedlimiet staat toch in het antwoord. Noteer eerst welk bedrag Copilot geeft. Een verzonnen rond bedrag is een ander probleem dan exact 173850 euro uit je testbestand. Zoek daarna naar dezelfde tekst in andere bronnen die het account kan lezen. Controleer of je naar het opgeslagen document verwees en of het gelabelde bestand de versie is die je voor de nulmeting gebruikte. Vraag vervolgens de beheerder of de regel toen al in handhaving stond. Pas daarna heeft het zin om de werking van de dienst te onderzoeken.

Copilot in Word geeft een ander resultaat dan de chat. In Word, Excel en PowerPoint beoordeelt de toepassing het label bij het openen van een bestand. Breng je het label tijdens een sessie aan, sluit het bestand dan en open het opnieuw voordat je de ingebouwde Copilot functie test. Leg de uitkomsten voor Word en voor chat afzonderlijk vast. Een screenshot van een uitgeschakelde functie in Word vertelt je weinig over de bronnen die iemand in een eerdere chat gebruikte.

De inkoper uploadt een lokale kopie als bijlage bij haar vraag. Dat is een andere invoerroute dan een verwijzing naar het opgeslagen SharePoint bestand. Microsoft vermeldt dat deze DLP locatie de inhoud van bestanden die rechtstreeks in een prompt worden geüpload niet scant op gevoelige gegevens. Noteer deze route als aparte bevinding. Trek de conclusie van de SharePoint proef dus niet door naar alle manieren waarop iemand informatie aan Copilot kan geven. Dat verschil hoort thuis in de instructie die inkoop krijgt.

Kies de action die bij de invoer past

Bespreek ook de vraag die in een pilot vaak als eerste terugkomt. Wat gebeurt er als een medewerker de biedlimiet zelf in de chat typt? Jouw regel kijkt naar het label op het bronbestand. Getypte tekst heeft dat label niet. Microsoft beschrijft apart een preview waarmee je gevoelige informatietypen in prompts kunt blokkeren. Die vraagt een eigen regel, een geschikt informatietype en een test in jouw tenant. Een willekeurig geldbedrag is op zichzelf geen betrouwbare aanwijzing dat iemand een onderhandelingslimiet invoert. Voor een prompt met een Sensitive information type kun je twee verschillende actions tegenkomen. Processing prompts stopt de verwerking van een matchende prompt. Performing Web Searches beperkt de externe web search voor die prompt. Copilot kan dan nog antwoorden op basis van toegestane interne bronnen. Zet sensitivity labels en sensitive information types in afzonderlijke rules. Microsoft ondersteunt beide conditions niet samen in één rule.

Breid je de pilot uit naar Exchange, kies dan opnieuw een geschikte control. Microsoft documenteert voor deze labelregel ondersteuning voor email die op of na 1 januari 2025 is verzonden. Calendar invites vallen buiten deze dekking. Een test met een oude mail of een meeting invite beantwoordt dus een andere vraag dan dezelfde test met een recent verstuurde, gelabelde mail. Noteer item type en verzenddatum naast AppHost en policy mode in je logboek.

Onderzoek een DLP alert in de Microsoft Purview portal

Gebruik twee bronnen bij een melding. De DLP alert geeft context over de policy match als je alerts hebt ingeschakeld. Een CopilotInteraction record in Microsoft Purview Audit beschrijft de interactie met Copilot. Open voor de eerste bron Solutions, Data Loss Prevention, Alerts. Zoek op het tijdstip van de run en controleer de policy en de rule. Voor de tweede bron open je Solutions, Audit, Search. Zoek binnen hetzelfde tijdvenster op de testgebruiker en vul CopilotInteraction in bij Activities, operation names.

Open het audit record en bekijk CopilotEventData. AppHost vertelt je vanuit welke toepassing de gebruiker de prompt verstuurde. ThreadId helpt om records uit hetzelfde gesprek bij elkaar te houden. AccessedResources kan per bron een Id, Name, Action en SensitivityLabelId bevatten. Vergelijk de identifier van een bron met die van het bestand in je lab. Alleen de naam vergelijken is riskant als dezelfde bijlage ook als losse kopie op een andere site staat.

Je kunt hetzelfde onderzoek met PowerShell doen. Gebruik een account met rechten om Audit te doorzoeken. Het voorbeeld beperkt de zoekopdracht tot één gebruiker en de afgelopen twee uur. Pas het account en tijdvenster aan voor jouw run. De output bevat het record ID en de resource names. Daarmee kun je gericht het volledige record in Purview terugzoeken.

Connect-ExchangeOnline
$end = [datetime]::UtcNow
$query = @{
    UserIds = ‘pilot@contoso.onmicrosoft.com’
    StartDate = $end.AddHours(-2)
    EndDate = $end
    Operations = ‘CopilotInteraction’
    ResultSize = 100
}
Search-UnifiedAuditLog @query | ForEach-Object {
    $record = $_.AuditData | ConvertFrom-Json
    $event = $record.CopilotEventData
    [pscustomobject]@{
        TimeUTC = $record.CreationTime
        RecordId = $record.Id
        AppHost = $event.AppHost
        ThreadId = $event.ThreadId
        Resources = $event.AccessedResources.Name -join ‘, ‘
    }
} | Format-List

Een leeg veld voor AccessedResources betekent dat het record daar geen resources vermeldt. Je kunt uit dat ene veld niet afleiden waarom de biedlimiet ontbreekt. Controleer eerst AppHost en het tijdstip, vergelijk daarna met je baseline en de opgeslagen response. Staat de exacte limiet in de response, zoek dan naar een tweede toegestane bron voordat je een incident toeschrijft aan DLP. Staat alleen de bestandsnaam in de citation, registreer dan precies die waarneming. Dat zijn verschillende bevindingen met verschillende vervolgstappen.

Acceptatiecriteria voor de rollout

Breid de pilot uit als de inkoper de bijlage kan blijven lezen, Copilot de toegestane leverweek vindt en de beschermde biedlimiet in een schone test uit het antwoord blijft. Laat een tweede medewerker de proef herhalen met een nieuw fictief bedrag. Wijzig ook de vraag, bijvoorbeeld naar het maximale bod in plaats van naar de biedlimiet. Daarmee controleer je of de uitkomst ook bruikbaar is voor iemand die de woorden uit jouw testscript niet kent.

Leg aan het team uit dat een samenvatting onvolledig kan zijn wanneer Copilot een bron moet overslaan. Voor de inkoper heeft dat een praktisch gevolg. Ze kan de projectbrief laten samenvatten, maar voor het bod moet ze zelf de contractbijlage openen. Die instructie is minstens zo belangrijk als de beleidsregel. Anders neemt iemand een bodbesluit op basis van een samenvatting waar juist het beslissende bedrag in ontbreekt.

Volg ITCowboys voor de volgende technische deep dive. In de komende blogs pak ik meer Microsoft Security, XDR, Sentinel, Identity en Purview onderwerpen op vanuit de praktijk.

Leave a Reply

Your email address will not be published. Required fields are marked *