Los agujeros de seguridad en los plugins de WordPress que podrían permitir a otras personas husmear en tu sitio de WordPress son siempre malas noticias.
Incluso si lo que estás ejecutando es una configuración básica que no tiene cuentas de clientes y no recopila ni procesa ninguna información personal como nombres y direcciones de correo electrónico, ya es bastante preocupante saber que otra persona puede estar manipulando tu contenido, promocionando enlaces fraudulentos o publicando noticias falsas en tu nombre.
Pero los agujeros de seguridad en los plugins que utilizas para realizar pagos online en tu sitio web son otro nivel de preocupación.
Por desgracia, la popular plataforma de pagos electrónicos WooCommerce acaba de notificar a los usuarios lo siguiente:
El 22/3/2023, se descubrió una vulnerabilidad en WooCommerce Payments que, si se explota, podría permitir el acceso de administradores no autorizados a las tiendas afectadas. Inmediatamente desactivamos los servicios afectados y mitigamos el problema para todos los sitios web alojados en WordPress.com, Pressable y [WordPress VIP].
Afortunadamente, parece que el fallo se descubrió como parte de una prueba de penetración autorizada oficialmente realizada por un investigador de seguridad suizo. WooCommerce parece estar seguro que nadie más había descubierto el fallo antes de que ellos mismos lo descubrieran:
En cuanto se informó de la vulnerabilidad, iniciamos una investigación para averiguar si se había expuesto algún dato o si se había explotado la vulnerabilidad. Actualmente no tenemos pruebas de que se haya utilizado la vulnerabilidad fuera de nuestro propio programa de pruebas de seguridad. Hemos enviado una solución y hemos trabajado con el equipo de plugins de WordPress.org para actualizar automáticamente los sitios que ejecutan WooCommerce Payments 4.8.0 a 5.6.1 a las versiones parcheadas. La actualización se está extendiendo automáticamente al mayor número posible de tiendas.
¿Cambiar o no cambiar las contraseñas?
Curiosamente, WooCommerce sugiere que incluso si los atacantes hubieran encontrado y explotado esta vulnerabilidad, la única información sobre tus contraseñas de inicio de sesión que habrían podido robar habrían sido contraseña cifradas, por lo que la empresa ha escrito que “es poco probable que tu contraseña se haya visto comprometida”.
Como resultado, ofrece el consejo de que puedes pasar sin cambiar tu contraseña de administrador siempre que [a] utilices el sistema estándar de gestión de contraseñas de WordPress y no algún método alternativo de gestión de contraseñas del que WooCommerce no pueda responder, y [b] no tengas la costumbre de utilizar la misma contraseña en varios servicios.
Perdona que te lo preguntemos, pero no compartes contraseñas entre ningún sitio, y mucho menos compartes la contraseña de la cuenta de administrador de tu sistema de comercio electrónico, ¿verdad?
Sin embargo, la empresa sí te insta a “cambiar cualquier dato privado o secreto almacenado en tu base de datos de WordPress/WooCommerce”, en particular datos como tokens de autenticación, cookies de sesión o claves API, que son los nombres en jerga que se dan a lo que esencialmente son contraseñas temporales que tu navegador (u otro software) puede añadir a futuras peticiones web para obtener acceso inmediato.
Estas “contraseñas a tiempo parcial” están ahí para permitir que el servidor deduzca que has pasado por un proceso de inicio de sesión completo lo suficientemente reciente como para que se confíe en ti y en tus aplicaciones preautorizadas, sin obligarte a compartir tu contraseña principal real con cada aplicación o pestaña del navegador que vaya a hacer peticiones programáticas en tu nombre.
Como generalmente necesitas copiar y pegar los tokens de autenticación en otras aplicaciones para que puedan utilizarlos sin que tengas que escribirlos cada vez, normalmente se almacenan en forma de texto plano, no cifrado como tu contraseña principal.
En pocas palabras, aunque los delincuentes con acceso de administrador a tu cuenta no puedan recuperar el texto real de tu contraseña principal, normalmente pueden (y lo harán, si se les da la oportunidad de hacerlo), hacerse con el texto sin formato de cualquier token de autenticación que hayas creado para tu cuenta.
El proceso de “token de autenticación” es un poco como tener que mostrar una identificación con fotografía completa para pasar por la recepción de un edificio de oficinas, tras lo cual te dan una tarjeta de acceso que te permitirá entrar y salir tantas veces como quieras, y moverte por el interior del edificio, aunque solo durante un tiempo limitado.
Si alguien te roba el carné con foto, no le servirá de mucho a menos que se parezca a ti, porque los datos se examinarán minuciosamente cuando lo presente.
Pero si se hacen con tu tarjeta de acceso mientras estás dentro del edificio, pueden escabullirse con la excusa de ser tú, porque la dificultad comparativa de adquirir la tarjeta de acceso en primer lugar significa que se supone que es una forma fiable de identificarte, al menos temporalmente.
¿Qué hacer?
- Comprueba que tienes una versión parcheada del plugin WooCommerce Payments para WordPress. La empresa afirma que los sitios alojados en WordPress, Pressable y WordPress VIP ya deberían haber sido actualizados por ti, pero te recomendamos que lo compruebes de todos modos. Puedes encontrar instrucciones sobre cómo comprobarlo (y cómo parchearlo si es necesario) en el blog para desarrolladores de WooCommerce. Cada una de las nueve (!) versiones de producto soportadas oficialmente por la empresa, desde la 4.8.x hasta la 5.6.x, tiene su propia actualización.
- Haz que todos los administradores de tu sitio cambien sus contraseñas. WooCommerce sugiere que no deberías tener problemas aunque no cambies tu contraseña, porque los atacantes necesitarían descifrar primero los hashes de las contraseñas robadas. Pero, en primer lugar, no se suponía que los hashes de tus contraseñas estuvieran en riesgo de ser expuestos, por lo que cambiarlos ahora es una precaución sensata. Recuerda que los ciberdelincuentes no tienen que descifrar inmediatamente los hash robados. Solo tienen que descifrar uno o más de ellos antes de que tú invalides esos hashes cambiando las contraseñas a partir de las cuales se calcularon.
- Anula todas las claves actuales de la pasarela de pago y de la API de WooCommerce. Genera nuevas claves, como se explica en la documentación de WooCoomerce, para que cualquier dato de autenticación comprometido sea inútil para los ladrones que pudieran haberlo adquirido.