Hardening CMS Joomla (CentOS) #Parte2

Continuando con la plantilla de aseguramiento de CMS Joomla
Leer la #Parte1

6.6 Robots

Generalmente, una vez que se implementa un sitio web y se pone en producción, el siguiente paso es la promoción. Ésta generalmente se realiza añadiendo el dominio en los buscadores más populares y aplicando ciertas técnicas (SEO y SEM) para hacer que nuestra página sea mostrada en los primeros puestos de las búsquedas. Para facilitar el rastreo e indexación por los crawlers (arañas o robots de los motores de búsqueda) se debe configurar adecuadamente el archivo robots.txt. A través de este fichero, mediante una serie de directivas, le indicaremos al crawler qué páginas puede indexar el buscador y cuáles no. Por lo general no nos interesa que el buscador añada las páginas de administración, configuración, etc. La última versión de Joomla por defecto genera en la carpeta raíz del sitio web un archivo robots.txt:


Que tiene la siguiente configuración:

   1: Disallow: /administrator/
2: Disallow: /cache/
3: Disallow: /cli/
4: Disallow: /components/
5: Disallow: /images/
6: Disallow: /includes/
7: Disallow: /installation/
8: Disallow: /language/
9: Disallow: /libraries/
10: Disallow: /logs/
11: Disallow: /media/
12: Disallow: /modules/
13: Disallow: /plugins/
14: Disallow: /templates/
15: Disallow: /tmp/

Inicialmente es una configuración válida siempre que se cumplan nuestras necesidades. Si queremos añadir un nuevo directorio o ruta a proteger contra la indexación de los buscadores, la incluiremos en la lista.

7 Eliminar Meta Generator de Joomla

Joomla por defecto genera en el código fuente de las web una etiqueta como la siguiente:

< meta name="generator" content="Joomla! - Open Source Content Management" / >

Esto revela la plataforma bajo la cual se encuentra desarrollada la web.

Para esto vamos a modificar el contenido a mostrar, el siguiente ejemplo está basado en Joomla 3.0.X.
Nos dirigimos al archivo “index.php” de la plantilla instalada y usada en el gestor Joomla
Ejemplo:

“/var/www/html/masa/templates/xxx_xxx”

En el buscaremos e insertamos el siguiente código

   1: // Ocultar Generator Tag
   2: $this->setGenerator(null);

8 URL'S Amigables

El usar URL amigables es una gran ayuda para el aseguramiento de Joomla ya que si se deja la opción que trae por defecto el gestor de contenido Joomla genera códigos arbitrarios que pueden llegar a presentar una vulnerabilidad.

Para esto en primer lugar cambiaremos las opciones  por defecto en la  configuración global de Joomla.



Para que surga efecto deberiamos haber ya renombrado el archivo htaccess.txt  a .htaccess. y el archivo web.config.txt a web.config.

9 Respaldo de información

Como todo sistema este no es la excepción y se debe contar con respaldo de la información de la carpeta del sitio como de la base de datos del mismo para cambio de versiones entre otras acciones.
para esto existen diversos modulos y/o Plugins o bien siempre existira ftp y un script.

10 Extensiones de tercero

Uno de los aspectos más atractivos de los gestores de contenidos y por lo tanto de Joomla es que mediante extensiones, plugins o módulos es posible ampliar las funcionalidades del sitio web que se implemente sobre esta plataforma.

En algunos casos estas extensiones son una vulnerabilidad para los sitios web ya que posiblemente se traten de extensión que carecen de procesos de revisión de código y seguridad.
Las premisas esenciales para instalar este tipo de aplicaciones serían:

  • Verificar el historial de vulnerabilidades. Evidentemente lo más recomendable es utilizar aplicaciones que no se encuentren en la lista de extensiones vulnerables (para más antiguas consultar esta otra lista). En caso contrario se está asumiendo un riesgo elevado del compromiso de la seguridad de la web.
  • Comprobar si está incluída en el Directorio de Extensiones de Joomla. En este portal se realiza un primer filtrado comprobando que la aplicación cumple unos estándares mínimos (tanto de usabilidad como de seguridad).
  • Página del desarrollador y comunidad de soporte. Este es un punto a tener en cuenta ya que aportará información acerca de cuánto tiempo lleva desarrollándose y el tipo de soporte con el que cuenta (foros, etc.). Adicionalmente en las web de los desarrolladores es posible comprobar el funcionamiento a través de una Demo antes de su instalación.
  • Versión nativa. Siembre se debe verificar que la extensión esté disponible para la versión de Joomla que se ha instalado. Esto evita tener que activar el modo herencia.
Como siempre realizar un analisis de vulnerabilidades al sitio. existen muchas herramientas para realizar esta accion y algunas especialmente dirigida para este CMS como pueden ser

Entre otros.

11 Servidor web

Para una mayor seguridad de los portales web se debe implementar el aseguramiento del servidor web APACHE en un post anterior comentabamos sobre hardening sobre los servidores web apache y nginx.
En el punto 7 de la #Parte2_Hardening_CentOS podemos encontrar mayor información sobre el aseguramiento en APACHE y en el punto 8 de la #Parte3_Hardening_CentOS podemos encontrar mayor información sobre aseguramiento a NGINX.

12 Actualizaciones

Como en cualquier aplicación o software que se precie, el mantener una política de actualizaciones es esencial con el objetivo de cubrir los agujeros de seguridad que se vayan descubriendo. En el caso de Joomla se debe proceder del mismo modo previa evaluación del impacto que una actualización pueda provocar como la incompatibilidad entre complementos, plugins, plantillas, etc. No obstante se debe considerar adecuadamente estos aspectos primando sobre todas los relacionados con la seguridad.

Generalmente, los procedimientos para actualizar el CMS Joomla suelen ser sencillos y varían ligeramente en función de si se trata de actualizaciones dentro de la misma rama (por ejemplo de de la v3.0.1 a la v3.0.2), o si es un cambio de versión (de la v3.0x a la 4.0.x). Los primeros únicamente requieren la sustitución de los archivos antiguos por los de la nueva versión. En el caso de la segunda opción, en ocasiones es posible hacerlos directamente pero por lo general requieren de una instalación limpia de la versión de Joomla! que se quiere instalar y realizar una migración de datos.
En el sitio oficial http://docs.joomla.org o en el proyecto en español http://www.joomlaspanish.org/ se puede encontrar información útil acerca de cómo actualizar entre las distintas versiones del gestor de contenidos.

De igual manera en esta plantilla de aseguramiento se recomienda suscribirse a servicios de información que nos permitan estar al día en relación a la aparición de nuevas versiones de Joomla! o el descubrimiento de agujeros de seguridad, que nos permitan actualizar o corregir los problemas lo más rápido posible.