Top Banner
JINI Security & Scalability JINI Security Hans-Peter Rötheli & Christian Gloor
22

JINI Security & Scalability

Dec 31, 2015

Download

Documents

JINI Security & Scalability. JINI Security. Hans-Peter Rötheli & Christian Gloor. Inhalt. JINI-Beispielumgebung Kommunikation Was darf fremder Code? Exploits Folgerungen. Seminarraum mit Printer. Printer sucht Lookupservice, discovery (1) - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: JINI Security & Scalability

JINI Security & Scalability

JINI Security

Hans-Peter Rötheli & Christian Gloor

Page 2: JINI Security & Scalability

Inhalt

JINI-BeispielumgebungKommunikationWas darf fremder Code? Exploits Folgerungen

Page 3: JINI Security & Scalability

Seminarraum mit Printer

Lookup Service

Http Server

Jini Printer

1

2

34

5

Printer sucht Lookupservice, discovery (1)

Lookup Service sendet Referenz auf http-Server (2)

Printer lädt lookup.jar (3,4) und registriert sich damit, join (5)

Page 4: JINI Security & Scalability

PDA kommt hinzu

Lookup Service

Jini Printer

12

3

4

5

PDA

Pda: discovey, joinPda fragt nach

Printer (1)Lookup Service

gibt Referenz (2)Pda lädt Code aus

Printer (3,4)Kommunikation

direkt (5)

Page 5: JINI Security & Scalability

RMI

Jini PrinterPDA

resultat

call cpudata

PDA ruft remote procedure auf

Parameter gehen übers Netz

Service verarbeitet Resultat geht

übers Netz

Page 6: JINI Security & Scalability

Serialization, Code Base

Jini PrinterPDA

call cpudata

codebase

parent

Objekt wird serialisiert und übertragen

Parentobjekte werden aus Code Base geladen

Page 7: JINI Security & Scalability

Überblick

Discovery mittels Broadcast Parameter gehen ungeschützt übers

Netz Resultat geht ungeschützt übers Netz Auf Codebase wird via ungeschütztem

http zugegriffen Verschlüsselung einsetzen

Page 8: JINI Security & Scalability

Was darf fremder Code?

Auf das Netz zugreiffen?

Portscans Interne Angriffe Daten

weitersenden

Auf die HD zugreiffen?

User-Rechte Daten

manipulieren Daten

weitersenden

Page 9: JINI Security & Scalability

Security Manager

java -Djava.security.policy=“policy“

grant { permission java.security.AllPermission ““, ““;

}

Page 10: JINI Security & Scalability

Nur bestimmte Aktivitäten

grant {permission java.net.SocketPermission

“129.132.200.35“, “connect,accept“;}

Page 11: JINI Security & Scalability

Von bestimmter Herkunft

grant codebase “http://www.ethz.ch/“ {permission

java.security.AllPermission ““,““;

}

Page 12: JINI Security & Scalability

Basierend auf Signatur

grant signedBy “chgloor“ {permission

java.security.AllPermission ““,““;

}

Page 13: JINI Security & Scalability

Überblick

Geladener Code kann Böses anrichten

Aktionen einschränken Herkunftabhängige Erlaubnis Signaturabhängige Erlaubnis

Page 14: JINI Security & Scalability

Denial of Service

Device kann sich mehrmals anmelden 1000 Printer im Büro?

Client kann nichtexistente Devices anmelden Welches ist das richtige?

SYN-Flood Lookup Service überlastet

Page 15: JINI Security & Scalability

Falscher http-Server

Jini PrinterPDA

call cpudata

codebase

codebase

Netzwerk

http-Server ist gefälscht DNS Router Switch

beliebiger Code wird geladen und ausgeführt

Server-Zertifikat

Page 16: JINI Security & Scalability

Fake Service

Jini Printer

PDA

LAN

Boshafter Printer

Lookup Service

Load

Bal

anci

ng

Neuer Service mit identischer ID

LoadbalancingCodebase identisch

und signiert Serialisiertes Objekt

verschieden Signatur der

Serialisierten Objekte

Page 17: JINI Security & Scalability

Fremder Lookup-Service

Jini PrinterPDA

LAN

Boshafter PrinterBoshafter Lookup Service

Lookup Service

Load

Bal

anci

ng

Zusätzlicher Lookup-Service im Netz

LoadbalancingNeue, eigene

Services werden angeboten

Neuer Printer sendet Daten über Internet

Nur bekannte Lookup Services benutzen

Page 18: JINI Security & Scalability

Netzwerkzugriff

Device hat keine Permissions, Daten zu senden.

Device generiert Objekt, gibt in Codebase gefälschten URL an: http://fremdedomain.ch/chgloor/s!ch3r3$Pw

RMI Class Loader versucht Code zu laden und sendet somit Daten an Server

Page 19: JINI Security & Scalability

Probleme mit Signatur

Client ist in fremdem Netz und kennt keine Signaturen Printer im Hotel, Seminarraum etc.

CAs belegen nur Herkunft, nicht Inhalt der Codestücke Jeder kann ein Zertifikat lösen bei Verisign

Lange Vertrauensketten funktionieren nicht

Page 20: JINI Security & Scalability

Überblick

Denial of Service möglichCode Base nicht authentiziertLookup Service nicht authentiziertProbleme mit SignaturenGrundlegende Designfehler

Page 21: JINI Security & Scalability

Folgerungen

URL-Basierende Permissions unsicher, daher nur signierten Code ausführen

http durch https (SSL) ersetzen Serialisierte Objekte müssen signiert

und verschlüsselt werden

Aktuelle Implementation von JINI nicht geeignet für Real World Anwendungen

Page 22: JINI Security & Scalability

Referenzen

Scott Oaks & Henry Wong, JINI in an nutshell, O‘REILLY 2000

Crichton, Davis, Woodcock, When to trust mobile objects, Oxford University 1999

Hasselmeyer, Kehr, Voss, Trade-offs in an Secure JINI Service Architecture, TU Darmstadt 2000