jini security & scalability jini security hans-peter rötheli & christian gloor

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

Upload: heinrike-regel

Post on 05-Apr-2015

111 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: JINI Security & Scalability JINI Security Hans-Peter Rötheli & Christian Gloor

JINI Security & Scalability

JINI Security

Hans-Peter Rötheli & Christian Gloor

Page 2: JINI Security & Scalability JINI Security Hans-Peter Rötheli & Christian Gloor

Inhalt

JINI-BeispielumgebungKommunikationWas darf fremder Code? Exploits Folgerungen

Page 3: JINI Security & Scalability JINI Security Hans-Peter Rötheli & Christian Gloor

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 JINI Security Hans-Peter Rötheli & Christian Gloor

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 JINI Security Hans-Peter Rötheli & Christian Gloor

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 JINI Security Hans-Peter Rötheli & Christian Gloor

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 JINI Security Hans-Peter Rötheli & Christian Gloor

Ü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 JINI Security Hans-Peter Rötheli & Christian Gloor

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 JINI Security Hans-Peter Rötheli & Christian Gloor

Security Manager

java -Djava.security.policy=“policy“

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

}

Page 10: JINI Security & Scalability JINI Security Hans-Peter Rötheli & Christian Gloor

Nur bestimmte Aktivitäten

grant {permission java.net.SocketPermission

“129.132.200.35“, “connect,accept“;}

Page 11: JINI Security & Scalability JINI Security Hans-Peter Rötheli & Christian Gloor

Von bestimmter Herkunft

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

java.security.AllPermission ““,““;

}

Page 12: JINI Security & Scalability JINI Security Hans-Peter Rötheli & Christian Gloor

Basierend auf Signatur

grant signedBy “chgloor“ {permission

java.security.AllPermission ““,““;

}

Page 13: JINI Security & Scalability JINI Security Hans-Peter Rötheli & Christian Gloor

Überblick

Geladener Code kann Böses anrichten

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

Page 14: JINI Security & Scalability JINI Security Hans-Peter Rötheli & Christian Gloor

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 JINI Security Hans-Peter Rötheli & Christian Gloor

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 JINI Security Hans-Peter Rötheli & Christian Gloor

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 JINI Security Hans-Peter Rötheli & Christian Gloor

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 JINI Security Hans-Peter Rötheli & Christian Gloor

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 JINI Security Hans-Peter Rötheli & Christian Gloor

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 JINI Security Hans-Peter Rötheli & Christian Gloor

Überblick

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

Page 21: JINI Security & Scalability JINI Security Hans-Peter Rötheli & Christian Gloor

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 JINI Security Hans-Peter Rötheli & Christian Gloor

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