← Neueste Arbeiten
💻 Informatik

Qualifying Observation Integrity for Selective Authorization in PostgreSQL

Dieses Paper präsentiert einen eingeschränkten PostgreSQL-Installationsqualifizierer, der die Integrität selektiver Autorisierung sicherstellt, indem er durch Code-Prüfungen und authentifizierte Verhaltens-Orakel einen Producer-to-Consumer-Kontrakt erzwingt und dadurch die sichere Wiederverwendung von Entscheidungen über Richtlinien ermöglicht sowie eine 24-prozentige Leistungssteigerung bei unveränderten Daten erreicht, während er gleichzeitig unsichere Qualifizierungen rigoros verhindert, die einfachere strukturelle Lints übersehen.

Ursprüngliche Autoren: Aleksandar Mihajlovic

Veröffentlicht 2026-10-29
📖 7 Min. Lesezeit🧠 Tiefgang

Ursprüngliche Autoren: Aleksandar Mihajlovic

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 digitalen Welt fungieren Datenbanken als das zentrale Gedächtnis für alles, von Bankkonten bis hin zu Online-Warenkörben. Sie speichern den aktuellen Zustand der Welt: wie viel Geld auf einem Konto ist, welche Artikel auf Lager sind oder ob ein Benutzer die Berechtigung hat, ein Gebäude zu betreten. Wenn ein Computerprogramm eine Datenbank fragt, ob es eine Aktion ausführen darf, prüft die Datenbank die aktuellen Fakten. Wenn sich die Fakten seit der letzten Prüfung geändert haben, könnte die Antwort anders ausfallen. Beispielsweise könnte ein Kauf genehmigt werden, wenn ein Benutzer genug Geld hat, aber wenn eine andere Transaktion dieses Geld einen Bruchteil einer Sekunde später ausgibt, sollte die Genehmigung widerrufen werden. Um sicher zu gehen, prüfen Systeme oft jedes einzelne Mal die Fakten, kurz bevor eine Aktion stattfindet. Das ist zuverlässig, kann aber langsam sein, besonders wenn dieselben Fakten tausendfach hintereinander geprüft werden, ohne sich zu ändern.

Forscher suchen schon lange nach Wegen, dies zu beschleunigen, indem sie sich merken, wann die Fakten das letzte Mal geprüft wurden. Wenn das System beweisen kann, dass sich die zugrunde liegenden Daten nicht geändert haben, kann es die alte Berechtigung wiederverwenden, ohne erneut nachzufragen. Dies wird selektive Autorisierung genannt. Dieser Abkürzungsweg funktioniert jedoch nur, wenn das System absolut sicher sein kann, dass sich die Daten tatsächlich nicht geändert haben. Wenn das System getäuscht wird und glaubt, die Daten seien stabil, obwohl sie sich eigentlich verändern, könnte es eine Berechtigung für eine Transaktion erteilen, die blockiert werden sollte. Die Kernherausforderung besteht nicht nur darin, die Daten zu prüfen, sondern zu verifizieren, dass die Mechanismen selbst, die für die Verfolgung von Änderungen konzipiert sind, korrekt funktionieren und für die richtigen Personen sichtbar sind.

Ein Forscher namens Aleksandar Mihajlovic hat eine Methode entwickelt, um diese Verfolgungsmechanismen innerhalb eines speziellen Datenbanktyps namens PostgreSQL zu verifizieren. Das Ziel war es, eine strikte Menge von Regeln zu erstellen, denen eine Datenbankinstallation folgen muss, um diesen Abkürzungsweg nutzen zu dürfen. Das System namens OntoCommit fungiert dabei als Torwächter. Bevor eine Datenbank erlaubt wird, alte Entscheidungen über Berechtigungen wiederzuverwenden, inspiziert dieser Torwächter den Code und die Konfiguration, um sicherzustellen, dass jede Änderung an den Daten ordnungsgemäß aufgezeichnet wird und dass die Person, die die Aufzeichnungen prüft, diese Aufzeichnungen auch tatsächlich sehen kann. Die Forschung konzentriert sich auf eine spezifische Grenze: den Moment, in dem eine Änderung vorgenommen wird, und den Moment, in dem sie beobachtet wird. Wenn es eine Lücke zwischen diesen beiden Punkten gibt, ist die Sicherheit des gesamten Systems gefährdet.

Die Studie begann mit der Identifizierung der Frage, wie leicht dieses Vertrauen gebrochen werden konnte, selbst wenn der Code oberflächlich betrachtet korrekt aussah. Der Forscher fand zwei spezifische Arten, wie ein System lautlos versagen konnte. Im ersten Fall wurden die Eingabenamen einer Hilfsfunktion, die dazu dient, einen Änderungszähler zu aktualisieren, vertauscht. Der Code lief weiterhin, und die Datentypen, die er akzeptierte, waren korrekt, aber da die Namen vertauscht worden waren, wurde der Zähler für eine Art von Änderung aktualisiert, während der Zähler für eine andere Art von Änderung auf dem alten Stand blieb. Es war wie bei einem Ampelsystem, bei dem der Sensor für die Nord-Süd-Fahrt versehentlich mit dem Knopf für die Ost-West-Fahrt verbunden wurde; die Lichter würden zwar umschalten, aber nicht für die Autos, die sie brauchten. Im zweiten Fall war das System mit einer Sicherheitsfunktion konfiguriert, die bestimmte Zeilen von Daten vor regulären Benutzern verbarg. Der Änderungszähler wurde vom Systemadministrator korrekt aktualisiert, aber die Person, die die Berechtigung prüfte, wurde daran gehindert, diese Aktualisierung zu sehen. Für den Prüfer erschien der Zähler als Null, obwohl er tatsächlich gestiegen war. Dies erzeugte eine falsche Sicherheit.

Um diese Fehler zu verhindern, baute der Forscher ein Qualifizierungswerkzeug, das die Datenbankinstallation prüft, bevor sie den Abkürzungsweg nutzen darf. Dieses Werkzeug sucht nicht nur nach der Anwesenheit von Code; es verifiziert die exakte Bindung von Funktionsnamen, das Eigentum an Tabellen und die Sichtbarkeitseinstellungen für jede Benutzerrolle. Es besteht darauf, dass der Code, der für die Aktualisierung der Änderungszähler verantwortlich ist, exakt der vom System erwarteten Signatur entspricht. Es verbietet zudem die Verwendung von Zeilenebene-Sicherheit (Row-Level Security) auf den spezifischen Tabellen, die zur Verfolgung der Änderungen dienen, um sicherzustellen, dass die Person, die die Berechtigung prüft, den wahren Stand des Zählers immer sehen kann. Das Werkzeug agiert als strenger Inspektor, der jede Installation ablehnt, die versucht, nicht unterstützte Variationen zu verwenden oder die Beweise für Änderungen zu verbergen.

Der Forscher testete diesen Ansatz in einer kontrollierten Umgebung, die einen vollständigen Kaufprozess simulierte. Das System wurde so eingerichtet, dass es ein Szenario handhabt, in dem ein Benutzer etwas kaufen möchte, wobei das Kontoguthaben und etwaige Sperren auf die Gelder geprüft werden. Das Experiment verglich zwei Methoden: eine, bei der das System die gesamte Richtlinie jedes Mal von Grund auf neu bewertet, und eine, bei der das System die selektive Autorisierung als Abkürzung nutzt. Die Tests wurden auf einer Standardversion der Datenbanksoftware durchgeführt, jedoch innerhalb einer simulierten Computerumgebung, um eine präzise Kontrolle über die Bedingungen zu gewährleisten. Die Studie umfasste einen Satz von einhundertacht und acht verschiedenen Konfigurationspaaren, von denen einige als sicher und andere als unsicher konzipiert waren, um zu sehen, ob das Qualifizierungswerkzeug den Unterschied erkennen kann.

Die Ergebnisse zeigten, dass das Qualifizierungswerkzeug äußerst effektiv darin war, unsichere Konfigurationen zu identifizieren. Es lehnte alle fünf der absichtlich unsicheren Setups erfolgreich ab, einschließlich derer mit vertauschten Parameternamen und verborgenen Datenzeilen. Gleichzeitig akzeptierte es alle achtundvierzig gültigen, sicheren Konfigurationen. Es lehnte zudem zwei Konfigurationen korrekt ab, die zwar sicher waren, aber nicht den strengen Regeln des Werkzeugs entsprachen, was zeigt, dass es Sicherheit über Bequemlichkeit stellt. In den Leistungstests erwies sich die Methode der selektiven Autorisierung als signifikant schneller, wenn die Daten unverändert blieben. Für einen Datensatz mit zehntausend Zeilen schloss das System, das den Abkürzungsweg nutzte, den Zyklus in einer Medianzeit von sechzig sechs Millisekunden ab, während das System, das alles neu prüfte, siebenundachtzig Millisekunden benötigte. Dies entsprach einer Reduktion der Zeit um vierundzwanzig Prozent. Die Studie fand jedoch auch heraus, dass der Abkürchungsweg, wenn die Daten tatsächlich geändert wurden, keinen Geschwindigkeitsvorteil bot und sogar geringfügig langsamer sein konnte, da das System die Richtlinie neu bewerten musste.

Die Forschung hob auch die Grenzen des Testens hervor. Der Forscher demonstrierte, dass es nicht ausreicht, lediglich ein paar Tests durchzuführen, um zu sehen, ob das System funktioniert, um zu garantieren, dass es immer funktionieren wird. Es ist möglich, ein Szenario zu konstruieren, in dem ein System eine Reihe von Tests besteht, aber dennoch unter einer spezifischen, ungesehenen Bedingung versagt. Die Studie zeigte, dass ein System eine Reihe von Prüfungen bestehen kann, während es gleichzeitig eine kritische Änderung vor dem Beobachter verbirgt. Dies bedeutet, dass der einzige Weg, Sicherheit zu gewährleisten, darin besteht, strikte Regeln darüber durchzusetzen, wie das System aufgebaut ist, anstatt sich allein auf das Testen zu verlassen, um Fehler zu finden. Das Werkzeug behauptet nicht, beweisen zu können, dass das System in jedem möglichen Universum perfekt ist, aber es bietet einen verifizierbaren Vertrag, der besagt, dass die Installation einem spezifischen, sicheren Muster folgt.

Letztendlich bietet die Arbeit eine praktische Methode, um Datenbanken schneller zu machen, ohne die Sicherheit zu opfern. Durch die Definition eines klaren Regelwerks dafür, wie die Verfolgung von Änderungen implementiert und verifiziert werden muss, hat der Forscher einen Weg geschaffen, darauf zu vertrauen, dass die Datenbank die Wahrheit über ihren eigenen Zustand sagt. Die Studie behauptet nicht, jedes Problem der Datenbanksicherheit zu lösen, noch legt sie nahe, dass diese Methode in jeder Situation angewendet werden sollte. Es ist eine spezialisierte Lösung für einen spezifischen Typ von Datenbankaufbau, der etwas Flexibilität gegen ein höheres Maß an Gewissheit eintauscht. Die Ergebnisse legen nahe, dass für Anwendungen, bei denen Geschwindigkeit und Sicherheit gleichermaßen kritisch sind, wie etwa bei Finanztransaktionen, ein sorgfältig qualifiziertes System einen zuverlässigen Abkürchungsweg bieten kann. Die Forschung kommt zu dem Schluss, dass die Sicherheit dieser Abkürzungen vollständig von der Integrität des Beobachtungspfades abhängt – vom Moment der Änderung bis zum Moment der Wahrnehmung – und dass dieser Pfad mit der gleichen Strenge geprüft werden muss wie die Daten selbst.

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.

Digest testen →