~/blog/tag/security
Beveiliging
Over beveiliging, privacy en het bouwen van veilige systemen.
Waar ik over schrijf
Beveiliging op deze site komt in twee smaken voorbij. De nieuwe, waarbij het risico-oppervlak gevormd wordt door AI en agents, en de oude, waarbij de vraag is wie eigenaar is van je data en je infrastructuur.
De AI-variant dekt het grootste deel van de recente stukken. Agents die rechtstreeks in productie aan de slag gaan, prompt injection in tools waarvan je was vergeten dat ze open stonden, en het tragere probleem van beveiligingsschuld die zich stil ophoopt in AI-gegenereerde code die niemand zin heeft om te auditen. Eén op de vier van die commits is inmiddels het probleem van iemand anders.
De oude variant is niet weggegaan. Je moet nog steeds weten waar je data leeft, wie er toegang toe heeft, en wat er gebeurt als de SaaS waar je op leunt zijn mening over jouw tier verandert. De self-hosting stukken zijn geen nostalgie. Ze gaan over controle, en daar steunt beveiliging uiteindelijk op.
Allebei stellen dezelfde vraag. Wat doet een capabele aanvaller met wat je vandaag bouwt, zes maanden later, als je er niet meer scherp op let? De meeste stukken onder deze tag zijn een variant op die vraag.
Voor het AI-deel van dat verhaal is er nu een vaste route: de gids MCP en security.
beste startpunten
- Prompt injection voorkomen: verdediging voor wie agents bouwt
De verdediging die standhoudt. Niet de demo met de vergiftigde webpagina, maar het aanvalsoppervlak van je eigen setup.
- Er zat niemand achter het stuur: de eerste inbraak die een agent zelf uitvoerde
De eerste inbraak die een agent zelf uitvoerde. Vier pivots, één uur, geen mens aan het stuur.
- Claude Code permissions instellen: de gids die ik miste
Wat een agent mag, als één model: modes, allow- en deny-regels, hooks en de sandbox. De gids die ik zelf miste.
Plugin4Shell: een gepinde plugin is pas gepind als iets controleert wat er echt is uitgecheckt
Air liet zien dat Claude Code, Codex, Copilot en Gemini CLI git om de commit vroegen die een marketplace had gepind, zonder na te gaan of ze die ook echt kregen. Ik bouwde het na in git, zag Claude Code het weigeren en vond hetzelfde gat in mijn eigen CI-runner.
lees →Een MCP-beveiligingsscore is geen oordeel
Een MCP-beveiligingsscore ziet eruit als een uitspraak over een server. Gemeten over 74.101 servers is het meeste wat een scanner je vertelt een heuristiek, en wat je bijna nooit te zien krijgt, is dat niemand de broncode heeft gelezen.
Slopsquatting: bestaat het package? Verkeerde vraag
Het standaardadvies tegen verzonnen packages luidt: controleer eerst of het package bestaat. Ik heb vier namen uit het nieuwste onderzoek opgezocht op PyPI. Ze bestaan alle vier. De registry beantwoordt de verkeerde vraag, en dat gaat in beide richtingen mis.
Je CI-runner beveiligen als een agent je workflow schrijft
Je eigen forge en runner draaien is in 2026 een verdedigbare keuze. Alleen schrijft niemand op hoe je je CI-runner beveiligt op het platform waar je naartoe verhuisde, en een permissiemodel dat om een dialoog heen is gebouwd, overleeft de stap naar een pipeline niet.
Claude Code-credentials maskeren: geheimen uit je sandbox houden
Hoe je credential masking in de Claude Code-sandbox instelt, zodat je agent-shell een sentinel vasthoudt in plaats van je echte token: env-vars, JWT-claims, AWS-verzoeken opnieuw ondertekenen, en de drie dingen die deze maatregel je niet oplevert.
Audit logging voor AI-agents: wat Claude Code vastlegt en wanneer je iemand wakker belt
Je coding agent schrijft allang een gedetailleerde auditlog naar je eigen schijf. In de compliance-feed van je organisatie staat hij niet, OpenTelemetry lakt hem standaard weg, en het lastige deel blijft de vraag wie het allemaal leest.
De agents lieten briefjes voor elkaar achter
De tijdlijn van het Hugging Face-incident die OpenAI op Black Hat liet zien: het prikbord waarop de agents onderling afstemden was een interne package registry, en het weghalen ervan hield ze vier dagen tegen.
Incident response voor AI-agents: wat je doet als je coding agent de fout in gaat
Een draaiboek in vijf fases voor het uur nadat je coding agent iets sloopt: sessie bevriezen, reconstrueren uit het transcript, blast radius bepalen, roteren, en de permissie repareren die het mogelijk maakte.
Het gat dat je sandbox bruikbaar maakt
Twee ontsnappingen uit een agent-sandbox in één week, bij OpenAI en bij Claude Cowork. In beide gevallen klom de agent één privilegeniveau omhoog binnen een omgeving waar alles van waarde al lag, zonder ook maar één muur te passeren.
Je MCP-server beveiligen: authenticatie, scopes en rate limits
Je hebt een MCP-server gebouwd. De tutorial stopte waar beveiliging begint. Zo voeg je OAuth, scoped tokens en rate limits toe aan je eigen server, met TypeScript- en Laravel-voorbeelden, zodat hij niet tussen de 12.500 open servers belandt.