Mobile Code Security

Im Rahmen des Seminars Web Security

 

Andreas Marx

WIF 02 98

 

 

 

Inhalt

w   Mobile Code

w   Schutzmöglichkeiten und -konzepte

w   Browser-Integration

w   Java

w   ActiveX

w   JavaScript & Co.

w   Ausblick / Diskussion

 

 

Mobile Code

w    Wird bei Bedarf aus dem Web heruntergeladen

w    Ist ausführbarer Inhalt (z. B. Programmcode)

 

w    Client-seitig, z.B. Java Applets, ActiveX Controls, JavaScript, Visual Basic Script, Safe-Tcl, Telescript

w    Server-seitig, z.B. Servlets

 

w    Problem: Sicherheit (u. a. Integrität, Vertraulichkeit)?!?

 

 

Schutzmöglichkeiten

w    Alles abschalten!

n    Am wirkungsvollsten, aber nicht der Sinn der Sache

n    (Noch unbekannte) Sicherheitslücken?

n    Ist wirklich alles abgeschaltet?

 

w    Digitale Zertifikate

n    Kennzeichnen nachvollziehbar den Herausgeber

n    Aber wer ist vertrauenswürdig?

 

w   Sandbox:

n    Gesicherte Umgebung mit sehr eingeschränkten oder gar keinen Zugriff auf Ressourcen

 

w   (Ständige) Überwachung:

n    Komplex und Zeitintensiv

n    In Praxis kaum verbreitet

 

 

Schutzkonzepte

w    Zugriffsschutz auf Systemressourcen

n    Im Laufzeitsystem implementiert

n    Z. B. Speicherzugriffe nur im eigenen Adressbereich

 

w    Konzeptioneller Ressourcenzugriffsschutz

n    Bei Zugriff auf Ressourcen anderer Rechner

n    Explizite Aufrufe, d. h. einfach zu überwachen

n    Z. B. Datenbanken

 

w    Systemressourcenverbrauchskontrolle

n     Zeitintensive Überwachung

n     Alle Änderungen am Systemzustand werden überwacht, Transaktionen

n     Abbruch, wenn Ressourcen zu lange beansprucht werden

 

w    Konzeptionelle Ressourcenverbrauchskontrolle

n     Kombinierbar mit Zugriffskontrolle in Abhängigkeit vom Systemzustand (z. B. Auslastung)

n     Nur bestimmte Anzahl von DB-Zugriffen bei gewisser Auslastung zulassen

 

 

Browser-Integration

w    Hilfsprogramme bzw. Plug-Ins

n    Kommen bei nicht (direkt) vom Browser unterstützten Dateiformaten zum Einsatz

l   Z. B. AVI, MPG, MP3, RM, PDF

n    Sind in der Regel schon vorher installiert

n    Keine Ausführungsbeschränkungen oder Prüfungen

n    Vertrauenswürdige Herkunft, Originale

n    Z. T. aber auch Zugriffsschutzmodelle (kaum relevant)

 

 

Java

w    Ursprung: Oak (1991)

w    Durchbruch mittels WWW als Java (1994)

w    Designziele: Plattform-unabhängig, Kompakt, Verfügbar, über das Netz herunterladbar

w    Als Programm oder im Browser startbar

w    Bytecode, wird interpretiert (langsam) oder per Just-in-Time-Compiler (JIT) direkt in Maschinencode übersetzt

 

w    JDK 1.0.x:

n    Lokale Programme haben Vollzugriff

n    Mobile Code läuft nur in der Sandbox

w    JDK 1.1.x:

n    Einführung von digitalen Signaturen

n    Mobilen Code kann man auch Vollzugriff ermöglich

w    JDK 1.2.x:

n    Feinere Zugriffsrechte definierbar

 

w    Laden von Java Applets im Browser:

n    Bytecode Verifier

n    Applet Class Loader

n    Applet (in eigenem Namespace)

n    Ausführung in der Java Virtual Machine

n    Überwachung durch den Security Manager

n    Datenaustausch nur mit Herkunftsseite möglich

 

w    Probleme: u.a. Sicherheitslücken (insbesondere in frühen Versionen) und in „MS-Java“

 

 

ActiveX

w    Microsoft‘s Ansatz von mobilen Anwendungen

w    Sammlung von Technologien, Protokollen und APIs, um ausführbaren Code über das Internet zu laden

w    Ursprung: OCX-Controls zur „nahtlosen“ Integration von Desktop und Netzwerk

w    Nur für Windows-Plattformen (Intel, 32 Bit)

w    Nicht auf Sicherheit ausgelegt, sondern dies wurde erst per Authenticode „drumherumgebaut“

 

w   Arten von ActiveX-Controls:

n    Native Code: Am gefährlichsten, direkt ausführbar, „Vollzugriff“ auf den Rechner

n    Java Bytecode: Für JVM (Sandbox oder privilegiert), Überwachung möglich

n    Mischform: Genauso gefährlich wie Native Code

 

w    Authenticode:

n    Digitale Signaturen (Public-Key-Zertifikate)

n    Prüfung der Signatur beim Herunterladen des Controls (z.B. Unversehrtheit, Gültigkeit)

n    Individuelle Entscheidung des Benutzers bei jedem ActiveX-Control (einzeln wählbar), ob er es ausführen möchte oder nicht

 

w    Gefahren: Keinerlei Beschränkungen, häufige Sicherheitslücken

 

 

JavaScript & Co.

w   JavaScript: Von Netscape entwickelt (LiveScript)

w   JScript: Microsofts Implementierung von JavaScript

w   Visual Basic Script: Microsoft‘s eigene Skriptsprache

 

w     Prozeduraler Aufbau (mit Parametern)

w     Werden interpretiert

w     Keine Klassen (Objekte) erzeugbar, aber auf vorhandene kann zugegriffen werden

w     Kann zwar nicht auf Dateien zugreifen, dafür aber auf andere Elemente (z.B. History, URLs)

w     Keine unterschiedlichen Sicherheitsrichtlinien für einzelne Skripte einer Webseite möglich, entweder alles oder nichts

 

w     Gefahren: DoS-Attacken (Fenster öffnen, Endlosschleifen), Generierung von anderem Code (Skripte oder Java), Web-Spoofing

 

 

Ausblick / Diskussion

w   Die Zukunft ist voller Überraschungen...

w   Was ist nun die „beste Möglichkeit“ für Mobile Codes, wie müsste sie aussehen und wie wäre sie zu implementieren?

w   Ist so etwas überhaupt realisierbar?