Taint Analysis for Graph APIs Focusing on Broken Access Control

Dit paper presenteert een systematische aanpak voor statische en dynamische taint-analyse van Graph API's om gebroken toegangscontrole te detecteren, waarbij graftransformatieregels en kritieke paar-analyse worden gebruikt om onbevoegde datastroom tussen bronnen en zinken te identificeren en te valideren.

Leen Lambers, Lucas Sakizloglou, Taisiya Khakharova, Fernando Orejas

Gepubliceerd 2026-03-10
📖 4 min leestijd☕ Koffiepauze-leesvoer

Each language version is independently generated for its own context, not a direct translation.

De Digitale Sleutels: Hoe je een Graph API op zijn veiligheid controleert

Stel je voor dat een Graph API (zoals die van GitHub of Facebook) een enorm, levendig spookhuis is. In dit huis zijn alle data (foto's, berichten, bestanden) niet in mappen opgeslagen, maar verbonden als een gigantisch web van knopen en lijnen. Een foto is een knoop, en de link naar de persoon die hem heeft geplaatst is een lijn.

Het probleem? In zo'n groot, complex web is het heel makkelijk om per ongeluk een deur open te laten staan waar niemand had moeten kunnen binnenkomen. Dit heet "Broken Access Control" (gebroken toegangscontrole).

De auteurs van dit artikel hebben een nieuwe manier bedacht om te controleren of die deuren echt op slot zitten. Ze noemen hun methode "Taint Analysis" (Vuilneming-analyse).

1. Het Concept: "Vuil" Maken (Tainting)

Stel je voor dat je in dat spookhuis een paar specifieke objecten hebt die heel gevoelig zijn: bijvoorbeeld de sleutels tot de kluis of geheime documenten.

In de taal van de onderzoekers noemen ze deze gevoelige objecten "gecontamineerd" of "gevuild" (tainted).

  • De Vlek: Als een object "gevuild" is, betekent dit: "Dit is geheim of gevoelig. Alleen mensen met een speciale sleutel (rechten) mogen hierbij."
  • Het Doel: De onderzoekers willen weten: Komen deze "vuile" objecten op de verkeerde plekken terecht?

2. De Drie Stappen van de Detectie

De methode bestaat uit drie fases, die we kunnen vergelijken met het inspecteren van een veiligheidsplan voor een museum.

Fase 1: De Opzet (Het Tekenplan)
Eerst maakt de veiligheidsinspecteur een tekening van het museum (de API).

  • Hij markeert welke objecten "gevuild" zijn (bijvoorbeeld: Repository = een code-bibliotheek).
  • Hij noteert welke regels er gelden: "Alleen de eigenaar mag de kluis openen, niet de schoonmaker."
  • Hij maakt een lijst van alle mogelijke acties: "Iemand kan een nieuwe kluis maken (Source)" en "Iemand kan een kluis openen (Sink)".

Fase 2: De Statische Analyse (Het Simuleren zonder te bewegen)
Nu kijkt de inspecteur naar het tekenplan en vraagt hij zich af: "Als ik deze twee regels achter elkaar uitvoer, kan er iets misgaan?"

Ze gebruiken een slimme wiskundige techniek (genaamd Critical Pair Analysis) om te kijken of er een pad is tussen het maken van een gevoelig object en het gebruiken ervan.

  • Directe link: Iemand maakt een kluis en probeert hem direct weer open te maken.
  • Indirecte link: Iemand maakt een kluis, bouwt er een muur omheen, en probeert hem dan open te maken.

De computer zoekt automatisch naar alle mogelijke combinaties. Als de computer ziet dat een "schoonmaker" (geen rechten) een "kluis" kan openen die net is gemaakt door een "eigenaar", dan zegt de computer: "Let op! Hier is een potentieel gat in de beveiliging!"

Belangrijk: De computer is slim, maar niet perfect. Soms denkt hij dat er een gat is, terwijl er in werkelijkheid een muur tussen zit die het probleem oplost (een vals alarm). Daarom is er een derde stap nodig.

Fase 3: De Dynamische Analyse (Het Echte Testen)
Nu gaan de inspecteurs het museum echt binnenlopen om te testen.

  • Ze nemen de "vals alarms" van de computer en proberen ze in het echt na te bootsen.
  • Ze spelen de rol van de "schoonmaker" en proberen de "kluis" open te maken.
  • Resultaat:
    • Als de deur echt open gaat: Bingo! We hebben een echte beveiligingslek gevonden.
    • Als de deur dicht blijft: Geruststellend. De computer had een vals alarm. De beveiliging werkt zoals het hoort.

3. Het Voorbeeld uit de Wereld: GitHub

De auteurs hebben hun methode getest op GitHub (waar programmeurs hun code opslaan).

  • Het scenario: Stel, een gebruiker maakt een nieuwe code-bibliotheek (Repository). Alleen de eigenaar mag deze later bewerken.
  • De test: De computer zoekt naar combinaties waarbij iemand anders (bijvoorbeeld een medewerker) die bibliotheek toch kan bewerken.
  • De ontdekking: Ze hebben een echte fout gevonden die al in de GitHub-community bekend was (een bug waar gebruikers over klaagden). Hun methode kon dit probleem systematisch vinden en bewijzen dat het bestond.

Waarom is dit belangrijk?

Vroeger moesten beveiligingsexperts handmatig door duizenden regels code graven om te zien of er gaten waren. Dat is als het zoeken naar een naald in een hooiberg.

Met deze nieuwe methode:

  1. Automatisering: De computer doet het zware werk van het vinden van mogelijke gaten.
  2. Systematisch: Je mist geen combinaties.
  3. Betrouwbaar: Je weet precies welke gaten echt gevaarlijk zijn en welke niet.

Samenvatting in één zin

De auteurs hebben een slimme, tweestaps-methode ontwikkeld (eerst computer-simulatie, dan echte test) om in complexe digitale netwerken (Graph APIs) automatisch te vinden of gevoelige data per ongeluk in de verkeerde handen terechtkomt, zodat hackers niet bij de kluis kunnen komen.