← Nieuwste papers
💻 computer science

Prevalence of Cross-File Dependencies in Terraform and Their Resolution by Security Scanners

Dit artikel analyseert een grootschalige Terraform-dataset om aan te tonen dat afhankelijkheden tussen bestanden wijdverspreid zijn en vaak betrekking hebben op beveiligingsgevoelige resources, terwijl het via gecontroleerde experimenten demonstreert dat moderne beveiligingsscanners variërende maar significante vermogens bezitten om deze complexe relaties tussen bestanden op te lossen, wat de aanname uitdaagt dat zij geen redenering over meerdere bestanden kunnen uitvoeren.

Oorspronkelijke auteurs: Moatasem M. Draz

Gepubliceerd 2026-09-21
📖 6 min leestijd🧠 Diepgaand

Oorspronkelijke auteurs: Moatasem M. Draz

Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). ✨ Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer

In de moderne digitale wereld worden de enorme servers en netwerken die onze apps, banken en streamingdiensten aandrijven, niet langer met de hand gebouwd. In plaats daarvan schrijven ingenieurs instructies in een computertaal om de cloud precies te vertellen wat hij moet bouwen. Deze praktijk wordt Infrastructure as Code genoemd. Het stelt teams in staat om complexe systemen in tekstbestanden te definiëren, waardoor gegarandeerd wordt dat elke server, firewall en opslagbucket telkens met dezelfde precisie wordt aangemaakt. Een van de meest populaire tools voor deze taak is genaamd Terraform. Het werkt als een lezer van blauwdrukken, die deze tekstuele instructies neemt en ze omzet in echte, functionerende technologie. Echter, net zoals een bouwplan over tientallen pagina's kan zijn verspreid met verwijzingen naar andere pagina's, zijn deze codebestanden zelden geïsoleerd. Ze zijn in elkaar geweven, waarbij het ene bestand een beroep doet op een ander, waarden heen en weer doorgeeft en een systeem opbouwt dat alleen bestaat wanneer alle stukken zijn samengevoegd.

De beveiliging van deze systemen hangt af van de nauwkeurigheid van deze instructies. Een enkele fout in de code, zoals het per ongeluk open laten staan van een digitale deur, kan gevoelige gegevens aan het hele internet blootstellen. Jarenlang maakten onderzoekers en beveiligingsexperts zich zorgen dat de tools die ontworpen zijn om deze blauwdrukken op fouten te scannen, blind zouden kunnen zijn voor de verbindingen tussen bestanden. De heersende opvatting was dat deze scanners slechts één bestand tegelijk konden lezen, waardoor ze de gevaarlijke geheimen die in de ruimtes tussen hen verborgen liggen, zouden missen. Als een bestand zei "gebruik de standaardinstelling" en een ander bestand definieerde die standaard als "open voor iedereen", dan zou de scanner het eerste bestand als veilig kunnen zien en het tweede bestand in isolatie ook als veilig, waardoor de gevaarlijke combinatie niet wordt opgemerkt. Dit artikel zette zich erin op om die aanname te testen tegenover een enorme collectie echte code en om te zien of de tools werkelijk zo beperkt waren als iedereen dacht.

De onderzoekers begonnen met het verzamelen van een uitgebreide bibliotheek van meer dan 62.000 publieke projecten die Terraform gebruiken. Ze wilden begrijpen hoe vaak deze projecten daadwerkelijk vertrouwen op verbindingen tussen verschillende bestanden. Door de relaties in deze projecten in kaart te brengen, ontdekten ze dat verbindingen tussen bestanden geen zeldzame uitzonderingen zijn, maar een standaard onderdeel van de manier waarop deze systemen worden gebouwd. Sterker nog, meer dan een derde van alle onderzochte projecten bevatte ten minste één verbinding waarbij het ene bestand afhankelijk was van een ander. Deze verbindingen waren niet gelijkmatig verdeeld; ze waren sterk geconcentreerd in een kleiner aantal complexe projecten, terwijl veel eenvoudigere projecten zeer weinig of helemaal geen verbindingen hadden. De meest voorkomende manier waarop deze bestanden aan elkaar gekoppeld waren, was door te wijzen naar gedeelde mappen, waarbij een project in de eigen mapstructuur omhoog of opzij reikte om een gemeenschappelijk stuk code te vinden dat het nodig had. Dit patroon toonde aan dat de manier waarop ingenieurs hun werk organiseren, van nature een web van afhankelijkheden creëert dat zich over vele bestanden uitstrekt.

De studie stelde vervolgens een cruciale vraag: leiden deze verbindingen vaak naar de meest gevoelige delen van een systeem? De onderzoekers zochten naar gevallen waarin een bestand afhankelijk was van een ander bestand dat beveiligingsinstellingen beheerde, zoals wie toegang heeft tot een database of welke computers met elkaar mogen communiceren. Ze ontdekten dat in meer dan 9.000 van de projecten deze verbindingen tussen bestanden inderdaad wezen naar deze kritieke beveiligingscontroles. Dit betekende dat de veiligheid van deze systemen vaak afhing van het vermogen om een waarde te volgen van het ene bestand, via een verbinding, naar een beveiligingsregel in een ander bestand. Als een tool dat pad niet kon volgen, keek het naar het verkeerde plaatje en zou het potentieel een kwetsbaarheid missen die alleen bestond door de manier waarop de bestanden aan elkaar waren genaaid.

Met de omvang van het probleem vastgesteld, richtten de onderzoekers zich op de tools zelf om te zien of ze deze paden daadwerkelijk konden volgen. Ze ontwierpen een gecontroleerd experiment met behulp van vier van de meest populaire beschikbare beveiligingsscanners. Ze creëerden een reeks testgevallen die de real-world verbindingen die ze hadden gevonden nabouwden, variërend van eenvoudige links tussen bestanden in dezelfde map tot complexe ketens waarbij een waarde door meerdere modules wordt doorgegeven voordat deze zijn eindbestemming bereikt. Ze testten of de scanners een beveiligingsfout konden opsporen wanneer de gevaarlijke instelling verborgen zat in een ander bestand, of dat de scanners het gevaar alleen zouden zien wanneer het direct in hetzelfde bestand geschreven stond.

De resultaten daagden de langdurig vastgehouden overtuiging uit dat deze tools fundamenteel blind zijn voor verbindingen tussen bestanden. De studie toonde aan dat de capaciteiten van de tools geen simpel ja of nee waren, maar een spectrum. Elke geteste tool was in staat om de eenvoudigste verbindingen te volgen, zoals een variabele die in het ene bestand is gedefinieerd en in een ander bestand wordt gebruikt binnen dezelfde map. Ze ontdekten allemaal succesvol het gevaar in deze basisscenario's. Echter, naarmate de verbindingen complexer werden, begonnen de tools uiteen te lopen. Slechts één van de vier scanners, Checkov, was in staat om de meest ingewikkelde paden te volgen, inclusief die waarbij waarden door meerdere lagen van modules worden doorgegeven of waar instellingen worden overschreven door speciale configuratiebestanden. De andere tools konden de directe links aan, maar verloren vaak het spoor wanneer de verbinding betrokken was bij tussenliggende stappen of specifieke bestandstypen zoals variabele-overridebestanden.

Deze bevinding suggereert dat de algemene aanname dat scanners geen cross-file referenties kunnen volgen, te breed is om accuraat te zijn. Het is niet dat de tools niet in staat zijn tot de taak, maar dat hun vermogen daartoe aanzienlijk varieert afhankelijk van de specifieke tool en de complexiteit van de verbinding. Voor teams die vertrouwen op de tools die slechts de eenvoudigste gevallen afhandelen, is er een reëel risico dat zij beveiligingsproblemen missen die verborgen zitten in de complexere bedrading van hun code. De onderzoekers concludeerden dat hoewel de tools vooruitgang hebben geboekt, de industrie nauwkeuriger moet zijn over wat elke tool wel en niet kan zien. In plaats van ervan uit te gaan dat een tool elke fout zal vangen, moeten teams de specifieke grenzen van hun gekozen scanner begrijpen, vooral wanneer hun code steunt op diepe lagen van verbindingen. De studie biedt een duidelijke kaart van deze grenzen, waarbij wordt aangetoond dat hoewel de eenvoudigste problemen tussen bestanden worden opgevangen, de diepere, complexere problemen ofwel een meer capabele tool of een andere aanpak vereisen om veiligheid te garanderen.

Verdrinkt u in papers in uw vakgebied?

Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.

Probeer Digest →