"La raíz es Dios". Bueno, hay dioses ... y luego, hay ancianos dioses.
El usuario root
puede hacer muchas cosas en una máquina. En particular, puede reemplazar los archivos que se utilizan para iniciar la máquina; por lo tanto, él puede potencialmente reemplazar tu núcleo con otro propio, lo que lo dejaría pasar. SELinux se puede usar como una forma de hacer una raíz neutralizada y neutralizada que estará limitada de alguna manera, por lo que no más largo el usuario root
real; en particular, obligando a cualquier escape a pasar por un reinicio de la máquina. Sin embargo, es difícil bloquear todas las rutas y, posiblemente, el kernel de Linux y SELinux son demasiado complejos para estar libres de errores, por lo tanto, DEBEN existir vulnerabilidades locales que permitan al menos root
ir en modo completamente físico.
Además, hay formas tortuosas de escapar de los filtros de red. Por ejemplo, root
podría acceder a la interfaz de red en el nivel de Ethernet y emitir y recibir marcos de Ethernet por sí mismo, omitiendo por completo la pila TCP / IP del kernel, por lo que no se verá afectado por ningún filtro de bloqueo se han insertado en ese nivel (y, para el caso, también se omitiría iptables
).
Para contener realmente root
, lo intimidó con artillería pesada. Me refiero a una Máquina Virtual . Haga que el sistema Linux se ejecute en una máquina virtual; todo el tráfico de la red externa hacia y desde la VM pasará por el sistema de gestión de VM, que luego puede bloquear y permitir de cualquier forma que crea conveniente, completamente fuera del alcance del malvado root
, independientemente de lo que haga. Esto incluso funcionaría si el malvado root
reemplazara todo el sistema con NetBSD o Windows o cualquier otra cosa.
El arreglo de VM requiere que la VM sea efectiva para contener al invitado y evitar que toque el host. Esto requiere un poco de fe, pero mucho menos que creer que algo tan complejo como SELinux o el sistema de permisos Unix podría lograr el mismo nivel de confiabilidad de aislamiento.