En resumen: un escáner de malware para sitios web encuentra sobre todo patrones conocidos en archivos o en la página servida. El código nuevo y ofuscado, las puertas traseras en la base de datos, las cuentas ajenas, las tareas cron y las claves SSH suelen quedar invisibles. Por eso, «nada encontrado» no significa «limpio». Una revisión solo es fiable combinando escáner, comparación con el original, revisión de la base de datos y del sistema, y vigilancia del comportamiento.
La falsa calma tras la marca verde
Tras PHP2Shell, muchos responsables han hecho lo más obvio: ejecutar un escáner. Un servicio en línea revisa la página de inicio, un plugin de seguridad recorre el directorio web y el resultado es verde. Con ello parece respondida la pregunta de si ocurrió algo antes del parche.
El problema está en el principio. La mayoría de los escáneres comparan contenidos con patrones de malware conocido. Pero para las vulnerabilidades CVE-2026-109618 y CVE-2026-109619 no hay indicadores de compromiso (IoC) publicados y confirmados; la detección se basa en el análisis del comportamiento. Un escáner no puede buscar rastros que nadie conoce. En el mejor de los casos encuentra malware genérico descargado tras una intrusión, siempre que siga patrones conocidos.
Eso no hace inútiles a los escáneres. Solo significa que su resultado debe interpretarse correctamente. Qué señales cuentan más allá de los escáneres lo describe ¿Ya estoy comprometido?.
Escáneres de malware para sitios web: tres modelos
| Modelo | Qué ve | Qué no ve |
|---|---|---|
| Escáner externo (servicio en línea) | páginas servidas, scripts incluidos, redirecciones, listas de bloqueo | archivos, base de datos, cuentas, todo lo que solo se sirve bajo ciertas condiciones |
| Escáner en el CMS (plugin o extensión) | archivos del directorio web, en parte contenidos de la base de datos, comparación con archivos del núcleo | nivel del sistema, tareas cron, SSH; se ejecuta en un sistema posiblemente comprometido |
| Escáner en el servidor (basado en firmas) | todos los archivos legibles, también fuera del directorio web | patrones desconocidos y ofuscados, base de datos, cuentas, comportamiento |
Los escáneres externos son útiles para detectar consecuencias visibles, como redirecciones o entradas en listas de bloqueo. Pero muchos hackeos sirven su contenido de spam o de redirección solo a determinados visitantes, por ejemplo buscadores o dispositivos móviles. El escáner ve entonces una página limpia.
Los escáneres en el CMS tienen más visibilidad, pero un problema de principio: se ejecutan en el mismo sistema que deben revisar. Un código con derechos suficientes puede influir en sus resultados, ocultar archivos o desactivar el escáner. Los escáneres de servidor trabajan fuera de la aplicación, pero siguen dependiendo de los patrones.
Lo que los escáneres pasan por alto por principio
Con independencia del modelo, hay áreas que un escáner de archivos o de páginas apenas puede cubrir:
- Código nuevo u ofuscado de forma individual: toda variante que se vea distinta de los patrones conocidos se cuela.
- La base de datos: scripts en contenidos, ajustes modificados, triggers y cuentas ajenas. Más información en Revisar la base de datos en busca de código inyectado.
- Accesos: cuentas de administrador adicionales, claves SSH, usuarios de la base de datos, cuentas en el panel de hosting.
- Servicios del sistema y tareas cron: mecanismos que descargan código malicioso de forma periódica.
- Cambios discretos en archivos legítimos: una sola línea adicional en un archivo del núcleo que parece inofensiva.
- Datos exfiltrados: ningún escáner muestra si se copiaron credenciales o datos de clientes.
Qué aporta certeza en su lugar
Más seguridad se logra combinando tipos de revisión que funcionan de forma distinta:
- Comparación con el original: encuentra cualquier modificación de archivos conocidos, con independencia de los patrones. El procedimiento lo describe Comparar los archivos del núcleo del CMS con el original.
- Búsqueda específica de anomalías: archivos PHP en carpetas de subidas, archivos modificados recientemente, código ofuscado, archivos ejecutables en carpetas temporales.
- Revisión de cuentas y servicios del sistema: comparar usuarios, claves, tareas cron y servicios con el estado esperado conocido.
- Análisis de logs: peticiones a archivos desconocidos, acumulaciones de errores, inicios de sesión inusuales.
- Vigilancia del comportamiento: procesos del servidor web que inician una shell, conexiones salientes inesperadas, archivos nuevos en carpetas sensibles.
La última categoría es la más importante cuando no hay rastros conocidos. No pregunta qué aspecto tiene el código malicioso, sino qué hace. Un proceso del servidor web que de pronto inicia una shell llama la atención, por muy ofuscado que esté el código que lo desencadena.
Ejecute un escáner de servidor desde un sistema limpio sobre una copia de solo lectura, en lugar de en el propio servidor sospechoso. Así el código inyectado no puede influir en el resultado.
Cómo usar los escáneres con sentido
Los escáneres tienen su lugar, como una herramienta entre varias. Un escáner externo sirve como control periódico de las consecuencias visibles, por ejemplo semanalmente. Un escáner en el CMS avisa en el día a día de malware conocido y de archivos del núcleo modificados. Un escáner de servidor complementa la búsqueda de patrones conocidos en todo el sistema de archivos.
Lo decisivo es cómo se trata el resultado. Un hallazgo es una tarea de revisión clara y justifica una investigación completa, porque rara vez está afectado un solo archivo. Un resultado vacío, en cambio, solo es una afirmación sobre los patrones revisados. Anote en su documentación qué escáner se ejecutó, cuándo y con qué versión, y no escriba «sistema limpio», sino «no se han encontrado patrones conocidos».
Para la dirección esto significa: una marca verde no sustituye a una revisión por alguien que examine conjuntamente archivos, base de datos, cuentas y comportamiento. Tras un incidente con posible ejecución de código, como es concebible con PHP2Shell, esa revisión debería realizarse.
Si, por el contrario, un escáner notifica un hallazgo, se requiere una actuación rápida pero ordenada. No borre de inmediato el archivo notificado con la función del escáner. Asegure primero el archivo y los logs, para poder aclarar cómo llegó al servidor. Cómo transcurre una limpieza completa lo describe el servicio Eliminación de malware y webshells.
¿Cómo ayuda PHP SOS en concreto?
- Combinamos escáneres con la comparación frente al original, la búsqueda específica y el análisis de cuentas, servicios y logs.
- Revisamos los sistemas sospechosos mediante copias aseguradas, para que los resultados no se vean influidos por el sistema comprometido.
- Marcamos con honestidad cada resultado como probado, probable o desconocido.
- Con la monitorización de seguridad para servidores web vigilamos de forma permanente el comportamiento de sus servidores, no solo los patrones conocidos.
Preguntas frecuentes
¿Está limpio mi sitio web si el escáner de malware no encuentra nada?
No necesariamente. Los escáneres encuentran sobre todo patrones conocidos. El código nuevo o bien ofuscado, las puertas traseras en la base de datos, las cuentas ajenas, las tareas cron y las claves SSH suelen pasar inadvertidos. Un resultado vacío es una pieza más, no una absolución.
¿Cuál es la diferencia entre un escáner externo y un escáner de plugin?
Un escáner externo accede al sitio web desde fuera y solo ve lo que se sirve. Un escáner de plugin se ejecuta dentro del CMS y puede leer archivos, pero funciona en el mismo sistema, que posiblemente esté comprometido. Ambos tienen sus propios puntos ciegos.
¿Existen firmas de escáner para PHP2Shell?
Para PHP2Shell no hay indicadores de compromiso (IoC) publicados y confirmados. Por eso los escáneres no pueden buscar de forma específica rastros fiables de PHP2Shell. La detección se basa en el análisis del comportamiento y en la búsqueda de señales generales de compromiso.
¿Cuál es el mejor escáner?
La pregunta es engañosa. Más importante que un producto concreto es la combinación de distintos tipos de revisión: comparación con el original, búsqueda en archivos y base de datos, revisión de cuentas y servicios del sistema, y vigilancia del comportamiento.