Quiero ejecutar pequeños programas no confiables, pero restringirles el acceso a cualquier archivo fuera de su carpeta, acceso a la red y todo lo que realmente no necesitan. ¿Cuál es la forma más sencilla de lograr esto?
Quiero ejecutar pequeños programas no confiables, pero restringirles el acceso a cualquier archivo fuera de su carpeta, acceso a la red y todo lo que realmente no necesitan. ¿Cuál es la forma más sencilla de lograr esto?
Respuestas:
Si realmente no son de confianza, y desea estar seguro, debería configurar una caja separada. Realmente o virtualmente.
Además, no quieres que esa caja esté en la misma red que tus cosas importantes, si eres lo suficientemente paranoico. En todas las soluciones, configuraría un usuario separado sin derechos, de modo que no abra demasiadas herramientas al posible comprometido.
Si está obligado a ejecutarlo en el mismo cuadro, tiene, por ejemplo, esta opción
chroot
. Esta es una opción predeterminada para hacerlo para muchas personas, y para amenazas no específicas, incluso podría funcionar. Pero NO es una opción de seguridad, y se puede romper fácilmente. Sugeriría usar esto según lo previsto, es decir, no por seguridad.Al final, es posible que deba configurar un modelo de sandboxing específico sin la molestia de la virtualización o cajas separadas, o la situación de riesgo chroot
. Dudo que esto sea lo que quisiste decir, pero mira este enlace para obtener información más detallada.
Firejail es bastante nuevo y está en constante desarrollo. Fácil de usar.
Puedes simplemente:
sudo apt-get install firejail
firejail app
Docker lo ayudará a configurar contenedores que puede ejecutar desde su núcleo actual, pero a la vez mantenerse alejado del resto de su sistema. Parece bastante innovador, pero hay un enfoque de Ubuntu y una buena documentación.
Una posible solución es el software de virtualización como VirtualBox, que puede encontrar en el centro de software.
Ahora puede instalar el software en el que no confía para ver qué hace. No puede alterar el mundo exterior o aloja el sistema operativo ya que no tiene acceso.
Sin embargo, puede destruir su máquina virtual, pero si lo hace, puede restaurar desde su instantánea.
Puede haber otros métodos para limitar el poder destructivo del software no confiable, pero este es el método más robusto que se me ocurre.
Otra opción puede ser LXC más información aquí
LXC es el paquete de control de espacio de usuario para Linux Containers, un mecanismo de sistema virtual liviano que a veces se describe como "chroot con esteroides".
LXC se acumula desde chroot para implementar sistemas virtuales completos, agregando mecanismos de gestión de recursos y aislamiento a la infraestructura de gestión de procesos existente de Linux.
Está disponible en el centro de software. Sin embargo, no tengo experiencia.
Mbox es un mecanismo de sandbox ligero que cualquier usuario puede usar sin privilegios especiales en los sistemas operativos básicos.
Lo he usado para un par de cosas de manera confiable.
Puede usar el subusuario para proteger sus aplicaciones con Docker. Esto le permite hacer cosas como aplicaciones GUI de sandbox, que no es fácil de hacer con Docker directamente.
sudo apt install subuser
Creo que una posible solución es crear un usuario separado para fines de prueba y limitar sus privilegios. De esta manera, no perderá rendimiento, lo que definitivamente sucedería en la máquina virtual, pero creo que esto es menos seguro, si no se configura de manera muy adecuada, lo que no puedo aconsejar sobre cómo hacerlo.
En caso de que simplemente desee proteger la actividad de los usuarios, puede usar "DoSH"
DoSH (que significa Docker SHell) es un desarrollo para crear contenedores Docker cuando los usuarios inician sesión en el sistema Linux y ejecutan un shell en ellos, en lugar de crear el shell de manera simple.