Aktive Inhalte (Teil 1) Grundlagen und Gefahren

Ordnungsmerkmale

erschienen in: <kes> 2005#5, Seite 55

Rubrik: BSI Forum

Schlagwort: Aktive Inhalte

Zusammenfassung: Eine oft erheblich unterschätzte Gefährdung für die eigenen Daten geht beim ungeschützten Internetbesuch von aktiven Inhalten aus. Über aktive Inhalte können Viren, Dialer und andere Schadprogramme auf den Rechner gelangen. Aber auch andere gezielte Täuschungsmanöver können mit aktiven Inhalten durchgeführt werden und damit die Verfügbarkeit, Integrität und Vertraulichkeit der Anwenderdaten bedrohen.

Autor: Von Marion Atts, BSI

Das Internet hat sich zu einem Massenmedium mit einer Vielzahl von Möglichkeiten entwickelt. Ein großer Teil des menschlichen Wissens ist inzwischen über das Internet erreichbar. Anwender können zu fast jedem Thema Informationen finden. Zusätzlich kann jeder als Anbieter auftreten und selbst Inhalte zur Verfügung stellen.

Die Web-Browser, mit denen Daten beim Anwender dargestellt werden, wurden im Laufe der Zeit immer weiterentwickelt, um den wachsenden Bedarf an multimedialer und interaktiver Informationsdarstellung zu erfüllen. Sie sind nun in der Lage, eine Vielzahl unterschiedlicher Medienformate (Texte, Bilder, Grafiken, Klänge, Videos, ...) anzuzeigen oder abzuspielen. Für eine interaktive Informationsdarstellung wurden die Browser insofern erweitert, dass sie kleinere Programme und Skripte – so genannte aktive Inhalte – direkt beim Anwender wie lokale Anwendungen ausführen.

Im Unterschied zu lokalen Anwendungen war bei Einführung der aktiven Inhalte geplant, dass die Funktionen durch den Web-Browser kontrolliert und eingeschränkt werden. Doch diese Einschränkung reicht nicht aus. Sicherheitslücken im Web-Browser können die Kontrollfunktion unwirksam machen. Auch kann durch missbräuchlich eingesetzte aktive Inhalte unter Umständen unerwarteter Zugriff auf den Rechner erlangt werden und beispielsweise beliebige Dateien gelesen, verändert oder ins Internet übermittelt werden. Vergrößert wird die Möglichkeit des Missbrauchs, da beim Design einiger aktiver Inhalte nicht auf ausreichenden Schutz für den Anwender geachtet wurde. Da darüber hinaus die Ausführung aktiver Inhalte unbemerkt vom Anwender erfolgt, entsteht für ihn ein nicht kalkulierbares Risikopotenzial.

Dabei gibt es auch andere Wege, mehr Flexibilität in Webseiten unterzubringen. So genannte dynamische Elemente sind ein Beispiel: Sie werden auf den Servern ausgeführt, auf denen das gesamte Angebot gelagert ist. Auch hier kann zwar durch falsche Anwendung oder fehlerhafte Ausführung der dynamischen Elemente eine Gefährdung entstehen. Diese Gefährdung entsteht jedoch für den Anbieter selbst, der bei Einsatz der dynamischen Elemente das Risiko für sich selbst abschätzen kann.

Ein Anwender kann bezüglich aktiver Inhalte diese Abschätzung nicht treffen, da er bei einer dargestellten Seite nicht erkennen kann, welche Inhalte sich dahinter verbergen. Auch ein Anbieter ohne böswillige Absichten fordert durch den Einsatz von aktiven Inhalten die Anwender auf, ihre Rechner in einen unsicheren Zustand zu versetzen.

Dieser Artikel konzentriert sich auf die genaue Beschreibung der Gefahren, damit Anwender und Anbieter sich des Risikos bewusst werden, das durch aktive Inhalte entsteht. In den folgenden BSI-Foren wird dieser Beitrag durch zwei weitere Artikel ergänzt, die Hilfestellung beim Umgang mit aktiven Inhalten auf Anwenderseite liefern sollen. Durch die dort beschriebenen Möglichkeiten kann das Risiko für den Anwender verringert werden.

Risiken für den Anwender

Allgemein kann gesagt werden, dass folgende Schäden auf Anwenderseite durch den Einsatz von aktiven Inhalten entstehen können:

Risiken für den Anbieter

Ein Anbieter, der aktive Inhalte in seine Webseite integriert, läuft Gefahr, dass sein Internet-Angebot nicht den von ihm gewünschten Effekt erzielt. Auf Anwenderseite ist die Ausführung der aktiven Inhalte abhängig vom eingesetzten Web-Browser. Nicht jeder Web-Browser unterstützt alle aktiven Inhalte. Bei Einsatz eines nicht von allen Browsern unterstützten aktiven Inhalts kann der für das Webangebot erreichbare Anwenderkreis eingeschränkt werden.

Zusätzlich spielt die Konfiguration des Web-Browsers auf Anwenderseite auch für den Anbieter eine Rolle. Die für den Anwender sicherste Einstellung – das heißt die Deaktivierung von aktiven Inhalten – erschwert oder verhindert die Nutzung von Webangeboten mit aktiven Inhalten. Auch hier verliert der Anbieter einen möglichen Kreis von Interessenten.

In Firmennetzen ist darüber hinaus meist noch ein zentraler Schutz für alle Rechner eingerichtet. Ein Weg ist das Herausfiltern aktiver Inhalte am Sicherheits-Gateway des Netzes, wodurch der Anbieter weitere potenzielle Kunden nicht erreicht. Ferner erzeugt der Anbieter bei sicherheitsbewussten Anwendern einen negativen Eindruck, da das Angebot nur durch unsichere Einstellungen auf der Anwenderseite vollständig genutzt werden kann. Je nach Art des Anbieters kann das einem herben Imageverlust gleichkommen.

Zusätzlich stellen einige aktive Inhalte so genannte Barrieren dar: Als Barrieren im Internet werden von Behindertenverbänden solche Hindernisse bezeichnet, die Menschen mit Behinderungen oder Schwächen den Zugang zu Webseiten erschweren oder unmöglich machen. Mit einem barrierefreien Internetauftritt kann ein Anbieter betonen, dass er keinerlei Zielgruppen ausgrenzen möchte.

Technische Umsetzung

Technisch kann bei den aktiven Inhalten zwischen Skriptsprachen und vorkompilierten Programm-Modulen unterschieden werden. Aktive Inhalte, die über Skriptsprachen realisiert werden, werden im Textformat direkt in den HTML-Code eingefügt oder in einer aus dem HTML-Code aufgerufenen Datei abgelegt. Zu den als aktiver Inhalt einsetzbaren Skriptsprachen zählen JavaScript, JScript und VBScript. Damit der Skriptcode ausgeführt werden kann, ist in den gängigen Web-Browsern ein Skript-Interpreter enthalten, der den Skriptcode zeilenweise abarbeitet und ausführt. Von den meisten Browsern wird aus der Gruppe der Skriptsprachen nur JavaScript unterstützt. Nur der Internet Explorer hat einen zusätzlichen Skript-Interpreter für JScript und VBScript implementiert.

Eine weitere Möglichkeit, ausführbaren Code in eine HTML-Seite zu integrieren, besteht darin, im HTML-Code vorkompilierte Programm-Module wie Java-Applets oder ActiveX-Controls aufzurufen. Damit die vorkompilierten Programm-Module ausgeführt werden können, wird eine Laufzeitumgebung benötigt. Für Java-Applets wurde hierfür eine Java Virtual Machine in die gängigen Browser integriert. Damit ActiveX-Controls ausgeführt werden können, wurde der Internet Explorer so erweitert, dass er als ActiveX-Container agieren kann. Andere Browser können durch Plug-ins die ActiveX-Container-Funktionalität zusätzlich erhalten.

Nicht zu den aktiven Inhalten zählen Plug-ins: Das sind Programme, die in Web-Browser integriert werden können, um den Funktionsumfang der Web-Browser zu vergrößern, während aktive Inhalte eingesetzt werden, um einzelne Webseiten um dynamische Funktionen zu erweitern. Einige Plug-ins erweitern allerdings den Browser um eine Ausführungsumgebung, sodass in den HTML-Code geschriebene und von dieser Ausführungsumgebung verstandene Funktionen ähnlich wie aktive Inhalte beim Anwender ausgeführt werden. Macromedia Flash ist ein solches Beispiel: In Webseiten integrierte Flash-Elemente werden durch die Plug-ins von Macromedia ausgeführt und bedeuten ebenso große Gefahren wie andere aktive Inhalte.

Im Zusammenhang mit aktiven Inhalten werden oft auch Cookies genannt. Cookies sind jedoch keine aktiven Inhalte, sondern Kennungen, die auf dem Rechner des Anwenders abgelegt werden, und ihn auf dem Webserver eindeutig identifizieren. Anhand dieser Kennung kann der Webseitenbetreiber auf bereits vorhandene Benutzerdaten zurückgreifen, ohne sie bei jedem Besuch neu abfragen zu müssen.

Grundsätzlich lassen sich mit der Verwendung von Cookies keine sicherheitskritischen Funktionen – wie beispielsweise die Verbreitung von Schadprogrammen – ausführen. Ebenso können mit dieser Technik keine Daten außerhalb der Cookies vom PC des Anwenders ausgelesen werden. Jedoch kann auch hier durch Sicherheitslücken im Browser eine Gefährdung für den Anwender entstehen. Zusätzlich kann bei missbräuchlichem Einsatz der Cookies versucht werden, Aufschluss über das Surfverhalten des Anwenders zu gelangen.

JavaScript/JScript

Bei der Einführung von JavaScript als aktivem Inhalt wurden aus Sicherheitserwägungen Einschränkungen bezüglich des Funktionsumfangs festgelegt. Es sollte beispielsweise keinerlei Zugriff auf Daten außerhalb des Browsers gestattet sein. Die von Microsoft für den Internet Explorer entwickelte Variante JScript weicht diese Festlegung auf: Mit JScript ist es möglich, ActiveX-Controls aufzurufen, über die Dateien und Registry-Einträge des Anwenderrechners beliebig variiert werden können.

Aber auch ohne diese Erweiterung wird der Anwender Gefahren ausgesetzt: Der in den Browser eingebaute Skript-Interpreter erweitert den Umfang des Browsers erheblich. Damit steigt die Gefahr, dass durch Programmierfehler der Browser anfälliger für Angriffe von außen wird. Im schlimmsten Fall kann durch solche Sicherheitslücken der Anwenderrechner ferngesteuert werden.

Außerdem kann auch der missbräuchliche Einsatz regulärer Funktionen den Betrieb des Anwenderrechners stören oder den Anwender so täuschen, dass er selbst schädliche Funktionen ausführt. So können beispielsweise durch den Aufruf unzähliger Browserfenster Ressourcen gebunden werden, die den Anwender zwingen, den Browser oder sogar den ganzen Rechner neu zu starten. Eine weitere "beliebte" Methode besteht darin, durch das Fälschen der Statuszeile Anwender zu veranlassen, Links zu schadenbringenden Seiten anzuklicken.

VBScript

VBScript ist eine weitere Skriptsprache, die ohne Zusatz-Plug-in nur vom Internet Explorer unterstützt wird. Die Überlegungen, dass für den Anwender durch unbekannte Anbieter aus dem Internet eine Gefahr besteht und daher nur ein beschränkter Funktionsumfang erlaubt sein sollte, wurde bei Entwicklung der Skriptsprache VBScript nur teilweise berücksichtigt. So ist es auch hier möglich, aus einem Skript ActiveX-Controls aufzurufen, mit denen voller Zugriff auf Daten und die Systemregistrierung des Anwenderrechners erlaubt ist. Die einzige Einschränkung ist, dass die Zugriffe nur mit den Rechten des angemeldeten Anwenders erfolgen dürfen. Da bei Microsoft-Betriebssystemen eine Vielzahl der Anwender mit Administratorrechten im Internet surft, ist diese Einschränkung allerdings nur theoretisch gegeben.

Doch nicht nur über die ActiveX-Controls ist mit VBScript der Zugriff auf die Daten und die Windows-Registrierung möglich: VBScript selbst enthält bereits eigene Funktionen, über die solche erweiterten Zugriffe möglich sind.

Java-Applets

Java-Applets sind in der Programmiersprache Java geschriebene vorkompilierte Programm-Module, die plattformunabhängig innerhalb von Webseiten aufgerufen werden können. Durch die Laufzeitumgebungen der Browser werden sie geladen und ausgeführt; hierfür wurde in die Programmiersprache eine ausgefeilte Sicherheitspolitik integriert. Die Applets dürfen beispielsweise nur auf solche Daten zugreifen, die auch dem Browser zugänglich sind und dabei weder auf das Dateisystem noch auf die Registrierungsdatenbank bei Windows-Systemen zugreifen. Nur wenn der Anbieter seine Applets mithilfe einer unabhängigen Instanz digital signiert und damit identifizierbar wird, hat er die Möglichkeit, mehr Rechte zu erlangen.

Trotz der beschriebenen Sicherheitspolitik können Risiken für den Anwender nicht ausgeschlossen werden. Zunächst kann es zu Schwachstellen in der browserabhängigen Implementierung der Laufzeitumgebung kommen. Angreifer können durch Ausnutzen von Fehlern, die bei der Programmierung gemacht wurden, Sicherheitsrestriktionen umgehen und Daten auf dem Rechner des Anwenders manipulieren.

Auch bei digital signierten Java-Applets gibt es Risiken für den Anwender. Die Entwickler können so genannte Testzertifikate erzeugen, um damit selbstgeschriebene Java-Applets zu signieren. Zwar erscheint im Web-Browser des Anwenders zunächst eine Warnmeldung beim Laden solcher Java-Applets. Ein unachtsamer Anwender sieht jedoch nicht den Unterschied und klickt womöglich auf "Akzeptieren". Hierdurch können dem Java-Applet erweiterte Zugriffsrechte auf die Daten des Anwenderrechners gegeben werden.

Eine weitere Gefahr geht vom Blockieren des Anwenderrechners durch Ressourcen-Überlastung aus. Es können so genannte Endlosschleifen programmiert werden, die dazu führen, dass die Rechenkapazität des Prozessors vollständig belegt wird.

ActiveX-Controls

Auch ActiveX-Controls sind vorkompilierte Programm-Module, die innerhalb von Webseiten aufgerufen werden können. Die in den Browsern enthaltenen Laufzeitumgebungen laden die Module und führen sie aus. Hierbei gibt es kaum 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 abgesicherten Umgebung.

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

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

Das gesamte Sicherheitsmodell der ActiveX-Controls beruht auf Vertrauen. Jeder Anbieter hat die Möglichkeit, durch eine digitale Signatur Aufschluss über die Herkunft des Controls zu liefern. Die Entscheidung, ob das ActiveX-Control als sicher eingestuft wird, bleibt dem Entwickler allerdings selbst überlassen. Der Anwender hat keinen echten Nachweis über die Vertrauenswürdigkeit und Kompetenz des Entwicklers.

Fazit

Alle aktiven Inhalte stellen eine für den Anwender nicht überschaubare Gefahr für seine Daten dar und sollten daher schon auf Anbieterseite vermieden werden. Hinweise, wie auch ohne aktive Inhalte Flexibilität in Internet-Seiten gebracht werden kann, werden im E-Government-Handbuch des BSI [1] gegeben.

Literatur

[1]
BSI, E-Government-Handbuch, Modul "E-Government ohne aktive Inhalte", [externer Link] www.bsi.bund.de/fachthem/egov/download/4_EGovoAI.pdf
[2]
BSI, Fachthemen – Aktive Inhalte, [externer Link] www.bsi.bund.de/fachthem/sinet/aktiveinhalte/ <<dt>[3]
"BSI für Bürger", Ins Internet mit Sicherheit – Aktive Inhalte, [externer Link] www.bsi-fuer-buerger.de/browser/02_03.htm