Wie kann ich meinen Server vor bösartigen Aktivitäten schützen, wenn er hochgeladenen, nicht vertrauenswürdigen Code akzeptiert und ausführt?
Die Benutzer sollten in der Lage sein, meine Schnittstelle und gegebenen Daten zu implementieren, einige Berechnungen durchzuführen und Daten zurückzugeben. Es sind keine I / O-Operationen erforderlich und schon gar keine Thread- / Prozessmanipulation oder andere Spielereien.
Mit der Datei java.policy ist es möglich, alles zu verwerfen (indem Sie nichts gewähren).
%Vor%Bei Verwendung dieser Richtliniendatei führen nicht gewährte Operationen zu einer Sicherheitsausnahme.
%Vor%Ist das narrensicher? Muss ich mehr tun, um meine Serverumgebung vor nicht vertrauenswürdigen Quellen zu schützen?
Ich würde mich nicht einfach auf den SecurityManager verlassen, wenn ich du wäre. Ja, Ihre Konfiguration sieht korrekt aus und das wäre ausreichend, wenn die Java-Sandbox fehlerfrei wäre. Aber schauen Sie sich an, wie viele Java-Schwachstellen in jeder Sicherheitsversion von Java behoben werden. Zum Beispiel die neueste Oracle Java-CPU . Viele dieser Java-Schwachstellen sind diejenigen, die aus der Sandbox entkommen. Das ist sehr schlecht auf der Client-Seite (mehrere Leute befürworten das Deaktivieren von Java aus dem Browser), wäre aber auf der Server-Seite noch schlimmer, da Angreifer Sie nicht auf ihre Seite locken müssen, sie können einfach Ihre angreifen Server.
Zum Beispiel habe ich persönlich einige dieser Sicherheitslücken, auf die ich Oracle warte, oder ich bin gerade dabei, sie an Oracle weiterzugeben. Und ich bin nicht der einzige Forscher, der sie hat. Und es muss auch Böse geben, die sie haben. Selbst wenn Sie Ihr Java religiös aktualisieren würden, sobald die neue Version herauskommt, wären Sie nicht sicher.
Ich denke zumindest, dass Sie etwas auf Betriebssystemebene, Berechtigungen usw. haben sollten, um den Serverprozess zu kontrollieren. Entschuldigung, ich habe dort keine sehr guten Vorschläge, aber ich sage nur nein, Sie können sich absolut nicht auf die JVM Sandbox verlassen, um die Sicherheit auf dem Server zu gewährleisten.