Atacantes de Magento infectan de nuevo sitios para robar datos bancarios

21/06/2018

Investigadores de seguridad han advertido sobre un nuevo truco que aprovechan cibercriminales para esconder su código malicioso, diseñado para introducir de nuevo la infección con la que roban información confidencial de sitios de comercio electrónico basados en Magento.

Si un administrador de un sitio ya había limpiado su página de esta amenaza, hay una posibilidad de que el sitio aún esté filtrando credenciales de acceso y detalles de tarjetas de crédito de los clientes.

Más de 25,000 tiendas en línea usan la plataforma de código abierto para comercio electrónico, conocida como Magento, lo cual las convierte en objetivos atractivos para los atacantes, y por ello aumenta la importancia de la seguridad tanto de la información personal como de consumo.

De acuerdo con los investigadores de Sucuri, quienes detectaron con anterioridad diversas campañas de malware contra Magento, los cibercriminales usan actualmente un método simple pero efectivo para asegurar que su código malicioso sea añadido de nuevo a un sitio web después de que ha sido removido.

Para lograr esto, los criminales esconden su código para robar tarjetas de crédito dentro del archivo de configuración predeterminada (config.php) del sitio con Magento, el cual viene incluido en el index.php principal y que se carga con cada vista a la página, lo cual eventualmente vuelve a inyectar el código ladrón en múltiples archivos del sitio web.

Dado que el archivo config.php es configurado automáticamente mientras se instala el gestor de contenido de Magento, usualmente se obvia recomendar a los administradores o dueños de los sitios que cambien el contenido de este archivo directamente.

Así funciona el código de re infección en Magento

El código que vuelve a infectar los sitios, y que fue descubierto por los investigadores, es bastante interesante pues está escrito en una manera que ningún escáner de seguridad puede identificar y detectar fácilmente, además de que difícilmente podría parecer malicioso ante un ojo no entrenado.

Los atacantes han añadido 54 líneas de código extra en la configuración por defecto del archivo. Más abajo se explica el código de re-infección malicioso, línea por línea, escritas dentro del archivo por defecto config.php.

En la línea número 27, los atacantes configuran la función error_reporting() como falsa con la intención de esconder mensajes de error que pudieran revelar la ruta del módulo malicioso.

Desde la línea número 31 a la 44, existe una función llamada patch() que ha sido programada para adjuntar el código malicioso que roba información confidencial dentro de los archivos legítimos de Magento.

Esta función patch() usa 4 argumentos, cuyos valores definen la ruta de una carpeta; el nombre de un archivo específico que reside en esa ruta necesita ser infectado, el tamaño de archivo requerido para verificar si es necesario re-infectar el archivo dado, un nuevo nombre de archivo que se creará, y una URL remota desde donde se descargará el código malicioso en tiempo real y se inyectará en el archivo de destino.

De la línea 50 a la 51, los atacantes han dividido la función base64_decode() in diversas partes para evadir la detección de escáners de seguridad.

La línea 52 incluye un valor codificado en base 64 que se convierte en http://pastebin.com/raw/ después de ser decodificado usando la función definida en las líneas 50-51.

Los siguientes cuatro grupos de variables de la línea 54 a 76 definen los cuatro valores que se requieren para pasar argumentos a la función patch() mencionada antes.

La última línea de cada grupo incluye un valor aleatorio de ocho caracteres que descargarán el código malicioso alojado en el sitio remoto de Pastebin al concatenarse con la variable del vínculo codificado en la línea 52, la cual eventualmente genera la URL final desde donde la función patch().

De la línea 78 a la 81, el atacante finalmente ejecuta la función patch() cuatro veces con diferentes valores definidos en las líneas 54 a 76 para infectar de nuevo el sitio web con el ladrón de tarjetas de crédito.

“Como regla general, en cada instalación de Magento donde se sospecha que ha habido un incidente, se debe verificar inmediatamente /includes/config.php”, advirtieron los investigadores.

Se debe hacer notar que una técnica similar puede ser usada en contra de sitios web basados en otras plataformas de gestión de contenido como Joomla y Wordpress para esconder código malicioso.

Puesto que los atacantes aprovechan vulnerabilidades conocidas para comprometer sitios web, se recomienda a los usuarios mantener actualizados el software de su sitio web y servidores con los parches de seguridad más actuales.

Artículos relacionados: