Recomendaciones de seguridad para Joomla CMS
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
- 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.
- Establecer los permisos a los archivos y directorios de la aplicación web de manera que sólo el propietario pueda hacer cambios.
- 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
- Quitar la versión de Joomla de las cabeceras del sitio web.
- Establecer las directivas de seguridad en Apache httpd
- 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
- Descargar los paquetes de actualización directamente del sitio oficial de Joomla.
- Descargar los paquetes de actualización de cada módulo o componente agregado al sistema directamente desde el sitio web del fabricante del mismo.
- Establecer las directivas de seguridad en el archivo php.ini
Referencia
- http://docs.joomla.org/J1.5:Upgrading_1.5_from_an_existing_1.5x_version
- http://www.joomlablog.co.za/joomla-tips-a-tutorials/joomla-15/joomla-15-tutorials/104-how-to-update-joomla-15
- https://www.joomlashack.com/blog/tutorials/372-how-to-update-joomla-15-versions
- http://www.siteground.com/tutorials/joomla/upgrade-joomla.htm
- http://joomla-tips.org/secure-joomla/keep-your-joomla-core-up-to-date.html
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
OWASP
https://www.owasp.org/index.php/Input_Validation_Cheat_Sheet
https://www.owasp.org/index.php/Authentication_Cheat_Sheet
https://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet
https://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet
https://www.owasp.org/index.php/Web_Application_Security_Testing_Cheat_Sheet
- Validación de entradas
- Autenticación de usuarios
- Prevención de SQL Injection
- Protección de la capa de transporte
- Revisión general de seguridad a sitios web
Joomla
http://www.siteground.com/tutorials/joomla/joomla-security.htm
http://www.joomlasecurity.org/
http://docs.joomla.org/Verifying_permissions
http://docs.joomla.org/Security_Checklist/Hosting_and_Server_Setup
http://forum.joomla.org/viewforum.php?f=267
http://sourceforge.net/projects/joomscan/
http://sourceforge.net/projects/jscanner/
- Seguridad en Joomla
- Guías de seguridad en Joomla
- Herramientas de análisis de vulnerabilidades específicas para Joomla
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:
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