Tienes un plugin de seguridad instalado, lo pasas y te dice que todo está limpio, pero algo no cuadra: la web va rara, Google te avisa o tu hosting te ha suspendido. O al revés, el escáner te ha marcado veinte archivos y no sabes si borrarlos o si vas a cargarte la web. La duda de fondo es la misma: ¿sirve de verdad un plugin de seguridad para limpiar una web que ya está infectada? La respuesta corta es que sirve para detectar parte del problema, casi nunca para resolverlo entero. En esta guía separo lo que un escáner ve de lo que se le escapa, cuándo la versión gratuita te basta y cuándo estás pagando (o dejando de pagar) por la razón equivocada.
Qué hace de verdad un escáner de plugin y qué no puede ver
Un plugin de seguridad tipo Wordfence, Sucuri o similar hace básicamente tres cosas: compara los archivos del núcleo de WordPress con los originales para ver si alguno ha cambiado, busca en tus archivos patrones de código conocido como malicioso, y revisa si tus plugins tienen vulnerabilidades publicadas. Está bien, y para muchas webs es más que suficiente como red de aviso.
El problema es dónde mira. El plugin se ejecuta dentro de WordPress, así que solo ve lo que WordPress ve: la carpeta de tu instalación. No ve lo que hay por encima, ni las otras webs del mismo hosting, ni las tareas programadas del servidor, ni las cuentas de FTP. Y como funciona a base de reconocer patrones conocidos, un código nuevo o bien disfrazado le pasa por delante sin que salte nada. Que un escáner diga «no se ha encontrado malware» no significa «tu web está limpia»; significa «no he reconocido nada de lo que sé buscar en el sitio donde puedo mirar».
Detectar frente a limpiar: la diferencia que cuesta dinero
Aquí está el malentendido que más caro sale. Detectar es decir «este archivo tiene pinta rara». Limpiar es saber si ese archivo es malicioso entero, si es un archivo legítimo con dos líneas inyectadas, o si es un falso positivo; quitar solo lo malo; encontrar por dónde entraron; cerrar esa puerta; y comprobar que no hay una segunda puerta escondida. La detección la hace una máquina. La limpieza requiere criterio.
Muchos plugins ofrecen un botón de «reparar» o «eliminar», pero solo funciona con lo que el propio plugin reconoce. Con el núcleo de WordPress y los plugins del repositorio oficial va bien, porque puede compararlos con los originales. Con un archivo desconocido, o con código metido dentro de la base de datos, o con una puerta trasera fuera de WordPress, no puede hacer nada útil. Por eso una web puede pasar el escáner «limpia» y seguir reinfectándose: lo que la reinfecta está donde el plugin no llega. Ese mecanismo lo explico en dónde se esconden las puertas traseras y por qué se reinfecta una web.
Falsos positivos y el daño de borrar a ciegas
El escáner te marca una lista de archivos y aparece la tentación de borrarlos todos. No lo hagas sin mirar. Muchos plugins legítimos usan código comprimido u ofuscado por razones normales (rendimiento, protección de licencia), y el escáner los marca por precaución. Si borras a ciegas, puedes cargarte un plugin que funcionaba y dejar la web rota, o peor, borrar medio archivo del núcleo y provocar una pantalla en blanco.
La forma segura de actuar con la lista del escáner es esta: nunca borres un archivo del núcleo de WordPress ni de un plugin del repositorio; reinstálalos limpios desde cero, que es lo mismo pero sin riesgo. Ante un archivo que no reconoces en wp-content/uploads/ (donde no debería haber ningún .php), ese sí suele ser basura del atacante. Y antes de tocar nada, ten una copia del estado actual para poder volver atrás si te equivocas.
Por qué un plugin no ve lo que hay fuera de WordPress
Un ataque serio rara vez se queda dentro de la carpeta de WordPress, precisamente porque ahí es donde todo el mundo mira. Los sitios donde un plugin no puede entrar son justo los que un atacante experimentado usa para quedarse:
- Tareas programadas del servidor (cron), que vuelven a descargar el malware aunque limpies los archivos.
- El archivo
.user.iniophp.ini, que puede cargar código malicioso en cada petición sin tocar ningún.php. - Otras webs del mismo hosting. Si compartes servidor entre varias webs, una infectada reinfecta a las demás y el plugin de una no ve las otras.
- Cuentas de FTP y claves de acceso que el atacante añadió para volver cuando quiera.
Ninguno de esos sitios lo alcanza un plugin instalado dentro de WordPress. Por eso, en una infección que se resiste, el plugin te sirve como termómetro, no como cura.
Cuándo el plugin gratuito es suficiente
No todo necesita un servicio de pago, y conviene decirlo. Si tu web es sencilla (una web de presentación, un blog, sin tienda ni datos de clientes sensibles), si el aviso es pequeño y reciente, y si el escáner señala un par de archivos claros en uploads que puedes borrar, la versión gratuita de un buen plugin más un poco de cabeza pueden bastarte. Reinstalas el núcleo y los plugins, borras lo que sobra en uploads, cambias contraseñas y vigilas unos días. Muchos incidentes menores se resuelven así sin pagar a nadie.
La señal de que no te basta es la reinfección: si limpias, pasa el escáner en verde y a los dos días vuelve a estar sucio, deja de repetir el mismo paso. No es que el plugin sea malo; es que el problema está donde el plugin no puede llegar, y seguir escaneando no lo va a encontrar.
Qué hace un servicio de limpieza que un plugin no puede hacer
Un servicio de limpieza no es «el mismo escáner pero de pago». Es una persona con acceso completo al servidor, no solo a WordPress, que hace lo que un plugin no puede: revisa por fecha y a mano los archivos fuera de la carpeta de WordPress, mira las tareas programadas, las cuentas de FTP y la configuración de PHP, encuentra por dónde entraron y lo cierra, y comprueba las otras webs del mismo hosting si las hay. Es la diferencia entre pasar un detector de humos y que venga alguien a apagar el fuego y averiguar de dónde salió.
Eso también explica el precio: una limpieza profesional ronda los 500 euros no por el rato de borrar archivos, sino por el trabajo de asegurarse de que no queda ninguna puerta. Si quieres entender en qué se va ese dinero y cuándo compensa frente a hacerlo tú, lo desgloso en cuánto cuesta limpiar una web hackeada, y el procedimiento completo para hacerlo por tu cuenta está en cómo limpiar un WordPress hackeado.
Después de limpiar: vigilancia continua frente a escaneo puntual
Aquí es donde un plugin sí vuelve a ganar sentido, pero no como limpiador, sino como vigilante. El escáner de un plugin se ejecuta cuando te acuerdas de darle al botón, o una vez al día. Un atacante que consigue entrar puede subir su archivo, hacer el daño y borrarlo antes del siguiente escaneo. La vigilancia continua es otra cosa: se fija en el momento en que un archivo cambia y te avisa entonces, no horas después.
La lógica es la misma que la de un antivirus frente a una alarma conectada. El antivirus revisa; la alarma te llama cuando alguien abre la puerta. Después de un incidente, lo que evita el siguiente no es escanear más veces, sino enterarte en el acto de que algo se ha movido. Para eso está Pulse, que vigila los archivos de tu web las 24 horas y te avisa en cuanto algo cambia, desde 19 euros al mes: no sustituye a limpiar bien, pero es lo que hace que no tengas que volver a limpiar dentro de un mes.