Zusammenfassung
Erfahren Sie, wie Sie Ihre Access-Anwendungen mit Makro-Sicherheit, digitalen Signaturen und dem Sandbox-Modus effektiv schützen.
Techniken
VBA, SQL
Voraussetzungen
Access 2003
Beispieldateien
Tom Jordan, Düsseldorf
Heutzutage erfährt man häufig in den Nachrichten von Computer-Viren, -Würmern und ähnlichem Getier, das sich per Internet, E-Mail oder auch Office-Anwendungen schlagartig verbreitet. Wenn es Sie erwischt, sind entweder Daten verloren oder der Rechner wird komplett außer Kraft gesetzt. Und ob Sie zu Hause als Freiberufler oder in einem großen Konzern-Netzwerk arbeiten, diese Angriffe führen zu verlorener Zeit und möglicherweise zu verlorenem Umsatz. Gegen solche Attacken hat sich Microsoft im aktuellen Office-Paket, vor allem in Access, einige Maßnahmen einfallen lassen. Welche das sind, erfahren Sie im vorliegenden Beitrag.
Durch den Einsatz einer zuverlässigen Antivirus-Software sowie ein wenig Vorsicht beim öffnen fremder Office-Dokumente können Sie sich vor bösen überraschungen schützen.
Vor allem beim öffnen und Ausführen von Datenbankdateien hat Microsoft einige wichtige Features in Access 2003 integriert, um den Schutzgrad deutlich zu erhöhen. Die Hauptmerkmale dabei sind Makrosicherheit, digitale Signaturen und der neue Sandbox-Modus der Jet-Bibliothek.
Office-Dateien wie Word-Dokumente, Excel-Arbeitsmappen oder auch Access-Datenbanken können eingebettete Makros beziehungsweise Programmcode enthalten, die zu einem bösen Zweck ausgeführt werden. Daher hat Microsoft eine neue universelle Makrosicherheit eingeführt, die alle Anwendungen im Office-Paket umfasst. Mit dem Begriff Makro sind hier Prozeduren und Routinen gemeint, die in VBA-Modulen (Visual Basic für Applikationen) entwickelt sind. VBA ist die Programmiersprache, in der solche Prozeduren geschrieben werden. Die klassischen Access-Makros dagegen, wie Autoexec, Menü-Makros und so weiter, sind für dieses Thema nicht von Bedeutung.
Die Makrosicherheit für Microsoft Access 2003 greift immer dann, wenn Sie eine beliebige Datenbankdatei öffnen. Selbst bei einer leeren Datenbank werden Sie mit der Sicherheitswarnung aus Bild 1 begrüßt, bevor das übliche Datenbankfenster sichtbar wird. Bei dieser Gelegenheit können Sie sich mit der Schaltfläche Weitere Informationen näher über das Thema Access-Sicherheit informieren.
Um dieses Verhalten beim öffnen von Datenbankdateien zu steuern, bietet Access drei Sicherheitsstufen an:
Bild 1: Die Makrosicherheit stellt sich vor
Bild 2: Die Makrosicherheitsstufe einstellen
Makrosicherheitsstufe einstellen
Die Sicherheitsstufe können Sie mit dem Menübefehl Extras/Makro/Sicherheit… konfigurieren (siehe Bild 2).
Wenn Sie also auf jeden Sicherheitshinweis beim öffnen von Datenbanken verzichten möchten, stellen Sie die Sicherheitsstufe auf „Niedrig“ ein (siehe Bild 3).
Bild 3: Die drei Sicherheitsstufen
Wenn der Sandbox-Modus der Jet-Bibliothek aktiviert ist, erhalten Sie daraufhin einen weiteren Hinweis, dass unsichere Ausdrücke momentan blockiert werden.
Dazu gibt Access Ihnen Gelegenheit, auch diese unsicheren Ausdrücke zuzulassen. Zu solchen Ausdrücken gehören beispielsweise alle VBA-Anweisungen, die auf das Dateisystem zugreifen. Wenn Sie diesen Hinweis mit Ja beantworten, wird die Sandbox-Einstellung von 3 auf 2 herabgesetzt. Diese Einstellung können Sie übrigens in der Registry unter HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\SandBoxMode nachsehen. Mehr zum Thema Sandbox-Modus erfahren Sie später in diesem Beitrag.
Makrosicherheit in COM-Add-Ins
Zu den üblichen Vorgängen eines Access-Assistenten (also eines COM Add-Ins) gehört das öffnen einer Datenbank. Damit der Programmablauf aufgrund der Makrosicherheit an dieser Stelle nicht zum Stillstand kommt, kann der Entwickler des Assistenten die Sicherheitsstufe vorübergehend auf Niedrig herabsetzen. Die ursprüngliche Einstellung sollte vorher ermittelt und nach dem öffnen-Vorgang wieder hergestellt werden. Der Code-Ausschnitt aus Quellcode 1 zeigt, wie das programmatische öffnen einer Datenbank innerhalb eines Add-Ins aussehen könnte.
Quellcode 1: öffnen einer Datenbank innerhalb eines Add-Ins
Dim lCurrentSecurity As Long lCurrentSecurity = _ Application.AutomationSecurity Application.AutomationSecurity = _ msoAutomationSecurityForceDisable Application.OpenCurrentDatabase _ "E:\Nordwind.mdb" Application.AutomationSecurity = _ lCurrentSecurity
Die drei Konstantenwerte der Eigenschaft AutomationSecurity des Objekts Application sind Tab. 1 zu entnehmen.
Konstante |
Wert |
msoAutomationSecurityLow |
1 |
msoAutomationSecurityByUI |
2 |
msoAutomationSecurityForceDisable |
3 |
Tab. 1: Konstanten der AutomationSecurity-Eigenschaft
Die Konstante msoAutomationSecurityLow entspricht der Stufe „Niedrig“. msoAutomationSecurityByUI verwendet einfach die Einstellung so, wie sie momentan im Dialog Sicherheit steht (siehe Bild 3). msoAutomationSecurityForceDisable schaltet die Sicherheitsprüfung komplett aus und sollte nur sparsam verwendet werden.
Bei der Sicherheitsstufe Hoch (siehe Bild 3) können nur Datenbanken mit einer so genannten digitalen Signatur geöffnet werden. Durch solche Signaturen können Sie verifizieren, dass eine Datenbank von einem vertrauenswürdigen Herausgeber stammt und dass dieser Herausgeber die VBA-Prozeduren selbst geschrieben hat. Wenn ein Fremder die Datenbank nachträglich modifizieren sollte, indem er etwa eine VBA-Prozedur manipuliert, wird die Signatur ungültig und von der Datenbank entfernt. So können Sie auch sicher sein, dass die Datenbank seit der Erstellung nicht mehr modifiziert wurde.
Für den kommerziellen Betrieb werden digitale Signaturen mithilfe einer Zertifikat-Autorität erstellt. Eine Zertifikat-Autorität ist ein Unternehmen, welches auf die Erteilung von Zertifikaten spezialisiert ist.
Ein sehr bekanntes Unternehmen in diesem Bereich ist Verisign Inc. (http://www.verisign.com). Nach Erhalten des Zertifikats kann die digitale Signatur erstellt werden.
Wer diesen aufwändigen Weg nicht gehen möchte oder kann, dem steht die Möglichkeit zur Verfügung, digitale Zertifikate selbst zu erstellen. Beispielsweise kann ein kleines Unternehmen oder eine Arbeitsgruppe Zertifikate für die internen Access-Datenbanken erteilen. Diese Arbeitsgruppe würden Sie dann der Liste der vertrauenswürdigen Herausgeber hinzufügen, damit sie für alle weiteren Datenbanken gilt.
Ein spezielles Programm zum Erstellen von selbst signierten digitalen Zertifikaten finden Sie im Office 2003-Paket. Sie starten das Programm über das Startmenü Microsoft Office Tools/Digitale Signatur für VBA-Projekte. Das Programm muss eventuell vor dem ersten Start von Ihrer Office-Installations-CD nachinstalliert werden.
Nach dem Programmstart werden Sie nach dem Namen gefragt, auf den das Zertifikat erstellt werden soll (siehe Bild 4). Zusätzlich stehen in diesem Dialog allgemeine Informationen zu digitalen Zertifikaten sowie ein Link auf eine Liste bekannter Zertifikat-Autoritäten (u. a. Verisign).
Nach dem Drücken auf OK wird eine Bestätigung angezeigt, dass das Zertifikat erfolgreich auf den Namen erfolgreich erstellt wurde.
Bild 4: Erstellung eines digitalen Zertifikats
Bild 5: Eine digitale Signatur wird in die Datenbank integriert
Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...
den kompletten Artikel im PDF-Format mit Beispieldatenbank
diesen und alle anderen Artikel mit dem Jahresabo