El núcleo de WordPress, los archivos que vienen con una versión determinada, es idéntico en todos los sitios que la usan. Esa uniformidad hace posible una comprobación de integridad. Si tu copia de wp-login.php no coincide con la oficial byte a byte, algo la cambió, y nada legítimo debería necesitar hacerlo.

Cómo funciona

WordPress.org publica una suma de verificación, una breve huella criptográfica, para cada archivo del núcleo de cada versión publicada. Una comprobación de integridad descarga esa lista y la compara con los archivos de tu servidor. Una coincidencia significa que el archivo no ha cambiado desde que salió de WordPress.org. Una diferencia significa que se modificó, añadió o eliminó tras la instalación, algo que no debería ocurrir a los archivos del núcleo.

La comprobación no necesita entender qué hace un cambio. Solo necesita saber que el archivo no es lo que debería ser. Es una pregunta más simple que «¿este código es malicioso?», y tiene una respuesta clara.

Por qué detecta lo que otras comprobaciones pasan por alto

Un escáner de malware basado en firmas busca patrones maliciosos conocidos. Puede pasar por alto código a medida o bien ofuscado que nunca ha visto. Los atacantes lo saben, y una maniobra común es añadir unas pocas líneas a un archivo del núcleo como index.php o uno de wp-includes, donde el cambio pasa desapercibido. La comparación de sumas de verificación señala esa edición sea cual sea el disfraz del código, así que es eficaz contra puertas traseras nuevas o escritas a mano que aún no coinciden con ninguna firma.

Es un complemento del escaneo de malware, no un sustituto. Las sumas de verificación no ven un plugin malicioso ni una entrada de spam en la base de datos, por lo que un escaneo completo combina ambos.

Cómo ejecutarla tú mismo

Con SSH y WP-CLI, ve a la carpeta de WordPress y ejecuta:

wp core verify-checksums

Un sitio limpio muestra un mensaje de éxito. Si no, cada problema aparece con su motivo, por ejemplo un archivo que no coincide con su suma de verificación, o un archivo que no debería existir. Algunas notas:

  • Comprueba las carpetas del núcleo y los archivos de la raíz. No comprueba wp-content, donde viven tus temas, plugins y archivos subidos, e ignora wp-config.php.
  • Si tu sitio usa un idioma distinto del inglés, añade --locale=es_ES (por ejemplo) para comparar con la versión correcta.
  • Para los plugins del directorio de WordPress.org, wp plugin verify-checksums --all hace el mismo trabajo. Los plugins premium y a medida no tienen sumas de verificación públicas.

Sin WP-CLI, descarga exactamente la misma versión de WordPress desde wordpress.org, descomprímela y compara sus carpetas wp-admin y wp-includes con las de tu sitio usando cualquier herramienta de comparación o diff -r.

Qué significa realmente una diferencia

Trata cualquier diferencia dentro de wp-admin o wp-includes como algo que merece investigarse de inmediato. Nada ahí debería editarse a mano, así que un cambio suele significar un archivo comprometido y, a veces, una actualización corrupta. Los casos son:

  • «File doesn't verify against checksum» significa que se alteró un archivo del núcleo. Compáralo con una copia limpia para ver exactamente qué se añadió.
  • «File should not exist» significa que hay un archivo de más entre los del núcleo. Ábrelo. Los archivos PHP desconocidos en las carpetas del núcleo son una señal fuerte de puerta trasera.
  • También hay añadidos inofensivos. Un hosting puede añadir un archivo error_log, y algunos propietarios borran readme.html o license.txt a propósito. Se pueden ignorar una vez que sabes por qué están.

Si se modificó un archivo real del núcleo, no corrijas solo ese archivo. Alguien tuvo acceso de escritura, así que averigua cómo, como explica cómo reparar un sitio WordPress hackeado.

Restaurar archivos del núcleo limpios

Haz primero una copia de seguridad. Después, desde la carpeta de WordPress, wp core download --force --skip-content sustituye los archivos del núcleo por copias limpias de tu versión instalada y no toca wp-content ni wp-config.php. Vuelve a ejecutar la comprobación para confirmar que pasa. Sustituir los archivos del núcleo no elimina una puerta trasera escondida en un plugin, un tema o la base de datos, así que sigue con un escaneo completo.

Cómo ayuda SiftWP

La integridad de los archivos del núcleo es una de las comprobaciones que SiftWP ejecuta cada semana por SSH, y aparece como core.checksums en su registro de escaneo. Compara tu instalación con las sumas de verificación oficiales de WordPress.org automáticamente y señala cualquier cosa inesperada, sin ningún plugin en tu sitio y sin que tengas que acordarte de ejecutarla.

Empieza con créditos gratis, sin tarjeta