Banners publicitarios de Rostelecom y cómo lidiar con ellos

imagen

Muchos ya saben que Rostelecom, con el apoyo de Mail.ru, ha comenzado a implementar sus pancartas publicitarias en sitios que no están protegidos por el protocolo HTTPS . Puede protegerse de su aparición en su sitio transfiriéndolo a HTTPS. Pero, ¿qué sucede si no tiene esa oportunidad o si le lleva demasiado tiempo? He hecho mi pequeña investigación y quiero compartir una forma simple pero efectiva contra esta infección.

Ya había investigaciones sobre este tema en Habré y confié en ellas:


Se sabe que los banners se implementan reemplazando el archivo JavaScript original por uno malicioso a través de una redirección. Y ya inserta un banner en la página del sitio web y carga el archivo original. Por lo tanto, al buscar virus, es imposible detectar de inmediato cómo apareció la publicidad en el sitio, porque los archivos originales no se modifican, y la redirección se realiza en un intervalo determinado y es bastante difícil detectarlo.

Para la investigación, necesita un sitio que use el protocolo HTTP y contenga archivos JS. Como ejemplo, tomé el sitio del Museo de Kirov . Con cierta periodicidad, se pueden observar pancartas en él.



Escribí una utilidad especial. Ella realiza una solicitud en una URL específica a intervalos regulares y compara el contenido recibido con el anterior. Si el contenido de la respuesta es diferente, se guarda para su estudio. Al analizar las solicitudes de un script pequeño http://muzey43.ru/js/script-eye.js, se encontró que siempre se devuelve el mismo contenido, no hay redireccionamiento.



Entonces, ¿cómo aparece el banner? En el estudio del código fuente de un sitio fue descubierto otro archivo JS que se descarga a través de HTTP, pero con un host diferente: http://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js. Al analizar esta solicitud, observamos periódicamente la recepción del contenido de un archivo malicioso.



La captura de pantalla muestra que el contenido malicioso se descarga aproximadamente dos veces por minuto, pero puede haber breves interrupciones en la redirección. El contenido del malware cambia cada vez al ofuscar el código y contiene un enlace al script original.

Lo más probable es que haya una cierta "lista blanca" de hosts para los que está prohibida la redirección JS. Por ejemplo, el sitio del Ministerio de Cultura de la región de Kirov . A pesar de que funciona a través del protocolo HTTP, los banners no aparecen en él. Pero en el sitio web de los museos de Kirov hay un banner, aunque no hay una redirección para sus scripts, pero a través de una redirección de un script desde otro host se incrusta un banner en él. Para eliminar la vulnerabilidad en este caso, lo más probable es que sea suficiente solicitar el archivo utilizando el protocolo HTTPS, es decir. simplemente reemplace la URL del script con

https://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js

Pero, ¿qué sucede si su sitio no está en la "lista blanca" y necesita usar sus propios scripts? Encontré una manera fácil de evitar la redirección de JS. Es suficiente agregar un parámetro arbitrario a la URL del script: https://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js?banner=offy la redirección no se realizará.



Esto probablemente se hace para que la redirección no interfiera con el funcionamiento de sitios JS dinámicos complejos, o los archivos necesarios simplemente se identifican por la extensión .js. Pero, en cualquier caso, es suficiente agregar parámetros aleatorios y banners publicitarios de Rostelecom a las URL de los scripts en las páginas de su sitio.

PDComo indican correctamente los comentarios, la solución más adecuada para los propietarios de sitios web será cambiar a HTTPS, especialmente porque ahora algunas empresas de alojamiento ofrecen instalar un certificado gratuito directamente desde el panel con un solo botón. Después de todo, mañana Rostelecom puede ajustar fácilmente el algoritmo de redireccionamiento y la solución dada anteriormente dejará de funcionar. Y solo bloquear una redirección por un filtro en el cliente, como algunos sugieren, solo puede resolver el problema del cliente: no habrá un banner, pero no habrá sustitución del script que reemplazó y la funcionalidad del sitio puede verse afectada.

All Articles