Un ataque masivo a la cadena de suministro. comprometió 93 temas y complementos (plugins) de WordPress con una puerta trasera. Esta puerta trasera brinda a los atacantes acceso completo a los sitios web.
En total, los ciberdelincuentes comprometieron 40 temas y 53 complementos pertenecientes a AccessPress. AccessPress es un desarrollador de complementos de WordPress que se utilizan en más de 360,,000 sitios web activos.
El ataque fue descubierto por investigadores de Jetpack, los creadores de una herramienta de seguridad y optimización para sitios de WordPress. Ellos descubrieron que se había agregado una puerta trasera de PHP a los temas y complementos.
Jetpack cree que un actor de amenazas externo vulneró el sitio web de AccessPress para comprometer el software e infectar más sitios de WordPress.
Una puerta trasera para dar un control completo
Tan pronto como los administradores instalaron un producto AccessPress comprometido en su sitio, los actores agregaron un nuevo archivo “initial.php” en el directorio del tema principal y lo incluyeron en el archivo principal “functions.php”.
Este archivo contenía un payload codificado en base64 que escribía una webshell en el archivo “./wp-includes/vars.php“.
Payload codificado escribiendo el webshell
El código malicioso completó la instalación de la puerta trasera decodificando el payload e inyectándolo en el archivo “vars.php”. Esta acción, esencialmente le da a los atacantes control remoto sobre el sitio infectado.
La única forma de detectar esta amenaza es usar una solución de monitoreo de integridad de archivos. Esto porque el malware elimina el instalador del archivo “initial.php” para cubrir sus huellas.
De acuerdo con los analistas de Sucuri que investigaron el caso para descubrir el objetivo de los atacantes, los actores de amenazas usaron la puerta trasera para redirigir a los visitantes a sitios de estafa y descarga de malware. Por lo tanto, la campaña no fue muy sofisticada.
También es posible que los atacantes hayan usado este malware para vender el acceso a sitios web con puerta trasera en la web oscura. En caso que el objetivo haya sido este último escenario, sería una forma efectiva de monetizar una infección a gran escala.
¿Cómo saber si estoy afectado?
Si has instalado uno de los complementos o temas comprometidos en tu sitio, eliminarlos, reemplazarlos o actualizarlos no te ayudará mucho. Estas acciones no eliminarán ningún webshell que pueda haberse plantado a través de él.
Como tal, recomendamos a los administradores de sitios web que analicen sus sitios en busca de signos de compromiso haciendo lo siguiente:
- Verificar tu archivo wp-includes/vars.php alrededor de las líneas 146-158. Si ves una función “wp_is_mobile_fix” allí con algún código ofuscado, haz sido comprometido.
- Consultar tu sistema de archivos para “wp_is_mobile_fix” o “wp-theme-connect” para ver si hay archivos afectados
- Reemplazar tus archivos principales de WordPress con copias nuevas.
- Actualizar los complementos afectados y cambiar a un tema diferente.
- Cambiar las contraseñas de wp-admin y de la base de datos.
Jetpack ha proporcionado la siguiente regla YARA. Esta se puede usar para verificar si un sitio ha sido infectado y detectar tanto el instalador de la puerta trasera como la webshell instalada.
rule accesspress_backdoor_infection { strings: // IoC's for the dropper $inject0 = "$fc = str_replace('function wp_is_mobile()'," $inject1 = "$b64($b) . 'function wp_is_mobile()'," $inject2 = "$fc);" $inject3 = "@file_put_contents($f, $fc);" // IoC's for the dumped payload $payload0 = "function wp_is_mobile_fix()" $payload1 = "$is_wp_mobile = ($_SERVER['HTTP_USER_AGENT'] == 'wp_is_mobile');" $payload2 = "$g = $_COOKIE;" $payload3 = "(count($g) == 8 && $is_wp_mobile) ?" $url0 = /https?:\/\/(www\.)?wp\-theme\-connect\.com(\/images\/wp\-theme\.jpg)?/ condition: all of ( $inject* ) or all of ( $payload* ) or $url0 }
Puertas traseras detectadas en septiembre
Jetpack detectó por primera vez la puerta trasera en septiembre de 2021. Y, poco después, los investigadores descubrieron que los atacantes habían comprometido todos los complementos y temas gratuitos pertenecientes al proveedor.
Jetpack cree que los complementos de pago de AccessPress probablemente se vieron comprometidos, pero no los probó, por lo que esto no se puede confirmar.
Es probable que la mayoría de los productos se hayan visto comprometidos a principios de septiembre a partir de los registros de tiempo.
El 15 de octubre de 2021, el proveedor eliminó las extensiones del portal de descarga oficial hasta que se ubicó y solucionó el punto de compromiso.
El 17 de enero de 2022, AccessPress lanzó nuevas versiones “limpias” para todos los complementos afectados.
Sin embargo, los temas afectados aún no se han limpiado. Por lo tanto, migrar a un tema diferente es la única forma de mitigar los riesgos de seguridad.
Los usuarios de complementos y temas de AccessPress pueden leer la publicación de Jetpack para obtener una lista completa de los productos corregidos.
Hasta el cierre de esta nota AccessPress no ha brindado su postura oficial sobre el incidente de seguridad.