Могу ли я доверять песочнице Java SecurityManager?
Я пишу приложение JavaFX2, которое принимает произвольный код для загрузки из удаленных мест. Для меня было удобно использовать собственный SecurityManager, ClassLoader и ProtectionDomain. К сожалению, похоже, что это та же самая установка, которая используется для апплетов-песочниц, что вызвало множество взломов безопасности и, в свою очередь, убедило людей бояться Java Web Plugin и полностью удалить его из своей ОС.
Является ли песочница Java безопасной средой для запуска ненадежного кода или это просто небезопасный веб-плагин Java в целом?
1 ответ
Менеджер безопасности предоставляет ваше приложение. с той же защитой, что и у подключаемого модуля. Что, учитывая ошибки безопасности, "не так много".
В настоящее время он включает известные ошибки безопасности (AFAIU). Но, как и в любом сложном плагине, вероятно, есть еще что-то, что еще предстоит обнаружить, или, возможно, будет представлено в новых версиях или новых API.
В общем, ваш код должен выходить за рамки стандартного менеджера безопасности, черного списка целых пакетов и (если необходимо) предоставления служебных методов, с помощью которых можно выполнять действия, обычно выполняемые этим пакетом.
Но тогда этот совет является первым пунктом в списке из 20+, который я мог бы назвать 2 или 3 из возможных вещей в приложении. может потребоваться защита от выполнения ненадежного кода. Хотя это не вопрос..
Является ли Java sandbox безопасной средой для запуска ненадежного кода на...
Нет. Безопасность Java может обеспечить хорошую отправную точку для защиты от ненадежного кода, но она должна быть расширена специально для приложения и иметь другие элементы, чтобы соответствовать требуемой задаче. Даже в этом случае необходимо учитывать "неизвестные ошибки безопасности" (как в JRE, так и в ваших собственных усилиях по обеспечению безопасности).