JVM песочница для Java-приложений
Можно ли реализовать какую-то изолированную программную среду JVM для запуска приложения? Я хотел бы ограничить доступ этого приложения, например, к файлам ввода-вывода, сети и т. Д.
Есть ли способ контролировать доступ к этим ресурсам для запуска приложения внутри JVM в этой песочнице?
3 ответа
Решение
Вот для чего предназначен SecurityManager.
У них даже есть учебник.
В дополнение к диспетчеру безопасности JVM вы также можете использовать механизмы безопасности, специфичные для ОС. Самым простым является запуск JVM под отдельным пользователем.
Более продвинутые методы изоляции существуют на различных платформах. Например, у linux есть seccomp-bpf, пространства имен, selinux, возможности и многое другое. Firejail и systemd-nspawn используют их.