Java Plugin ein großes Sicherheitsrisiko? Wie kann man Java-Plugin vor Privilegieneskalation schützen?

2424
Johannes Weiss

Die Installation eines regulären Java-Plugins ist IMHO ein echtes Sicherheitsrisiko für Nicht-IT-Mitarbeiter. Normalerweise werden Java-Applets in einer Sandbox ausgeführt, und das Applet kann für Ihren Computer keine schädlichen Auswirkungen haben.

Wenn ein Applet jedoch so etwas wie Lesezugriff auf Ihr Dateisystem ausführen muss, z. B. ein Bild hochladen, müssen Sie ihm mehr Berechtigungen geben. Normalerweise ist das in Ordnung, aber ich glaube, nicht jeder weiß, dass Sie dem Applet die gleichen Privilegien für Ihren Computer geben wie Ihr Benutzer! Und das ist alles, was Java von Ihnen verlangt:

Java security question

Das ist als selbstsigniertes SSL-Zertifikat auf einer zufälligen Seite, auf der keine vertraulichen Daten ausgetauscht werden, "schädlich". Der Benutzer wird auf klicken Run!

Sie können das zu Hause mit JyConsole versuchen, das ist Jython (Python auf Java)!

Geben Sie einfach Python-Code ein, z

import os os.system('cat /etc/passwd') 

oder schlimmer nicht in diesem Code auf Ihrem Computer !!!

import os os.system('rm -rf ~') 

...

Weiß jemand, wie Sie die Privilegieneskalation deaktivieren können? Und weiß jemand, warum SUN nur einen so harmlosen Dialog wie den oben gezeigten anzeigt (der selbstsignierte SSL-Zertifikat-Dialog von Firefox 3 und höher ist hier viel klarer!)?

Live-Beispiel von meinem Computer:

jyconsole sample

4

1 Antwort auf die Frage

3
Tom Hawtin - tackline

Absolut keine offizielle Antwort:

Ab 6u10 können Dateien mit der java.jnlp-API von Applets gelesen werden. Der Benutzer erhält zunächst einen Warndialog (den ich gerne entfernt hätte) und dann einen Datei-Browser. Das Applet kann nur die Datei lesen, die der Benutzer für ihn über die Dateiauswahl auswählt.

Derzeit können Sie verhindern, dass Benutzer "Inhalten" vertrauen, indem Sie in der Java-Systemsteuerung die Registerkarte "Erweitert" auswählen. Das erste Kontrollkästchen unter Sicherheit ist derzeit "Erlaube dem Benutzer, Berechtigungen für signierten Inhalt @ zu erteilen. Das zweite Kontrollkästchen ist" Erlaube dem Benutzer, Berechtigungen für den Inhalt einer nicht vertrauenswürdigen Behörde zu erteilen ".

Die Furchtsamkeit des Sicherheitsdialogs sollte ungefähr der von vergleichbaren Akteuren der Branche entsprechen, wie beispielsweise Microsoft ActiveX und Adobe AIR.

(Offenlegung: Ich arbeite in Java SE Security.)

Danke für deine Antwort Tom, ich habe diese ControlPanel-Einstellung ausprobiert und es funktioniert gut! Denken Sie nicht, dass "Erlauben Sie dem Benutzer die Erlaubnis für Inhalte von einer nicht vertrauenswürdigen Behörde", standardmäßig falsch sein sollte? Halten Sie die tatsächliche Standardeinstellung auch für ein großes Sicherheitsproblem (wie ich)? Johannes Weiss vor 15 Jahren 1
Ich würde lieben, dass es der Standard ist. Ich denke, wir sind fast an dem Punkt, an dem Nicht-EV-Zertifikate standardmäßig automatisch abgelehnt werden könnten. Aus praktischer Sicht wird dies jedoch nicht passieren. Browser zuerst und wir werden wahrscheinlich der Masse folgen (keine Versprechungen). Tom Hawtin - tackline vor 15 Jahren 0
Ok, aber mit JAAS sollte es möglich sein, dem Applet "einige" Berechtigungen zu geben, zB "Dateien von meinem Desktop lesen". Oder nur Lesezugriff auf meinen Computer, oder? Die tatsächliche Situation ist: lassen Sie alles oder gar nichts zu. Johannes Weiss vor 15 Jahren 0
Vielleicht könnte eine solche Funktion zu PlugIn / WebStart / JNLP hinzugefügt werden. Es existiert momentan nicht. Wenn eine solche Funktion hinzugefügt werden sollte, sind die Java-Sicherheitsberechtigungen etwas niedrig. Es ist einfach für eine scheinbar harmlose Erlaubnis, mit zufälligen Funktionsbausteinen eingesetzt zu werden, um einen vollständigen Angriff zu bilden. Wirklich möchten Sie eine für den Zweck entworfene API im Modell javax.jnlp. Tom Hawtin - tackline vor 15 Jahren 1