Viernes, 21 Junio 2013 22:44

Seguridad en Joomla - ¿Porque es importante mantener el core del CMS actualizado?

Escrito por 
CMS:  Joomla! |  Versión:  Todas |  Nivel de dificultad:  Básico |  Tiempo estimado de lectura:  10 minutos


¿Porque es importante mantener el core del CMS actualizado?Vivimos momentos convulsos en Internet que amenazan la seguridad de los sitios webs de una u otra forma, bien exponiendo sus vulnerabilidades y haciendo que estas sean accesibles a script-kiddies que las exploten o bien negando la evidencia y arrojando oscuridad sobre fallos de seguridad en el código con el que se desarrollan las diferentes webs que se alojan en Internet.

Las evidencias hablan por si solas, más de 200.000 amenazas de malware aparecen a diario en todo el mundo y solo el 24% de las empresas reportan este tipo de infecciones, intrusiones o daños en sus sistemas y más del 66% de estas han sido atacadas con malware al menos una vez en el último año.

Según la Open Web Application Security (OWASP) estos son los riesgos asociados al uso de aplicaciones web en las empresas para 2013:

  • Ataques de Inyección.
  • Romper autenticación y gestionar sesiones.
  • Cross-Site Scripting (XSS).
  • Referencias inseguras a objetos directos.
  • Mala configuración de seguridad.
  • Exposición de datos sensibles.
  • Falta de la función de control de nivel de acceso.
  • Cross-Site Request Forgery (CSRF).
  • Uso de componentes vulnerables conocidos.
  • Redirecciones y reenvíos inválidos.

Puedes descargar desde el enlace siguiente el informe completo emitido por la OWASP.


¿Y como afecta todo esto a Joomla?

Todo dependerá de como de concienciado esté el administrador del sitio web (usuario o empresa) y de los niveles de seguridad que haya implementado en los sitios web que administre.

Puedes seguir el Feed de vulnerabilidades publicadas de Joomla, no oficial.


Decir que Joomla "no es vulnerable" es faltar a la verdad y hacer apología de que la seguridad por oscuridad es la mejor forma de proteger el CMS, craso error. Hay publicaciones en Internet que citan que solo el 5% de las vulnerabilidades de Joomla son atribuibles al core pero no es un dato que hayamos podido contrastar de forma fehaciente si bien ha decrecido considerablemente el número de vulnerabilidades que afectan al núcleo del CMS en relación a 2008, el año en que más vulnerabilidades fueron detectadas en Joomla.



Es como una terapia de autoconcienciación del problema, por parte del usuario o administrador, en la que tras repetirnos una y otra vez que "Joomla! es vulnerable" en la medida que los usuarios no lo protegen, no lo actualizan y no lo mantienen en forma, podemos llegar a un punto de inflexión, tras la consiguiente mentalización, de que el usuario es siempre el problema o la causa de que sus sitios web se vean afectados por malware, infecciones y ataques de diferente naturaleza.


¿Como de vulnerable es Joomla? en líneas generales. En comparación con otros CMS populares la cifra asusta un poco:



Llegados a este punto, en que tomamos conciencia de que el problema somos nosotros, podemos enfrentarlo aportando soluciones rápidas, fáciles de implementar y que con constancia y seguimiento darán sus frutos a corto y largo plazo.


¿Como afecta esto a mis sitio web desarrollado en Joomla?

Para responder esto primero vamos a exponer el timeline de versiones de Joomla y la importancia que tiene moverse dentro del contexto de fechas de estabilidad de una versión.

Desde el 16 de septiembre de 2005, fecha en la que fue liberada la primera versión del CMS, Joomla 1.0 (procedente de Mambo), se han sucedido numerosas versiones de seguridad y menores que han permitido al CMS evolucionar a un estadio de seguridad mayor, con funcionalidades muy mejoradas e implementaciones novedosas que ahora nos permiten disfrutar de un gestor de contenidos dinámicos estable y con mucho futuro por delante.

En el siguiente gráfico vemos que desde la liberación de Joomla 1.0 hasta la reciente liberación de Joomla 3.1.1 han pasado muchas cosas, pero principalmente han pasado muchas versiones que han supuesto correcciones, parcheos y en ocasiones reescrituras casi completas de parte del core del segundo CMS más utilizado del mercado.




¿Como se puede ver afectado mi sitio web Joomla?

Permisos incorrectos, uso de extensiones de terceros vulnerables no contrastadas, instalación indiscriminada de extensiones que luego no entran en producción pero se mantienen en el backend (fácilmente descubribles e instanciables), uso de contraseñas débiles y fácilmente deducibles, descarga de plantillas y extensiones desde sitios de dudosa reputación o poco confiables (warez, etc.) que incorporen código malicioso encodeado (eval64) que facilite puertas traseras una vez instalado en Joomla.

Ahora se añade un nuevo elemento al escenario del uso masivo de Joomla, los dispositivos móviles, que le confieren mayor facilidad de uso, acceso constante e inmediato desde cualquier parte y con ello nuevas brechas de seguridad explotables por parte de personas y sistemas automatizados que permanentemente escudriñan la red y escuchan las conexiones a servicios a la espera de usuarios incautos o confiados.


Medidas desesperadas

Hay mucha literatura en Internet sobre como segurizar sitios web Joomla de forma que estos sean más opacos a posibles ataques o intentos de hackeo, pero lo cierto es que algunas de estas medidas, que ciertamente suenan excesivamente desesperadas no son ni de lejos la solución ideal a llevar a cabo:

  • Ocultación de cabeceras que delaten el uso del CMS.
  • Modificación de rutas de /administrator para dificultar su acceso.
  • Establecimiento de reglas "deny from IP" en archivos .htaccess

Estas medidas y otras son fácilmente puenteables con unos pocos conocimientos sobre enumeración y algo de pen-testing.

Y otras muchas que a lo largo de estos años he podido leer en Internet de diferentes fuentes. Esto no quiere decir que no puedan funcionar, siempre que sean parte de un paquete de medidas disuasorias y pasivas que ayuden a fortificar el CMS frente a determinado tipo de ataques, lo que no dejará exento al sitio web de ser vulnerado.


¿Como protejo mi CMS Joomla?

Principalmente manteniéndolo siempre actualizado a la última versión estable de la rama en la que te encuentres operando (1.5, 2.5 o 3.) y descartando el uso en producción de ramas extintas, no soportadas y por ende muy vulnerables (1.0, 1.6 y 1.7).


Recomendaciones para mantener el core de Joomla siempre a punto (nótese que no hablamos de extensiones):

  • Trabajar siempre con ramas estables para sitios en producción.
  • Mantener Joomla siempre actualizado a la versión estable de la rama en uso.
  • Separar las instalaciones de pruebas que no estén en producción. (Protección con contraseña desde Panel de Hosting).
  • Utilizar permisos 755 y 644 para carpetas y archivos respectivamente.
  • Mantener configuration.php con permisos 444 cuando no se necesita modificar.
  • Evitar el uso de la Capa FTP en el backend.
  • Limitar la subida de determinadas extensiones al Hosting (.pl, .php, .txt) desde extensiones, Foros, etc.
  • Eliminar la carpeta /cgi-bin si no se van a utilizar script perl o C .cgi
  • Utilizar contraseñas de acceso al backend de más de 8 caracteres (*1).
  • Mantener una política de copias de seguridad a nivel usuario, independiente de la del servidor.
  • Evitar tener instalaciones residuales (pruebas, tests, etc.) en el Hosting en producción. Lo que no uses ¡eliminalo!.
  • Actualiza siempre que sea posible el core de Joomla desde el backend, Gestor de Extensiones, Actualizar.
  • Si tienes que parchear el core desde versiones vulnerables, utiliza los parches oficiales de joomlacode.org
  • Incluye el archivo index.html vacío en todas las carpetas de tu sitio web (excepto /public_html) para evitar que pueda listarse.
  • Instalar extensiones como RSFirewall, OSE Anti-Hacker, jHackGuard, Securitycheck, jFirewall AntiHacker o Incapsula para añadir una capa de protección extra desde el backend, gestionable por el usuario, al margen de las que establezca el servidor.

Esta lista puede aumentar si entramos en consideraciones menores, no sin importancia, sobre las versiones de PHP, MySQL, etc., o sobre los prefijos de las tablas de las bases de datos en uso y un sinfín de pequeñas cosas que juntas incrementan el número de posibilidades de que un sitio web sufra ataques por inyección, XSS o CSRF contra el core (omitimos los problemas derivados de las extensiones ya que no forman parte del estudio de este artículo).


Enlaces de interés que pueden ayudarte a estar mejor informado y obtener versiones estables:


Otros artículos publicados en el Blog de Webempresa sobre Seguridad en Joomla que pueden ser de utilidad:

Aumenta la seguridad de tu Joomla generando contraseñas seguras para Joomla 2.5.

Añade seguridad adicional a tu Joomla! con JSecure Lite.

¿Como detener los intentos de acceso no autorizados al backend de mi web Joomla 2.5 o 3.0?.

Seguridad en Joomla: Introducción a RSFirewall (I).

Seguridad en Joomla - Características de RSFirewall! (II).

Seguridad en Joomla - Monitorizar actividades sospechosas en Joomla con JHacker Watch.

Bloquear el SPAM en Kunena 2.x con RAntispam.

Restringir y notificar los accesos a Joomla con Login Protector.

Seguridad en Joomla! - Listando extensiones vulnerables en Joomla! 2.5 con Securitycheck.

Segurizar Joomla! 1.5 y 2.5 con jHackGuard.

Seguridad en Joomla! - Bloqueo de IPs/Rangos.

La seguridad en Joomla!.


No es fácil establecer un equilibrio entre la seguridad de un sitio web y su funcionalidad y el sentido común debe ser un elemento a tener en cuenta para obtener resultados positivos en términos de seguridad sin dificultar el uso del CMS a los usuarios.

La suma de una serie de medidas aplicadas dan como resultado un mayor nivel de seguridad. La seguridad absoluta no existe.


*1 - Es posible romper contraseñas de 8 caracteres en 5 o 6 horas aproximadamente.



¿Te ha resultado interesante este artículo?

Suscríbete para recibir consejos exclusivos para WordPress, Joomla y PrestaShop



Luis Méndez Alejo

Miembro del equipo técnico de Webempresa.
Coordinador de contenidos en el Blog y en Youtube.
Google+