Bundesamt für Sicherheit in der Informationstechnik

G 2.40 Mangelhafte Konzeption des Datenbankzugriffs

Die Benutzer greifen über ein Datenbank-Managementsystem (DBMS) auf eine oder mehrere Datenbanken zu. Dieser Zugriff geschieht direkt oder aber von einer Anwendung aus. Um die Integrität einer Datenbank zu gewährleisten, müssen alle Datenbankzugriffe von einer zentralen Stelle aus kontrolliert werden. Bei mangelhafter Konzeption des Datenbankzugriffs kann es unter anderem zu folgenden Sicherheitsproblemen kommen:

Benutzerberechtigungen

  • Ist der Berechtigungsumfang für die Benutzer zu restriktiv definiert, kann dies dazu führen, dass bestimmte Arbeiten von diesen nicht durchgeführt werden können.
  • Ist der Berechtigungsumfang dagegen zu umfangreich, kann dies dazu führen, dass Daten unberechtigt manipuliert bzw. eingesehen werden können.
  • Wird den Benutzern erlaubt, direkt auf die Datenbank zuzugreifen (im Gegensatz zum Zugriff aus einer Anwendung heraus), so besteht prinzipiell die Gefahr des Integritätsverlustes der Datenbank durch Datenmanipulationen, deren Auswirkungen die Benutzer nicht unbedingt abschätzen können.

Hinweis: Wie die eigentlichen Daten einer Datenbank werden auch die Eigenschaften der einzelnen Datenbankobjekte, wie z. B. Struktur, Indizes, Schlüssel einer Tabelle, wiederum in Tabellen gespeichert, auf die über SQL-Befehle zugegriffen werden kann.

  • Werden Datenbankobjekte nicht explizit durch ein entsprechendes Berechtigungs- und Zugriffskonzept geschützt, so besteht die Gefahr, dass die Datenbankobjekte selbst manipuliert werden (Manipulation von Feldern einer Tabelle oder von Tabellen-Indizes etc. ). Dies kann zu einer Vielzahl von Problemen bis hin zur Zerstörung der Datenbank führen.

Hinweis: Für die Vergabe von Zugriffsrechten entsteht durch den Einsatz von Data-Warehouse, Online Analytic Processing (OLAP)-Systemen und Query-Tools häufig ein Sicherheitskonflikt. Einerseits sollen möglichst viele Daten aus heterogenen Datenquellen für die Entscheidungsträger zur Auswertung herangezogen werden können, andererseits müssen sensible Daten vor unberechtigtem Zugriff geschützt werden. Die Herausforderung besteht darin, die Zugriffsrechte so zu gestalten, dass sie sowohl dem Datenschutz und den Anforderungen an die Vertraulichkeit sensibler Daten als auch den Analyseanforderungen gerecht werden.

Remote-Zugriff

Datenbankabfragen

  • Ohne eine aufgabenspezifische Einschränkung der Zugriffsrechte für die verschiedenen Benutzergruppen kann es zum Verlust der Vertraulichkeit schutzbedürftiger Daten durch unautorisierten Zugriff kommen.
  • Die Anfragen und Aufrufe von Benutzern oder Anwendungen an die Datenbank müssen einer gemeinsam vereinbarten Syntax oder einem normierten Sprachumfang folgen, der vom jeweils angesprochenen DBMS zur Verfügung gestellt wird ( z. B. ANSI -SQL-99 für eine relationale Datenbank). Hält sich die aufrufende Seite nicht an diese Syntax, kann dies dazu führen, dass Datenbankanfragen vom DBMS nicht bearbeitet werden können und zurückgewiesen werden. Diese Gefährdung besteht insbesondere, wenn DBMS verschiedener Anbieter eingesetzt und von einer zentralen Anwendung angesprochen werden.
  • Die Verwendung von nicht exakt formulierten Datenbankabfragen kann dazu führen, dass durch eine Änderung der Datenbankobjekte die Datenbankabfrage falsche oder unerwartete Ergebnisse liefert. Unter Umständen kann auch das gesamte Datenbanksystem durch sinnlose Anfragen so in Anspruch genommen werden, dass der eigentliche Zweck nicht mehr erfüllt werden kann.

Beispiele:

  • Die Abfrage "SELECT * FROM Tabelle" liefert alle Attribute bzw. Felder eines Tupels bzw. Datensatzes. Die Reihenfolge der Felder wird dabei von der technischen Struktur der Tabelle vorgegeben. Wird nun ein Feld in der Tabelle hinzugefügt oder gelöscht, d. h. die technische Struktur der Tabelle wird verändert, so hat dies unter Umständen fatale Auswirkungen auf eine Anwendung, in der eine solche Datenbankabfrage benutzt wird.
  • Es werden vorsätzlich viele weit gefasste Abfragen an die Datenbank gerichtet, um die Ansprechbarkeit der Datenbank zu verhindern (siehe G 5.65 Verhinderung der Dienste eines Datenbanksystems ).

Stand: Stand 2006