¿Qué tan seguro es Linux en modo usuario en términos de protección del sistema host?

2

Dos preguntas sobre Linux en modo de usuario :

  • Supongamos que se usa un ataque de escalado de privilegios para obtener root en un invitado UML. Suponiendo que los núcleos de host e invitado modernos (3.0 o posteriores), ¿es trivial escapar de la caja de arena, como con un chroot? ¿O es más difícil?

  • ¿Es posible ejecutar un exploit de escalado de privilegios contra el kernel del host directamente, desde un invitado UML? ¿O no es práctico omitir el kernel UML para un atacante?

pregunta DanL4096 30.07.2014 - 22:19
fuente

1 respuesta

2

No sé cómo se ejecuta exactamente un kernel UML en el sistema host. Estoy especulando por completo , pero mis especulaciones pueden ser útiles si puedes combinarlas con alguna documentación sobre implementaciones de UML.

Ampliación de privilegios en el invitado con un exploit específico para el huésped

Ser root en el kernel invitado debería esencialmente permitirte hacer lo que quieras con los privilegios del PID que se usó para ejecutar este kernel.

Si la ejecución de un kernel UML se realiza con UID 0 (lo que supongo que es poco probable), el proceso no se ejecuta en un espacio de nombres PID, y el proceso se ha dejado con uno de los muchas capacidades que permiten privilegios completos , entonces usted está en problemas profundos y debe considerar que todo el host está contaminado.

Si ese proceso se ejecuta con UID 0 fuera de un espacio de nombres PID pero con algún tipo de aplicación de MAC, lo que puede hacer y cómo puede persistir depende del sistema específico. roles de SELinux pueden ser particularmente útiles para agregar protección adicional. También es probable que estés en problemas.

Si el proceso se ejecuta con otro UID, o está bloqueado en un espacio de nombres PID, es más probable que esté protegido. La VM invitada estará lista, pero debería haber límites a lo que su adversario puede hacer y el resto del sistema host podría estar protegido decentemente.

La escalada de privilegios con una vulnerabilidad también se aplica al host

No es improbable que el host de su kernel UML sea el mismo kernel. Por lo tanto, suponiendo que un atacante haya encontrado una forma de abusar de un kernel UML sería razonable suponer que también tiene un exploit para el kernel host, excepto por:

  • Los espacios de nombre y MAC pueden proporcionar cierta protección al garantizar que haya menos de la interfaz de Linux syscall disponible y que pueda evitar que su atacante ejecute el exploit.
  • Un exploit que se basa en un módulo no confiable que solo está presente en ese kernel invitado tampoco llevaría a un compromiso del host.
respondido por el Steve DL 30.07.2014 - 22:55
fuente

Lea otras preguntas en las etiquetas