Formjacking es el uso de código malicioso para intentar robar la información ingresada en los formularios de pago de sitios web de compras en línea. Básicamente, este código intercepta los datos ingresados por el cliente y los envía a un servidor en poder del ciberdelincuente.
Los datos interceptados incluyen el número de la tarjeta de crédito, la fecha de vencimiento, el nombre completo del titular y otros tipos de información de identificación personal.
La información robada se puede vender en la web oscura, o ser utilizada para intentar retirar dinero de la cuenta asociada.
Si sirve de consuelo, cabe destacar que la compra se completará con normalidad y el cliente recibirá los productos que ha adquirido.
Como funciona.
En el pasado, la mayoría de desarrolladores de páginas web empleaban editores como Microsoft Frontpage, Bluefish etc.
Por supuesto, no eran invulnerables, pero proporcionaban cierto control sobre el código insertado en las páginas.
Hoy en día, la mayoría de los sitios web modernos utilizamos múltiples soluciones tecnológicas:
- Sistemas de gestión de contenidos.
- Plantillas de terceros.
- Complementos como sistemas de pago con tarjeta.
- Software de comercio electrónico, como por ejemplo Magento.
- Sistemas de comentarios.
- Formularios de contacto.
Estas aplicaciones, excepto las diseñadas e implementadas por los propios administradores del sitio, son mantenidas por muchos proveedores diferentes repartidos por todo el mundo.
Y ellos son los encargados de garantizar que sus aplicaciones sean seguras, y de proporcionar actualizaciones y parches de seguridad.
Para ello se establece un contrato previo pago de una cantidad de dinero, normalmente de forma anual.
Pero muchas veces, por diversos motivos se deja de pagar, y las aplicaciones quedan desactualizadas, o acaban por presentar vulnerabilidades.
También es posible que el desarrollador discontinúe la aplicación, o cierre el chiringuito.
Esto ofrece a los piratas informáticos la posibilidad de atacar por varios frentes.
Codigo malicioso insertado en complementos y módulos
Por ejemplo, muchos insensatos implementan en sus sitios web frameworks, plantillas y otros complementos de pago obtenidos de modo ilegal, que acostumbran a tener código malicioso incrustado.
Si no tienen la experiencia suficiente para detectarlo y eliminarlo, pueden estar infectando su portal con puertas traseras y scripts maliciosos que ponen en riesgo los dispositivos de sus visitantes.
Código JavaScript para manipular un sitio web
Cuando alguien quiere visitar un sitio web, envía una solicitud desde su navegador al servidor donde está alojada la página, que responde devolviéndole un documento HTML.
Este documento HTML, la mayoría de veces, y en función del servidor, se envía a través de un conjunto de aplicaciones de seguridad como firewalls de aplicaciones web, conexiones seguras (SSL, TLS) etc.
Una vez recibidas por el navegador del visitante, las referencias a JavaScript de terceros que contienen se interpretan, ejecutan y el sitio web se carga en el navegador del usuario.
Un JavaScript de terceros, entre otras funciones legítimas, se puede utilizar para rastrear y registrar las visitas a la página, insertar anuncios publicitarios, botones de redes sociales y formularios.
Por lo tanto, no todo el código JavaScript es malicioso y no todos los servidores web son vulnerables.
Sin embargo, cualquier JavaScript de terceros alojado en un servidor externo puede convertirse en el catalizador de estos ataques, que viven fuera del perímetro de seguridad estándar. (WAF, SSL / TLS).
La naturaleza silenciosa de estos ataques permite que a veces puedan pasar desapercibidos durante meses o años, lo que hace que las soluciones de seguridad sean poco eficientes detectando este tipo de comportamientos.
Para inyectar el código malicioso, en la mayoría de los casos, los piratas informáticos aprovechan una vulnerabilidad en el servidor web, en un complemento de terceros, o aprovechando que un gestor de contenidos como Drupal, Joomla o PHP-Fusion está desactualizado.
¿Puedo protegerme del Formjacking?
Directamente no.
Debido a que el ataque ocurre en el lado del cliente, no se descarga ni instala ningún tipo de malware en el dispositivo de la víctima.
Tenemos que confiar en los procedimientos de seguridad de cada sitio que visitamos, que a veces no pueden o no quieren tomar las precauciones necesarias para garantizar que los atacantes no alteren su código.
Por lo general, no verificamos el código HTML de un sitio web antes de visitarlo para ver si contiene código JavaScript malicioso, e incluso si lo hiciéramos, la mayoría de nosotros no sabríamos que buscar.
Para evitar convertirnos en posibles víctimas podemos utilizar la autenticación multi factor en nuestra banca la línea, para confirmar la transacción antes de que el banco la autorice.
Aforunadamente la mayoría de bancos implementan sistemas de autenticación mediante firma digital antes de confirmar una compra en línea.
Otra buena idea es usar complementos en el navegador como bloqueadores de eventos JavaScript, que dificulten la entrada de código malicioso.
Luminous es una extensión experimental para Google Chrome y Mozilla Firefox, que identifica, analiza y bloquea código y eventos JavaScript en estos navegadores.
Usa tarjetas de crédito en lugar de tarjetas de débito para comprar en línea.
Si alguien utiliza engañosamente los datos de la tarjeta de crédito, en el peor de los casos solamente podrá gastar el límite establecido por la entidad bancaria.