 |
Sicherheit in Netzen
Prof. Jürgen Plate Dipl.-Ing. Jörg Holzmann |
7.1 E-Mail-Viren - gibt es sowas?
Neulinge im Netz werden öfters erschreckt durch die Meldung, daß
man keinesfalls eine E-Mail mit dem Betreff "Good Times" (oder
auch einem anderen Subject) lesen soll, da sonst ein Virusprogramm auf den
Rechner gelangt. Das stimmt natürlich nicht. Durch alleiniges Lesen
einer E-Mail kann überhaupt nichts passieren.
Anders verhält es sich, wenn diese E-Mail eine angehängte Datei
("Attachment") mit sich führt. Diese Datei kann sehr wohl
Gefahren mit sich bringen:
- Wenn es sich um eine ausführbares Programm handelt, besteht die
Möglichkeit, daß dieses Programm Viren enthält - nicht anders, als
wenn Sie das Programm auf Diskette erhalten hätten.
- Bei Winword-Dokumenten können sich im Dokumen sogenannte "Makroviren"
verbergen. Das sind Word-Makros mit schädlichen Funktionen, die gegebenenfalls
automatisch aktiviert werden, wenn Sie das Dokument mit Winword öffnen.
Zu dieser Gruppe gehört z. B. auch das Melissa-Virus, das sich die
Adressendatenbank von Outlook schnappt und sich selbst an alle dort aufgeführten
Adressen schicht. Da nun Sie als Absender in den Mails stehen, bekomen Sie
wohlmöglich auch noch den Zorn der Empfäger ab. Mellisa ist erkennbar
durch den Registry-Eintrag "HKEY_CURRENT_USER\Software\Microsoft\Office\Melissa?".
Mellisa und ähnliche Viren führen dazu, daß man nicht nur Mails
von unbekannten Absendern mißtrauen muß, sondern auch solchen von
Bekannten.
Ähnliches gilt auch für andere Anwendung mit Skriptsprache, z. B. Excel. Die
Problematik bei Microsoft besteht unter anderem darin, daß beispielsweise
der Internet-Explorer andere Microsoft-Applikationen grundsätzlich als
vertrauenswürdig betrachtet und daher auch keine Warnung erfolgt.
- Dateien im PDF-Format können auch gefährliche Inhalte haben.
Der Acrobat-Reader zum Betrachten der Dokumente kann auch beliebige Kommandos
auf dem PC starten. Diese Kommandos können sich hinter harmlosen Buttons
verbergen (z. B. "Zurück zum Inhalt").
Es gibt noch ein paar andere Sorten von E-Mail, die zwar nicht gefährlich,
aber doch lästig sind. Wie bei der Briefpost kommen mit der Zeit auch
Werbe-E-Mails, welche die Mailbox verstopfen. Die zweite Sorte sind Kettenbriefe
wie man sie auch seit vielen Jahren kennt. Meist tragen sie ein Subject
der Art "MAKE MONEY FAST". Schließlich geistern seit jahrzehnten
herzerweichende E-Mails durch das Netz, die von einem krebskranken Jungen
erzählen (z. B. Craig Shergold), der gerne noch ins Guinness-Buch der Rekorde
kommen möchte und dem man deshalb eine Postkarte oder Visitenkarte schicken
soll. Tun Sie das nicht, denn entweder ist der Kleine schon 30 - 40 Jahre alt oder
längst verstorben.
7.2 Was ist eigentlich Spam? Und was bedeutet ECP, EMP, UBE, UCE?
Zunächst eine knappe Erläterung der Abkürzungen:
- Spam: Belästigende Massennachricht (Mail und News)
- ECP: Massen-Crossposting (News)
- EMP: Massenposting aus vielen identischen Einzelpostings bestehend (News)
Wird ein Artikel gleichlautend in übermäßig viele Newsgroups
gepostet oder crosspostet, so spricht man im ersten Falle von Spam oder
EMP (excessive multiple posting), im zweiten von Velveeta bzw. ECP (excessive
cross-posting).
SPAM steht für Spiced Pork and hAM(*), so eine Art Preßfleisch,
das in Amerika verkauft wird (sieht so etwa aus wie Katzenfutter).
Es gibt einen Sketch aus Monty Python's Flying Circus, in dem ein
Paar in einem Restaurant die Speisekarte vom Kellner vorgelesen bekommt
und in jedem Gericht ist SPAM drin, zum Teil sogar mehrfach. Auch in
dem Restaurant sitzt eine Gruppe Wikinger, die am Ende des Sketches
'Lovely Spam, wonderful Spam!' singen. Insgesamt kommt in dem Sketch
das Wort SPAM ca. 120 mal vor.
(*) Manche Leute behaupten, es steht für Synthetically Produced
Artificial Meat.
Bei E-Mail spricht man von:
- UBE: Unerwünschte Massennachricht (unsolicited bulk e-mail)
- UCE: Unerwünschte Werbenachricht (unsolicited commercial e-mail)
Da UCE zunehmend lästiger wird, sind in letzter Zeit einige Leute auf die Idee
gekommen, ihre News-Artikel unter einer falschen Adresse zu posten. Im Body des
Artikels finden sich dann meistens Hinweise auf eine gültige Adresse.
Diese Methode, sich gegen UCE zu wehren, ist jedoch problematisch.
Wird der Domain-Teil der Adresse verändert, kann es passieren, daß diese
Adresse trotzdem gültig ist (sogar 'xxx.de', 'nospam.de' oder 'deletethis.de'
sind beim DE-NIC registriert. Wird nur der Namens-Teil der Adresse verändert,
erhält zumindest der Postmaster einer Fehlermeldung per Mail.
Die UCE-Versender bekommen von Fehlermeldungen/Bounces dagegen in der Regel
nichts mit, da sie fast nie unter einer gültigen E-Mail-Adresse ihre UCE
versenden bzw. keine gültige Rücksendeadresse angegeben haben.
Sinnvoller ist es deshalb, das Problem UCE an der Wurzel zu packen. Dies
kann durch das Einrichten von Teergruben oder durch das Filtern von bekannten
Spammer-Domains geschehen. Weiter Informationen gibt es bei:
7.3 Cookies
Cookies sind kleine Informationseinheiten, die beim Besuch einer Website
zunächst im Arbeitsspeicher des heimischen Computers gespeichert werden.
Unter Umständen werden diese Daten nach Verlassen des Webservers in
Form einer Textdatei auf die lokale Festplatte geschrieben.
Ein Cookie besteht aus einem Namen, einem Wert (Zeichenkette) und einem
URL. Zudem besitzt ein Cookie eine Lebensdauer. Wird der Ausflug ins
Netz beendet und der Browser geschlossen, werden alle Cookies, deren
Lebensdauer noch nicht abgelaufen ist, in einer Datei gespeichert.
Man spricht dann von 'persistenten Cookies'. Zukünftig läßt sich dann
mühelos verfolgen, wie oft genau dieser Anwender wiederkommt und was
er tut.
Ursprünglich wurden von Netscape die Cookies zur Erleichterung für
den Anwender entwickelt. Sie sollten persönliche Informationen enthalten,
die der Anwender beim nächsten Besuch eines Online-Angebots nicht mehr
eingeben mußte, z. B. für den Zugriff auf Angebote, die eine Zugangskennung
erfordern. Eine andere Anwendung wäre ein 'Einkaufskorb'. Da jeder
Seitenabruf einen abgeschlossenen Kommunikationsvorgang darstellt,
kann der Server nicht speichern, welche Waren ein Kunde schon in seinen
Korb gelegt hat. Cookies bieten hier die Möglichkeit den Inhalt des
Einkaufskorbes beim Kunden zu speichern, bis die abschließende Bestellung
durch eine Bestätigung erfolgt. Normalerweise lassen sich Cookies auch
keiner spezifischen Identitäten zuordnen, sofern der Besucher nicht
woanders seine Identität preisgibt.
Unternehmen können mit Hilfe von Cookies Abrufprofile erstellen z.
B. für verläßliche Abrufprofile für Reichweitenuntersuchungen. Schließlich
will man wissen, welche Seiten wie oft abgerufen werden. Daraus lassen
sich u. a. Schlußfolgerungen für die weitere Gestaltung einer Website
ziehen. Trotz zahlreicher Ansätze gibt es bislang noch kein genormtes
Verfahren zur Bildung von Abrufprofilen. Grundsätzlich besteht die
Möglichkeit zur Bildung von Abrufprofilen jedoch auch ohne Cookies
- durch die Auswertung von Logbüchern, z. B. mit entsprechenden Monitoring-Tools.
Problematisch wird es, wenn Cookies mit langer Lebensdauer eingesetzt
werden. Durch persistente Cookies ist es möglich, einen Benutzer über
mehrere Sessions hinweg zu identifizieren. Dadurch erhöht sich die
Informationsmenge und die Zuordnung einer Personenidentität vereinfacht
sich. Das ist ganz ohne Cookies nicht möglich. Mittlerweile gibt es
eine Reihe von Shareware-Tools, mit denen sich Cookies auf dem Computer
identifizieren und löschen lassen. Normalerweise befindet sich im Verzeichnisbaum
des Browsers irgendwo eine Datei namens 'cookies.txt'. Auf UNIX-Systemen
genügt es, die Leseberechtigung der Datei wegzunehmen. Auf Windows-Rechnern
kann man den Inhalt der Datei löschen und sie dann auf 'Read-Only'
zu setzen. Letztendlich sind Cookies aber relativ harmlos.
Anbieter, die in Ihrem WWW-Angebot Cookies verwenden, sollten einfach
vorher auf deren Anwendung und den Zweck hinweisen. Dann weiß nämlich
der Websurfer woran er ist und wird auch weniger Vorbehalte gegen die
Cookies haben.
Weitere Informationen über Cookies findet man unter
7.4 Active X
Microsoft will mit eigener Internet-Technologie Standards setzen und
hat, gewissermaßen als Konkurrent zu Java, seine Active-X-Technik entwickelt.
Active-X ist eine Microsoft-Technik zur Erzeugung interaktiver Web-Seiten mithilfe von
Controls, Skripts und Softwarepaketen, wie zum Beispiel Textverarbeitungen und
Tabellenkalkulationen.
Der Sinn von Active-X ist aus Sicht von Microsoft:
- Applikationen in Web-Browser einzubinden
- Den Web-Browser zur Schaltzentrale für Internet und Intranet zu machen
Ein Active-X-Control ist ein kleines Windows-Programm, das sich nur
mit Hilfe eines Web-Browsers ausführen läßt. Wenn Sie im Internet auf
eine mit einem Active-X-Control ausgestattete Seite kommen, werden
nicht nur Text und bunte Bilder angezeigt, sondern auch ein Programm
auf Ihren Rechner geladen und ausgeführt. Im ungünstigsten Fall merken
Sie gar nicht, daß ein Active-X-Control in eine Web-Seite eingebunden
ist und automatisch ausgeführt wird, während Sie die Seite anschauen
und sich in trügerischer Sicherheit wähnen.
Die Active-X-Technologie besteht aus folgenden Komponenten:
- Active-X-Controls
- Active-X-Scripting
- Active-X-Dokumente
- Active-X-Conferencing
- ActiveMovie
Active-X-Controls
sind Elemente wie Schaltflächen, Listboxen, Bildlaufleisten usw., die auf Web-Seiten
plaziert und dort benutzt werden können. Dadurch wird ein hoher Grad an Interaktion
mit dem Anwender erreicht.
Active-X-Scripting
Active-X-Controls werden mit sogenannten Skripts gesteuert. Skripts sind Programme,
die in HTML-Seiten eingebaut und somit für jedermann lesbar sind. Skriptsprachen
sindVisual-Basic-Script (VB-Script) und Java-Script.
Active-X-Dokumente
Sie funktionieren wie OLE-Verbunddokumente. Ein Browser (Container) kann zum Beispiel ein
Excel-Sheet anzeigen (Excel ist dann der Server), ohne das man den Browser verlassen
muß - sofern man Excel hat. Man kann so Dokumente ganz verschiedener
Formate in das Netz posten und jeder, der auch den entsprechenden Server hat, kann sie
betrachten. Damit wird aber der Nutzerkreis aber auf die Anwender von Microsoft-Produkten
eingeschränkt und die gemeinsame Sprache des WWW, HTML, ausgegrenzt.
Active-X-Conferencing
Eine Kommunikations-Technik, die noch in der Entwicklung ist.
Active-X-Conferencing erlaubt die Anwendung einer Software, die auf einem einzigen
Rechner läuft, durch mehrere Personen gleichzeitig, die über ein Netzwerk verbunden
sind. Dieses Netzwerk kann das Internet aber auch das Intranet sein. Damit sich die
teilnehmenden Personen auch von "Mensch zu Mensch" unterhalten können,
während sie gemeinsam eine Software steuern, gibt es eine Voice-Verbindung. Diese
Voice-Verbindung funktioniert bisher aber nur zwischen zwei Teilnehmern. Für die
Zukunft ist auch eine Video-Verbindung geplant.
ActiveMovie
Zur Übertragung von Audio und Video-Daten über Netze gibt ist ActiveMovie. ActiveMovie
soll ermöglichen, daß die Audio- und Video-Daten nicht erst komplett auf den eigenen
Rechner geladen werden müssen bevor man sie abspielen kann (was unter Umständen ziemlich
lange dauern kann), sondern die Übertragung erfolgt in Echtzeit. Voraussetzung ist
natürlich, daß die Verbindung schnell genug ist.
Hinter einem Active-X-Control verbirgt sich also nichts anderes als
ein normales Windows-Programm. Es kann also alles tun, was auch jedes
andere Windows-Programm tun kann: Daten von Ihrer Festplatte übers
Netz versenden, Viren installieren - oder einfach nur die Festplatte
formatieren. Active-X-Programme sind also ein Risikofaktor und sollten
nur unter bestimmten Voraussetzungen eingesetzt werden.
Der Chaos Computer Club demonstrierte der Öffentlichkeit die Risiken
von Active X: Die Hacker programmierten ein Active-X-Control, das der
Finanz-Software Quicken einen Überweisungsauftrag unterjubelte. Der
Auftrag wurde so gespeichert, daß er beim nächsten T-Online-Connect
automatisch ausgeführt würde.
Active-X-Programme laufen derzeit nur mit dem Microsoft Internet-Explorer
ab Version 3. Damit Active-X-Controls mit einem Netscape-Browser funktionieren,
muß man ein spezielles Active-X-Plug-in installieren.
Beim Installieren von Active-X-Komponenten wird manchmal ein 'Zertifikat'
angezeigt. Wer Active-X-Programme schreibt, kann sich ein solches 'Zertifikat'
besorgen, das nach dem Laden der Webseite angezeigt wird. Dieses Zertifikat
soll garantieren, daß das Active-X-Control wirklich im Originalzustand
vorliegt. Gewährleistet wird das durch eine verschlüsselte Quersumme,
die beim Herausgeber des Zertifikats hinterlegt ist und die mit der
des Programms verglichen wird. Ein gültiges Zertifikat heißt jedoch
keinesfalls, daß Sie einem Active-X-Control blind vertrauen können.
Der bisher einzige Zertifizierer, Verisign Commercial Software Publishers
CA, prüft nicht, was ein Active-X-Control auf einem Rechner anstellt,
sondern nur, ob das Programm nach der Zertifizierung verändert wurde.
Nachdem jeder sein Active-X-Control zertifizieren lassen kann, besteht
auch die Möglichkeit, daß gefährliche oder schädliche
ActiveX-Controls ein Zertifikat bekommen. Dabei muß nicht einmal
böse Absicht des Programmierers im Spiel sein, denn "Man soll nie
Absicht vermuten, wo Dummheit als Begründung ausreicht." Insofern
hat das Zertifikat höchst zweifelhaften Wert.
Wird auf einer Webseite ein Zertifikat angezeigt, hängt es davon ab,
wo Sie sich befinden: Handelt es sich um eine renommierten Firma, können
Sie ein zertifiziertes Active-X-Control ohne großes Risiko installieren.
Befinden Sie sich dagegen auf einer privaten oder halbprivaten Seite,
sollten Sie auch mit zertifizierten Komponenten sehr vorsichtig sein.
Programmierfehler können sich natürlich auch in Controls großer
Unternehmen befinden.
Wenn Sie schon massenhaft Active-X-Controls auf Ihrer Platte haben,
hilft die Freeware 'ActiveXCavator'. Sie listet alle installierten
Controls einschließlich diverser Dateiinformationen (Verzeichnis, Größe)
auf und kann auch einzelne Controls löschen. Das Programm gibt es unter
http://www.winmag.com/software/xcavate.htm.
7.5 Java
In Java wurden zum zum einen erfolgreiche Konzepte aus bereits
bestehenden Sprachen (z.B. C, C++, Smalltalk, Eiffel,
Ada, Objectiv-C) übernommen, zum anderen neue Konzepte verwirklicht.
Java ist eine junge Interpretersprache, die viele mächtige
Konzepte in sinnvoller Weise integriert. Sie völlig
objekt-orientiert, interpretiert, einfach, architekturneutral,
portabel und sicher. Eine gute Performance kann durch Multithreading
und optionalen Nativecode erreicht werden. Ausgiebige
Compilierzeitüberprüfungen und strikte Laufzeitckecks
garantieren ein robustes und sicheres Verhalten der Applikationen.
Sie kann somit neben der Möglichkeit des schnellen Prototyping
als eine stabile Basis für verteilte und erweiterbare Systeme
dienen.
Die wesentlichen Gesichtspunkte sind:
- Objektorientiert
- Eigenschaften
- Architekturunabhängig und portabel
- Robustheit
- Multithreading
- Garbage Collection
- Sicherheit
Java ist objektorientiert
Java ist vollkommen object-orientiert. Jede objekt-orientierte Sprache
sollte Minimum der folgenden Charakteristiken in sich haben:
- Encapsulation: Informationen (oder genauer Attribute und Methoden) werden gekapselt, d.h. konkrete Implementierung und Strukturen sind f&uumr den Anwender nicht sichtbar. Lediglich Funktionalit&t und Interface eines Objektes werden bekanntgegeben.
- Inheritance: Subklassen "erben" Inhalte von Klassen
- Dynamic binding: ermöglich ein Maximum an Flexibilität zur Laufzeit
All diese Anforderungen werden von Java in hohem Maße erfüllt. Es werden
sogar zusätzlich weitere runtime-features geboten, die die
Software-Entwicklung einfacher machen können.
Wichtige Begriffe in diesem Zusammenhang die auch in Java vorkommen sind:
Klassen: | Definiert Attribute und Methoden |
Object : | instanzierte Klasse |
Message: | Aufruf einer Methode eines anderen Objektes |
Constructor: | Methode, die die Initialisierung eines einer Klasse instanzierten Objektes vornimmt |
Destructor: | Gegenstück zum constructor. |
Access Control: | Bei der Deklarierung einer Klasse können Attribute und Methoden mit verschiedenen Zugriffsleveln (public, protected, private, friendly) versehen werden. |
Abstract Methods: | Methoden, die in einer Klasse deklariert werden, deren Implementierung aber erst in einer Subklasse erfolgt. |
Packages: | Java-konstrukt, das eine Sammlung von zusammengehörenden Klassen bildet. |
Wichtige Eigenschaften von Java
- Objektorientierung
- Multithreading
- Robustheit
- Sicherheit
- Erweiterbarkeit
- Plattformunabhängigkeit
Was Java hat
import
: vergleichbar dem IMPORT
von Modula-2.
interface
: ein geschickter Ersatz für die Mehrfachvererbung.
- Garbage Collection
- Verbesserte Ausnahmebehandlung
- Wohldefinierte Klassenhierarchie
Eigenschaften, die nicht von C oder C++ übernommen wurden:
- In Java gibt es keine Präprozessor-direktiven (wie z.B. #define) mehr.
- Es gibt keine Headerfiles, dafür aber interfaces, die die
Definition anderer Klassen und deren Methoden beinhalten.
- Multiple Inheritance wurde durch Interfaces ersetzt, die
Methodendefinitionen von Klassen gleichgesetzt werden können.
- Kein "goto"-statement (definiert, aber nicht implementiert).
- Kein Operator-overloading.
- Keine Pointer.
- Keine Typdefinitionen.
- Keine Variante Records (union).
- Keine generische Typen (templates).
- Keine Mehrfachvererbung.
- Keine vorzeichenlose Zahlentypen.
- Keinen direkten Hardwarezugriff.
Java ist architekturunabhängig und portabel
Durch die Verwendung von byte-code im Gegensatz zum Binärcode
ist Java völlig architekturneutral. Java-Programme lassen sich
auf allen Plattformen ausführen, auf welche die Virtual Machine
portiert wurde. Portierungen werden durch die strikte Sprachspezifikation
unterstützt.
Java ist robust
Java ist eine Sprache, die gedacht ist für robuste, zuverlässige und
sichere Applikationen.
Um dies zu erreichen wird ein striktes compile-time checking
durchgeführt, das es ermöglicht Syntaxfehler früh zu entdecken.
Java ist eine sehr typorientierte Sprache. Viele C-Freiheiten,
wie etwa implizite Deklaration von Funktionen sind nicht erlaubt.
Besondere Stützen der Robustheit sind die Abschaffung von Pointern,
die Verwendung von echten Arrays, ein Speichermodell, das die unerlaubte
Überschreibung von Speicherbereichen verhindert und strengere
Casting-Regeln.
Java ist sicher
Bereits bei der Konzeption von Java wurden grundlegende Überlegungen bezüglich
der Sicherheit angestellt. Der Java-Compiler und das Laufzeitsystem integrieren
mehere Abwehrschichten gegen potentiell gefährlichen Code. Am wichtigsten ist
sicherlich das Speicherallozierungs- und -referenzierungsmodell.
Entscheidungen über die Speicherbelegung werden nicht vom Compiler (wie in C oder C++),
sondern erst zur Laufzeit vorgenommen. Intern verwendet Java sogenannte
'handles' die zur Laufzeit in physikalische Addressen aufgelöst werden. Dies
geschieht sehr spät und z. T. auch abhängig von der Architektur, jedoch völlig
transparent für den Programmierer.
Was passiert, wenn gefährlicher Code auf einen Server generiert und zur Laufzeit auf
dem client ausgeführt wird? Obwohl der Java-Compiler beim übersetzen das Einhalten
von bestimmten Sicherheitsregeln garantiert, bleibt er natürlich machtlos, wenn
Code-Fragmente zur Laufzeit on-the-fly gelinkt werden. Wie kann also das
Laufzeitsystem dem hereinkommenden byte-code stream vertrauen, der vielleicht von
einem nicht vertrauenswürdigen Compiler erzeugt wurde? Die Antwort ist einfach:
Java traut dem Code nicht und unterwirft ihn deshalb dem byte-code-Verifizierungsprozeß.
Dieser beinhaltet eine Reihe von sinnvollen, restriktiven Maßnahmen. Darunter sind
einfache Typüberprüfungen, Ausklammerung von Pointern, Ausschluß von Stack-Über-
und -Unterläfen, strikte Parameterüberprüfung, strikte Typkonvertierungen,
Überprüfung der Speicherzugriffsrestriktionen. Weiter wird getestet, daß
Objekte wirklich nur als solche verwendet werden.
Daten- und Kontrollfluß vom Java-Quellcode bis zur Ausführung.
Trotz der ausgedehnten Verifizierungsprozeß bleibt Java (laut Sun) immer noch schnell
genug, da der Java-Interpreter von jeder weiterer Überprüfung hinsichtlich
der Sicherheit befreit ist und damit mit vollen Geschwindigkeit arbeiten kann.
Weitere Sicherheitsaspekte sind im Java Networking Package implementiert, welches es
erlaubt verschiedene Sicherheitsebenen zu konfigurieren. Diese sind:
- alle Netzwerkzugriffe sind verboten
- Alle Netzwerkzugriffe sind erlaubt
- Netzwerkzugriffe sind nur jenen hosts erlaubt, von denen der Code importiert wurde
- Netzwerkzugriffe sind auf Zugriffe außerhalb des Firewalls beschränkt,
wenn der Code von dort kommt.
Zum Weiterlesen über Java ein
Vortragsmanuskript von Antje König.
Wer sich für Java interessiert, findet Java-Seiten mit vielen Demos, den HotJava-Browser
(für SUNs) und Java-Entwicklersoftware auf dem Server von SUN Microsystems unter
http://java.sun.com.
7.6 Javascript
JavaScript ist eine von Netscape entwickelte Script-Sprache mit begrenzten Fähigkeiten.
Sie hat im Grunde mit Java nur einen Namensteil gemeinsam. Die Sprache lehnt sich
in der Syntax an die von Sun Microsystems entwickelte Programmiersprache Java an.
JavaScript ist jedoch anspruchsloser im Aufbau als Java, eingeschränkter in
den Möglichkeiten und für andere Zwecke gedacht. JavaScript ist im
Gegensatz zu Java eine unmittelbare Ergänzung und Erweiterung zu HTML.
JavaScript bietet sich für folgende Zwecke an:
- Animation: Mit Hilfe von JavaScript können Sie Animationen wie
z. B. Marquees (Lauftexte) programmieren und in WWW-Seiten einbinden. Dabei steht
Ihnen nicht nur das Anzeigefenster zur Verfügung, sondern auch Dialogbereiche
des WWW-Browsers, etwa die Statuszeile.
- Projektsteuerung: Mit Hilfe von JavaScript können Sie einige
"Lücken" in HTML umgehen. So ist es mit Hilfe von JavaScript
beispielsweise möglich, innerhalb eines Frame-Sets die Inhalte mehrerer
Frame-Fenster gleichzeitig zu aktualisieren.
- Formularüberprüfung: Mit Hilfe von JavaScript können
Sie Anwendereingaben in einem HTML-Formular während der Eingabe überprüfen.
Auf diese Weise können Sie z.B. unzulässige oder sinnlose Eingaben unterbinden.
- Dynamische WWW-Seiten: Mit Hilfe von JavaScript können Sie erreichen,
daß sich WWW-Seiten während der Anzeige dynamisch verhalten. So ist es
beispielsweise möglich, Hinter- und Vordergrundfarben nach dem Laden der WWW-Seite
automatisch oder im Dialog mit dem Anwender zu ändern.
- Text generieren: Mit Hilfe von JavaScript können Sie zur Laufzeit
HTML-formatierten Text generieren. So ist es mit JavaScript z.B. möglich, aktuelles
Datum und aktuelle Uhrzeit auszulesen und dem Anwender anzuzeigen.
- Anwendungen: Mit Hilfe von JavaScript können Sie einfache Anwendungen
programmieren. Das können z.B. wissenschaftliche oder kaufmännische
Taschenrechner sein. Auch einfache Spiele sind denkbar.
JavaScript-Programme werden im Gegensatz zu Java-Programmen direkt in der HTML-Datei
notiert. Sie werden auch nicht - wie Java-Programme - compiliert, sondern als
Quelltext zur Laufzeit interpretiert, also ähnlich wie Batchdateien bzw.
Shellscripts.
Dadurch bleibt JavaScript unkompliziert für den Programmierer, doch kritisch
für den Anwender. Das Interpretieren von Quellcode ist ungleich langsamer als
das Interpretieren von compiliertem Code. Deshalb ist JavaScript nur für kleine
und einfache Programmabläufe sinnvoll. Da kein Compilierungslauf und somit keine
Fehlerprüfung stattfindet, gibt es bei JavaScript auch keinen Schutz vor schweren
Programmfehlern, z.B. vor "Endlosschleifen", die beim Anwender zum Systemabsturz
führen können.
Wie einfach JavaSkript sein kann, sieht man hier.
Der Quellcode zum JavaScript-Einschub:
<FORM>
<INPUT TYPE=BUTTON
VALUE="Klick mich oder ich beiss Dich!"
OnClick="alert('Ich würde sowas an Deiner Stelle nicht machen!
Deine Platte wird jetzt gelöscht!')">
</FORM>
Satire: Wie selbstdokumentierend und selbsterklärend die Skripte sein können,
zeigt folgendes, einer real existierenden Webseite entnommene, Skript:
<SCRIPT>
var F_A,F_B,F_CH,F_CL,F_DB,F_E,F_F,F_L,F_MT,F_MV,F_R,F_SE,F_SU,F_U,F_HR,F_MU,F_MD;
function F_e(){}
function F_n(){}
function F_on(){}
</SCRIPT>
Beliebt sind auch die animierten Schaltflächen
(fahren Sie mal die Maus drüber):
Das Skript dazu sieht so aus:
<SCRIPT LANGUAGE="JavaScript">
<!-- hide from old browsers
start = new Image(20,150);
start.src = "start.gif";
start2 = new Image(20,150);
start2.src = "start2.gif";
function HiLite(imgDocID,imgObjName){
document.images[imgDocID].src = eval(imgObjName + ".src")
}
// done hiding -->
</SCRIPT>
Das oben angeführte Skript ist "brav", es könnte aber in der Funktion HiLite
beliebig viel Unsinn enthalten sein.
Weitere Informationen und Beispielsammlungen zu JavaScript finden Sie im WWW:
7.7 Browser sicher machen
Die aktuellen Web-Browser Internet Explorer und Netscape Communicator weisen
zwangsläufig Sicherheitstücken auf, die es zu schließen gilt.
Microsoft und Netscape bieten Updates über das Startmenü des Rechners an; es
hat also wenig Sinn, einen Browser manuell sicher machen zu wollen, ohne vorher
alle Updates installiert zu haben. Deshalb lohnt es sich, die Update-Web-Seiten
der Herstetter ab und zu aufzusuchen.
In den Browsern Internet-Explorer 5.0 und Netscape Communicator 4.6 läßt sich
so gut wie jedes Feature abschatten, welches den Rechner und seine Daten
gefährden könnte. Dann allerdings geht im Web so gut wie nichts mehr. Aus
diesem Grunde werden hier die einzelnen Features genauer beleuchtet.
Internet Explorer
Das Zonenkonzept des Explorers
Microsofts Internet-Explorer differenziert seine Sicherheitseinstellungen nach Zonen:
- Die Internet-Zone enthält grundsätzlich alle Sites.
- Die Lokale Intranet-Zone umfaßt dagegen alle Computer, die mit einem
lokalen Netzwerk verbunden sind. Dies nennt Microsoft bereits Intranet.
- In der Zone für vertrauenswürdige Sites kann man Server angeben,
denen man vertraut.
- In Gegensatz dazu trägt man unter Zone für eingeschränkte Sites Server ein,
die bekanntermaßen unsicher sind.
Wer die Einstellungen unter dem Button Stufe anpassen nicht ändern will,
der sollte es bei der Sicherheitsstufe Mittel belassen. In dieser Stufe
fragt der Browser nach, ehe er Controls und Programme startet, die vom Anbieter
kein Zertifikat erhalten haben. Der IE führt jedoch ohne Nachfrage bereits
zertifizierte ActiveX-Controls aus.
Wem diese Sicherheitsebene nicht genügt, der muß die verfeinerte Anpassung der
einzelnen Stufen vornehmen. Die Einstellungen gelten nicht global, sondern nur für
die jeweilige Zone. Gleichzeitig nehmen Sie verschiedene Sicherheitsoptionen
wieder zurück, wenn Sie die Warnhinweise zu bestimmten Inhalten mit der Checkbox
Den Hinweis für diese Zone nicht mehr anzeigen abschalten. Also alle
Einstellungen nochmals aufsuchen und wieder aktivieren.
Das Fenster Internetoptionen/Sicherheit im Internet-Explorer ermöglicht die
dedizierte Wahl sicherer oder unsicherer Web-Seiten. Um Adressen derartiger Server
einzugeben, wählen Sie zuerst deren Zone aus und klicken dann auf Sites:
- Vertrauenswürdige Sites
Diese Einträge erhalten im Standard die Sicherheitsstufe Sehr niedrig. Die
niedrige Sicherheit läßt mehr Aktionen zu und unterdrückt Warnfenster. Microsoft
empfiehlt allerdings, für die Zone für vertrauenswürdige Sites das HTTPS-Protokoll
zu verwenden, um sichere Verbindungen aufbauen zu können.
- Eingeschränkte Sites
Diesen Sites weist der IE standardmäßig die Sicherheitsstufe Hoch zu. Einer
solchen Adresse ordnet der Browser prinzipiell nur minimale, sichere Operationen
zu. Der Zugriff auf solche Server ist eingeschränkt - viele PlugIns werden
aufgrund abgeschalteter Features gar nicht funktionieren.
Java und ActiveX beim IE einstellen
Der Internet-Explorer 5.0 bietet eine sehr feine Abstimmung der jeweiligen
Sicherheitsstufen (Zonen, sichere/unsichere Sites). Man erreicht sie durch einen
Klick auf das jeweilige Icon und auf den Button Stufe anpassen. Hier lassen
sich alle Einstellungen anpassen: Hoch, Mittel, Niedrig und
Sehr niedrig. Mit einem Klick auf Zurücksetzen lassen sich die
Standardeinstellungen von Microsoft zurückholen. Die folgende Übersicht zeigt,
was die einzelnen Menüpunkte und deren Einstellungen bewirken:
- ActiveX-Controls und Plug-Ins
In diesem Bereich legt man fest, wie ActiveX-Steuerelemente und ActiveX-Plug-Ins
geladen, ausgeführt und über Scripts gesteuert werden können. Sollte man
das ActiveX-Control von einer anderen Site laden als von der, auf der das Element
verwendet wird, so schaltet der IE von sich aus auf die schärferen
Sicherheitseinstellungen der beiden Sites um.
- ActiveX-Steuerelemente ausführen, die für Scripting sicher sind
bestimmt, ob das Steuerelement mit einem Skript zusammenarbeiten kann. Die
Einstellungen an dieser Stelle werden jedoch von IE ignoriert, falls die Option ActiveX-Steuerelemente initialisieren und ausführen, die nicht "sicher" sind
auf aktivieren eingestellt ist. Letztere Option umgeht praktisch jede
Sicherheitseinstellung und ist daher zu vermeiden.
- ActiveX-Steuerelemente und Plug-ins ausführen
Damit gibt man an, ob Controts und Plug-ins in der ausgewählten Zone agieren dürfen.
Sollten Sie diese Option abschalten, dann haben auch die weiteren Einstellungen zu
ActiveX keine Bedeutung mehr. Beim Download von signierten ActiveX-Steuerelementen
führt die Einstellung Fragen bei nicht vertrauenswürdigen Web-Seiten zu einer Warnmeldung.
- Download von unsignierten ActiveX-Steuerelementen
Code, der keine digitale Signatur trägt, ist aus diesem Grunde möglicherweise gefährlich.
Mit der Option Aktivieren schalten Sie die Sicherheit gegenüber diesen Elementen
ab. Dann wird auch ActiveX-Steuerelemente ausführen, die für Scripting sicher sind ignoriert. Mit der Option Fragen hat man die Wahl, ob man ein solches Control
oder Plug-In überhaupt laden will - oder nur mit bestimmten Parametern startet. Am
sichersten ist die Einstellung Deaktivieren, denn sie erzwingt die Ablehnung
des fremden Codes.
- Java-Optionen
Benutzerdefiniert ermöglich es dem Anwender, einige Einstellungen vor dem
Download eines Java-Applets selbst vorzunehmen. Die Einstellung Niedrige Sicherheit
ist ebenfalls zumindest im Internet gefährlich, denn sie gibt allen Apptets die
Möglichkeit, jede Operation ungehindert zu starten. Microsoft sieht zwar wie Netscape
eine Sandbox für Java-Applets vor, doch deren Grenzen schaltet man mit dieser Einstellung
ab. Mit Mittlere Sicherheit erreicht man einen Start der Java-Applets
ausschließlich in der Sandbox.
Die Option Benutzerdefiniert bietet weitere Einstellungen. Es erscheint der
Button Java-Einstellungen. Unter anderem kann man definieren, was
signierte und unsignierte Applets außerhalb der Sandbox unternehmen dürfen.
Damit gleichen diese Optionen den Möglichkeiten von signierten Apptets im
Netscape Communicator.
- Benutzerauthentifizierung
Dabei geht es um vier Optionen:
- Automatisches Anmelden nur in der Intranetzone
fordert den Benutzer auf, seine User-ID und sein Paßwort außerhalb des Intranets
einzugeben. Dies geschieht allerdings einmalig, das heißt, weitere Zonenwechsel
erfordern keine neuen Eingaben.
- Anonyme Anmeldung
schaltet die HTTP-Authentifizierung dagegen ab.
- Nach Benutzername und Kennwort fragen
erkundigt sich generell nach einer User-ID und einem Kennwort; Angaben, die
der Internet-Explorer dann für die gesamte Zeit der Sitzung verwendet.
- Automatische Anmeldung mit aktuellem Benutzernamen und Kennwort
bewirkt auf NT-Systemen, daß der aktuelle Username sowie das Paßwort für die Prüfung
der Zugriffsberechtigung auf den jeweiligen Internet-Server verwendet werden.
- Cookies
Die Option Cookies pro Sitzung annehmen (nicht gespeichert) erlaubt prinzipiell,
daß eine Web-Site Cookies für eine Sitzung auf dem Rechner unterbringt. Darin
halten entsprechende Sites beispielsweise den Inhalt virtueller Einkaufswagen fest.
Arbeiten Sie mit der Einstellung Aktivieren, so kommt das dem Besuch der
Site jedoch nicht auf der Platte. Mit Fragen erreichen Sie einen Dialog, der
die Ablehnung jedes einzelnen Cookie ermöglicht. Deaktivieren stoppt die
Cookies. Cookies annehmen, die gespeichert sind läßt eine hartnäckigere
Form der Cookies zu, jene die dauerhaft auf die Platte gelangen. Über die Einstellung
Aktivieren lassen Sie dauerhaft gespeicherte Dateien zu, die der IE nicht
anzeigt. Für die beiden anderen Optionen gilt das gleiche wie bei den temporär
gespeicherten Cookies.
Netscape Communicator
Die Einstellungen des Communicators 4.6 sind wesentlich einfacher in der Bedienung.
Darüber hinaus arbeitet der Communicator nicht mit ActiveX-Steuerelementen.
Auch Netscape hat eine Signierung von JavaScripts und Java-Applets entwickelt.
Diese Zertifikate zeigen nicht nur, daß die Software von einem bestimmten Hersteller
stammt sie erlauben es dem Java-Programm auch, Aktionen außerhalb der sicheren
Sandbox vorzunehmen. Dadurch kann es einem solchen Programm genauso wie beim
IE gelingen, Inhalte der Platte auszuspionieren oder zu sabotieren.
Die grundlegenden Einstellungen des Browsers in der Version 4.6 erreichen Sie recht
einfach über Bearbeiten/Einstellungen/Erweitert. Die dortigen Sicherheits-Optionen
sind: Java aktivieren, JavaScript aktivieren und JavaScript für Mail und Diskussionsforen aktivieren. Parallel zur höchsten Sicherheitsstufe im
Internet-Explorer könnte man diese drei Optionen abschalten. Damit führt der
Communicator Java nicht einmal in E-Mails aus.
Dabeben findet man im Communicator 4.6 den Menüpunkt Sicherheit. Das dortige
Fenster aktiviert Paßwörter und die programmeigene Kryptographie, kann jedoch auch
Zertifikate aktivieren, mit denen ein Java-Code außerhalb der Sandbox im
Dateisystem arbeiten kann.
Eine weitere Gefahr sind sind Plug-Ins. Sie erweitern den Communicator um beliebige
Funktionen, können aber auch immensen Schaden anrichten. Sie sollten sich zuerst
anschauen, welche Zusätze derzeit bereits aktiv sind: Dazu klickt man auf
Hilfe/Über Plug-Ins. Hier finden Sie im oberen Bereich auch einen Link zu
Netscape, der zu den von Netscape angebotenen Plug-ins führt. Dort gibt es
derzeit knapp 180 Plug-ins aus unterschiedlichsten Kategorien.
Im Communicator ist es dem Anwender gestattet, Optionen der Sandbox zu ändern - dem
Applet oder Script jedoch nicht. Ohne das Zonenkonzept ist man darauf angewiesen,
die fraglichen Einstellungen pro Script/Apptet oder je Internet-Site vorzunehmen.
Im Ordner \Netscape\Users\<Benutzer> gibt es eine Datei namens
PREFS.JS, in der man eine Reihe von Einträgen vornehmen kann. Es handelt
sich um eine reine Textdatei, man kann sie also mit einem einfachen Editor, wie dem
Notepad bearbeiten, nachdem man eine Sicherheitskopie des Originals angelegt hat.
Ein Beispiel sollen zeigen, was dort einzutragen ist:
In seiner Grundeinstellung legt der Communicator HTML-Seiten, die über eine
sichere Verbindung geladen wurden, nicht in seinem Seitenspeicher ab. Der Grund:
Aus dem Cache können unbefugte Leute eine solche Seite herausholen und im Klartext
lesen, was die Übertragung via SSL ursprünglich verhindern sollte. Mit der folgenden
Zeile schaltet man die Speicherung einer Seite im Cache wieder ein:
user_pref("browser.cache.disk_cache_ssl",true);
Eine ausführliche Anleitung finden Sie unter
http://www.ufaq.org
7.8 Hintertüren im Windows-PC
Im Internet lauern etliche Hacker-Tools. Das prominenteste Mitglied der
Hintertür-Programme ist sicher Back Orifice 2000 (B02K). Weit weniger bekannt sind
SubSeven, Hack'a'Tack, Deep Throat, NetSphere, NetBus und andere.
Windows-Hintertüren gewähren einem Angreifer nahezu unbeschränkten Zugang zum
Computer des Opfers - so liest man immer wieder. Diese Formulierung ist eigentlich
noch zu schwach: Abgesehen vom vollständigen Zugriff auf alle Dateien und
Systempasswörter ebnet ein solcher 'Femwartungszugang' auch den Weg ins lokale
Netz oder Intranet, mit allen Rechten des Benutzers. Wer einen Multimedia-Computer
mit Kamera und Mikrofon sein Eigen nennt, liefert dem Angreifer eine
Überwachungsstation mit Bild und Ton.
Selbst Verschlüsselung und Sicherheitssoftware stellen keine nennenswerten
Hindernisse dar: Die Hintertür liefert dem Angreifer alle Tastatureingaben
frei Haus. Protokollfunktionen können diese auch aufzeichnen, während man
nicht online ist. Zusammen mit geheimen Schlüsseln oder Verwaltungsinformationen
von der Festplatte hat der Angreifer somit alle Möglichkeiten, die auch der
rechtmäßige Benutzer besitzt. Die Hintertüren können üblicherweise jede Software
im Verborgenen starten - ohne sichtbare Fenster.
Der 'aufgebohrte' Computer kann auch zu Downloads benutzt oder ferngesteuert
zu einem Server gemacht werden, der Spuren des Angreifers für weitere
Aktivitäten verwischt. Abgesehen davon bieten die Hacker-Tools eine Menge
harmloser Funktionen, die nur dazu dienen, den Anwender zu verwirren oder zu
ärgern: Maustasten vertauschen, Bildschirm spiegeln, CD-ROM-Schublade aus-
und einfahren, Sounds abspielen, Windows beenden oder abstürzen lassen und
anderes.
'The Trojans Removal Database' (www.multimania.com/ilikeit/) verzeichnet über
50 Hintertüren mit ihren standardmäßigen Dateinamen und Registry-Einträgen.
Die Begriffe vermischen sich zunehmend. Fernwartungssoftware erlaubt
Systemverwaltern und Support-Mitarbeitern Zugriff auf Computer, ohne daß sie
davor sitzen müßten. Trojanische Pferde stehlen im Hintergrund
Passwörter oder verrichten andere üble Werke, während der Anwender von einer
mehr oder weniger nützlichen Anwendung oder gar nur einer Fehlermeldung beim
Programmstart getäuscht wird.
Heute baut der ahnungslose Anwender unwissentlich selbst eine Hintertür in
sein System ein, während er ein Programm startet oder installiert.
Auch die 'offiziellen' Fernwartungs-Tools lassen sich so installieren, daß der
Anwender sie nicht bemerkt. Die NetBus-Hersteller werfen Symantec sogar
Geschäftsschädigung vor: Ihr Tool sei ein direkter Konkurrent von Symantecs
PCAnywhere, deren Virenscanner nenne NetBus aber ein Trojanisches Pferd
und verunsichere damit potenzielle Kunden.
Die Back-Orifice-Autoren vom 'Cult of the Dead Cow' richten ihre Kritik
hingegen an Microsoft, die in Sicherheitshinweisen zu ihrer eigenen
Fernwartungssoftware schreiben: 'Es ist möglich, eine Fernwartung so zu
konfigurieren, daß es niemals sichtbare oder nachweisbare Anzeichen für
bestehende Fernzugriffe gibt.' Entsprechende Möglichkeiten habe man auf
Grund von Kundenwünschen vorgesehen.
Die Hacker-Tools als 'ganz normales' Fernwartungsprogramm zu deklarieren, das
sich halt auch mißbrauchen läßt, ist allerdings auch nur die halbe Wahrheit:
Ob die Wahrscheinlichkeit für zusätzliche Hintertüren, die die Autoren für
sich selbst geschaffen haben, hier deutlich höher liegt als bei Software
kommerzieller Anbieter, sei dahingestellt.
Eine neue Qualität bieten hier allerdings die offen gelegten Quelltexte von
Back Orifice 2000: Jeder kann sich selbst davon überzeugen, daß die Hintertür
nicht zusätzlich ein echtes Trojanisches Pferd ist. Außerdem sinkt durch die
Begutachtung des Sourcecode die Wahrscheinlichkeit, daß Implementierungsfehler
unerkannt bleiben und zu Sicherheitslücken werden - das ist ein Wettbewerbsvorteil
gegenüber kommerzieller Femwartungssoftware.
Solange das Betriebssystern keinen Schutz vor unerwünschten Programmen und
versteckten Funktionen bietet, bleibt dem Anwender, der keine Hintertüren möchte,
nur der Griff zum Virenscanner. Die beste Antwort auf derartige Software bleibt
ein gesundes Maß an Mißtrauen: Kein Programm aus unbekannter Quelle ausführen,
keine ausführbare Dateien aus E-Mail-Anhängen zu starten, wenn eine Übertragung
nicht ausdrücklich mit dem Absender vereinbart war. Das gilt auch für persönliche
Bekannte - es gibt eine Reihe von Viren, die im Namen des Computerbesitzers
automatisch verseuchte Post verschicken. Und 'ausführbare Dateien' wird angesichts
makrofähiger Office-Dokumente und HTML-Mails mit aktiven Inhalten ein immer weiterer
Begriff: Wem die buntere Darstellung nicht sehr am Herzen liegt oder wer vertrauliche
Daten auf seinem Rechner hat, der sollte Word-Dateien, HTML und aktive Inhalte
(ActiveX, Java, Javascript, VBScript usw.) aus Mail-Client und Webbrowser rigoros
verbannen.
7.9 Pornos etc.
Wie sollen sich Internet-Nutzer verhalten, wenn sie zufällig auf
Seiten mit pornographischem Inhalt landen, oder E-Mail mit derartigen
Inhalten bekommen?
Pornografisches ist grundsätzlich nicht strafbar. Eine Ausnahme gilt
jedoch für Kinderpornographie. Hier genügt der bloße Besitz, um sich
strafbar zu machen. Selbst wenn Sie keine Bilder speichern, sondern
nur zufällig über solche Dateien stolpern existieren diese im
Plattencache des Browsers. Ob es sich dabei bereits um "Besitz" im
Sinne des StGB handelt, ist bisher noch nicht höchstrichterlich
entschieden.
Um allen strafrechtlichen Problemen aus dem Weg zu gehen, empfiehlt es
sich, solche Daten sofort von der Festplatte zu löschen. Gleiches gilt
für E-Mails mit derartigen Inhalten.
Wenn man beim Surfen auf Kinderpornos oder auch rechtsextremes Material
stößt, kann man sich an ppmuc@www.polizei.bayern.de wenden.
Bei Newsgroups ist bereits hinsichtlich "normaler", pomogrophischer
Schriften und Bildern Vorsicht geboten. Sofern in einer Newsgroup freier
Handel mit "normaler" Pornographie getrieben wird, sollte man sich nicht
beteiligen, da nicht sichergestellt worden kann, daß daran nicht auch
Jugendliche unter 18 Jahren teilnehmen. Wer sich dennoch aktiv einbringt,
läuft Gefahr, sich wegen Verbreitung pornographischor Schriften strafbar
zu machen.
Eine Verschärfung gilt für die harte Pornographie. So ist zum Beispiel
die Verbreitung von Bildern mit Kinderpornographie, Sodomie und der
Darstellung von sexueller Gewalt allgemein verboten.
Eine sachliche Diskussion über alle Themen in Nowsgroups oder Chatforen
ist nicht strafbar. Die Meinungsfreiheit ist hier oberstes Gebot, eine
Ausnahme gilt lediglich in bezug auf die Leugnung des Holocousts.
Zum Inhaltsverzeichnis
Zum nächsten Abschnitt
Copyright © Prof. Jürgen Plate, Fachhochschule München