1 / 22

JINI Security & Scalability

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)

Download Presentation

JINI Security & Scalability

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Inhalt • JINI-Beispielumgebung • Kommunikation • Was darf fremder Code? • Exploits • Folgerungen

  3. Seminarraum mit Printer • 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)

  4. PDA kommt hinzu • Pda: discovey, join • Pda fragt nach Printer (1) • Lookup Service gibt Referenz (2) • Pda lädt Code aus Printer (3,4) • Kommunikation direkt (5)

  5. RMI • PDA ruft remote procedure auf • Parameter gehen übers Netz • Service verarbeitet • Resultat geht übers Netz

  6. Serialization, Code Base • Objekt wird serialisiert und übertragen • Parentobjekte werden aus Code Base geladen

  7. Ü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

  8. Auf das Netz zugreiffen? Portscans Interne Angriffe Daten weitersenden Auf die HD zugreiffen? User-Rechte Daten manipulieren Daten weitersenden Was darf fremder Code?

  9. Security Manager • java -Djava.security.policy=“policy“ • grant { permission java.security.AllPermission ““, ““; }

  10. Nur bestimmte Aktivitäten • grant { permission java.net.SocketPermission “129.132.200.35“, “connect,accept“;}

  11. Von bestimmter Herkunft • grant codebase “http://www.ethz.ch/“ { permission java.security.AllPermission ““,““;}

  12. Basierend auf Signatur • grant signedBy “chgloor“ { permission java.security.AllPermission ““,““;}

  13. Überblick • Geladener Code kann Böses anrichten • Aktionen einschränken • Herkunftabhängige Erlaubnis • Signaturabhängige Erlaubnis

  14. 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

  15. Falscher http-Server • http-Server ist gefälscht • DNS • Router • Switch • beliebiger Code wird geladen und ausgeführt • Server-Zertifikat

  16. Fake Service • Neuer Service mit identischer ID • Loadbalancing • Codebase identisch und signiert • Serialisiertes Objekt verschieden • Signatur der Serialisierten Objekte

  17. Fremder Lookup-Service • Zusätzlicher Lookup-Service im Netz • Loadbalancing • Neue, eigene Services werden angeboten • Neuer Printer sendet Daten über Internet • Nur bekannte Lookup Services benutzen

  18. 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

  19. 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

  20. Überblick • Denial of Service möglich • Code Base nicht authentiziert • Lookup Service nicht authentiziert • Probleme mit Signaturen • Grundlegende Designfehler

  21. 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

  22. 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

More Related