Bundesamt für Sicherheit in der Informationstechnik

ActiveX-Controls

Vorgestellt wurde ActiveX erstmals im März 1996 von der Firma Microsoft. Der allgemeine Begriff ActiveX beschreibt eine Technologie, mit der Software-Komponenten nach dem so genannten "Component Object Model" (COM) entwickelt werden. COM ist eine von Microsoft entwickelte Software-Architektur, um die Kommunikation zwischen Prozessen oder Programmteilen zu regeln. Unter Zuhilfenahme von COM werden innerhalb von Software-Komponenten häufig wiederkehrende Funktionen zusammengefasst. Diese Funktionen können über definierte Schnittstellen in andere Programme integriert werden, so dass sie nicht für jeden Anwendungszweck neu programmiert werden müssen. Die Programme, die solche Funktionen nutzen, müssen dabei nicht in derselben Programmiersprache wie die Software-Komponenten geschrieben sein.

Bei den ActiveX-Controls handelt es sich um vorkompilierte Software-Komponenten, die eingebettet in eine HTML-Seite als Aktiver Inhalt eingesetzt werden können. Da sie nicht eigenständig lauffähig sind, benötigen sie einen so genannten ActiveX-Container, in den sie geladen und wo ihre Funktionen ausgeführt werden können. Ein ActiveX-Container nimmt ActiveX-Objekte, wie beispielsweise ActiveX-Controls, auf und kann deren offen gelegte Eigenschaften (Objektvariablen) und Methoden (Objektfunktionen) ansprechen. Derzeit ist der Internet Explorer von Microsoft ab Version 3.0 der einzige Browser, der ohne Zusatz als ActiveX-Container eingesetzt werden kann. Der Netscape Navigator, Mozilla und der Konqueror können durch ein entsprechendes ActiveX-Plug-In erweitert werden, damit auch hier ActiveX-Controls genutzt werden können.

ActiveX-Controls werden als Aktiver Inhalt eingesetzt, um die statischen Webseiten um dynamische Bereiche zu erweitern. So können mit ActiveX-Controls beispielsweise auf Webseiten

  • Animationen, Videosequenzen und Musikdateien wiedergegeben,
  • Bildsteuerelemente und Schaltflächen zum Anklicken dargestellt
  • oder auch Interaktionen mit dem Anwender durchgeführt

werden.

ActiveX-Controls werden im HTML-Code meist über den Umweg der Skriptsprachen VBScript und JScript aufgerufen. Es gibt auch die Möglichkeit, sie direkt aus dem HTML-Code als so genanntes Objekt anzusprechen.

Aufgrund der engen Bindung von ActiveX an Windows-Betriebssysteme haben ActiveX-Controls Zugriff auf alle Systemressourcen inkl. der lokal gespeicherten Daten und Programme (siehe Abbildung 1). Sie haben dabei auf Windows-Plattformen die gleichen Rechte wie der angemeldete Benutzer.

Abbildung 1: Betriebssystemnähe der ActiveX-Controls unter Windows Abbildung 1: Betriebssystemnähe der ActiveX-Controls unter Windows

Aber nicht nur für Windows-Betriebssysteme können ActiveX-Controls entwickelt werden. Ende 1996 brachte Microsoft ein Software Developer Kit (SDK) für die Erstellung von ActiveX-Controls für Apple Macintosh-Plattformen heraus. Diese ActiveX-Controls liefen im Internet Explorer für Macintosh-Plattformen ab Version 2. Die Macintosh ActiveX-Implementierung beruht auf einer abgespeckten COM-Bibliothek. ActiveX-Controls werden hier nicht als eigenständiger Prozess außerhalb des Web-Browsers ausgeführt, sondern verbleiben in der Web-Browser-Umgebung. Der Einsatz von ActiveX-Controls ist hier demnach nicht so gefährlich wie unter Windows. Jedoch wird von Microsoft nur noch die Version 5 des Internet Explorers für den Macintosh unterstützt, eine Weiterentwicklung des Web-Browsers für Macintosh-Umgebungen ist nicht geplant.

Auch für UNIX-Plattformen arbeitet Microsoft zusammen mit mehreren anderen Herstellern an einer ActiveX-Unterstützung. Unabhängig hiervon bestehen auch Implementierungen unter dem UNIX-Derivat Linux, um ActiveX-Controls ausführen zu können. Für den unter Linux lauffähigen Web-Browser Konqueror gibt es Bibliotheken, mit denen ActiveX-Controls ausgeführt werden können. Da durch diese der Zugriff auf die lokalen Daten möglich ist, ist auch hier ein großes Gefahrenpotential zu sehen.

Installation und Registrierung unter Windows

Damit das ActiveX-Control beim Aufruf einer Seite ausgeführt wird, muss es unter Windows zunächst auf den Rechner des Anwenders geladen und im Betriebssystem registriert werden. Die Registrierung enthält den Speicherort des ActiveX-Controls auf der Festplatte. Nach dem Start durch den ActiveX-Container verhält sich das ActiveX-Control dann wie ein lokal installiertes Programm.

Für den Fall, dass sich ein ActiveX-Control nicht auf der lokalen Festplatte des Anwenderrechners befindet, kann beim Aufruf des ActiveX-Controls eine Web-Adresse angegeben werden, von wo das ActiveX-Control geladen werden kann. Allerdings ist diese Automatik abhängig von den Browser-Einstellungen. In neueren Versionen des Internet Explorers ist beispielsweise standardmäßig nur das Laden von digital signierten ActiveX-Controls mit zusätzlicher Rückfrage beim Anwender erlaubt. Einmal akzeptiert wird das ActiveX-Control auf den Rechner geladen und registriert. Danach ist bei erneutem Aufruf kein Herunterladen mehr notwendig, und es wird von nun an das lokal installierte ActiveX-Control angesprochen.

Sicherheitsmodell für ActiveX-Controls

Das Laden von ausführbarem Inhalt aus dem Internet ist bei unbekannter Quelle allgemein sehr unsicher. Bei Java-Applets wurde dieses Problem gelöst, indem den Applets von vornherein kein Zugriff auf die Ressourcen des Rechners gewährt wurden. Diese Sandbox-Umgebung gibt es bei den ActiveX-Controls nicht, auch wenn das Wort Container in der Ausführungsumgebung für ActiveX-Controls auf eine ähnliche Philosophie schließen lassen könnte. Bei den ActiveX-Controls wurde der Ansatz verfolgt, durch das Bekanntmachen der Quelle die Gefahr zu verringern.

Dazu werden ActiveX-Controls mit einer digitalen Signatur versehen. Diese digitale Signatur stellt sicher, dass das ActiveX-Control vom Unterzeichner entwickelt und anschließend nicht mehr modifiziert wurde. Microsoft hat hierfür die Authenticode-Technologie entwickelt. Diese Technologie gleicht den anderen Verfahren zur digitalen Signatur.

Zunächst erwirbt der Entwickler von einem Zertifikatsaussteller ein Zertifikat. Dieses Zertifikat enthält Signaturprüfdaten, die Aufschluss über den Inhaber des Zertifikats (hier: den Entwickler) geben sowie eine digitale Signatur der Zertifizierungsstelle. Letztere ist die Unterschrift der Zertifizierungsstelle und stellt sicher, dass das Zertifikat echt ist. Das Zertifikat wird vom Entwickler zusammen mit einem "digitalen Fingerabdruck" des Binärcodes dem ActiveX-Control hinzugefügt. Damit erklärt der Entwickler, dass das Control von ihm erstellt ist und sich in einem funktionstüchtigen, nicht schädigenden Zustand befindet.

Beim Laden des ActiveX-Controls wird der digitale Fingerabdruck neu gebildet und verglichen. Hierdurch kann festgestellt werden, ob das Control seit der Erstellung verändert wurde. Dies und die aus dem Zertifikat gewonnenen Informationen zu Entwickler und Zertifizierungsstelle wird dem Anwender vor dem Laden angezeigt. Er kann anhand dieser Informationen entscheiden, ob er dem ActiveX-Control und dem Entwickler vertrauen und der Installation des ActiveX-Controls auf seinem Rechner zustimmen will.

Gefahren und Risiken im Zusammenhang mit ActiveX-Controls

Beim Einsatz von ActiveX-Controls gibt es zahlreiche Gefahren und Risiken. So gibt es beispielsweise für ActiveX-Controls keine speziellen Restriktionen. ActiveX-Controls greifen mit den Rechten des gerade angemeldeten Benutzers direkt auf Dienste und Ressourcen des lokalen Rechners zu und laufen im Unterschied zu Java-Applets in keiner Sandbox (abgesicherten Umgebung) ab.

Die Registrierung von ActiveX-Controls ist dabei rechnerbezogen, d. h. sie werden einmal pro Rechner installiert. Alle Anwender, die auf dem lokalen Rechner eingerichtet sind, können auch alle registrierten ActiveX-Controls nutzen. Somit können ActiveX-Controls, die mit einer Schadroutine behaftet sind, den Daten aller Anwender gefährlich werden.

Auf den Rechner des Anwenders geladene und installierte ActiveX-Controls können Hintertüren enthalten. Das bedeutet, dass ein solches ActiveX-Control versuchen könnte, eine Verbindung zu Rechnern im Internet herzustellen und private Daten zu übermitteln. Über eine solche Verbindung kann das ActiveX-Control dann auch ohne Wissen des Anwenders Daten empfangen. Diese können Befehle enthalten, um schädigende Funktionen im lokal installierten ActiveX-Control auf dem Anwenderrechner zu aktivieren.

Auch die digitale Signatur bringt keine endgültige Sicherheit. Die Entscheidung, ob das ActiveX-Control als sicher eingestuft wird, bleibt dem Hersteller selber überlassen. Der Anwender hat keinen echten Nachweis über die Vertraulichkeit und Kompetenz des Entwicklers.