1. Grundprobleme von Datenschutz und Datensicherheit
JavaScript und »Man-in-the-Middle«-Attacken
Idee von JavaScript
- Programmablauf im WWW-Browser für
- Benutzerinteraktion, z. B. selbstdefinierte Buttons,
Plausibilitätsprüfungen bei Eingaben,
- dynamisches HTML,
- Animationen.
- Erweiterung von HTML um Scriptsprache, im Browser interpretiert -
<SCRIPT LANGUAGE="JavaScript"> ... </SCRIPT>
- Netscape: »LiveScript«, ab Netscape 2.0 als »JavaScript«.
- An C++ angelehnt, hat nichts mit »Java« zu tun.
Möglichkeiten
- Variablen-Definition und -Manipulation.
- Bedingte Anweisungen, Schleifen, Unterprogramme, Objekte, ...
- Ausgabe in Dokument-Fenster oder Alert-Panel.
- Eingabe in Dialog-Panel oder Formular-Felder.
- Belegen von Buttons mit Funktionen -
<INPUT TYPE=BUTTON ... ONCLICK="MyFunction()">
- Event-Handler (onClick, onMouseOver, ...)
- Manipulation des aktuellen Fensters.
- Erzeugung und Manipulation neuer Fenster.
- Keine Dateizugriffe (außer Cookies).
Behobene Sicherheitslücken
- Unbemerktes Senden einer Mail durch den Browser.
- Gesamter lokaler Verzeichnisbaum auslesbar.
- Öffnen eines 1 Pixel großen Fensters, laden einer lokalen
Datei und Versand per Mail.
- Auslesen und Versenden der URL-History.
- JavaScript resident in 1-Pixel-Fenster, kontrolliert gesamte folgende
Sitzung.
- Neuere Version: 1 Pixel großes Frame.
- ...
Wechselspiel Lücken « Patches
jemals zu Ende?
Bestehende Probleme
- Kein explizites Sicherheitsmodell; keine Code-Überprüfung;
Sicherheit beruht auf geringer Menge an Funktionen
- aber Phantasie der Hacker unbegrenzt! -
und auf korrekter Implementation des Interpreters.
- Benutzeraktionen simulierbar (Submit, Mail, ...).
- Auslesen von sicherheitsrelevanten Informationen möglich
(z. B. installierte Plug-Ins).
- Denial of Service (z. B. öffnen immer neuer Fenster, bis Rechner
steht).
- Rechnerabstürze und -aufhänger nicht grundsätzlich vermeidbar.
[Programmierfehler wirken beim Client!]
- Scripts können schon beim Laden ausgeführt werden
(keine Eingriffsmöglichkeit!).
- Aussehen des Browsers manipulierbar (Verdacht auf Unstimmigkeiten verhindern!)
- Erleichterung von Social Engineering.
- Erzeugen von Fenstern, die scheinbar zu anderen Anwendungen gehören.
(Falsche Informationen anzeigen, Eingaben in Formulare abfangen)
- Erleichterung von Social Engineering.
- Durchschleusen (»tunneln«) von anderen aktiven Inhalten möglich
(z. B. ActiveX).
Ein lästiges JavaScript
<HTML>
<HEAD>
<TITLE>JavaScript-Beispiel</TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!--
function Hahaha()
{
var newWindow = window.open("BadJavaScript.html","Fenster",
"width=500,height=500");
}
//-->
</SCRIPT>
<!-- Das Script ruft rekursiv die Seite selbst wieder auf. -->
</HEAD>
<BODY>
<DIV ALIGN=CENTER>
<H3>Sie sind selbst schuld, wenn Sie JavaScript zulassen!</H3>
</DIV>
<SCRIPT LANGUAGE="JavaScript">
<!--
Hahaha();
//-->
</SCRIPT>
</BODY>
</HTML>
Web Spoofing
[Felten/Balfanz/Dean/Wallach]
- Simulation eines »Schatten-WWW« durch einen bösartigen Server
- Gesamte Kommunikation mit WWW läuft über diesen -
- Beobachten aller Aktivitäten, einschließlich Passwort-Eingaben.
- Senden gefälschter Daten im Namen des Opfers an Dritte
oder von Dritten an das Opfer.
- Durch gewöhnliches SSL nicht verhindert.
- Interessante Angriffsziele: Internet-Banking, Online-Börse.
- Interessante Angriffsbasen: Usurpierte Server.
Hauptschwierigkeiten des Angriffs: Start und Vertuschung
A. Opfer ins »Schatten-WWW« locken
- Durch Link auf einer »harmlosen« WWW-Seite
- oder in HTML-fähiger E-Mail.
B. Spuren vertuschen
(Statuszeile, Adressfeld, Dokumenten-Quelltext, Dokumenten-Information)
- Statuszeile und Adressfeld des Browsers mit JavaScript manipulieren
(bei Link-Zielen und Lade-Information Server-Namen überschreiben).
- Menübalken durch gefälschten ersetzen, der gefälschten
Quelltext und Information liefert.
- Überdecken regulärer Information durch »chromeless windows«.
Abhilfen für Endbenutzer
A. Kurzfristig
- JavaScript abschalten (ebenso Java)
[ActiveX ist noch viel unsicherer].
- Adressfeld niemals ausblenden.
- Immer neueste Version von Mozilla oder alternative Browser benutzen
[niemals MS Internet Explorer].
B. Langfristig
- Starke wechselseitige Authentisierung (kryptographisch).
- Aufbau wirklich sicherer Verbindungen.
- Digitale Signatur von Scripts (und allen übers Netz verteilten Programmen).
Zentrale Lösungsansätze
(noch unbefriedigend)
- Content-Filter im Firewall (Firewall-1, WebSense, ...) -
Probleme: Performanz, Herstellerabhängigkeit.
- Content-Filter im Browser (SIP, ...) -
Probleme: Sicherheitsverantwortung beim Endbenutzer, Versionsabhängigkeit.
- Proxy-Technik (Squid, Netscape, Microsoft, ...) -
Probleme: erhöhte Komplexität, zusätzlicher Server nötig,
Umgehung möglich.
»Positive« Anwendungen der Proxy-Technik
- Web-Cache
- Lastverringerung durch Zwischenspeicher für Web-Seiten.
- Anonymizer
- Surfen im Web über Zwischenrechner, um anonym zu bleiben.
Vorlesung Datenschutz und Datensicherheit
Autor: Klaus Pommerening, 31. März 1999,
letzte Änderung: 1. Mai 2007.
E-Mail an Pommerening »AT« imbei.uni-mainz.de.