NUDAYOSH

BLOG · 2026-06-01

Auto-mitigation vs limpieza manual: por qué tu WordPress se debería defender solo

Si dependes de que alguien limpie manualmente cada vez que tu WordPress es atacado, llegas tarde. Hablemos de cómo funciona la auto-mitigation y por qué cambia las reglas del juego.

El modelo viejo: detectar → avisar → esperar a un humano

Durante años la seguridad de WordPress ha funcionado así: un plugin escanea tu web, detecta algo raro, te manda un email, y tú o tu "chico de informática" entráis vía FTP a ver qué pasa. Wordfence, Sucuri, MalCare — todos cabalgan ese modelo. Funciona. A medias.

El problema es la ventana entre detección y acción. Si un bot sube un shell PHP a wp-content/uploads/2026/06/photo.php a las 03:47 de la madrugada y tú no ves el email hasta las 09:15 del día siguiente, ese script ha tenido 5 horas y media para hacer estropicios: enviar spam, instalar puertas traseras, robar la base de datos, hacer deface, redirigir tráfico a malware.

Cinco horas y media. En internet, eso es un siglo.

Qué es la auto-mitigation

La auto-mitigation es lo contrario: detectar y actuar en el mismo segundo, sin esperar al humano. No es magia ni IA — son reglas muy concretas para cosas que nunca tienen un caso de uso legítimo. Por ejemplo:

  • Un .php nuevo en /wp-content/uploads/. Esa carpeta es para imágenes y PDFs subidos por usuarios. Si aparece código PHP ahí, es malware. Cero ambigüedad. Cero falsos positivos. La acción correcta no es "avisar al admin", es aislar el archivo inmediatamente.
  • Diez intentos de login fallidos consecutivos desde la misma IP en diez minutos. Eso no es un usuario despistado. Es un ataque de fuerza bruta. La acción correcta no es contar y avisar, es bloquear esa IP por unas horas.
  • Acceso al endpoint /wp-json/wp/v2/users sin login. Eso filtra los nombres de usuario de tus admins. El uso legítimo es exactamente cero. La acción correcta es devolver 403 directamente.

Si tienes esto activado, los ataques que antes te robaban una mañana entera de limpieza ahora no llegan ni a tocar el servidor. Por la sencilla razón de que tu web tiene tres segundos de paciencia antes de echarles.

Por qué no lo hacen todos los plugins

Dos razones, una buena y otra mala.

La buena: automatizar acciones tiene riesgo. Si el plugin se equivoca y aísla un archivo legítimo, te puede romper la web. Por eso la auto-mitigation tiene que ser conservadora: solo actúa sobre cosas que tienen cero probabilidad de ser un falso positivo. Un .php en /uploads/. Una IP con 10 fails. Un acceso a /users sin login. Patrones sin ambigüedad.

La mala: la limpieza manual es el modelo de negocio de las empresas grandes de seguridad WordPress. Sucuri vende limpiezas a 199$/incidente. MalCare a partir de 99$. Si tu plugin previene el incidente, su servicio premium pierde sentido. Hay un conflicto de intereses real.

¿Cuándo sí necesitas limpieza manual?

Sin engañarte: la auto-mitigation no cubre el 100% de casos. Hay escenarios donde sí hace falta una persona con SSH y ojos en el código:

  • Infección antigua. Si tu web ya estaba comprometida cuando instalaste el plugin, los backdoors enredados en el theme o en plugins legítimos no se eliminan automáticamente. Hay que ir a buscarlos uno por uno.
  • Malware sofisticado en wp-config.php o en el theme activo. Aquí no puedes aislar el archivo (rompes la web) ni revertir sin revisar (puedes perder cambios legítimos del admin). Necesitas a alguien que entienda qué hace cada línea.
  • Base de datos comprometida. Inyecciones SQL, usuarios admin nuevos, opciones modificadas, posts editados con redirects. Eso se limpia mirando registro por registro.

Para esos casos sigue habiendo humanos detrás. Pero deberían ser la excepción, no la regla. Y cuando ocurran, deberían costarte menos porque la mitigación automática ya lleva semanas conteniendo lo demás.

Cómo se implementa la auto-mitigation en NUDAYOSH

Te lo cuento sin marketing. Estas son las cuatro cosas que hace el plugin WordPress NUDAYOSH v0.2 de serie:

  1. Cuarentena automática de PHP en uploads. Cuando el File Integrity Monitor (FIM) detecta un archivo PHP nuevo dentro de wp-content/uploads/, lo mueve inmediatamente a wp-content/nu-quarantine/<timestamp>_<nombre>. La carpeta de cuarentena tiene un .htaccess con Deny from all, así que aunque el archivo siga existiendo, no se puede ejecutar ni descargar vía web. En su sitio queda un archivo de texto plano explicando qué pasó.
  2. Bloqueo de IPs por brute force. Cuenta los wp_login_failed en una ventana de 10 minutos. Si una IP supera 10 fails, queda bloqueada durante 4 horas en una tabla propia (wp_nudayosh_ip_blocklist). El bloqueo se aplica en el hook init de WordPress: si esa IP intenta tocar wp-login.php, xmlrpc.php o wp-admin, recibe 403 con cabecera Retry-After antes de que WordPress siquiera arranque.
  3. Hardening one-click. Un botón aplica de golpe cinco medidas: define DISALLOW_FILE_EDIT, desactiva XML-RPC, mete headers de seguridad (Strict-Transport-Security, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy), bloquea acceso directo a wp-config.php, y deshabilita la enumeración de usuarios vía REST API. Antes de modificar nada se hacen backups automáticos con sufijo .nu-backup-<timestamp> — todo es reversible.
  4. Notificación al dashboard centralizado. Cada mitigación se envía a tu cuenta en security.nudayosh.com. Si gestionas 25 webs, desde un solo sitio ves "esta semana se aislaron 4 malware y bloqueé 17 IPs en total".

El experimento mental

Si tu plan de seguridad es "Wordfence me avisa cuando algo va mal y yo voy y lo arreglo", hazte una pregunta: en las últimas vacaciones de Navidad, ¿revisabas el email el 25 a las 4 de la mañana? ¿El 1 de enero? Probablemente no. Pero los bots de ataque sí trabajaron. Los bots no descansan.

La auto-mitigation no es opcional cuando tu negocio depende de que la web esté arriba. Es lo mínimo. La limpieza manual es lo de después — para los casos complicados que necesitan a una persona pensando. Pero el primer round, el ruido constante, las olas de bots probando puertas: eso lo tiene que hacer la máquina, sin esperar a ti.

Cómo empezar

Si tienes WordPress:

  1. Descarga el plugin gratis: /security/plugin-wp/
  2. Súbelo a tu wp-admin (Plugins → Añadir → Subir plugin). Activa.
  3. Ve a NUDAYOSH → Mitigation y pulsa "Aplicar hardening ahora".
  4. Ya estás funcionando con auto-quarantine y auto-block IPs por defecto.

Si quieres además el dashboard centralizado (gratis si tienes 1 web, 29€/mes desde 3 webs), activa la opción "Integración SaaS" en la pestaña Configuración del plugin y se auto-registra. Sin tarjeta ni cuenta de Stripe para empezar.

Resumen

La seguridad WordPress moderna no es escanear y avisar — es detectar y actuar en el mismo segundo. Si tu plugin de seguridad solo manda emails, llegas tarde a casi todos los ataques.