Magecart fue el malware detrás de las filtraciones de datos de British Airways y Ticketmaster hace unos años y, por desgracia, sigue vivo y coleando. De hecho, la última víctima parece ser OXO, una marca de artículos para el hogar.
Magecart inyecta Javascript malicioso en sitios web alojados en servidores comprometidos. Este Javascript se ejecuta en los navegadores de los clientes cada vez que visitan el sitio web y sustrae los números de las tarjetas de crédito de los consumidores, enviándolos al servidor del atacante. Los atacantes actualizan continuamente los nombres de dominio que utilizan para alojar estos scripts con el fin de evitar ser detectados.
Por suerte, los investigadores siguen a la caza de Magecart y es fácil detectar el compromiso buscando enlaces a este código malicioso. El otro día vimos un tuit que nos llevó a hacer una búsqueda rápida:
Encontrar Magecart
Cuando Censys encuentra hosts con el puerto 80 abierto durante un escaneo, emitimos una petición HTTP GET para la página raíz del servidor. Analizamos e indexamos la respuesta HTTP devuelta en campos de búsqueda, como el cuerpo HTML y la cabecera del servidor. Almacenamos ese contenido y permitimos a los usuarios buscar tanto en las cabeceras como en el contenido HTML en bruto.
Dado que Magecart opera inyectando Javascript malicioso en la página raíz de los sitios web, es fácil buscar sitios web infectados a través de Censys buscando el código malicioso conocido en el HTML sin procesar que almacenamos. Hemos compilado una lista de dominios asociados con Magecart a partir de la lista de dominios Magecart de este pulso OTX, buscamos cuerpos que coincidan con esa petición GET con la siguiente consulta:
https://censys.io/ipv4?q=%22dittm.org%22+OR+%22g-analytics.com%22+OR+%22google-analytics.is%22+OR+%22jquery-js.com%22+OR+%22analytic.is%22+OR+%22google-analytics.cm%22
Inspeccionamos manualmente los resultados de esta consulta para asegurarnos de que el HTML en el cuerpo HTTP(S) contiene un enlace de script a uno de esos dominios y no se trataba simplemente de una coincidencia de cadena en otra parte del cuerpo, un falso positivo. Si se tratara de un conjunto de resultados más amplio, esto podría automatizarse fácilmente con un script.
Detener Magecart
Más allá de las funciones de seguridad de los sitios web, como la segregación de derechos y permisos y las prácticas y actualizaciones de seguridad de las aplicaciones, el navegador puede aprovecharse para defender los datos del usuario final. La función de integridad de sub-recursos (SRI) permite tomar criptográficamente huellas dactilares de los scripts a los que se enlaza y forzar a que el código cargado coincida antes de ejecutarse. Aunque esto no impediría la alteración de un sitio web, impediría que el código se ejecutara en el cliente, bloqueando eficazmente Magecart y malware similar.
Un segundo mecanismo de defensa del navegador que hay que aprovechar es la función de política de seguridad de contenidos(CSP) de los navegadores modernos, que permite al propietario del sitio web controlar qué código del lado del cliente tiene derecho a ejecutarse cuando se carga desde el sitio web. CSP tiene una serie de controles que ayudarán a garantizar la integridad de los scripts presentados por el sitio web al cliente.