Recomendaciones de seguridad para Joomla CMS

25/04/2014

Aplicación Web

Sección administrativa del sitio

Descripción

Establecer restricciones para acceder a la sección administrativa del sitio.

Recomendación

Filrar las direcciones IP que pueden acceder a la sección /administrator del sitio web aplicando la directiva Location. Las direcciones IP se pueden especificar como:

  • Direcciones IPv4 o IPv6 como 127.0.0.1 o ::1
  • Bloques VLSM o CIDR como 132.248.124.0/28
  • Nombres de host como www.seguridad.unam.mx
  • Wilcards como 132.248.10.*
		
		  Order Allow,Deny
		  Allow From 132.248.0.0/16
		
		

Referencia


Sección administrativa del sitio

Descripción

Establecer permisos adecuados a los archivos del sitio web.

Recomendación

Es necesario establecer de manera adecuada los permisos de los archivos y directorios del sitio web.

Adicionalmente establecer el grupo propietario de los archivos como el grupo del usuario que ejecuta el servidor web.

		chown –cR usuario:grupo-web /ruta/hacia/htdocs
		
		find /ruta/hacia/htdocs -type d -print0 | xargs -0 chmod -c 755
		find /ruta/hacia/htdocs -type f -print0 | xargs -0 chmod -c 644
		
		chown -cR usuario-web:grupo-web ./htdocs/directorio/uploads
		find ./htdocs/directorio/uploads -type d -print0 | xargs -0 chmod -c 755
		
  1. Cambiar el dueño y grupo a los archivos dentro del directorio DocumentRoot del sitio. Establecer el dueño de los archivos como el usuario que accede por SSH y que puede modificar los archivos del core del CMS.
  2. Establecer los permisos a los archivos y directorios de la aplicación web de manera que sólo el propietario pueda hacer cambios.
  3. Establecer permisos de escritura para el servidor web en los directorios donde se suben los archivos. Es necesario que se verifique en que directorios se necesita subir archivos y ejecutar un comando similar al siguiente:

Referencia


Directivas de Seguridad

Descripción

Evitar divulgar información sobre el sitio web

Recomendación

Es necesario establecer de manera adecuada los permisos de los archivos y directorios del sitio web.

		ServerTokens ProductOnly
		ServerSignature Off
		TraceEnable off
		
		expose_php = 0
		display_errors = 0
		
  1. Quitar la versión de Joomla de las cabeceras del sitio web.
  2. Establecer las directivas de seguridad en Apache httpd
  3. Establecer las directivas de seguridad en el archivo php.ini

Referencia


Actualización del sistema y los componentes

Descripción

Actualizar constantemente el core de Joomla así como los módulos que se agreguen al sitio.

Recomendación

Es necesario establecer de manera adecuada los permisos de los archivos y directorios del sitio web.

		ServerTokens ProductOnly
		ServerSignature Off
		TraceEnable off
		
		expose_php = 0
		display_errors = 0
		
  1. Descargar los paquetes de actualización directamente del sitio oficial de Joomla.
  2. Descargar los paquetes de actualización de cada módulo o componente agregado al sistema directamente desde el sitio web del fabricante del mismo.
  3. Establecer las directivas de seguridad en el archivo php.ini

Referencia

Documentos complementarios

Seguridad web

http://www.seguridad.unam.mx/documento/?id=17

http://www.seguridad.unam.mx/documento/?id=1143

http://www.seguridad.unam.mx/documento/?id=35

http://www.seguridad.unam.mx/documento/?id=1083

http://www.seguridad.unam.mx/documento/?id=1094

  • Aspectos Básicos de la Seguridad en Aplicaciones Web
  • Sugerencias de seguridad para sitios web
  • ¿Qué es y cómo opera un ataque de Cross-Site Scripting (XSS)?
  • Implementación de un Firewall de Aplicación Web con ModSecurity
  • Implementación de un Firewall de Aplicación Web con ModSecurity en Debian

Apache httpd

 

http://httpd.apache.org/docs/2.2/howto/auth.html

http://httpd.apache.org/docs/2.2/howto/access.html

http://httpd.apache.org/docs/2.2/sections.html

http://httpd.apache.org/docs/2.2/howto/htaccess.html

http://httpd.apache.org/docs/2.2/mod/core.html#serversignature

http://httpd.apache.org/docs/2.2/mod/core.html#servertokens

http://httpd.apache.org/docs/2.2/mod/core.html#limit

http://httpd.apache.org/docs/2.2/mod/core.html#traceenable

http://httpd.apache.org/docs/2.2/mod/core.html#directory

http://httpd.apache.org/docs/2.2/mod/core.html#files

  •  
  • Autenticación, autorización y control de acceso en Apache HTTPD
  • Secciones de configuración Directory Files y Location
  • Sintaxis de archivos .htaccess en Apache HTTPD
  • Ocultar la versión del servidor web con las directivas ServerTokens y ServerSignature
  • Restringir métodos HTTP con la directiva Limit y deshabilitar método TRACE
  • Restringir acceso a archivos con la directiva Directory o Files

PHP

 

http://php.net/manual/es/language.basic-syntax.phptags.php

http://php.net/manual/es/ini.core.php

http://php.net/manual/es/install.unix.php

  •  
  • Etiquetas de PHP
  • Directivas de php.ini
  • Instalación y configuración de PHP en UNIX

Liberación original: Viernes, 25 Abril 2014
Última revisión: Lunes, 28 Abril 2014

La Coordinación de Seguridad de la Información/UNAM-CERT agradece el apoyo en la elaboración y revisión de este documento a:

Andrés Hernández
Juan Pablo Colín
Pedro Guerrero

Para mayor información acerca de este documento contactar a:

UNAM-CERT: Equipo de Respuesta a Incidentes UNAM 
Coordinación de Seguridad de la Información 
Dirección General de Cómputo y Tecnologías de Información y Comunicación 
Universidad Nacional Autónoma de México 
E-Mail: [email protected] 
http://www.cert.org.mx
http://www.seguridad.unam.mx
ftp://ftp.seguridad.unam.mx
Tel: 56 22 81 69