am 26.01.2002 Aktualisiert by Reini

Du bist der Counter Besucher

" FLASH 's HOMPAGE "

 

 

 

 SICHERHEITSRISIKEN UND LÖSUNGEN

 

BACK

 

 

 

1. Einleitung
2.
Bedrohungen
3.
Problemanalyse und Lösungsansätze
           
Java
           
ActiveX
           
JavaScript
           
Plug-ins, Attachments u. Zusatzprogramme
4.
Organisatorische Sicherheitsmaßnahmen
5.
Sicherheitsmaßnahmen bei Anwendungen
    a)
E-Mail Programme
    b)
Allgemein einstellbare Sicherheitsmaßnahmen bei Browsern
       
Internet Explorer
       
Netscape Browser
    c)
Checkliste zur Browsereinstellung
    d) 
Zusatzprogramme und Tools
6.
Zusammenfassung und Ausblick
 

1. Einleitung

Neben den in der Presse häufig genannten Gefahren, die bei der Nutzung des Internet auftreten können (offene Übertragung der Daten, Angriffe durch Hacker), sind neue Risiken und Gefahren entstanden, die auch für jeden Internet-Surfer eine Beschäftigung mit dem Thema Sicherheit unerläßlich machen.
Die Ursache für diese neuen Bedrohungen liegt in der Tatsache, daß nicht mehr nur reine ASCII-Texte übertragen werden, die der Empfänger lediglich liest und u. U. speichert. Vielmehr werden heutzutage eine Vielzahl von Daten übertragen, die beim Empfänger aktiv Veränderungen am Zustand seines Systems vornehmen können. Diese Veränderungen reichen vom einfachen Anzeigen speziell formatierter Daten bis zum Löschen der gesamten Daten oder der Übertragung von Daten an einen beliebigen Rechner im Internet. Man spricht daher auch von aktiven oder auch ausführbaren Inhalten (executable content).
Weitere Ärgernisse bei der Nutzung des Internet entstehen durch vom Anwender in der Regel unerwünschte Aktivitäten. Die Versendung von Massen-Emails mit Werbebotschaften (Spamming), gefälschte Warnmeldungen über neue Computer-Viren (Hoaxes) und die Sammlung von Daten über die Internet-Nutzung (Cookies) haben zwar nicht direkt mit dem Problem Content Security zu tun, treten aber sehr viel häufiger auf. Viele Server nutzen Cookies, um User, die die Seiten schon einmal besucht haben, wiederzuerkennen und ihnen so ein speziell aufgearbeitetes Angebot machen zu können. Andererseits können die Summe der Cookies auch einige Informationen über die persönliche Internet-Nutzung enthalten, indem z. B. analysiert wird, welche Seiten der User besucht hat.

2. Bedrohungen

Aktive Inhalte können auf drei verschiedene Arten Schaden anrichten:
»
Zerstörung von Daten (Verlust der Verfügbarkeit)
Daten (bei einigen Systemen sogar Firmware) können gelöscht oder auf andere Weise unbrauchbar gemacht werden.
»
Übermittlung von Daten (Verlust der Vertraulichkeit)
Programme, die Zugriff auf vertrauliche Daten des Anwenders haben (z.B. Paßwörter oder Daten der letzten Einkommensteuererklärung), können diese über bestehende Internet-Verbindungen direkt übertragen. Besteht keine Verbindung, können die Daten auch an einem geheimen Ort gespeichert und zu einem späteren Zeitpunkt übertragen werden.
»
Verändern von Daten (Verlust der Integrität)
Die Infektion von Programmen durch einen Computer-Virus oder das Verändern von Datenbankeinträgen sind Beispiele für eine Veränderung von Daten, die durch aktive Inhalte initiiert werden können.

 Programme mit unerwünschten Funktionen lassen sich in folgende Klassen einteilen:


» Trojanische Pferde


Hierbei handelt es sich um Programme, die neben ihrer eigentlichen Funktion, die dem Anwender bekannt ist, noch weitere Funktionen ausführen, von denen der Anwender nichts weiß und deren Ausführung er im Regelfall auch nicht bemerkt.
Ein Spezialfall eines Trojanischen Pferdes ist eine logische Bombe. Hierbei handelt es sich ebenso um ein Programm mit einer verdeckten Schadfunktion, die aber in Abhängigkeit von äußeren Bedingungen gestartet wird (z.B. der Uhrzeit oder dem Datum).


» Viren


Ein Computer-Virus ist eine nicht selbständige Programmroutine, die sich selbst reproduziert und dadurch vom Anwender nicht kontrollierbare Manipulationen in Systembereichen, an anderen Programmen oder deren Umgebung vornimmt.
Man unterscheidet im wesentlichen drei Arten von Viren:
die
File-Viren, die sich an eine Programmdatei anhängen und beim Start dieses Programms ausgeführt werden,
die Boot-Viren, die im Boot-Sektor einer Diskette oder im Boot- oder Partitions-Sektor einer Festplatte stehen und beim Starten (Booten) des Rechners aktiv werden, und
die
Makro-Viren, die sich als Makros innerhalb von Office- oder anderen Dateien (z. B. Postscript) befinden und beim Start der entsprechenden Programme ausgeführt werden.
Viren lassen sich am leichtesten durch eine gewisse Vorsorge (z.B. nicht von Diskette booten) und den Einsatz von Viren-Suchprogrammen abwehren. Das Internet hat als wichtigste Verbreitungsquelle für Computer-Viren die Originaldatenträger der Hersteller (z.B. CDs) abgelöst. Es existieren eine Reihe von WWW-Servern und Newsgruppen, die zur Verbreitung genutzt werden.
Normale HTML-Seiten, die von einem WWW-Server zu einem Browser übertragen werden, stellen nur ein sehr unflexibles Instrument dar, um ein dynamisches und benutzerorientiertes Angebot zu bieten. Dies führte dazu, daß verschiedene Mechanismen entwickelt wurden, die mit Hilfe von ausführbaren Programmcode beim Nutzer eine nahezu unbegrenzte Funktionsvielfalt ermöglichen. Dies gilt sowohl im positiven wie im negativen Sinne. Während früher Programme ausschließlich von lokalen Medien wie CD-ROM oder Diskette installiert wurden, hat schon die Möglichkeit des Downloads von Programmen aus Mailboxen eine wesentliche Verschlechterung der Sicherheit gebracht. Erstmals war es leicht möglich, Software aus vollkommen unbekannter Quelle zu installieren. Dies allerdings nur für einen relativ kleinen Kreis von Anwendern. Die Tatsache, daß in naher Zukunft große Teile des Internet-Angebots gar nicht oder nur mit Einschränkungen ohne das Herunterladen und Ausführen von Programmen auf dem
lokalen Rechner nutzbar sind, erweitert dieses Risiko auf einen sehr großen Benutzerkreis.

3. Problemanalyse und Lösungsansätze

Es lassen sich im wesentlichen drei völlig unterschiedliche Ansätze identifizieren, wie diese Risiken verringert werden können. Zwei davon basieren auf Mechanismen bzw. Verfahren, die von den Firmen, welche die jeweilige Technologie für aktive Inhalte entwickelt haben, vorgeschlagen bzw. angeboten werden. Hier ist auf der einen Seite die Firma SUN, die zusammen mit den Spezifikationen für die Programmiersprache Java ein umfangreiches Sicherheitsmodell vorgelegt hat. Es beruht darauf, daß die Zugriffsrechte des geladenen Java-Programms (Applets) auf die lokalen Ressourcen stark eingeschränkt sind. Auf der anderen Seite steht der Ansatz der Firma Microsoft, bei welchem der geladene Programmcode mit denselben umfangreichen Zugriffsrechten abläuft, die auch der Anwender hat, die Herkunft der Programme aber durch digitale Signaturen "nachprüfbar" ist. Der dritte Ansatz ist unabhängig von der Technologie und basiert auf der Filterung und ggf. der Überprüfung aktiver Inhalte, bevor sie auf dem Zielrechner zur Ausführung gelangen. Die verschiedenen Ansätze werden im folgenden genauer erläutert.

Java

Java ist eine von der Firma SUN Anfang der 90er Jahre entwickelte Programmiersprache, die viele Eigenschaften von C++ übernommen (z.B. die Objektorientierung) hat. Sie ist jedoch wesentlich eingeschränkter in ihren Möglichkeiten, da Funktionen, die häufig zu Fehlern geführt haben (z.B. die Verwendung   von Pointern) nicht möglich sind.

 
Abbildung 1: Integration eines Java-Applets in eine HTML-Seite

Der wesentliche Unterschied zwischen Java und anderen Programmiersprachen ist, daß Java-Programme normalerweise zunächst nicht in hardwareabhängigen Maschinencode übersetzt werden oder als Quelltext interpretiert werden, sondern in einen plattformunabhängigen sogenannten Bytecode. Für jede Hardware gibt es ein spezielles Programm (die Java Virtual Machine, JVM), die in der Lage ist, diesen Bytecode auszuführen. Vor der Ausführung durch die JVM wird der Bytecode durch ein spezielles Programm, den sogenannten Java Class Loader, in den Speicher des Computers geladen.
Normalerweise werden die vorkompilierten Java-Programme, sogenannte
Applets, nachdem sie aus dem Internet geladen worden sind, von einer JVM innerhalb eines Browsers interpretiert und ausgeführt. Hierzu werden die Java-Befehle mit Hilfe eines eigens dafür eingeführten Tags in HTML-Seiten eingebunden. Dies ist in der Abbildung 1 am Beispiel des Applets "AppletKiller.class" dargestellt. Beim Laden dieser HTML-Seite wird dieses Applet ausgeführt und bewirkt, daß alle anderen Applets, die anschließend geladen werden, sofort gelöscht werden.
Da die Netze, über die Java-Applets übertragen werden, in der Regel keinerlei Schutz gegen Manipulationen der übertragenen Java-Applets bieten, wurden bereits bei der Entwicklung von Java eine Reihe von Sicherheitsanforderungen definiert, die dafür sorgen sollen, daß Java-Applets keinen Schaden auf dem Rechner anrichten können, auf dem sie ausgeführt werden. Hierzu gehören:
» Kontrolle auf die Einhaltung der Grenzen bei verwendeten Array- oder String-Variablen. Hierdurch wird eine der häufigsten Ursachen für Fehler in Programmen (Buffer Overruns oder Speicherüberlauf) verhindert.
» Homogenität der verwendeten Sprach-Konstrukte auf allen unterstützten Plattformen unabhängig vom verwendeten Prozessor.
» Keine Verwendung von Pointern.
» Keine Möglichkeit beliebiger Umwandlung von Datentypen wie zum Beispiel die Umwandlung von Integer-Variablen in Pointer.
» Automatische Speicherverwaltung (Garbage Collector). Hierdurch wird erreicht, daß nicht mehr benötigter Speicherbereich automatisch wieder freigegeben wird.
» Offenlegung der Spezifikationen und teilweise sogar des Quellcodes der verwendeten Interpreter und Compiler.
Einige dieser Sicherheitsfunktionen werden bereits beim Übersetzen eines Java-Programms vom Compiler übernommen. Dies ist aber alleine nicht ausreichend, da es möglich wäre, Applets auch mit einem manipulierten Compiler zu übersetzen, der keine Prüfungen vornimmt. Daher muß jedes Java-Applet, welches aus dem Internet geladen wird, vor seiner Ausführung weitere Sicherheitsstufen durchlaufen.
Die erste dieser Stufen wird von dem sogenannten
Bytecode-Verifer durchgeführt. Dieser überprüft, ob das Applet vollständig geladen wurde und nicht gegen einige wichtige Grundregeln, die jedes Java-Applet erfüllen muß, verstößt. Sichergestellt wird beispielsweise, daß allen Variablen gültige Werte übergeben werden.
Auf der zweiten Sicherheitsstufe sorgt der
Class-Loader dafür, daß die Menge der Schnittstellen eingeschränkt ist, die von einem Applet auf dem lokalen System verwendet werden können. Zusätzlich übernimmt der Class-Loader die Aufgabe, dafür zu sorgen, daß keine ungeprüften Klassen eingefügt und vorhandene Klassen nur in einem genau definierten Rahmen überschrieben werden können.
Die dritte Sicherheitsstufe wird bei der Ausführung einer Klasse durch den sogenannten
Security-Manager bereitgestellt. Er kontrolliert, ob ein Zugriff auf sicherheitskritische Ressourcen des Rechners, auf dem das Applet abläuft, gestattet ist oder nicht. Der Security-Manager unterscheidet bei der Prüfung streng nach der Herkunft der Klasse. Lokale können mehr Rechte erlangen als Klassen, die aus dem Internet geladen worden sind. Durch diesen Mechanismus wird erreicht, daß Java-Applets nur in einer eingeschränkten Umgebung mit eingeschränkten Rechten ablaufen, wo sie normalerweise keinen Schaden anrichten können. So ist ihnen beispielsweise der Zugriff auf Dateien oder auf fremde Speicherbereiche nicht möglich. Aufgrund dieser Eigenschaften wird das Sicherheitskonzept auch als "Sandkasten" oder "Sandbox" bezeichnet.
Leider sind die Rechte, die ein spezieller Security-Manager (z.B. im Netscape Navigator oder im Microsoft Internet Explorer) vergibt, nicht einheitlich geregelt, sondern werden in Form von verschiedenen Sicherheitsrichtlinien von den Herstellern der Browser vorgegeben. Insbesondere die Einführung von signierten Applets mit deutlich erweiterten Rechten mit Hilfe der Java Capabilities Class durch die Firma Netscape oder innerhalb des Java Development Kits 1.2 von der Firma
SUN stellt eine wesentliche Änderung und Aufweichung des herkömmlichen "Sandkastens" dar. Es bleibt abzuwarten, wie lange es dauert, bis auch dieses Konzept durch Fehler in der Programmierung überwunden werden kann.

ActiveX

Bei ActiveX handelt es sich um eine Erweiterung der schon länger bekannten OLE-Technik (Object Linking and Embedding), die z.B. auch beim Einfügen von Excel-Tabellen in Winword-Dokumente verwendet wird. ActiveX ist also kein eigenständiges System, sondern ein Teil der Microsoft-Betriebssysteme wie Windows 95 oder Windows NT. Ein ActiveX-Control ist ein kleines Windows-Programm, das sich beispielsweise mit Hilfe eines Web-Browsers ausführen läßt. Diese Controls können bereits auf dem Rechner vorhanden sein, oder werden beim Aufruf einer Web-Seite automatisch heruntergeladen.
ActiveX basiert auf der Möglichkeit, wiederverwendbare Softwarekomponenten in binärer Form mit standardisierten Interfaces bereitzustellen, die von verschiedenen Client-Programmen genutzt werden können. Diese Softwarekomponenten müssen dem sogenannten COM-Standard (Component Object Model) entsprechen. Dabei ist es völlig egal, in welcher Programmiersprache die Controls geschrieben worden sind, es sind also ActiveX-Controls in Basic, C oder sogar Java denkbar.
ActiveX-Controls werden innerhalb einer HTML-Seite durch ein spezielles Tag gekennzeichnet, das OBJECT-Tag. Das in Abbildung 2 dargestellte Listing zeigt die Integration eines Diagramms, welches mittels eines ActiveX-Controls manipuliert werden kann. Die mögliche Verknüpfung von ActiveX-Controls mit einer Skriptsprache (Active Scripting) erschwert die Analyse der Funktionen (z. B. mit welchen Parametern ein Control aufgerufen wird).
ActiveX-Controls können niemals eigenständig ablaufen, sondern benötigen immer ein anderes Programm, den sogenannten ActiveX-Container, um geladen und dann gestartet zu werden. Diese Aufgabe übernehmen z.B. Browser wie der Microsoft Internet Explorer oder diverse Plug-ins, die für eine Vielzahl von anderen Programmen geschrieben worden sind.
Aufgrund der engen Verflechtung der ActiveX-Controls mit dem Betriebssystem hat das Control Zugriff auf alle Systemressourcen inkl. der lokal gespeicherten Daten und Programme. Es ist also z.B. möglich, ein Control zu schreiben, welches ein Überweisungsformular einer Home-Banking-Anwendung erstellt und beim nächsten Kontakt mit der Bank verschickt. Auch ist es einem Control generell möglich, die Sicherheitseinstellungen des Internet Explorers (ab Version 3.0) zu verändern.


<OBJECT ID="Zeichnung1"
WIDTH=400
HEIGHT=300
CLASSID="CLSID:61241E80-778C-11EF-93D5-0420AF49504B"
CODEBASE="MSChart.OCX" >
</OBJECT>
<OBJECT ID="X-Achse"
WIDTH=28
HEIGHT=300 CLASSID="CLSID:673FA7F0-EB4B-11CD-8320-08022B2F7F5B">
</OBJECT><p>
<OBJECT ID="Rotation"
WIDTH=400
HEIGHT=28 CLASSID="CLSID:673FF7F0-EC8B-21CD-8220-08002B3F4F5B">
</OBJECT>

Abbildung 2: Beispiel für einen Aufruf eines ActiveX-Controls

Nachdem die Teile eines Controls geladen worden sind, wird ein weiterer Systemdienst aktiviert, der Windows Trust Verification Service (WTVS). Um nun sicherzustellen, daß dem Control ein gewisses Maß an Vertrauen entgegengebracht werden kann, hat Microsoft drei Forderungen aufgestellt, die von allen Entwicklern von Controls beachtet werden müssen.
1. Der Programmierer bzw. die Softwarefirma muß seine bzw. ihre Identität offenlegen.
2. Der Programmierer bzw. die Softwarefirma muß für den Anwender vertrauenswürdig sein.
3. Das Control darf nach seiner Veröffentlichung (Zertifizierung) nicht mehr verändert werden.
Die Forderungen 1 und 3 lassen sich durch die Benutzung einer digitalen Signatur für das Control erreichen, viel problematischer ist der zur Erfüllung der Forderung 2 notwendige Vertrauensbeweis.
Will ein Programmierer ein ActiveX-Control mit einer digitalen Signatur versehen, so muß er sich an eine Zertifizierungsstelle (Certification Authority, CA) wenden. Von dort bekommt er ein Zertifikat für seinen öffentlichen Schlüssel. Mit Hilfe seines privaten Schlüssels erzeugt er nun eine digitale Signatur für das von ihm erstellte Control und legt diese digitale Signatur zusammen mit dem Control auf einem WWW-Server ab. Zusätzlich muß er sicherstellen, daß kein Angreifer böswillige Manipulationen an dem Control und der Signatur vornehmen kann. Hierzu ist es sinnvoll, die Signatur auf einem anderen Server zum Abruf bereitzustellen. Dies kann z.B. ein Datenbankrechner sein, der ausschließlich die Signaturen von Programmen verschiedener Hersteller zum Download bereithält. Eine solche Funktionalität wäre z.B. als Dienstleistung einer Zertifizierungsstelle denkbar.
Der potentielle Empfänger lädt das ActiveX-Control und die zugehörige digitale Signatur auf seinen Rechner. Dort prüft der Browser zunächst anhand der ihm bekannten Site-Zertifikate der Zertifizierungsstellen, ob das Zertifikat des Programmierers gültig ist. Anschließend wird die digitale Signatur des Controls geprüft. Ist auch diese gültig, wird das Control ausgeführt. Zur Überprüfung werden asymetrische Verfahren verwendet, so daß die Kontrolschlüssel offen über das Internet übertragen werden können.
Die geschilderte Methode der Quellenüberprüfung von Software wird von Microsoft
Authenticode genannt. Das Hauptproblem bei der Anwendung der digitalen Signatur wird von diesem Verfahren allerdings nicht gelöst, da es dem Anwender in der Regel nicht möglich ist, eine Zertifizierungsstelle auszuwählen, der er ausreichend Vertrauen entgegenbringt, um die digitale Signatur zu akzeptieren. Da die Zertifizierung mit Kosten verbunden ist, wird ein Autor sein Control lediglich von einer Zertifizierungsstelle signieren lassen.

JavaScript

JavaScript ist eine einfache Programmiersprache, die von der Firma Netscape entwickelt worden ist, um die Erzeugung von aktiven Inhalten in HTML-Seiten zu erleichtern. Obwohl der Name eine enge Verwandtschaft zu Java andeuten könnte, haben die beiden Sprachen nur wenig Gemeinsamkeiten. JavaScript ist nur eingeschränkt objektorientiert ("objektbasiert") und wird innerhalb einer HTML-Seite an den Browser übertragen. Der Anfang eines JavaScript Programms wird innerhalb einer HTML-Seite durch das Tag <SCRIPT Language="JavaScript"> gekennzeichnet, das Ende entsprechend durch das </SCRIPT>-Tag. Da JavaScript für die Bearbeitung von HTML-Seiten entwickelt worden ist, entsprechen die Objekte, mit denen JavaScript arbeitet, im wesentlichen den einzelnen Komponenten einer WWW-Seite. Jedes dieser Objekte hat verschiedene Eigenschaften und Methoden, mit denen diese Eigenschaften verändert werden können.
In einem typischen JavaScript-Programm werden zunächst eine Reihe von Funktionen definiert, die anschließend innerhalb des eigentlichen HTML-Codes aufgerufen werden.
Um die Gefährdungen, die bei der Ausführung von JavaScript-Programmen entstehen, beherrschen zu können, wurden von Netscape verschiedene Sicherheitsmodelle entwickelt. Hierzu gehören die "Same Origin Policy", "Data Tainting" und die "Signed Script Policy".
» Same Origin Policy
Bei diesem Sicherheitsmodell wird festgelegt, daß ein JavaScript-Programm, welches von einer "Quelle" geladen worden ist, bestimmte Zugriffe auf Objekte innerhalb des Browsers nicht ausführen darf. Die "Quelle" eines JavaScript-Programms wird anhand der URL der HTML-Seite festgelegt, in der dieses Programm enthalten ist.
» Data Tainting
Data Tainting ist eine Funktion des Navigators 3, die es ermöglicht, daß auf Objekte eines Fensters von einem anderen Fenster aus zugegriffen werden kann, und zwar unabhängig von der Quelle der Fenster. Im Navigator 4 ist diese nicht implementiert worden. Um Mißbrauch zu verhindern, kann der Autor des Fensters, auf dessen Objekte zugegriffen werden soll, verschiedene Objekte als privat kennzeichnen ("tainting") und Zugriffe nur nach Rückfrage gestatten.
» Signed Script Policy
Die "Signed Script Policy" ist erst mit der Version 4 des Navigators eingeführt worden. Sie basiert auf der im Zusammenhang mit Java eingeführten Möglichkeit, Objekte digital signieren zu lassen, um so die Authentizität zu gewährleisten. Ein signiertes JavaScript-Programm kann erweiterte Zugriffsrechte auf Ressourcen des lokalen Rechners bekommen.
Es sind verschiedene Probleme bekannt, durch die ein JavaScript-Programm Schäden verursachen kann. Hierzu gehört z.B. die Möglichkeit, beliebig viele Fenster mit Meldungen (sogenannte Alert-Boxen) zu öffnen, also ein
Denial-of-Service-Angriff, genauso wie die Möglichkeit, Eingabefenster zu simulieren und dadurch Benutzernamen, Paßwort oder andere Authentisierungsinformationen abzufangen. Durch ein entsprechendes JavaScript-Programm kann die Statuszeile eines Browsers so verändert werden, daß nicht mehr die richtige URL eines Links angezeigt wird, sondern eine beliebige andere.

Plug-ins, Attachments und Zusatzprogramme

Viele Dateien, die aus dem Internet geladen werden können, liegen in einem Format vor, welches ein normaler Browser nicht anzeigen kann. Hierzu gehören z.B. eine Reihe von Bildformaten oder Audiodaten. Auch innerhalb von Emails lassen sich solche Daten als Anhänge (Attachments) übertragen. Um diese Dateien anzeigen zu können, werden Zusatzprogramme benötigt.
Helper-Applications sind eigenständige Programme, die automatisch vom Browser oder vom Email-Client gestartet werden. Ihre Auswahl geschieht anhand der Dateiendungen. Bei einer Datei mit der Endung ".ps" wird also z.B. ein Programm zum Betrachten von Postscript-Dateien gestartet. Helper-Applications sind eigenständige Anwendungen mit einem eigenen Fenster und mit eigenen Ressourcen, d.h. insbesondere, daß dieses Programm alle Berechtigungen hat, die auch jedes andere Programm dieses Benutzers hätte. Einschränkungen, die innerhalb der Konfigurationsmöglichkeiten des Browsers gemacht worden sind, werden nicht beachtet.
Plug-ins sind Programme, die so ausgeführt werden, als wären sie ein Bestandteil des Browsers. Werden Plug-ins neu installiert, so muß gleichzeitig eine Dateiendung und ein MIME-Typ angegeben werden. Anhand dieser Daten erkennt der Browser dann zukünftig, welches Plug-in gestartet werden muß.
Welche Zusatzprogramme gestartet werden, wird zum einen anhand der Dateiendung festgelegt, zum anderen aber auch anhand des MIME-Typs.
MIME steht für "Multipurpose Internet Mail Extensions". Es handelt sich um einen Standard für den Versand von mehrteiligen, multimedialen oder Binär-Daten im Internet [RFC 2045, RFC 2046]. Hierzu gehören Bilder, Audiodaten, Dateien von Textverarbeitungsprogrammen, Programmdateien und sogar einfache Texte, bei denen es darauf ankommt, daß ihr Format bei der Übertragung nicht verändert wird.
Unter Sicherheitsgesichtspunkten ist der MIME-Content-Type "Application" kritisch. Er wird verwendet, um den Transport von Daten zu kennzeichnen, die von Programmen ausgeführt werden können, die auf dem Rechner des Anwenders installiert sind. Bei entsprechend konfigurierten Email-Programmen kann es sogar geschehen, daß diese Programme automatisch gestartet werden, wenn eine Email empfangen wird, die Daten mit dem MIME-Content-Type "Application" enthält.
Bei der Art der Daten gibt es keine Einschränkungen, es können genauso Programme für interpretierte Programmiersprachen (BASIC) wie Shell-Scripte sein. Auch Datenformate, bei denen auf den ersten Blick nicht zu vermuten ist, daß sie ein Sicherheitsrisiko darstellen, können zu einer Bedrohung führen. Ein Beispiel hierfür sind Texte im PostScript-Format.
Der automatische Start eines normalen PostScript-Interpreters birgt ein Reihe von Gefährdungen, die durch spezielle PostScript-Befehle verursacht werden können. Hierzu gehören die Befehle
"deletefile", "renamefile", "filenameforall" und "file".
So führt die Ausführung einer Email, welche die folgenden Zeilen enthält, zum Löschen der angegebenen Datei mit dem Namen
DATEINAME.TXT:
Content-Type: application/postscript
Content-Description: löscht eine Datei
...
%!
(DATEINAME.TXT) deletefile quit
Auch im WWW können Daten dieser Art verschickt werden und stellen durch das automatische Starten von Helper-Applications oder Plug-ins ein ähnlich hohes Risiko dar.

Automatisches Update

Die gängigen Browser erlauben ein automatisches Update ohne Zutun des Benutzers aus dem Internet. Dabei kann jedoch natürlich nicht davon ausgegangen werden, daß die neuen Version fehlerfrei ist. Weiterhin besteht die Möglichkeit, daß Konfigurationen, die der Anwender ausgewählt hat, überschrieben werden. Da das Update über das Internet erfolgt, besteht weiterhin die Gefahr, daß ein Rechner die Identität des Update-Servers vortäuscht, und so böswilligen Code auf den lokalen Rechner schmuggelt (IP-Spoofing).

Zentrale Filterung - Firewalls

Eines der größten Probleme bei der Konzeption einer Firewall ist die Behandlung der Probleme, die durch die Übertragung ausführbarer Inhalte zu den Rechnern im zu schützenden Netz entstehen. Hierunter fällt nicht nur die Erkennung und Beseitigung von Computer-Viren, die verhältnismäßig einfach auch auf den Rechnern der Anwender durchgeführt werden kann, sondern auch das viel schwieriger zu lösende Problem der Erkennung von ActiveX-Controls, Java-Applets oder Scripting-Programmen mit einer Schadfunktion. Für diese Bedrohungen existieren zur Zeit keine brauchbaren Programme, die eine ähnlich wirksame Erkennung ermöglichen, wie sie im Bereich der Computer-Viren möglich ist.
Die Größe der Gefährdung, die von aktiven Inhalten für die Rechner im zu schützenden Netz ausgeht, läßt sich anhand des folgenden Beispiels darstellen. Ein Java-Applet in einem Browser darf gemäß der Java-Spezifikationen eine Netzverbindung zu dem Server aufbauen, von dem es geladen worden ist. Diese zur Zeit noch recht wenig benutzte Möglichkeit ist eine zentrale Voraussetzung, wenn Netzwerk-Computer (NC) oder ähnliches eingesetzt werden sollen, die auch ohne spezielle Initiierung durch den Anwender Programmteile vom Server laden müssen. Um diese Eigenschaft trotz der Verwendung eines Packet-Filters vollständig unterstützen zu können, müssen sehr viel mehr Portnummern freigeschaltet werden, oder es muß ein dynamischer Packet-Filter eingesetzt werden.
Proxy-Prozesse sind aufgrund ihres Aufbaus prinzipiell sehr gut dazu geeignet, die übertragenen Nutzdaten zu analysieren. Wie in Abbildung 1 und Abbildung 2 dargestellt, werden die entsprechenden Programme über spezielle Tags innerhalb einer HTML-Seite aufgerufen. Denkbar ist also die Lösung, alle Zeilen mit entsprechenden Tags und die dazwischen liegenden Zeilen aus einer HTML-Seite zu löschen oder sie durch Ausgabezeilen zu ersetzen, die dem Anwender einen Hinweis geben, daß das gewünschte Java-Applet von der Firewall abgeblockt worden ist.
Das Problem bei dieser Vorgehensweise besteht darin, daß es nicht auf eine einfache Weise möglich ist, alle HTML-Seiten und in diesen wiederum alle zu löschenden Tags zu erkennen. So können, und dies wird heute schon vielfach gemacht, HTML-Seiten als Inhalt einer Email übertragen werden. Intelligente Email-Programme erkennen dies und starten automatisch einen Browser, der diese HTML-Seite anzeigen kann und dann natürlich auch das Java-Applet bzw. ActiveX-Control ausführt. Auch die Erkennung eines speziellen Tags innerhalb einer HTML-Seite ist aufgrund der komplexen Möglichkeiten der aktuellen HTML-Version nicht einfach.
Java erlaubt eine zweite Möglichkeit der Erkennung. Alle Java-Klassen-Dateien beginnen mit den Hexadezimalzahlen CA, FE, BA und BE. Dieses Merkmal kann ebenfalls zur Erkennung durch eine Firewall herangezogen werden.
Diese Methode hat den Nachteil, daß auch normale Dateien mit dieser Bytefolge beginnen können und dann auch durch die Firewall geblockt würden. In Ergänzung zu einem Filter, der die notwendigen Tags erkennt, ist aber eine wirkungsvolle Kontrolle möglich. Leider werden Java-Applets nicht durchgängig als Datei mit der Endung
.class verschickt. Statt dessen können auch komprimierte Dateien eingesetzt werden, die z.B. die Endung .jar (Java-Archive) haben. Das bedeutet, daß ein Java-Filter auch alle von beliebigen Browsern unterstützten Komprimierungsverfahren kennen und berücksichtigen muß.
Eine weitere Alternative, aktive Inhalte mit Schadfunktion zu erkennen, besteht darin, ähnlich wie bei Programmen zur Abwehr von Computer-Viren, eine Datenbank mit Signaturen anzulegen und jedes aus dem Internet geladene Programm mit diesen Signaturen zu vergleichen. Entsprechende Hilfsprogramme existieren derzeit nur in sehr eingeschränktem Maße.
Ein weiteres Problem bei der Entdeckung von aktiven Inhalten mit Schadensfunktion besteht darin, daß diese in verschiedenen Formaten z.B. innerhalb einer Email übertragen werden können. Komprimierte Dateien, Dateien in speziellen Kodierungen
(BINHEX, BASE64) oder sogar verschlüsselte Daten müssen von dem Filter-Programm erkannt und analysiert werden. Dabei ist es durchaus möglich, das mehrere dieser Schritte nacheinander durchlaufen werden müssen und es bleibt das Risiko, daß eine spezielle Darstellungsform als solche nicht erkannt wird und die Datei daher nicht in eine Form gebracht wird, die für eine Suche nach Schadensfunktionen geeignet ist. Auch muß für eine Suche zunächst die komplette Übertragung abgewartet werden, bevor das Ergebnis der Suche zur Verfügung steht - der Anwender wartet also u.U. lange ohne einen erkennbaren Fortschritt, um dann die gewünschte Datei als ganzes zu bekommen. Außerdem erfordert die Entdeckung einer a priori unbekannten Schadensfunktion eine vollständige semantische Analyse des Maschinencodes. Eine solche Analyse ist mit heutigen Rechnern aus theoretischen Gründen nicht durchführbar, allenfalls kann man nach dem Aufruf bestimmter Systemresourcen fahnden.
Ein weiterer Ansatz zur Vermeidung von Risiken, die von aktiven Inhalten ausgehen, besteht in der Verwendung eines sogenannten Quarantänerechners (Gummizelle). Dieser steht vor der Firewall im unsicheren Bereich und wird dazu benutzt, Anwenderprogramme ablaufen zu lassen, die so konfiguriert sind, daß die graphischen Oberflächen durch die Firewall hindurch auf die Arbeitsplatzrechner der Anwender geschickt werden. Ein Programm mit Schadfunktion kann dann lediglich den Quarantänerechner schädigen. Ein Nachteil dieser Lösung ist aber, daß keinerlei Daten dynamisch vom Internet auf die Rechner der Anwender geladen werden können und damit jegliche Interaktivität verloren geht.
Ein speziell auf Java bezogener Ansatz für einen zentralen Filter basiert auf der Ausnutzung der mit der Java-Version 1.2 etablierten Sicherheitsmechanismen. Er ist an zwei Voraussetzungen geknüpft: Zum einen müssen das Java-Sicherheitsmodell, die den Java-Bytecode kontrollierenden bzw. interpretierenden Komponenten und die Java-Basisklassenbibliothek korrekt implementiert sein. Außerdem muß die in sog. Policy-Dateien definierte unternehmensweite Sicherheitspolitik (d.h. die Vereinigung der zentralen policy mit den jeweiligen lokalen policies) korrekt sein. Unter diesen Voraussetzungen kann 100%-pure-Java-Code keine der Sicherheitspolitik zuwiderlaufenden Aktivitäten ausführen. Sichert man also durch entsprechende zentrale Maßnahmen auf einem Proxy-Server im Intranet hinter der Firewall die Integrität der Komponenten der virtuellen Maschine, der Basisklassenbibliothek und der Policy-Dateien und filtert alle native-code enthaltenden Applets bzw. Applikationen aus, kann man unerlaubte, die Sicherheitspolitik verletzende Aktivitäten abwehren. Dies betrifft jedoch nicht sogenannte denial-of-service-Angriffe, die über exzessive Auslastung von Speicher, Videospeicher oder Prozessor laufen, da Zugriffe auf diese Resourcen jedem Java-Programm erlaubt sein müssen. Hier muß der Filter auf eine Bytecode-Analyse mit allen schon erwähnten Problemen zurückgreifen. Der wesentliche Vorteil dieses Ansatzes ist, daß auch über andere Kanäle als HTML-Dokumente ins Intranet gelangte Java-Applets bzw. -Applikationen kontrolliert werden. Produkte, die diesen Ansatz realisieren, sind derzeit am Markt noch nicht verfügbar, jedoch existieren im BSI Planungen für ein Projekt zu seiner Realisierung als in Behördennetzen einsetzbares Tool.
Der große Vorteil eines zentralen Filters besteht darin, daß mit Hilfe unterschiedlicher Mechanismen (Signatur-Datenbank, Digitale Signatur, Analyse) eine einheitliche Sicherheitspolitik erreicht werden kann. Dennoch wird ein großer Teil der Verantwortung für die Sicherheit des Netzes in die Hände der Benutzer gelegt.

4. Organisatorische Sicherheitsmaßnahmen

Die Ausführung aktiver Inhalte ist einerseits mir großen Risiken und Gefahren verbunden auf der anderen Seite aber aufgrund der wachsenden Verbreitung in vielen Bereichen unverzichtbar, so daß eine Regelung für den Umgang unumgänglich ist. Ziel ist es dabei, aktive Inhalte daran zu hindern:
» Schaden oder zeitweise Einschränkung der Verfügbarkeit des Rechners zu verursachen
» den Rechner zu Angriffen auf weitere Rechner zu nutzen
» Daten innerhalb des Rechners oder des Netzes auszuspähen
Die sichere Kommunikation zwischen außen und innen ist meist durch eine
Firewall bereits hinreichend gewährleistet. Diese Systeme schützen vor Angriffen von außen. Durch die aktiven Inhalte können jedoch Angriffe quasi von innen gestartet werden, so daß hier eine besondere Sensibilisierung der Administratoren und Anwender notwendig erscheint.
Als primäre Maßnahme ist die konsequente Nutzung administrativer Möglichkeiten wie das Schließen nicht benötigter Ports auf den Rechnern und die Rechteverwaltung für den Zugriff auf Daten und Resourcen zu sehen. Der Einsatz einer Authentisierung zur Nutzung von Datenbanken und anderen Diensten im Intranet sollte selbstverständlich sein. Auch Client-Server-Dienste sind durch aktive Inhalte prinzipiell mißbrauchbar; auf sie sollte demnach nach Möglichkeit verzichtet werden. Das eigene Netz ist verstärkt auf Schwachstellen zu untersuchen, beispielsweise mit den am Markt vorhandenen Netzwerkanalysetools.
Eine mögliche Schadfunktion ist bei aktiven Inhalten nicht ohne weiteres zu erkennen, da sowohl ActiveX, als auch Java in (vor-)kompilierter Form vorliegen. Da JavaScript hingegen eine Script-Sprache ist, ist hier eine Analyse des Codes vor Ausführung zu empfehlen. ActiveX und Java unterscheiden sich wesentlich in ihrem Sicherheitskonzept. ActiveX arbeitet vertrauensbasiert, es wird nur eine Ausführung von Controls gestattet, die aus vertrauenswürdiger Quelle stammen. Kommen sie jedoch zur Ausführung, haben sie alle Rechte des Anwenders. Welche Quelle als vertrauenswürdig eingeschätzt wird, kann in der Konfiguration der Browser eingestellt werden. Java-Applets hingegen besitzen nur eingeschränkte Rechte: auf die meisten Resourcen ist ihnen kein Zugriff gestattet, sie laufen lediglich in einer eingeschränkten Umgebung ("Sandbox").
Für interne Onlinedokumente und Programme sollte deren Authentizität durch Signierung und Firmenzertifikate gewährleistet werden. Eigene aktive Inhalte im Intranet sollten mit Java und nicht mit ActiveX oder JavaScript realisiert werden. Da die Zertifizierungsmechanismen der verschiedenen Browser unterschiedlich und nicht zueinander kompatibel sind, sind normalerweise zwei verschiedene Zertifizierungsverfahren notwendig. Allerdings steht mit dem JAVA Plug-in Paket der Firma Sun ein Ersatz für die integrierten Java Laufzeitumgebung der Browser zur Verfügung, der durch den Plug-in-Mechanismus in die gängigen Browser eingebunden werden kann. Dies hat den zusätzlichen Vorteil, daß das Sicherheitskonzept dieser Laufzeitumgebung sehr gut dokumentiert ist. Diese Laufzeitumgebung bietet auch die Möglichkeit, daß Sandbox-Verfahren durch einen vertrauensbasierenden Ansatz (beispielsweise um Daten einer Datenbank abzufragen) zu ergänzen.
Wegen der großen nur schwer zu kalkulierenden Sicherheitsrisiken sollte ActiveX grundsätzlich nicht zum Einsatz kommen. Auch JavaScript sollte wegen der großen Fehleranfälligkeit normalerweise nicht eingesetzt werden. Das Risiko bei reinem Java ist durch die sogenannte "Sandbox" wesentlich geringer. Wenn man dem Applet nicht manuell erweiterte Rechte zubilligt, können lediglich Fehler in der Implementierung der Laufzeitumgebung des Browsers zu Zugriffen beispielsweise auf Dateien oder Netzwerkadressen führen.
Besonders wichtig ist es, eine Regelung zu finden, wie der Zugriff auf aktive Inhalte des Internets zu reglementieren ist. Denkbar sind hier drei Modelle:
1. ganz offen (keine Beschränkung, reine Eigenverantwortung des Anwenders)
2. ganz geschlossen
3. nur für bestimmte Gruppen offen
Die erste Möglichkeit beinhaltet ein hohes Sicherheitsrisiko, verursacht nicht nur durch mangelndes Risikobewußtsein beim Anwender. Selbst bei der Wahl einer sicheren Grundeinstellung und hinreichender Sensibilisierung und Schulung der Anwender kann bei zeitweiser Benutzung aktiver Inhalte (beispielsweise für Intranet-Dokumente oder die Benutzung der Online-Hilfe von Netscape) das anschließende Abschalten vergessen werden. Auch kann nicht sichergestellt werden, daß alle Anwender das mögliche Risiko richtig einschätzen. Sicher werden viele Anwender mit der hiermit verbundenen hohen Mitverantwortung für die Sicherheitspolitik überfordert sein. Der Vorteil dieses Modells liegt allerdings darin, daß alle Anwender die Angebote des Internets ohne Einschränkungen nutzen können. Von dieser Möglichkeit ist wegen der hohen Risiken jedoch abzuraten.
Möglichkeit Nummer zwei - alle aktiven Inhalte aus dem Internet werden abgewiesen - schließt Risiken bei der Nutzung des WWW weitgehend aus. Allerdings sind durch das starke Vordringen aktiver Inhalte im Internet immer mehr Web-Seiten praktisch nicht mehr nutzbar. Da aktive Inhalte oder auch eigenständige Programme auch durch Email (eventuell sogar verschlüsselt) verschickt werden können, ist hier eine vollständige Ausfilterung aktiver Inhalte nur schwer möglich, so daß zusätzlich ein entsprechendes Bewußtsein für die Mitverantwortung bei den Anwendern geschaffen werden muß.
Die dritte Möglichkeit, die Nutzung aktiver Inhalte auf einen eingeschränkten Kreis zu begrenzen, erscheint demnach am sinnvollsten. Bei diesen Anwendern muß, beispielsweise durch entsprechende Schulungen, ein besonderes Risikobewußtsein entwickelt werden. Weiterhin müssen klare Kriterien vorhanden sein, wie dieser Kreis zu bestimmen ist. Durch weitere Sicherheitsvorkehrungen, beispielsweise durch eine zusätzliche Authentisierung, kann ein Mißbrauch der erweiterten Möglichkeiten durch Dritte unterbunden werden. Bestimmte bindende Verhaltensmuster, z. B. das Verwenden des Passwort-Schutzes des Bildschirmschoners oder das ausschließlich selektive Einschalten der aktiven Inhalte, sind zu entwickeln und einzuhalten.
Um dem Vergessen des Abschaltens der aktiven Inhalte nach der Nutzung vorzubeugen, sollte eine technische Lösung angestrebt werden. Dieses kann beispielsweise durch die Software X-Ray-Vision geschehen oder auch durch ein regelmäßiges Überschreiben der Konfiguration, beispielsweise beim Rechnerstart.
Damit die Nutzung von aktiven Inhalten im Intranet möglich bleibt, ist eine Firewall notwendig, die die Übertragung aktiver Inhalte einerseits für die normale Anwendergruppe aus dem Internet verhindert, für die Gruppe mit besonderen Rechten andererseits aber zuläßt. So können die Browser der normalen Anwender durchaus mit der Option der eingeschalteten aktiven Inhalte genutzt werden, beispielsweise um aktive Inhalte im Intranet zu nutzen. Sinnvoll ist in diesem Zusammenhang, auch den Download von ausführbaren Programmen und dynamisch gelinkten Libraries zu reglementieren.
Eine Kontrolle über die installierten ActiveX-Controls, Plug-ins oder Java-Applets muß für jeden Rechner regelmäßig erfolgen. Für ActiveX-Controls steht hierfür das Programm XCavator zur Verfügung, das installierte Controls auflistet und einzeln löschen kann. Über installierte Plug-ins informieren die gängigen Browser in ihrer Hilfe-Funktion. Über Java-Applets, die mehr Rechte benötigen, als ihr die Sandbox zugesteht, geben die aufgelisteten Zertifikate in den Sicherheitseinstellungen der Browser Auskunft. Da die Vergabe besonderer Rechte bei den Implementierungen der Java-Runtime-Enviroment in den einzelnen Browsern unterschiedlich realisiert ist, sollte diese durch die der Firma Sun ersetzt werden.
Problematisch ist die umständliche Administration hinsichtlich der Sicherheitspolitik, die grundsätzlich an jedem Desktoprechner dezentral konfiguriert werden muß und durch den Anwender mit wenigen Mausklicks außer Kraft gesetzt werden kann. Wird eine automatische Rekonstruktion der sicheren Grundeinstellung (s.o.) gewählt, ist dieser Punkt weniger problematisch.

5. Sicherheitsmaßnahmen bei Anwendungen

Hauptquelle für Risiken durch ausführbare Inhalte in Web-Dokumenten ist der Anwender, denn die Applets oder Controls gelangen durch ihn auf den einzelnen Rechner. In diesem Abschnitt werden sicherheitsrelevante Einstellungen bei Mail-Programmen und WWW-Browsern vorgestellt, die vom Anwender ausgewählt werden müssen. Neben den Einstellungen, die direkt aktive Inhalte betreffen, werden auch die Wahlmöglichkeiten aus dem Bereich der Verschlüsselung vorgestellt, was beispielsweise bei Bankanwendungen im Internet von zentraler Bedeutung ist.

a) Email Programme

Beim Empfang von Email ist das sofortige Ausführen von Attachments ein Sicherheitsrisiko. Diese Attachments sind so zu behandeln, wie eine Datei oder ein Programm auf einer Diskette. Sie sind demnach auf Viren, Trojanische Pferde, Makro-Viren etc. zu untersuchen, so kann beispielsweise bei MS Outlook durch das Einstellen eines hohen Sicherheitsgrads (Extras - Optionen - Anlagen) das automatische Starten einer Anwendung abgestellt werden (Abb. 3).

 

Abbildung 3: Einstellung zu Attachements bei MS Outlook.

b) Allgemein einstellbare Sicherheitsmaßnahmen bei Browsern

Neben der in WWW-Browsern fest einprogrammierten Funktionalität (HTML, Java, JavaScript) können die gängigen Browser durch Plug-ins oder ActiveX-Controls erweitert werden. Weiterhin können auch externe Programme zur Darstellung bestimmter Dateien mit darin enthaltenen Makros aufgerufen werden (z. B. Word für *.doc--Files) oder ausführbare Programme nach dem Download direkt gestartet werden.
Plug-ins oder ActiveX-Controls, die separat zum Browser installiert werden müssen, unterliegen grundsätzlich keinem Sicherheitsstandard, so daß bei einigen Plug-ins und bei ActiveX-Controls eine Zertifizierung durch eine digitale Signatur eingeführt wurde, die Auskunft über den Autor und die zertifizierende Stelle gibt. Das Zertifikat kann bei der Installation des Controls oder des Plug-ins mit den Daten der Zertifikataussteller, die dem Browser schon bekannt sind oder die er sich aus dem Internet herunterladen kann, verglichen werden. Der Anwender muß selbst entscheiden, welchen Zertifizierungsstellen er Vertrauen entgegenbringt. Eine Garantie für ein fehlerfreies Programm, das keine Schadfunktion enthält und auch nicht mißbraucht werden kann, wird damit natürlich nicht gegeben, da das Zertifikat lediglich die Urheberschaft beurkundet.
Die Möglichkeit zum Ausführen aktiver Inhalte kann bei allen Browsern deaktiviert werden, da eine Ausführung ohne Kontrolle durch den Benutzer ein Sicherheitsrisiko in sich birgt. Auch die Verwendung eines Proxy-Servers ist zu empfehlen, die notwendigen Parameter sind vom Systemverwalter zu erfragen. Da die Default-Einstellungen der beiden weitverbreitesten Browser Netscape Communicator und Microsoft Internet Explorer je nach Release-Nummer und Betriebssystem unterschiedlich sein können, müssen die Einstellungen stets kontrolliert werden.
Für die beiden marktgängigsten Browser, den Netscape Communicator und dem Microsoft Internet Explorer, werden die Einstellungen kurz erläutert. Bei beiden Browsern ist zu beachten, daß Sicherheitseinstellungen an verschiedenen Stellen vorgenommen werden können.

Netscape Browser

Proxy: Beim Netscape Browser (Vers. 4.x) kann unter "Bearbeiten - Einstellungen - Erweitert - Proxies" einen Proxy-Server eingestellt werden (Abb. 4).

 
Abbildung 4: Einstellung eines Proxy-Servers.

Java etc.:

Die Ausführung von Java und JavaScript kann im Menüpunkt "Erweitert" abgeschaltet werden (Abb. 5). Dies kann auch kurzfristig ohne Neustart des Browsers erfolgen, so daß beispielsweise die Hilfe-Funktion, die auf JavaScript angewiesen ist, genutzt werden kann. Allerdings können diese beiden Sprachen nur global ein- oder abgeschaltet werden. Der Netscape Browser kann JavaApplets, die erweiterte Rechte (beispielsweise Zugriff auf alle Netzwerk-Adressen) benötigen, nur ausführen, wenn diese eine gültige Signatur haben (s. u.). Da ActiveX vom Netscape Browser nicht unterstützt wird, wird das Laden von ActiveX-Controls ignoriert; von der Einbindung zusätzlicher Plug-ins, die den Browser in diese Richtung erweitern, ist wegen der angesprochenen Sicherheitsprobleme abzuraten. Die Version 4.5 des Netscape Browsers hat zusätzlich noch die Möglichkeit JavaScript speziell für Mail oder News-Foren abzuschalten. "Formatvorlagen aktivieren" erlaubt sogenannten "Style Sheets" das Aussehen von WWW-Seiten zu beeinflussen. Durch die "Automatische Installationsoption" erreicht man, daß Updates des Browsers über das Netz ohne eigenes Zutun erfolgen. Über installierte Plug-ins kann man sich - wenn JavaScript aktiviert ist - unter "Hilfe - über Plug-ins" informieren. Im unteren Teil des Menüpunkts "Erweitert" können die Richtlinien für den Umgang mit Cookies eingestellt werden.

 

Abbildung 5: Die erweiterten Einstellungen des Netscape Browsers.

Erweiterte Zugriffsrechte:

Seit der Version 4 des Netscape Browsers wurden die Möglichkeiten von Java und JavaScript, lokale Ressourcen zu nutzen, wesentlich erweitert, so daß viele Anwendungen erst möglich geworden sind, andererseits aber auch zusätzliche Risikofaktoren hinzugekommen sind. Allgemeinere Sicherheitseinstellungen finden sich unter "Communicator - Sicherheitsheitsinformationen (CTRL-Umsch.-I)". Hier können u. a. Java-Applets und JavaScript-Skripte je nachdem, von welcher Organisation sie zertifiziert wurden, mit erweiterten Zugriffsrechten beispielsweise auf Dateien ausgestattet werden (Abb. 6). Dazu ist es notwendig, daß Java-Applets ausgeführt werden dürfen (s.o.). Wird ein Java-Applet geladen, das erweiterte Zugriffsrechte benötigt, so erscheint eine Warnmeldung, in der angegeben ist, wer das Applet zertifiziert hat und welche zusätzlichen Rechte dieses Applet anfordert. Wird das Applet akzeptiert und "Dieses Vorgehen übernehmen" angeklickt, so werden in Zukunft jedem Applet und jedem Scipt, das das gleiche Zertifikat vorweisen kann, die gleichen Rechte ohne Rückfrage zugestanden. Ist dem ersten Applet beispielsweise das Lesen oder Schreiben von Dateien erlaubt, werden diese Rechte auch an später geladene Applets die vom gleichen Autor signiert wurden ohne weitere Nachfrage übertragen, so daß diese beispielsweise Dateien überschreiben können, ohne daß der Anwender darüber informiert wird.

 

Abbildung 6: Zugriffsrechte für Java oder JavaScript.

Download:

Wie oben beschrieben, können auch Dateien (nicht nur ausführbare Programme) eine Schadfunktion (PS-Files, Makro-Viren etc.) enthalten, so daß normalerweise die zugehörigen Anwendungen nicht automatisch starten sollten. Eine Nachfrage, wie mit der einzelnen Datei umgegangen werden soll, wird erreicht, indem man "Bearbeiten - Einstellungen - Navigator - Anwendungen" anklickt und für jede kritische Anwendung im Punkt "Bearbeiten" die Option "Auf Festplatte speichern" oder "Vor dem Herunterladen von Dateien dieses Typs Benutzer fragen" wählt (Abb. 7).

 

Abbildung 7: Einstellung zum Download von Dateien.


Bei der Anwahl einer derartigen Datei wird ein Dialog geöffnet, in welcher Weise von Fall zu Fall mit ihr umzugehen ist. Ein direktes Öffnen sollte nur bei Dateien aus sicherer Quelle gewählt werden.

 

Abbildung 8: Meldung beim Herunterladen einer Datei.


 

Verschlüsselung:

Beim Zugriff auf verschlüsselte (https://...) wird über die Zertifizierung der Seite unter "Communicator - Sicherheitsinformationen - Zertifikat anzeigen" informiert. Eine Kontrolle des Zertifikats und eine Überprüfung der eigenen Richtlinien für dieses Zertifikat erfolgt in den "Sicherheitsinformationen" unter "Zertifikate - Web-Sites" für einzelne Web-Sites sowie "Unterzeichner" für die Zertifikataussteller (Abb. 9). Im Unterpunkt "Eigene" können eigene Zertifikate, die der eigenen Authentisierung gegenüber anderen Netzteilnehmern dienen, angefordert werden und im Punkt "Andere" die Zertifikate anderer Netzteilnehmer eingebunden werden, um beispielsweise verschlüsselte Email verschicken zu können.

Abbildung 9: Zertifikat einer https-Verbindung.

Einstellungen zur Kryptographie werden ebenfalls bei den "Sicherheitsinformationen" verändert. Hier können zusätzliche Programme zur Verschlüsselung, beispielsweise mit Smart-Cards, eingebunden werden. Weiterhin kann im Punkt "Navigator" ausgewählt werden, daß beim Zugriff und beim Verlassen eines verschlüsselten Netzes, beim Anzeigen einer Seite, die sowohl verschlüsselte als auch unverschlüsselte Inhalte enthält und beim Senden unverschlüsselter Informationen eine Warnmeldung angezeigt wird. Besitzt man mehr als ein Zertifikat um sich gegenüber Web-Seiten auszuweisen, so kann man im Punkt "Zertifikat zur Ausweisung gegenüber Web-Sites" einstellen, ob die Auswahl automatisch, manuell oder immer gleich erfolgen soll. Für die verschlüsselte Übertragung mit dem SSL-Protokoll können in diesem Fenster die Versionen ausgewählt und über Schalter konfiguriert werden (Abb. 10). Nach Möglichkeit sollte eine lange Schlüssellänge gewählt werden. Allerdings ist die Verwendung langer Schlüssel aufgrund US-Exportbeschränkungen nicht immer freigegeben, so daß der Browserbeispielsweise mit dem Programm "fortify" angepaßt werden muß.

 
Abbildung 10: Einstellungen zur Verschlüsselung.

SmartBrowsing:

Der Browser hat ab der Version 4.5 das sogenannte SmartBrowsing eingebaut. Wird dieses aktiviert, so werden Informationen über die aktuell aufgerufene Seite an einen Internet-Server gesendet, der anschließend Web-Seiten mit verwandten Themen vorschlägt. Die Einstellung hierzu befindet sich unter "Bearbeiten - Einstellungen - Navigator - SmartBrowsing". Da durch Nutzung dieses Dienstes ein Bewegungsprofil erstellt werden kann, sollte er nicht genutzt werden.

Internet Explorer

Proxy:

Die Einstellung eines Proxy-Servers erfolgt durch Anklicken von "Ansicht - Optionen - Verbindungen". Nach der Aktivierung müssen die Einstellungen manuell eingetragen werden.
Java etc.: Beim Microsoft Internet Explorer (Vers. 3.0x und höher) sind die Vorgaben für den Umgang mit aktiven Inhalten unter "Ansicht - Optionen - Sicherheit" zu finden. Das Ausführen aktiver Inhalte kann hier deaktiviert werden (Abb. 11). Die Verwendung ActiveX-Steuererlemente und Plug-ins läßt sich nur gemeinsam abschalten. Die Verwendung von ActiveX in Scripten, sowie das Ausführen von Java-Applets kann ebenfalls abgestellt werden. Zusätzlich läßt sich im ersten Punkt auch die Übertragung aller aktiver Inhalte unterbinden. Im Bereich "Inhaltsratgeber" können bestimmte Inhalte für den Benutzer ausgeschlossen werden (beispielsweise Gewalt oder Sex), vorausgesetzt das die entsprechenden Seiten durch die ausgewählten Filter erfaßt werden. Analog zum Netscape Browser können Zugriffsrechte an zertifizierte Applets im Abschnitt "Zertifikate" vergeben und kontrolliert werden. Unter "Client" befinden sich die verfügbaren eigenen Zertifikaten, unter "Sites" die bereits gespeicherten anderer Institutionen, über die unter "Herausgeber" Informationen zu finden sind.

 

Abbildung 11: Einstellungen zu aktiven Inhalten.

Im Fenster, das durch die Schaltfläche "Sicherheitsgrad" erreicht wird, kann eingestellt werden, welche Zugriffsrechte beispielsweise auf Dateien lokal vorhandenen oder aus dem Internet geladenen Applets zugestanden werden. Die Einstellung "Hoch" sichert, daß Java-Applets nur in einer Sandbox (s.o.) ausgeführt werden  können (Abb. 12).

 

Abbildung 12: Einstellung des Sicherheitsgrads.

Download:

Der Umgang mit heruntergeladenen Datenfiles kann eingestellt werden, indem man "Ansicht - Optionen - Programme - Dateityp" anklickt und dort für alle kritischen Dateien den entsprechenden Vorgang als Standard definiert und den Explorer sich das Öffnen nach dem Übertragen bestätigen läßt. Da man meist auf einen Link klickt, ohne sich vorher darüber wirklich klar zu sein, was er öffnet, ist die automatische Nachfrage stark zu empfehlen (Abb. 13). Beim Internet Explorer kann die Anwendung zu bestimmten Datentypen unabhängig von der Windows-Voreinstellung in der Registry eingestellt werden, so daß hier beispielsweise der Wordviewer anstelle von Word eingesetzt werden kann, um die Ausführung von Makro-Viren zu unterbinden.

 

Abbildung 13: Download-Einstellungen.

Verschlüsselung:

Beim Zugriff auf eine verschlüsselte Seite kann über "Datei - Eigenschaften - Sicherheit" Information über das Sicherheitszertifikat ausgegeben  werden (Abb. 14).


Abbildung 14: Informationen über eine verschlüsselte Internetseite.

Klickt man "Ansicht - Optionen - Erweitert", erreicht man das in Abbildung 15 gezeigte Fenster. Hier sollten alle Warnungen eingeschaltet werden, um über die Übertragung von Daten vom eigenen Rechner informiert zu werden, und zu erfahren, wann man verschlüsselte Seiten besucht, abgelaufene oder ungültige Zertifikate akzeptiert oder Cookies annimmt. Zusätzlich kann der "Java Just in Time"--Compiler (JIT) eingeschaltet werden, der bewirkt, daß geladene Java-Applets sofort nach dem Laden kompiliert werden. "Formatvorlagen verwenden" erlaubt die Verwendung von Style-Sheets, die das Aussehen von Web-Seiten beeinflussen. Die "Java Protokollierung" bewirkt, daß über alle Java-Programmaktivitäten ein Protokoll geführt wird. Bei einer Benutzung von Java ist eine Protokollierung sinnvoll. Das Protokoll wird in der Datei "javalog.txt" abgelegt, die sich üblicherweise unter "c:\Windows\Java" befindet.

 

Abbildung 15: Erweiterte Einstellungen.

Kryptographie:

Einstellungen zur Kryptographie erfolgen unter "Ansicht - Optionen - Erweitert - Kryptographieeinstellungen". Hier können die benutzten Protokolle ausgewählt werden und eingestellt werden, daß Seiten, die verschlüsselt übertragen wurden, nicht gespeichert werden. Eine Verschlüsselung erfolgt hier  lediglich mit einem 40 bit-Schlüssel.

 
Abbildung 16: Kryptographie-Einstellungen.

Erweiterungen ab Internet Explorer 4.0x - Zonenkonzept:

Beim Internet Explorer ab der Version 4.0x wurde das Sicherheitskonzept überarbeitet. Zentrale Einstellungen blieben jedoch im Wesentlichen unverändert, so beispielsweise die Einstellung des Proxy-Servers ("Internetoptionen - Verbindung"). Allerdings sind die Internetoptionen ab der Version 5 nicht mehr unter "Ansicht", sondern unter "Extras" zu finden. Die Einstellungen der Sicherheitsoptionen wurde mit der Einführung der Internet-Zonen, für die individuelle Sicherheitseinstellungen vorgegeben werden können, jedoch wesentlich verändert ("Internetoptionen - Sicherheit") (Abb. 17). Der Anwender kann hier das Internet selbst in Zonen, denen er Vertrauen entgegen bringt, und anderen einteilen. Dieses Konzept darf nicht mit der Strukturierung des Internets durch IP-Adressen (Subnets) und DNS verwechselt werden. Die lokale Internet-Zone umfaßt dabei im Normalfall alle Server, bei denen der Explorer keinen Proxy benutzen muß, es sei denn, sie sind bereits von Hand einer anderen Zone zugeordnet. Der vertrauenswürdigen Zone müssen die Server explizit zugewiesen werden, alle anderen WWW-Adressen sind in der Internet-Zone zusammengefaßt. Problematisch ist dabei, daß selbst in der Sicherheitsstufe "Hoch" Active Scripting, das JavaScript- oder VBScript-Skipten den Zugriff auf ActiveX-Controls erlaubt, noch aktiviert ist.

 

Abbildung 17: Die Einstellungen zu den Internetzonen.

In den einzelnen Zonen können spezielle Einstellungen separat vorgegeben werden (Option "Einstellungen" bei Sicherheitsstufe "Angepasst"), so kann beispielsweise das Ausführen aktiver Inhalte durch Anklicken der Option "Fragen" auch von Fall zu Fall innerhalb der jeweiligen Zone entschieden werden (Abb. 18), während es im vertrauensunwürdigen Bereich generell unterbunden wird. Die bestehende Gefahr des DNS-Spoofing (ein WWW-Server täuscht eine falsche Identität vor) muß aber beachtet werden

.

Abbildung 18: Individuelle Einstellungen zu aktiven Inhalten.

Weitere sicherheitsrelevante Punkte können - wie schon beim Explorer 3.0x - auch unter dem Karteireiter "Erweitert" eingestellt werden. Speziell die Einstellungen für Verschlüsselung, die Annahme von Cookies und die Einstellung zum Java "Just-InTime-Compiler" (JIT) finden sich dort (Abb. 19 u. 20).

 

Abbildung 19: Einstellungen zur Verschlüsselung.


 

Abbildung 20: Einstellungen zu Java.

c) Checkliste zur Browsereinstellung

» Proxy einstellen
» Hohe Sicherheitsstufen auswählen
» JavaScript und ActiveX abstellen bzw. auf lokale Adressen begrenzen
» Java abstellen, eventuell im Einzelfall wieder aktivieren oder auf lokale Adressen begrenzen
» Nachfrage vor dem Aufruf externer Programme zur Darstellung von Dateien einstellen
» Automatisches Starten von heruntergeladenen Programmen abstellen
» Zertifikate überprüfen, Rechte der einzelnen Zertifikate kontrollieren
» Warnmeldungen einschalten
» Java-Protokollierung aktivieren
» "Cookies nur an Ursprungsserver" einschalten
» Automatisches Update des Browsers abstellen
» Überprüfen welche ActiveX-Controls und Plug-ins installiert sind, möglichst löschen

d) Zusatzprogramme und Tools

Nicht nur im Internet werden zahlreiche Zusatzprogramme und Tools angeboten, die die gängigen Browser erweitern und für bestimmte Einsätze optimieren. Hier können lediglich wenige kurz vorgestellt werden.
Das Programm
X-Ray-Vision von Intracept (http://www.intracept.com/) erlaubt es feste Einstellungen für aktive Komponenten und Cookies zu wählen, die bei jeder neu geladenen Web-Seite wieder aktiviert werden, unabhängig davon, wie diese Einstellungen vorher verändert worden, so daß man das Rückstellen temporärer Einstellungen nicht vergessen kann. Zusätzlich lassen sich von den Grundeinstellungen abweichend für einzelne Web-Seiten zusätzliche Rechte vergeben.
Anwendern des Netscape Navigators 3.0x unter Windows NT steht mit Java-Filter von der Princeton University
(http://www.cs.princeton.edu/sip/JavaFilter) ein Tool zur Verfügung, das es erlaubt einzustellen, daß nur noch von vorher ausgewählten WWW-Seiten Java-Applets heruntergeladen werden dürfen.
Mit Hilfe des Tools
Xcavator (http://www.winmag.com/software/xcavate.htm) können alle vom Internet Explorer ab Version 3.0 installierten ActiveX-Controls aufgelistet werden, so daß eine bequeme Kontrolle möglich ist. Auch bietet dieses Utility die Möglichkeit installierte ActiveX-Controls per Knopfdruck zu löschen.
Bereits oben wurde das Programm
Fortify (http://www.fortify.net/
) erwähnt, das die Exportversion des Netscape Browsers, deren Verschlüsselungskomponenten auf 40 Bit Schlüssellänge beschränkt sind, auf legalem Weg so patcht, daß es mit den gleichen Schlüssellängen wie die US-Version arbeitet.

6. Zusammenfassung und Ausblick

Aktive Inhalte stellen eine der größten Gefährdungen bei der Nutzung des Internet dar. Die Ausführung von unbekannten Programmen auf lokalen Systemen ist nur dann akzeptabel, wenn entweder die Rechte dieser Programme stark eingeschränkt sind, oder die Programme von einer ähnlich vertrauenswürdigen Quelle stammen, wie die bereits vorher installierte Software. Beide Ansätze werden bei Java verfolgt, während das Authenticode-Modell von Microsoft in der vorliegenden Form nicht geeignet ist. Eine zentrale Filterung alleine reicht nicht aus, vielmehr muß die Benutzerverantwortung das Kernelement einer Sicherheitspolitik sein. Speziell gelten folgende Empfehlungen:
1. Es sollten nur Programme (ActiveX-Controls, Java-Applets usw.) automatisch ausführbar sein, die von einer vertrauenswürdigen Quelle stammen, d.h., daß sie nur dann ohne Rückfrage ausgeführt werden dürfen, wenn sie mit einer digitalen Signatur versehen sind. Für den verwendeten Schlüssel muß ein Zertifikat des BSI vorliegen.
2. Müssen Programme ohne digitale Signatur ausgeführt werden, so sollten die folgenden Kritierien in der angegebenen Reihenfolge zur Prüfung herangezogen werden. Die Sicherheit nimmt hierbei nach von A nach D ab.
A) Welche Rechte erhält das Programm auf dem Arbeitsplatz-PC? Durch einen speziellen Mechanismus ("Sandbox") besitzen Java-Applets in der Regel nur sehr beschränkte Rechte. Aber Achtung: Diese Beschränkung kann durch eine Konfigurationsänderung aufgehoben werden.
B) Läßt sich der Quellcode des Programms prüfen? JavaScript Programme sind in der Regel relativ kurz, so daß eine Analyse in Hinblick auf potentiell gefährliche Routinen möglich ist. Die Ausführung der Programme sollte also zunächst abgeschaltet und erst nach Prüfung wieder eingeschaltet werden.
C) Gibt es weitere Hinweise für die Vertrauenswürdigkeit des Programms? Programme, die von einem Server geladen werden, dessen Betreiber vertrauenswürdig ist, können ausgeführt werden. Aber Achtung: IP-Adressen o.ä. bieten nicht die Gewißheit, daß es sich um den richtigen Server handelt. Aus diesem Grunde ist auch das im Internet Explorer vorgesehene Verfahren der "Sicherheitszonen" nicht ausreichend.
D) ActiveX-Controls haben sämtliche Rechte, die auch der Anwender hat (also Löschen, Verändern von Dateien usw.). Unsignierte Controls sollten daher in der Regel nur verwendet werden, wenn sie per Diskette oder CD-ROM installiert werden können und daher wie herkömmliche Software zu behandeln sind.
3. Um eine größere Sicherheit bei der Ausführung von Java-Applets zu erreichen, sollte nur die Virtual Machine der Firma SUN eingesetzt werden. Diese ist als Plug-in von
Sun verfügbar und leicht zu installieren.

 

 

BACK

NEXT

 

am 26.01.2002 Aktualisiert by Reini