El ataque a la cadena de suministro contra Brevo convirtió su infraestructura en un canal de distribución de malware. La plataforma francesa de marketing, antes conocida como Sendinblue, sirvió código malicioso a más de 100.000 sitios web durante cuatro horas del 14 de septiembre.
Entre sus clientes figuran eBay, Louis Vuitton y Michelin. También Trezor, el fabricante checo de carteras de hardware para criptomonedas, cuyos datos de contacto acabaron en manos de los atacantes. Un solo proveedor comprometido alcanzó a decenas de miles de organizaciones que nunca fueron atacadas de forma directa.
Qué ocurrió: 138 cuentas comprometidas y una llave que nadie rotó
La primera intrusión se produjo el 10 de septiembre. Los atacantes explotaron una vulnerabilidad en el sistema SSO SAML de Brevo y accedieron a 138 cuentas de cliente. En seis de ellas enviaron correos de phishing; en 43 exportaron la base de contactos. De ahí salieron las 347.000 direcciones vinculadas a Trezor que recibieron campañas fraudulentas.
Brevo cortó el acceso no autorizado y dio el asunto por cerrado. No lo estaba. Cuatro días después, el 14 de septiembre, los mismos actores volvieron por otra puerta: una clave API de Cloudflare incrustada en el código fuente, de larga vida y con permisos totales sobre la cuenta. Con esa llave podían crear Workers, rutas y registros DNS en las zonas de Brevo sin activar una sola alerta.
El Cloudflare Worker malicioso reescribía las respuestas en el edge. Los ficheros del servidor de origen nunca se tocaron, así que las comprobaciones habituales de integridad no vieron nada raro. La carga útil se añadía al vuelo, ya camino del navegador del visitante, y de paso eliminaba cabeceras de seguridad como la Content-Security-Policy.
La cadena de suministro no se ataca por lo que el proveedor hace mal, sino por la confianza que el cliente le regala.
La firma neerlandesa Sansec, que ha seguido el caso paso a paso, calcula que más de 100.000 sitios recibieron el código malicioso. La ventana de exposición corrió entre las 16:05 y las 20:13 UTC del 14 de septiembre. Al día siguiente, las dos compañías implicadas daban el entorno por limpio.
Nadie revisa el borde de la red porque nadie cree que el borde sea parte de la red. Ahí es donde vive el ataque.
Anatomía del ataque: el malware que se esconde de la lista de plugins

El segundo componente era una extensión de WordPress. Si un administrador visitaba su propia web con la sesión abierta, el plugin malicioso se instalaba sin pedir contraseña. Ni siquiera aparecía en el listado habitual de extensiones: vivía en la carpeta de must-use plugins y hablaba con su servidor de mando y control cuando le convenía.
Lo que circulaba por fuera era un clickfix: una ventana falsa de ‘demuestre que es humano’ que invitaba al visitante a pegar un comando en su terminal. El cebo solo se mostraba a quien podía hacer daño, administradores con sesión iniciada, y se ocultaba de rastreadores, desarrolladores, y escáneres de seguridad.
En VirusTotal, el plugin apareció camuflado como ‘Web Media Optimizer’. Detrás hay un dominio que casi nadie querría bloquear: sendibt1.com es una pieza legítima de la infraestructura de Brevo para el seguimiento de correo. Bloquearlo rompería las métricas de apertura y clic de miles de clientes. Los atacantes se limitaron a usar lo que ya estaba autorizado.
Dossier Moncloa: Ojos en la Sombra
Vector de amenaza. Estamos ante un ciberataque de cadena de suministro con abuso de infraestructura de confianza. No hay zero-day espectacular: hay una credencial mal guardada y mucha paciencia. Lo veo como el patrón dominante de este ciclo. SolarWinds en 2020 y MOVEit en 2023 enseñaron lo mismo: el eslabón débil no es el objetivo, es su proveedor.
Agencias y actores. No existe atribución pública a un Estado, y quienes la insinúan deberían presentar pruebas antes de señalar. Lo que sí sabemos es quién ataca —un grupo con conocimiento fino de la cadena de confianza de Cloudflare y de WordPress—, quién defiende —Brevo, Cloudflare y los equipos de cada cliente— y quién mira: la ANSSI francesa, la CNIL por la vía de protección de datos, ENISA y, en España, el CCN-CERT, que lleva meses insistiendo en el riesgo del software de terceros dentro de las cadenas de suministro. Me consta que buena parte del tejido empresarial español carga este tipo de scripts sin inventariar siquiera qué se ejecuta en su web.
Clasificación estimada. El incidente es público, así que no hay material clasificado: lo estimo como ‘sin clasificar pero sensible’. Otra cosa son los expedientes que se abran en París. La investigación de la ANSSI y el expediente de la CNIL irán por la vía reservada, y de ahí no trascenderá nada hasta que haya sanción o informe cerrado. El precedente que más me interesa no es SolarWinds, es NotPetya: el ataque que empieza en un proveedor y acaba costando miles de millones.
El punto débil del análisis es evidente: sin atribución técnica sostenida por dos fuentes independientes, cualquier hipótesis sobre el autor es especulación. Eso sí, hay dos detalles que no encajan con el ladrón de paso. El primero, que no haya demanda de rescate. El segundo, que la carga útil solo se sirviera a administradores con sesión iniciada y esquivara escáneres. Un actor paciente busca acceso, no caja rápida. Sostengo desde hace tiempo, y lo escribí en El quinto elemento, que el próximo 11S empezará con un clic, y que empezará por el sistema de alguien que no se ha actualizado.
Qué debe revisar usted si su web carga el script de Brevo
Si usted tiene un formulario, un widget de chat o el script de seguimiento de Brevo incrustado en su web, no tome el ‘ya está arreglado’ como final de la historia. Revise los registros de acceso por si hubo instalación o activación de una extensión en torno al 14 de septiembre. Compare lo que hay en disco con lo que muestra el panel de WordPress: este plugin concreto se oculta de esa lista. Y si alguien de su equipo pegó un comando de ‘verificación’ en su terminal ese día, esa máquina necesita un análisis en condiciones, no un encogimiento de hombros.
Le adelanto lo que viene. En las próximas semanas habrá actualizaciones de indicadores de compromiso desde el repositorio técnico de Sansec, notificaciones de Brevo a los clientes afectados y, con toda probabilidad, expedientes administrativos en Francia. Lo que no veremos es una atribución estatal, porque nadie tiene interés en ponerle nombre al autor mientras el caso siga abierto. Es la parte del oficio que el público nunca ve: el silencio administrativo también es una decisión de inteligencia.
Brevo revocó la clave, sacó la credencial del código, borró los dominios del atacante y limpió las cachés del edge. Todo correcto. Todo tarde. La pregunta que queda no es cómo entraron, sino por qué una plataforma que gestiona las comunicaciones de eBay o Louis Vuitton tenía una credencial con permisos totales escrita a mano en su propio código fuente. El siguiente proveedor que cometa ese error no tardará en aparecer.

