Permisos de archivos correctos

Cuando hablamos de seguridad web, uno de los puntos principales a tener en cuenta es tener los permisos de archivos correctos.
Pensemos que en realidad lo que estamos sirviendo a través de nuestra web, no son más que ficheros, que se ejecutan y generan unos resultados.
Permitir que ciertos usuarios puedan escribir o ejecutar archivos, puede suponer una brecha de seguridad grave, pudiendo incrustar código malicioso, nuevo archivos o correr scripts que nos pongan en compromiso.
Pero, ¿cuales son los permisos de archivos correctos?
En un entorno de producción, visible al público, deberíamos tener:

  • Permisos 644 para los archivos.
  • Permisos 755 para las carpetas.

¿Qué nos indican estos números?

Permisos de archivos (0644)

6 (110): Permisos de lectura y escritura para el dueño del archivo (quien lo creó)
4 (100): Permisos de sólo lectura para los miembros del grupo del dueño del archivo.
4 (100): Permisos de sólo lectura para el resto de usuarios.
Es decir, que salvo el dueño del archivo, ningún otro usuario podrá modificar el archivo o ejecutarlo.

Permisos de carpetas (755)

7 (111): Permisos de lectura, escritura y ejecución sobre la carpeta para el dueño de la carpeta (quién la creó)
5 (101): Permisos de lectura y ejecución sobre la carpeta para los usuarios del mismo grupo que el dueño de la carpeta.
5 (101): Permisos de lectura y ejecución sobre la carpeta para el resto de usuarios.
Es decir, sólo los dueños de las carpetas podrá escribir en ellas.

Permisos especiales

Hay una serie de bits especiales para los archivos que otorgan ciertos privilegios extras.
Entre ellos vamos a destacar SUID y SGID que hacen que el usuario que ejecuta un determinado archivo adquiera los privilegios del usuario (si es SUID) o grupo (SGID) que creó el archivo.
Como se puede pensar esto puede ser muy grave, ya que si por algún motivo un usuario root crea un archivo y tiene estos bits activos, el usuario X que pueda ejecutar dicho archivo, tendrá temporalmente los privilegios de root.
En este artículo podemos leer más información sobre dichos archivos.

Acabamos de ver que tener en cuenta los permisos de archivos es de prioridad máxima, pero no olvidemos tener en cuenta otros aspectos que iré incluyendo en la sección de Seguridad WordPress del blog.