¿Cuáles son los peligros de almacenar los archivos temporales del servidor web en la carpeta / tmp /?

9

He configurado mi primer servidor nginx accesible públicamente. Lo he configurado para usar una carpeta / tmp / nginx para almacenar archivos temporales. Esto incluye el cuerpo de solicitudes http, archivos proxy, etc. La carpeta / tmp está en una partición externa con privilegios nosuid, noexec y nodev. ¿Es esta configuración potencialmente peligrosa?

    
pregunta Galmi 11.02.2012 - 21:34
fuente

2 respuestas

5

La mayor preocupación es que un atacante puede usar un directorio temporal para almacenar código ejecutable, lo cual es un punto de apoyo útil cuando se explota su sistema. Casi siempre el / tmp tiene privilegios muy abiertos, de modo que cualquier proceso puede escribir en ellos (chmod 777). Como ejemplo, aproveché esta propiedad de / tmp cuando omitía AppArmor para obtener la ejecución remota de Codex en PHP-Nuke usando un El archivo local incluye la vulnerabilidad encadenada con un MySQL en outfile . Las cargas de archivos también se suelen almacenar en / tmp, que en PHP también puede convertir un vulnerabilidad del LFI a ejecución remota de código .

Independientemente de la plataforma, hay dos estrategias de permiso que debe adoptar. Lo racional es que un atacante va a usar tu aplicación en tu contra y está limitado por lo que la aplicación puede hacer.

  1. La aplicación web nunca debe tener acceso de escritura a ningún archivo     o carpeta dentro de la raíz web o cualquiera de los ejecutables de la aplicación     archivos. Un atacante usará esto para introducir una puerta trasera o para     realizar ataques de unidad por descarga en los clientes.

  2. Una aplicación web nunca debe poder ejecutar código que no sea en un archivo dentro del directorio de la aplicación. nunca usar eval() , a menudo es un atajo sucio y conduce a código remoto ejecución. En PHP puede configurar la configuración de open_basedir Opción tal que solo puede incluir archivos dentro de su aplicación. directorio. También puede rechazar el acceso a eval () y otros funciones php explotables usando hardened-php .

respondido por el rook 11.02.2012 - 23:56
fuente
2

Puede tener implicaciones de seguridad si otros usuarios de la caja tienen acceso a la carpeta tmp de la caja.

Si otros tienen acceso, pueden leer la carpeta tmp, extraer una ID de sesión y luego secuestrarla.

La carpeta tmp debe limitarse solo al servidor web.

    
respondido por el Chris Dale 11.02.2012 - 23:56
fuente

Lea otras preguntas en las etiquetas