Actualización de seguridad crítica para Joomla! (3.7.1)

Como ya comenté la semana pasada en el artículo del lanzamiento de Joomla! 3.7.0, hoy se ha liberado una nueva versión que corrige varios bugs “normales” y uno de alta prioridad que afecta al núcleo del CMS. Si la actualización corrigiera sólo bugs normales, no sería necesario instalarla de forma inmediata. Por desgracia, éste no es el caso y conviene aplicar la actualización lo más pronto posible. Antes de aplicar la actualización es aconsejable guardar una copia de seguridad usando las extensiones de Joomla! o el panel de control del servidor.

La inyección SQL

Joomla!, al igual que muchas aplicaciones Web, usa una base de datos para guardar los artículos, los comentarios o la organización de la Web. Para introducir o modificar datos se tienen que superar una serie de validaciones. La inyección SQL aprovecha un fallo de programación para saltar esas validaciones. De esa forma, un tercero puede modificar el contenido de la base de datos y al mismo tiempo de la Web.

Supongamos que el intruso accede a un artículo e introduce un script que descarga programas dudosos en el equipo del usuario. Cualquier usuario que visite ese artículo descargará los archivos y podría infectarse. Cuando se detecta un bug de este tipo hay que actualizar la aplicación Web con el fin de cerrar la vulnerabilidad que usa el atacante. En el caso de Joomla! es suficiente con aplicar la actualización que ha salido hoy.

Componentes de un base de datos

Componentes de un base de datos

La seguridad en una aplicación Web

Mantener una página Web incluye, además de generar contenido, tomar medidas de protección del servidor. Aunque sea una Web con poco público objetivo, puede tener muchas visitas no deseadas que intentan acceder al contenido del servidor. Se puede lograr a través de extensiones no actualizadas o de un control de accesos débil.

Acceso a través de extensiones no actualizadas

Las extensiones permiten ampliar las funciones que tienen los gestores de contenido. A lo largo de su vida útil se pueden encontrar fallos de seguridad que permiten que un tercero acceda a recursos restringidos del servidor. Si el autor de la extensión es activo, al poco tiempo de recibir un reporte saca una nueva versión que lo corrige. ¿Qué pasa si las páginas que usan la extensión no la actualizan?

El atacante intentaría aprovechar el fallo de seguridad para acceder al servidor. Para evitarlo se pueden tomar varias medidas. La primera es tener siempre el sistema actualizado al día. La segunda es usar sólo extensiones que tengan soporte. Una extensión puede ser muy buena y no tener soporte. Por último hay que instalar sólo las extensiones necesarias.

Acceso usando las credenciales del usuario

Otro escenario diferente se aplica en parejas usuario / contraseña que sean sencillas de adivinar. Para acceder a un gestor de contenidos hace falta conocer el usuario y la contraseña (hay excepciones). Si el usuario es el mismo que aparece como autor de las entradas, el atacante ya tiene el primer elemento. Con la contraseña la cosa es un poco más complicada pero no tanto. Una buena contraseña tiene que ser fácil de recordar pero al mismo tiempo incluir números, letras o caracteres extendidos. Nunca hay que usar una palabra de diccionario.

Por ejemplo, como contraseña se pone el nombre de una espada de una serie de libros. No es un nombre común y sería complicado para un tercero acertarlo. El problema es que hay diccionarios de contraseñas comunes. Un atacante sólo tiene que usar un diccionario de ese tipo y podría lograr el acceso. Este tipo de ataque se puede limitar mucho limitando el número de parejas usuario / contraseña que prueba el atacante.

La identificación en dos pasos

Vamos a ponernos en el peor de los casos. El atacante tiene el usuario y la contraseña . Con esos datos puede acceder al gestor de contenidos… siempre que no esté activada la identificación en dos pasos. Al acceder a la Web se pide un código que sólo se muestra en el teléfono del usuario legítimo. No es complicado de usar y da mucha robustez al acceso.

Conclusiones

Junto al bug que afecta al core de Joomla! he comentado varias formas en las que un tercero podría acceder al gestor de contenidos y al servidor. Es un error pensar que una Web consiste únicamente en generar contenidos. Proteger esos contenidos es vital. Para lograrlo es obligatorio tener el sistema actualizado siempre. Dependiendo del escenario, es mejor que algo se rompa en la actualización a que un tercero logre acceder al servidor.

Aún contando con el sistema actualizado hay que vigilar también los accesos al panel de control. Una Web está accesible a todo el mundo y recibirá peticiones las 24 horas del día. En esas peticiones habrá peticiones de usuarios legítimos y de usuarios malignos. Un usuario / contraseña fuerte dificulta el acceso no autorizado. Si a eso se le suma la identificación en dos pasos se puede tener un sistema muy robusto a los ataques.

Éstas medidas no son las únicas, daría para una serie de artículos explicar las formas de asegurar un servidor, pero si son de las más efectivas.

 

0 comentarios

Dejar un comentario

¿Quieres unirte a la conversación?
Siéntete libre de contribuir

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *