Prevalence of Cross-File Dependencies in Terraform and Their Resolution by Security Scanners
Diese Arbeit analysiert einen groß angelegten Terraform-Datensatz, um aufzuzeigen, dass dateiübergreifende Abhängigkeiten weit verbreitet sind und häufig sicherheitsrelevante Ressourcen betreffen, während sie durch kontrollierte Experimente demonstriert, dass moderne Sicherheits-Scanner über variierende, aber signifikante Fähigkeiten zur Auflösung dieser komplexen dateiübergreifenden Beziehungen verfügen, was die Annahme infrage stellt, dass sie keine fihleübergreifende Argumentation bewältigen können.
Originalarbeit lizenziert unter CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Dies ist eine KI-generierte Erklärung des untenstehenden Papers. Sie wurde nicht von den Autoren verfasst oder gebilligt. Für technische Genauigkeit konsultieren Sie das Originalpaper. Vollständigen Haftungsausschluss lesen
In der modernen digitalen Welt werden die massiven Server und Netzwerke, die unsere Apps, Banken und Streaming-Dienste antreiben, nicht mehr von Hand gebaut. Stattdessen schreiben Ingenieure Anweisungen in einer Computersprache, um der Cloud genau zu sagen, was sie bauen soll. Diese Praxis wird Infrastructure as Code genannt. Sie ermöglicht es Teams, komplexe Systeme in Textdateien zu definieren und so sicherzustellen, dass jeder Server, jede Firewall und jeder Speicherbehälter jedes Mal mit der gleichen Präzision erstellt wird. Eines der populärsten Werkzeuge für diese Aufgabe heißt Terraform. Es funktioniert wie ein Blaupausen-Leser, der diese Textanweisungen nimmt und sie in echte, funktionierende Technologie verwandelt. Doch genau wie ein Hausplan über Dutzende von Seiten aufgeteilt sein kann, auf denen Notizen auf andere Seiten verweisen, sind diese Codedateien selten isoliert. Sie sind miteinander verwoben, wobei eine Datei eine andere aufruft, Werte hin und her reicht und ein System aufbaut, das erst existiert, wenn alle Teile zusammengesetzt sind.
Die Sicherheit dieser Systeme hängt von der Genauigkeit dieser Anweisungen ab. Ein einziger Fehler im Code, wie etwa das versehentliche Offenlassen einer digitalen Tür, kann sensible Daten für das gesamte Internet freigeben. Seit Jahren sorgen sich Forscher und Sicherheitsexperten darum, dass die Werkzeuge, die dazu gedacht sind, diese Blaupausen nach Fehlern zu scannen, blind für die Verbindungen zwischen den Dateien sein könnten. Die vorherrschende Annahme war, dass diese Scanner nur eine Datei gleichzeitig lesen können und dabei die gefährlichen Geheimnisse übersehen, die in den Zwischenräumen zwischen ihnen verborgen liegen. Wenn eine Datei sagte „verwende die Standardeinstellung“ und eine andere Datei diese Standardeinstellung als „für jeden offen“ definierte, würde der Scanner die erste Datei als sicher und die zweite isoliert betrachtet ebenfalls als sicher wahrnehmen und die gefährliche Kombination nicht erkennen. Dieses Paper setzte sich zum Ziel, diese Annahme anhand einer massiven Sammlung von Real-World-Code zu testen und zu sehen, ob die Werkzeuge wirklich so begrenzt sind, wie alle glaubten.
Die Forscher begannen damit, eine riesige Bibliothek von über 62.000 öffentlichen Projekten zu sammeln, die Terraform verwenden. Sie wollten verstehen, wie oft diese Projekte tatsächlich auf Verbindungen zwischen verschiedenen Dateien angewiesen sind. Durch die Kartierung der Beziehungen in diesen Projekten entdeckten sie, dass Verbindungen zwischen Dateien keine seltenen Ausnahmen sind, sondern ein Standardteil der Art und Weise, wie diese Systeme gebaut werden. Tatsächlich enthielten mehr als ein Drittel aller von ihnen untersuchten Projekte mindestens eine Verbindung, bei der eine Datei von einer anderen abhängt. Diese Verbindungen waren nicht gleichmäßig verteilt; sie waren stark konzentriert in einer kleineren Anzahl komplexer Projekte, während viele einfachere Projekte sehr wenige oder gar keine aufwiesen. Die häufigste Art und Weise, wie diese Dateien verknüpft waren, bestand darin, auf gemeinsame Ordner zu verweisen, wobei ein Projekt in seiner Verzeichnisstruktur nach oben oder zur Seite griff, um ein gemeinsames Stück Code zu finden, das es benötigte. Dieses Muster zeigte, dass die Art und Weise, wie Ingenieure ihre Arbeit organisieren, natürlich ein Geflecht von Abhängigkeiten schafft, das sich über viele Dateien erstreckt.
Die Studie stellte dann eine kritische Frage: Führen diese Verbindungen oft zu den sensibelsten Teilen eines Systems? Die Forscher suchten nach Instanzen, in denen eine Datei von einer anderen Datei abhing, die Sicherheitseinstellungen kontrollierte, wie etwa wer auf eine Datenbank zugreifen darf oder welche Computer miteinander kommunizieren dürfen. Sie fanden heraus, dass in über 9.000 der Projekte diese Verbindungen zwischen Dateien tatsächlich auf diese kritischen Sicherheitskontrollen zeigten. Dies bedeutete, dass die Sicherheit dieser Systeme oft von der Fähigkeit abhing, einen Wert von einer Datei durch eine Verbindung zu einer Sicherheitsregel in einer anderen Datei zurückzuverfolgen. Wenn ein Werkzeug nicht in der Lage war, diesem Pfad zu folgen, betrachtete es das falsche Gesamtbild und übersah potenziell eine Schwachstelle, die nur aufgrund der Art und Weise existierte, wie die Dateien zusammengenäht wurden.
Nachdem das Ausmaß des Problems festgestellt worden war, wandten sich die Forscher den Werkzeugen selbst zu, um zu sehen, ob sie diesen Pfaden tatsächlich folgen können. Sie entwarfen ein kontrolliertes Experiment unter Verwendung von vier der bekanntesten verfügbaren Sicherheits-Scanner. Sie erstellten eine Reihe von Testfällen, die die in der Realität gefundenen Verbindungen nachahmten – von einfachen Verknüpfungen zwischen Dateien im selben Ordner bis hin zu komplexen Ketten, bei denen ein Wert durch mehrere Module weitergegeben wird, bevor er sein Ziel erreicht. Sie testeten, ob die Scanner einen Sicherheitsfehler erkennen konnten, wenn die gefährliche Einstellung in einer anderen Datei versteckt war, oder ob die Scanner die Gefahr nur dann sahen, wenn sie direkt in derselben Datei geschrieben stand.
Die Ergebnisse stellten die lang gehegte Annahme infrage, dass diese Werkzeuge fundamental blind gegenüber Verbindungen zwischen Dateien seien. Die Studie ergab, dass die Fähigkeiten der Werkzeuge kein einfaches Ja oder Nein waren, sondern ein Spektrum darstellten. Jedes getestete Werkzeug war in der Lage, die einfachsten Verbindungen zu verfolgen, wie etwa eine Variable, die in einer Datei definiert und in einer anderen verwendet wird, die sich im selben Ordner befindet. Sie erkannten alle die Gefahr in diesen basalen Szenarien erfolgreich. Doch als die Verbindungen komplexer wurden, begannen die Werkzeuge zu divergieren. Nur einer der vier Scanner, Checkov, war in der Lage, die kompliziertesten Pfade zu verfolgen, einschließlich jener, bei denen Werte durch mehrere Schichten von Modulen weitergegeben wurden oder bei denen Einstellungen durch spezielle Konfigurationsdateien überschrieben wurden. Die anderen Werkzeuge konnten die direkten Links handhaben, verloren aber oft die Spur, wenn die Verbindung über Zwischenschritte oder spezifische Dateitypen wie Variable-Override-Dateien verlief.
Dieses Ergebnis legt nahe, dass die verbreitete Annahme, dass Scanner keine Verweise zwischen Dateien verfolgen können, zu allgemein ist, um korrekt zu sein. Es ist nicht so, dass die Werkzeuge unfähig zu dieser Aufgabe sind, sondern vielmehr, dass ihre Fähigkeit dazu erheblich variiert, abhängig vom spezifischen Werkzeug und der Komplexität der Verbindung. Für Teams, die sich auf die Werkzeuge verlassen, die nur die einfachsten Fälle handhaben können, besteht ein echtes Risiko, dass sie Sicherheitslücken übersehen, die in der komplexeren Verkabelung ihres Codes verborgen sind. Die Forscher kamen zu dem Schluss, dass die Branche zwar Fortschritte gemacht hat, aber präziser sein muss, was jedes Werkzeug sehen kann und was nicht. Anstatt davon auszugehen, dass ein Werkzeug jeden Fehler abfängt, sollten Teams die spezifischen Grenzen ihres gewählten Scanners verstehen, insbesondere wenn ihr Code auf tiefen Verbindungsschichten basiert. Die Studie liefert eine klare Karte dieser Grenzen und zeigt auf, dass während die einfachsten Verbindungen zwischen Dateien erkannt werden, die tieferen, komplexeren Gefahren entweder ein leistungsfähigeres Werkzeug oder einen anderen Ansatz erfordern, um Sicherheit zu gewährleisten.
Ertrinken Sie in Arbeiten in Ihrem Fachgebiet?
Erhalten Sie tägliche Digests der neuesten Arbeiten passend zu Ihren Forschungsbegriffen — mit technischen Zusammenfassungen, in Ihrer Sprache.