vulnerabilidad-en-cms-magento

Ataques contra tiendas online basadas en Magento, roban datos de tarjetas

Se ha descubierto una nueva campaña de ataques contra servidores web, cuyo objetivo es insertar malware sitios web dedicados a la venta online (comercio electrónico) y específicamente aquellas que utilizan el CMS Magento. Con ello persiguen recabar datos de tarjetas, para poder realizar cargos posteriores mediante el uso de los mismos.

Magento es uno de los CMS más populares del mundo, cuyo crecimiento ha sido constante a lo largo de los últimos años. Por eso no estamos hablando de un problema menor, sino de algo que podría afectar a decenas de miles de tiendas en todo el globo.

¿Qué es un CMS o Content Management System?

Hablamos de CMS como de un software encargado de proporcionarnos una interfaz gráfica (UI) que nos permita configurar y diseñar nuestra web de una forma fácil. Existen muchos, pero los más conocidos son WordPress -este blog, por ejemplo- así como Joomla o Drupal.

En la categoría de gestores de contenido para tiendas destacan Magento, Prestashop o Woocommerce (este último un añadido para WordPress).

La vulnerabilidad en Magento ha sido descubierta por Jeroen Boersma, un desarrollador PHP especializado en esta plataforma. Según parece, el malware espera de forma silenciosa, a la espera, hasta que un usuario realiza un epdido en la web afectada. Entonces, se cargará a sí mismo antes  de que el propio Magento (construído mediante PHP) sea capaz de ensamblar la página de compra.

Vulnerabilidad aprovechada en Magento

Si echamos la vista atrás, veremos que no es el primer intento de atacar tiendas online basadas en este popular gestor. Anteriormente se ha intentado con malwares que, por ejemplo, han intentado comprometer las compras mediante inyecciones de Javascript, afectando a las definiciones header o footer del código HTML en una base de datos.

En dichos casos, los desarrolladores pueden depurar los registros maliciosos con cierta facilidad, pero no es el caso del que hablamos hoy, que es algo más complejo, tal y como explicaba Willem de Groot en Bleeping Computer:

Antes se almacenaba malware en bases de datos, pero solo como texto. Se podía escanear un volcado de nuestra base de datos y saber si contenía datos maliciosos o no. Pero ahora, el verdadero malware se ejecuta dentro de la base de datos. Es la primera vez que observo malware escrito directamente en SQL. Antes, era construído mediante JS o PHP.

La infección tiene lugar cuando el atacante fuerza la carga de la URL /rss/catalog/notifystock/. Cuando se malware se haya instalado con éxito, ejecutará una solicitud SQL para comprobar el código en el encabezado, footer y otros bloques de Magento. Si no se “encuentra a sí mismo”, el malware se reactivará re-insertando su código.

vulnerabilidad-en-tiendas-magento

En este punto, el malware se hace con la información de medio de pago del cliente, pasando a controlar los datos de su tarjeta de crédito.

Una posible solución

El descubridor de la vulnerabilidad comenta en su blog un paso a seguir para asegurarnos de que nuestra tienda está limpia. Se trata de buscar desencadenadores que contengan código SQL sospechoso, como admin, js, script o las etiquetas <> de tipo HTML. En caso de encontrar elementos dudosos, se pueden borrar utilizando una sentencia como esta:

echo “DROP TRIGGER <trigger_name>” | n98-magerun db:console

Además, queda patente el hecho de que ya no es suficiente con escanear los archivos de un servidor web en busca de malware. En adelante, será necesario además buscar amenazas dentro de bases de datos. Ya sabéis, ¡acción…reacción!

Deja tu comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s