¿Qué puedo usar para evitar ejecutar una máquina virtual completa que me brinda una seguridad comparable?
Posiblemente, algo como enlace pero no sé cuáles son sus propiedades de seguridad.
VM clásica: hay dos núcleos, el hipervisor utiliza la función de CPU para emular un hardware, y el núcleo invitado generalmente no sabe que se está ejecutando en un sistema virtualizado. En general, se considera que esto proporciona el mejor aislamiento, sin embargo, el acceso restringido al sistema huésped puede ser complicado, ya que el sistema huésped debe hacer cumplir muchas funciones de seguridad.
Paravirtualización: hay dos núcleos, el núcleo invitado es consciente de que se está virtualizando y utiliza un controlador de paravirtualización que está diseñado específicamente para comunicarse con el núcleo / hipervisor host para acceder al hardware en lugar de intentar acceder a un hardware actual. Esto es parte del camino en términos de aislamiento y flexibilidad.
Contenedor: solo hay un kernel, el kernel crea un espacio de nombres para cada contenedor para que los contenedores no puedan verse entre sí. Esto le proporciona el menor aislamiento, ya que cualquier error de seguridad en el kernel puede irrumpir en el sistema host, pero también es más flexible si necesita definir una restricción de acceso complicada. Por ejemplo, con el contenedor puede definir una política de SELinux que se aplicará al sistema huésped pero que será ejecutada por el sistema host.
Si desea ejecutar un malware conocido, le sugiero que utilice una máquina virtual completa. Tal como se implementa actualmente, la tecnología de contenedores como rkt y docker no pretende ser irrompible por procesos privilegiados que se ejecutan dentro del contenedor. Sin embargo, tenga en cuenta también que hay una cierta clase de malware llamado maletín azul que está diseñado para romper con la virtualización clásica mediante la explotación de fallas en el hipervisor. Si bien estos son bastante raros, no es recomendable ejecutar muestras de malware si no tiene la menor idea de lo que se supone que debe hacer.
Depende más bien de lo que entiendas por "seguridad comparable".
Una diferencia clave entre una VM y otros enfoques es que el primero simplifica la disponibilidad de direccionamiento; es posible migrar una máquina virtual en ejecución a través de diferentes nodos de hardware, es fácil hacer una instantánea del estado de una máquina virtual en ejecución a una imagen de disco.
Ignorar estos por ahora (posiblemente hace que esta pregunta sea demasiado complicada para responder aquí):
1) Usa el sistema operativo correctamente. Unix siempre ha sido un sistema operativo multiusuario / multiusuario. Cuenta con un modelo sofisticado y maduro para usuarios, archivos y procesos. Puede controlar la memoria disponible, la programación, el almacenamiento y el uso de la CPU. También puede tener servidores de seguridad configurados para entornos específicos en el host (a través de netgroups).
2) ejecuta el software requerido en un entorno chroot (opcionalmente con elementos de arriba)
3) ejecuta el software requerido dentro de un entorno de armadores (opcionalmente con elementos de arriba)
4) ejecuta el software requerido en un contenedor (opcionalmente con elementos de arriba)