Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Achtung: Dies ist nicht der vollständige Artikel, sondern nur ein paar Seiten davon. Wenn Sie hier nicht erfahren, was Sie wissen möchten, finden Sie am Ende Informationen darüber, wie Sie den ganzen Artikel lesen können.

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

Gedrucktes Heft

Diesen Beitrag finden Sie in Ausgabe 4/2006.

Unser Angebot für Sie!

Lesen Sie diesen Beitrag und 500 andere sofort im Onlinearchiv, und erhalten Sie alle zwei Monate brandheißes Access-Know-how auf 72 gedruckten Seiten! Plus attraktive Präsente, zum Beispiel das bald erscheinende Buch 'Access 2010 - Das Grundlagenbuch für Entwickler'!

Diesen Beitrag twittern

Zusammenfassung

Sie glauben, Access sei sicher? Lassen Sie sich eines Besseren belehren!

Techniken

MDE, Sicherheitssystem

Voraussetzungen

Access 97 und höher

Wie (un)sicher ist Access?

Karl Donaubauer, Wien

Ein wichtiger Aspekt für manche Anwendungen ist der Schutz von Daten, Objekten, Entwurfsansichten und Code vor unerwünschtem Zugriff. Access hat in dieser Hinsicht keinen guten Ruf, und das zu Recht. Als letzte Bastion sind nun die MDEs gefallen.

Access-Sicherheitssystem

Access bietet traditionell mehrere Methoden der Absicherung. Die am einfachsten zu implementierende ist auch am einfachsten zu knacken: Das Datenbankkennwort. Es ist in allen Access-Versionen relativ leicht im Binärcode der MDB auffindbar. Deshalb gibt es im Internet unzählige Knack-Tools, mit denen alle möglichen Leute versuchen, Geld zu verdienen.

Etwas schwieriger ist das korrekt und vollständig eingerichtete Sicherheitssystems von Access zu überwinden. Die Betonung liegt auf "korrekt und vollständig". Das Vorgehen zum Absichern einer Datenbank ist relativ kompliziert und die Anleitungen so dürftig oder schwer auffindbar, dass viele Anwender schon daran scheitern.

So werden zum Beispiel dem Administrator oft nicht die Rechte entzogen, noch öfter wird der Eigentümer der Datenbank nicht geändert. Solcherart "geschützte" Anwendungen sind natürlich offen wie Scheunentore.

Selbst wenn alle Maßnahmen zur Sicherung richtig durchgeführt wurden, samt eigener MDW, Verschlüsselung und so weiter, ist das Access-Sicherheitssystem nur ein Gartenzaun, der eher symbolisch Privatbesitz anzeigt und Unbedarfte abwehren kann, aber keine ernsthaften Angriffe. Dabei besteht der Aufwand für den Angreifer lediglich in einer kurzen Webrecherche und etwas Geld, das er für ein Knacktool ausgeben muss. Ich habe im Laufe der Zeit einige dieser Tools getestet und festgestellt, dass es dabei alle Abstufungen an Brauchbarkeit gibt. Von manchen nur sehr eingeschränkt funktionierenden bis zu wenigen, die wirklich für jede Version von Access und gegen alle Varianten von Schutz funktionieren.

Jedem ernsthaften Access-Entwickler sollte klar sein, dass sich auch das korrekt und vollständig implementierte Access-Sicherheitssystem definitiv knacken lässt, dass Tools dafür im Internet leicht zu finden sind und nur ein paar Dutzend Euro kosten. Wenn Sie sich schon einmal intensiv mit diesem Thema befasst haben, sind das wohl keine Neuigkeiten für Sie. Anders sieht es wahrscheinlich mit dem nächsten Kapitel aus.

MDE

Beim Umwandeln in eine MDE wird der Textcode aus der Datenbank entfernt und durch vorkompilierten sogenannten P-Code ersetzt. Seit Einführung der MDEs mit Access 97, also immerhin zehn Jahre lang, galt daher in der Access-Welt, dass man seinen Programmcode durch das Umwandeln der MDB in eine MDE zuverlässig schützen konnte.

Manche Entwickler glaubten auch, so könnten sie ihre Entwürfe für Formulare und Berichte abschotten. Das konnte aber von jeher durch das Durchlaufen der Eigenschaften-Auflistungen und Neuerstellen der Objekte umgangen werden. Dafür gibt es ebenfalls seit Jahren fertige Tools im Web. Als wirkliche Neuerung erschien im vorigen Jahr das kommerzielle Angebot einer britischen Webseite, nicht nur die Entwürfe aus einer MDE, sondern auch den VBA-Code wieder zugänglich zu machen.

Auf www.everythingaccess.com bietet die Firma iTech Masters diesen Service an. Hinter der Firma ist bisher nur ein Mann namens Wayne Phillips konkret auszumachen.

Abb. 1: Einverständnis mit dem Reverse Engineering

Reverse Engineering von
MDE-Dateien

Nun wird im Internet ja allerhand behauptet und für Geld angeboten. Deshalb habe ich vor einiger Zeit beschlossen, zu testen, ob die Firma hält, was sie verspricht. Mein russischer Access-MVP-Kollege Alex Dybenko hatte bereits länger Kontakt zu Wayne Phillips. Deshalb habe ich ihn als Mittelsmann für den Test eingesetzt. Phillips erklärte sich bereit, eine MDE mit bis zu 30 Standard- und Klassenmodulen testweise und kostenlos in eine MDB zurückzuverwandeln.

Ich habe für den Test eine MDE von knapp 2 MB im Format von Access XP erstellt. Sie enthielt Auszüge aus einer meiner aktuellen Anwendungen, nämlich eine weitgehend funktionierende Kombination aus Formularen und Berichten. Dazu kamen einige extra hineinkopierte Standard- und Klassenmodule mit API-Aufrufen und so weiter, um die MDE wirklich zu einem Gradmesser für die Qualität der Dekompilierleistung zu machen.

Eine weitere Bedingung von iTech Masters war, dass ich an den Anfang jedes Modules eine Text-Konstante zu setzen hatte, in der ich iTech Masters ausdrücklich das Recht fürs Reverse Engineering des Codes einräumte (s. Abb. 1).

Die Form einer Konstanten war deshalb notwendig, weil das einzige, was nicht mehr aus dem P-Code herauszuholen ist, die Kommentare sind, die man in den Textcode setzen kann. Diese Kommentare werden schon beim Vorkompilieren aus der Datenbank entfernt und sind daher nicht mehr in der MDE enthalten. Konstanten, auch Konstanten- und Variablennamen, bleiben hingegen erhalten. Die Abwicklung des Tests mit dem Hin- und Hersenden der Datenbank war etwas komplizierter als hier erläutert, aber jedenfalls erhielt Wayne Phillips meine Test-MDE und retournierte sie nach ungefähr 40 Minuten in Form einer wiederhergestellten MDB an den Mittelsmann.

Die Qualität seiner Arbeit war verblüffend. Dass die Formulare und Berichte komplett zugänglich gemacht werden konnten, war zu erwarten.
Abb. 2 zeigt die Entwurfsansicht eines relativ komplexen Beispielformulars mit Kombinationsfeldern, Listenfeldern, Optionsgruppen und so weiter in der zurück gelieferten MDB. Dass jedoch der komplette Code der Datenbank in so gutem Zustand zurückkam, hat mich doch etwas überrascht.

Sie haben das Ende des frei verfügbaren Teils des Artikels erreicht. Lesen Sie weiter, um zu erfahren, wie Sie den vollständigen Artikel lesen und auf viele hundert weitere Artikel zugreifen können.

Sind Sie Abonnent?Jetzt einloggen ...
 

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

© 2003-2015 André Minhorst Alle Rechte vorbehalten.