Hoe we beveiliging in aangepaste agents hebben ingebouwd
Oeps! Het lijkt erop dat je advertentieblokkering het afspelen van de video verhindert.
Bekijk het op YouTube
Een cruciaal onderdeel van de lancering van aangepaste agents was waarborgen dat deze nieuwe vorm van AI-workflow zo veilig mogelijk is voor onze klanten.
De meeste moderne AI-agents zijn ontwikkeld voor één gebruiker met een relatief eenvoudige set machtigingen die aan die gebruiker zijn toegewezen. In een samenwerkingsomgeving hebben agents echter diverse behoeften. Hen de machtiging geven om alles te doen is gevaarlijk, en een machtiging om niets te doen is zelden nuttig.
Met onze aangepaste agents brengen we beide aspecten in evenwicht: voldoende toegang in samenwerkingsomgevingen om de juiste mate van ondersteuning te bieden (bijvoorbeeld het toewijzen van een taak), maar standaard strikte beperkingen die garanderen dat een agent geen gevaarlijke acties kan uitvoeren (zoals het verwijderen van alle content). In de loop der jaren hebben we geavanceerde machtigings- en governance-mechanismen ontwikkeld waarmee onze klanten hun workspaces kunnen beheren. We hebben diezelfde structuren ook ingezet om onze gebruikers gedetailleerde controle over hun agents te bieden, zodat ze hun workspaces zo veilig mogelijk kunnen houden.
Controle is standaard
Aangepaste agents maken gebruik van een beveiligingsmodel waarbij ze in eerste instantie geen toegang hebben tot de meeste bronnen. Ze hebben dus geen machtiging om iets te lezen, te schrijven of te communiceren.
Deze aanpak staat bewust in schril contrast met veel persoonlijke AI-assistenten, waarbij vaak wordt begonnen met ruime toegangsrechten en gebruikers moeten zorgen dat veiligheidsinstructies niet in de verdrukking raken. We willen de veiligheid niet overlaten aan besluitvorming door het model. In plaats daarvan willen we dat veiligheid al op de toegangsbeheer- en deterministische laag is ingebouwd.
We bieden gebruikers gedetailleerde beheerfuncties waarmee ze de juiste beveiligingskeuzes kunnen maken voor hun specifieke toepassingen. En gevorderde gebruikers kunnen ongekend krachtige autonome agents bouwen.
Machtigingen op bronniveau
Standaard zo weinig mogelijk machtigingen toekennen is een prima aanpak, maar het is belangrijk dat gebruikers probleemloos machtigingen kunnen inrichten en begrijpen die ze voor hun applicatie nodig hebben.
Enkele opvallende voorbeelden zijn:
Gedetailleerde machtigingen op paginaniveau: gebruikers kunnen toegangsrechten voor het weergeven of bewerken van specifieke pagina's toekennen, niet alleen algemene toegang tot de workspace
Rechtstreekse Slack-integratie: dankzij rechtstreekse integratie met Slack kunnen we eenvoudig te configureren gedetailleerde machtigingen bieden op een manier die MCP niet doet
E-mail: je kunt kiezen of je bevestiging wilt geven voordat e-mails worden verzonden
MCP-integraties: bij een MCP-integratie gaat het niet om resources, maar kun je aangeven welke tools je beschikbaar wilt stellen en of je bepaalde typen acties wilt bevestigen of altijd wilt toestaan
Beveiligingsmaatregelen en waarschuwingen
We moesten ook rekening houden met onverwacht gedrag tijdens de uitvoering, wanneer de agent daadwerkelijk aan het werk is. We hebben gekozen voor een meerlaagse beveiligingsaanpak: machtigingen in combinatie met maatregelen tegen prompt-injectie tijdens de uitvoering.
Bescherming tegen prompt-injectie: prompt-injectie is een van de grootste en bekendste uitdagingen voor AI-agents. Dit blijft een onopgelost probleem en we ontwikkelen ons systeem niet in de veronderstelling dat alle prompt-injecties worden gedetecteerd (hoewel dat bij veel ervan wel het geval is). In plaats daarvan hebben we gelaagde maatregelen geïmplementeerd om de impact van prompt-injectie te blokkeren. Hierbij besteden we speciale aandacht aan het taggen en monitoren van externe gegevens om mogelijke aanvallen te identificeren. Als iets verdacht lijkt of als een agent acties uitvoert die wijzen op een mogelijke aanval, kunnen we die agent stoppen en de gebruiker om bevestiging laten vragen.
Waarschuwingssysteem: als een agent op het punt staat iets te doen wat mogelijk risico's met zich meebrengt, pauzeert deze en vraagt deze eerst om toestemming van de gebruiker. Hoe dit gebeurt, hangt ervan af of de gebruiker de agent configureert of uitvoert. Bij het configureren van een agent die mogelijk risicovolle acties uitvoert, krijgen gebruikers een reeks pop-ups te zien, variërend van een eenvoudige bevestiging tot een verzoek tot goedkeuring door de beheerder van de workspace. Wanneer een agent tijdens de uitvoering een risicovolle actie uitvoert, dwingen we deze om de betreffende actie te laten goedkeuren door de eigenaar van die aangepaste agent. Dit weerspiegelt onze veelzijdige aanpak van machtigingen en beveiliging op ons gehele platform.
Herstel (een verwijderknop): als een agent een fout maakt, bijvoorbeeld door iets verkeerds in Slack te plaatsen, kan de eigenaar van de agent dat bericht verwijderen. Dat klinkt eenvoudig, maar het is belangrijk om gebruikers de mogelijkheid te bieden eventuele schade ongedaan te maken en niet alleen te voorkomen.
Hoe we ons machtigingsmodel verder hebben ontwikkeld
Om tot dit model te komen, is een uitgebreid alfa-testprogramma uitgevoerd, zowel intern bij Notion als extern bij klanten. We wilden met name stresstesten hoe de beveiliging in de praktijk functioneerde met oplopende schaal. Na afloop van de alfa-testperiode had Notion meer dan 3.000 interne aangepaste agents en hadden onze alfa-klanten er meer dan 25.000 gebouwd.
We hebben al snel enkele lessen geleerd. Zo moedigden vroege interne versies van aangepaste agents de gebruikers aan om te weinig beperkingen op te leggen zonder inzicht in de mogelijke gevolgen daarvan. Gebruikers gaven agents uiteindelijk uitgebreide schrijftoegang tot Slack, en die agents plaatsen zelfs meerdere malen berichten in #general, het bedrijfsbrede kanaal met daarin honderden personen (de agent weet dat elke Slack-workspace #general heeft). Dat was duidelijk niet de bedoeling van de gebruikers! Dit was voor ons aanleiding om een nieuwe aangepaste machtiging voor Slack te ontwikkelen: 'lezen en antwoorden', waarmee agents kunnen reageren op threads waarin ze expliciet zijn geactiveerd. We beschouwen het als onze taak om dit soort machtigingen te implementeren, zodat gebruikers hun werk veilig kunnen doen in plaats van hen te dwingen 'alles toe te staan'.
Dit heeft er ook toe geleid dat we er bewust voor hebben gekozen enkele eigen integraties te ontwikkelen in plaats van uitsluitend op MCP's te vertrouwen. Aangezien de meeste moderne MCP's met name zijn ontwikkeld voor gebruik door één gebruiker, bieden ze doorgaans geen native ondersteuning voor resource-gebaseerde machtigingen of triggers. Door eigen integraties te ontwikkelen, konden we ons machtigingsmodel afdwingen zonder dat dit extra werk voor onze klanten met zich meebracht.
Dankzij dit proces is ons eigen beveiligingsteam uitgegroeid tot een van de meest actieve interne gebruikers van aangepaste agents. En daar zijn we bijzonder trots op. Het beveiligingsteam heeft bijvoorbeeld een agent gebouwd met de naam Scruff die beveiligingswaarschuwingen evalueert en aanvult. En het team zet agents in voor het automatiseren van applicatiebeveiliging, genereren van codefixes en uitvoeren van aanvalstesten. Er is echt sprake van samenwerking tussen ons AI-productteam en ons beveiligingsteam.
De volgende stap
De lancering was nog maar het begin. We investeren fors in betere veiligheids- en beveiligingswaarborgen naarmate onze producten en de hele sector zich verder ontwikkelen. De bèta-periode van onze aangepaste agents in de komende maanden zal ons ook helpen om samen met onze klanten verdere verbeteringen door te voeren.
In de komende weken en maanden willen we het volgende aanpakken:
Opnieuw implementeren van bredere machtigingsbereiken waarvoor goedkeuring van de beheerder van de workspace is vereist voor geavanceerde gebruiksscenario's
Uitbreiden van de mogelijkheden van gedetailleerde machtigingen naar externe integraties die op het Workers-platform zijn gebouwd
Overwegen van aanvullende machtigingsmodi voor verschillende gebruiksscenario's zodra er meer waarborgen zijn ingebouwd
We bevinden ons nog in de beginfase van verdere ontwikkeling van deze technologie en krijgen graag feedback en suggesties van de community voor verbetering.

