Cursor-Spiele mit Oracle

Durch herrenlos herumbaumelnde Cursor könnte ein Angreifer mit niedrigpriorisiertem Datenbankzugang Zugriff auf sensible Daten erlangen, warnt der Datenbankexperte David Litchfield.

In Pocket speichern vorlesen Druckansicht 122 Kommentare lesen
Lesezeit: 1 Min.

Der Datenbankexperte David Litchfield hat einen neuen Typ von Angriffen auf Oracle-Datenbanken vorgestellt, den er als "Dangling Cursor Snarfing" bezeichnet. Er beruht auf der missbräuchlichen Wiederverwendung nicht korrekt geschlossener Cursor. In Oracles DBMS_SQL arbeitet man häufig mit einem sogenannten Cursor. Dieser Cursor dient als Referenz auf einen Kontext, in dem Queries, Variablen und auch Zugriffsrechte gespeichert sind.

Kann ein niedrig-priorisierter Anwender eine Prozedur, die mit Systemrechten arbeitet, beispielsweise durch ungültige Eingaben zum Abbruch bringen, schließt diese den Cursor unter Umständen nicht. Der Angreifer kann dann durch Ausprobieren den herumbaumelnden, herrenlosen Cursor aufspüren und für seine Zwecke missbrauchen. Durch das Ändern von Parametern kann er damit variable Teile von SQL-Anweisungen manipulieren, die mit Systemrechten ausgeführt werden.

"Dangling Cursor Snarfing"-Angriffe erfordern folglich zunächst einen Zugang zum Datenbanksystem und einiges Wissen über den Aufbau der dort verfügbaren Prozeduren. Längst nicht jede Systemprozedur hantiert mit kritischen Daten. Selbstverständlich enthalten die meisten Prozeduren ein close-Statement. Dass jedoch alle Fehlermöglichkeiten abgefangen werden, die zum vorzeitigen Abbruch führen können, ist schon nicht mehr selbstverständlich. Litchfield empfiehlt zum Schutz vor derartigen Angriffen unter anderm die Definition von sogenannten "others exceptions", die bei unvorhergesehenen Ausnahmebedingungen einspringen und den Cursor schließen.

Siehe dazu auch:

(ju)