blog webempresa

La seguridad en Joomla!

por | Mar 31, 2011 | Aprender Joomla!

La seguridad en Joomla! – Capítulo I

Seguridad en Joomla!En este primer capítulo sobre la Seguridad en Joomla! vamos a dar un repaso a una de las partes básicas pero importantes de este CMS y muchas veces relegada a titular de “Actualización de extensiones y de la aplicación” centrándonos en las formas en que habitualmente es atacada una instalación con Joomla! y dejando de lado los ataques contra los lugares que las albergan ya que son materia más propia de administradores de sistemas (sysadminds) que del usuario final, el cual también tiene su cuota de responsabilidad a la hora de mantener segura su web.

Existe mucha literatura en Internet sobre como se comprometen los sitios web en producción y sus servidores, lo que llevaría muchos capítulos hablar de ello, nosotros trataremos de centrarnos en la detección de extensiones potencialmente vulnerables y el mantenimiento del sitio actualizado para evitar dejar flecos en la seguridad de nuestros sitios web.

Partimos de la base de que cualquier producto de software, por muy bueno que este sea, se convierte en un producto falible si este es vulnerable y en consecuencia afecta no solo a la seguridad de los datos que gestiona sino del lugar donde este se aloja.

En el caso de Joomla! seria ingenuo pensar que es una herramienta 100% segura, ninguna lo es si está conectada y accesible desde Internet o una intranet, ya que diversos factores van a propiciar que los fallos de programación afloren en circunstancias concretas, casi siempre provocadas externamente.

Ataque de un sitio web vulnerable

Cuales son los peligros que nos acechan directos contra la aplicación:

  • Ataques de monitorización
  • Ataques SQL: Inyección de código
  • Ataques LDAP: Inyección de código
  • Ataques Xpath: Inyección de código
  • Ataques a cadenas de conexión
  • Ataques de autenticación
  • Ataques por debilidades en el CGI
  • Ataques cross-site scripting o XSS

…y un largo etcétera.

Estadísticas de ataques

Prevenir es la regla

La prevención es sin duda el mayor aliado que todo usuario o desarrollador de sitios webs tiene para defenderse ante este tipo de situaciones adversas, y su destreza a la hora de detectar que elementos de su sitio web son vulnerables es fundamental para obtener resultados en el área de la prevención.

  • Conocer y mantener el ratio de actualizaciones del producto utilizado.
  • Documentarse acerca del estado de las actualizaciones de las extensiones utilizadas.
  • Recibir información externa de boletines o advisors de seguridad relativos a Joomla!
  • No realizar cambios en el “core” de Joomla! que nos condicionen en futuras actualizaciones, utilizar técnicas “overrides” si es posible.
  • Ser escrupulosos en los ciclos de actualización del “core” a medida que son liberados oficialmente.
  • Llevar un seguimiento más concreto sobre las extensiones en uso en sitios en producción y actualizarlas llegado el caso.
  • Disponer de una política “real” de copias de seguridad de los sitios en producción.
  • Crear planes secundarios automáticos de copias de seguridad.
  • En función del tipo de web y sus contenidos, habilitar planes extra de monitorización en “tiempo real” si esto fuese preciso.
  • Apenas son unas pinceladas que deberíamos recoger dentro de nuestra metodología de trabajo con sitios webs y en particular de políticas dirigidas a la seguridad de nuestros datos o de terceros, pues no podemos olvidar en este escenario la obligación adquirida en virtud de la aplicación de la Ley de Protección de Datos de Carácter Personal que nos obliga a mantener la custodia de los datos de nuestros usuarios.

    Sugerencias a tener en cuenta para reforzar la seguridad en Joomla!:

    • Mantener el “core” de Joomla! siempre en la última versión estable.
    • Actualizar las extensiones a medida que son liberadas por sus autores.
    • Proteger el acceso a /administrator.
    • Modificar el usuario “Admin” que por defecto se configura en la instalación.
    • Proteger el archivo configuration.php.
    • Eliminar referencias en tags y metadescripciones a “Joomla!”.
    • Hacer un uso adecuado de robots.txt y de htaccess.
    • Mantener los permisos adecuados en carpetas y archivos.
    • Utilizar extensiones Antivirus y Cortafuegos en el backend de Joomla!.
    • Instalar extensiones que automaticen las copias de seguridad.

    Verificación de la versión estable de Joomla!

    Mantener actualizado Joomla! su núcleo (core) es la parte más importante a tener en cuenta por el usuario o webmaster que gestione sitios Joomla!, principalmente cuando se trata de muchos sitios, lo que implica tener mayor control y a veces menos tiempo para llevar un seguimiento de todas las instalaciones en producción.

    Verificar de forma manual cual es la última versión estable es un proceso cuando menos sencillo, para ello podemos visitar el sitio web de anuncios de Joomla.org y leer las noticias de las última liberaciones que por regla general siempre incluyen un acceso directo a los nuevos packs y a sus correspondientes actualizaciones de versiones anteriores.

    En los siguientes enlaces podemos encontrar información relativa a la liberación de las últimas versiones y los packs de actualización para el idioma en uso:

    Una vez descargado el correspondiente pack de actualización el proceso siguiente siempre debería ser realizar una copia de seguridad de Joomla! y de la base de datos en uso, bien desde el panel de administración del Hosting o con extensiones como Akeeba Backup y descargar dicha copia al PC para no ocupar espacio de forma innecesaria en el Hosting.

    En el siguiente vídeo podemos ver como seria el proceso de actualización del pack de Joomla! una vez descargado:

    Realizada esta acción lo siguiente seria centrarse en las extensiones disponibles instaladas en la web en uso, tarea esta tediosa pero importante ya que es uno de los motivos más frecuentes de ataques contra sitios webs, las extensiones vulnerables o des-actualizadas.

    El proceso manual para verificar de forma rápida y visual que extensiones tenemos instaladas y que cual es su versión es accediendo al backend de Joomla, Extensiones, Instalar/Desinstalar y acceder a “Componentes”, “Módulos” y “Plugins” y revisar en la columna “Versión” la que tenemos instalada de cada una de las extensiones listadas y posteriormente recurrir al Joomla! Extensions Directory y mediante el uso del buscador localizar las instaladas y verificar cual es la última versión liberada. Actualmente el JED disponibiliza más de 7000 extensiones, por lo que es difícil no encontrar alguna de las que utilicemos salvo que no este listada porque esta incumpla la licencia GPL bajo la que deben recogerse aquellas inscritas en este directorio de extensiones, en cuyo caso recurriríamos a un metabuscador (Google, Yahoo, etc.) para localizar la web del autor y verificar la versión última disponible.

    – Joomla! Extensions Directory: http://extensions.joomla.org/

    Otra opción es utilizar alguna de las extensiones disponibles en el JED para automatizar en la medida de lo posible el control de versiones y el proceso de actualización de las mismas, las cuales deben utilizarse siempre con la debida cautela y atendiendo al funcionamiento descrito para las mismas por parte de sus desarrolladores. Existen varias disponibles de las que destacamos las siguientes:

    En este capítulo nos vamos a centrar en el uso de JA Ext Manager, por considerar que es una extensión bastante completa, que cubre con creces el control de extensiones de terceros previa configuración de las fuentes y su manejo por parte del usuario final y el administrador son bastante sencillos.

    Esta extensión está liberada bajo licencia GPL Non-commercial por lo que su uso es libre y podemos descargarlo desde la página de JoomlArt sin tener que estar suscritos a ningún plan de los ofertados por este desarrollador de plantillas y extensiones. Se trata de un componente cuya instalación es la misma que para cualquier otra extensión en Joomla! y actualmente se encuentra disponible para la rama 1.5 y la 1.6.

    Para más información sobre el uso de la extensión se puede visitar el Wiki de JoomlArt donde (en inglés) podemos encontrar los detalles de la misma.

    Vídeos en el Canal de Youtube de JoomSolutions sobre la extensión en Youtube (en ingles):

    https://www.youtube.com/watch?v=bruMQxudvdI&fmt=22

    https://www.youtube.com/watch?v=MaiCRUF2pQI&fmt=22

    Referencias a tener en cuenta:

    Lista de enlaces recomendados y Advisors de Joomla!:


    Acrónimos utilizados en este artículo

    – JED: Joomla! Extensions Directory
    – CMS: (Content Management System) Sistema de Gestión de Contenidos
    – JA : JoomlArt – Desarrollador de plantillas y extensiones.

    ¿Te ha resultado útil este artículo?

Promo hosting noviembre