Si tienes una web hecha con WordPress es bastante probable que haya hackers que traten de encontrar alguna vulnerabilidad en tu sitio con malas intenciones. Lo más habitual es analizar tu web contra malware, pero hay otro tipo de amenazas, como la que veremos hoy, las puertas traseras o backdoor, en inglés.
Qué es una puerta trasera
En lenguaje informático, una puerta trasera es un software instalado en un sistema cuya función principal es evitar las medidas de seguridad y entrar en el sistema de archivos, la base de datos u otros para realizar acciones que le reporten algún tipo de beneficio, a costa del propietario del sitio.
Viene a ser una especie de entrada secreta para acceder, en este caso, a la web, sin ser detectado por los métodos habituales.
Cómo detectar una puerta trasera en WordPress
Hay varias maneras de saber que te han inyectado una puerta trasera en tu sitio:
- Recibes avisos de que tu web está hackeada por servicios como Google Safe Browsing, Google Search Console, o incluso tu empresa de hosting, impidiendo en algunos casos incluso que los visitantes accedan a tu web.
- De repente tu web se comporta de manera extraña:
- Exceso de consumo de recursos del servidor.
- Caída exagerada de tráfico.
- Bajada significativa en el indexado en Google.
- Imposibilidad de acceder a la administración.
- Usuarios nuevos con permisos de administrador.
- Etc., etc., etc.
- Usando una herramienta de detección de intrusiones, como Sucuri SiteCheck.
- Con un buen plugin de seguridad para WordPress, aunque en ocasiones no es posible siquiera acceder a la administración.
Por supuesto, el mejor modo de detectar una puerta trasera en tu WordPress es de manera preventiva, con una herramienta de detección, antes de que notes los efectos indeseados.
Dónde se ocultan las puertas traseras en WordPress
Hay muchos sitios de una instalación WordPress donde pueden instalarse las puertas traseras, y estos son los más habituales, en mi experiencia:
- Temas WordPress «premium» – A menudo los temas premium descargados de sitios poco fiables incluyen archivos que funcionan como puertas traseras, que pueden añadir enlaces, posicionar contenidos ajenos a la web, o incluso minar Bitcoins.
- Plugins «premium» – Igual que en el caso anterior, sobre todo si usas plugins del tipo nulled, tienes bastantes papeletas para que te inyecten de todo, incluida una puerta trasera.
- Plugins «nuevos» – En ocasiones las puertas traseras se añaden como un plugin más, que casi nunca aparece en la lista de plugins, pero sí está en la estructura de carpetas. Me refiero a que es un plugin que no ves ni activo ni por activar, pero que si miras en la carpeta de plugins (
/wp-content/plugins/
) aparece una carpeta a priori nada sospechosa, llamada/mega-cache/
,/incache/
(un caso real reciente)/security-patch/
y cosas así, con pinta de ser carpetas de plugins normales. - Carpeta uploads – En esta carpeta suele haber cientos o incluso miles de archivos, sueltos y organizados en sucesivas subcarpetas, y es muy fácil para cualquier hacker añadir ahí archivos o directorios completos y que pasen desapercibidos incluso para un usuario avanzado.
- Carpetas wp-admin y wp-includes – Como estas carpetas son del sistema WordPress, y por defecto nunca se modifican ni se le añaden archivos, salvo en los procesos automáticos de actualización, son lugares muy golosos para un hacker a la hora de añadir archivos o carpetas que funcionen como puertas traseras, pues normalmente el administrador de la web no suele mirar en estas carpetas.
- Archivo wp-config.php – Otro lugar habitual en el que añadir, en este caso, código que actúe como puerta trasera, es el archivo de configuración de WordPress, por defecto accesible para escritura, pues muchos plugins necesitan añadir líneas al mismo, pero que supone una posible brecha de seguridad.
- Archivo .htaccess – Con este archivo de configuración del servidor (Apache), que utiliza WordPress y muchos plugins para objetivos de rendimiento y seguridad, pasa lo mismo que con el anterior, que tiene permisos de escritura, y es por tanto vulnerable.
- Archivos .php y .js varios – Cualquier archivo con extensión .php o .js alojado en los directorios de la instalación de WordPress, con los permisos de archivo por defecto, es susceptible de una inyección de código, con cualquier malintencionado objetivo. Unos de los más habituales que he encontrado limpiando webs son
index.php
ywp-blog-header.php
, alojados en la carpeta raíz de la instalación de WordPress. - Otros archivos – La verdad es que la imaginación de los hackers no tiene límite y me he encontrado de todo, malware en archivos con extensión .tmp (de ficheros temporales), o incluso en archivos comprimidos en .zip. La norma es no dar nada por sentado, sospechar de todo.
Como ves la cosa no es fácil, los hackers utilizan – y muy bien – la ingeniería social para tratar de engañarnos, usando nombres de archivo que no parezcan sospechosos, en lugares que normalmente no consideraríamos peligrosos, de todo.
¿Y la base de datos?
¿Te llama la atención que no haya citado a la base de datos como vía de entrada de las puertas traseras? Pues no debería, porque aunque un malware o una puerta trasera pueden llegar a almacenar información indeseada en la base de datos. (usuarios nuevos, contenidos no deseados, enlaces, etc.) casi nunca será porque la vía de entrada fue la base de datos.
Esto es debido a que la base de datos está normalmente más protegida que el sistema de archivos, pues es responsabilidad del hosting en gran medida, no es accesible normalmente desde el navegador fácilmente, y sobre todo porque cualquier hacker sabe que la parte más débil es el usuario, el propietario de la web, y aunque su objetivo final sea la base de datos, sabe que la manera de entrar siempre será a través de fallos del usuario, por no actualizar lo que debe, por usar contraseñas débiles, etc.
Cómo eliminar una puerta trasera en WordPress
Una vez que sabemos qué es una puerta trasera, cómo detectarla, y sobre todo dónde suelen alojarse, si tenemos la mala suerte de que nos hayan infectado, hay que aplicar un plan de choque inmediato, sistemático y sobre todo exhaustivo, para eliminarla de nuestra web lo más rápidamente posible, antes de que arruine por completo nuestro SEO, nos robe datos o destroce nuestra reputación.
Copias de seguridad
Nunca nos acordamos más de la matraca que nos da el pesado de Fernando Tellado con que hay que hacer copias de seguridad frecuentes que cuando descubrimos que las necesitamos, y no las tenemos.
Y es verdad, no soy plasta con lo de hacer copias de seguridad por capricho, sino porque me preocupo, y porque también lo he sufrido, cuando era un inconsciente que vivía peligrosamente, sin red, sin copias de seguridad.
Siempre debe ser nuestra primera opción: restaurar una copia de seguridad que sepamos que está limpia.
Pero no siempre es posible, bien porque no sabemos cuándo nos han infectado, o porque hace tanto tiempo que nos infectaron que perderíamos montones de contenidos, pedidos, etc., que desaparecerían al restaurar una copia de seguridad demasiado antigua.
En cualquier caso, si eres una persona disciplinada y tienes copias de seguridad recientes, el primer paso sería restaurar la última copia limpia, a continuación analizar si la web está libre de infecciones, para a continuación reforzar la seguridad a prueba de bombas.
En todos los casos, tanto si tenías copia de seguridad o no, siempre es recomendable seguir los siguientes pasos, en caso de duda, o por asegurarte de que todo esté limpio…
Borra el archivo .htaccess
Ni te preocupes en revisarlo, bórralo. Cualquier cosa que tuviese, añadida por WordPress o plugins, se volverá a añadir cuando sea necesario, y se generará automáticamente.
Revisa el archivo wp-config.php
Compara el archivo wp-config.php
con el fichero wp-config-sample.php
de la misma carpeta, o una copia que sepas que está limpia, y si hay líneas adicionales que no reconozcas como legítimas de plugins conocidos bórralas sin piedad.
Adicionalmente, para vaciar las cookies de sesión y forzar la desconexión de todos los usuarios, cambia las claves SALT.
Borra todos los plugins
Ve a la carpeta /wp-content/plugins/
y borra todas las carpetas y archivos que tenga, ya habrá tiempo de volver a instalar copias limpias y actualizadas de los plugins que necesites. Si quieres, puedes dejar sin borrar un archivo de esta carpeta, index.php
, pero solo si su único contenido es el siguiente:
<?php // Silence is golden.
Encontrarás un archivo como este en todas las carpetas de contenido (/wp-content/
), y sirve para evitar en lo posible el listado de su contenido.
Borra todos los temas
Ve a la carpeta /wp-content/plugins/
e, igual que con los plugins, borra todas las carpetas y archivos que haya, por el mismo motivo. Cuando sepas que toda la instalación está limpia puedes subir el tema (limpio) que uses en tu web.
Borra todo lo que sobre de la carpeta de subidas
En la carpeta /wp-content/uploads/
, inicialmente, solo debe haber un archivo index.php
como el que comenté antes, y una serie de directorios con números de años, dentro de las cuales habrá otras con números por los meses, por ejemplo /wp-content/uploads/2023/06/
y dentro de cada carpeta de mes solo debería haber archivos de imagen, vídeo o como mucho de documentos, que son los archivos que subes para ilustrar tus entradas y páginas desde el cargador de archivos del editor de WordPress.
Cualquier archivo PHP o de otro tipo existente en estas carpetas es sospechoso, así que bórralos todos, igual que cualquier carpeta que encuentres que no sean las de los años. Habrá de todo, carpetas de caché, de (teóricas) configuraciones de plugins, pueden ser decenas. No te preocupes, si un plugin necesita añadir algún archivo o carpeta aquí lo volverá a crear cuando lo instales y configures, pero ya sabiendo que sea una copia limpia.
Borra las carpetas y archivos de sistema de WordPress
Para finalizar, borra las carpetas /wp-admin/
y /wp-includes/
del directorio raíz de tu instalación, así como los archivos sueltos que WordPress añade por defecto en cualquier instalación nueva: index.php, wp-activate.php, wp-blog-header.php, wp-comments-post.php, wp-cron.php, wp-links.opml.php, wp-load.php, wp-login.php, wp-mail.php, wp-settings.php, wp-signup.php, wp-trackback.php, xmlrpc.php, license.txt y readme.html.
Cambia todas las contraseñas
Antes de seguir debes cambiar todas las contraseñas, a saber:
- Usuario de la base de datos – Y pones la nueva en el archivo wp-config.php.
- Usuarios de FTP – Todos, no solo el tuyo.
- Panel del hosting
- Cuenta de usuario del hosting
- Correos electrónicos
- Usuarios de WordPress – Desde la base de datos, cambia la contraseña a todos los usuarios registrados.
Como extra te recomiendo encarecidamente que añadas la doble verificación a todo lo posible (correos, acceso al hosting, etc.)
Restaura todo
Ahora toca restaurar con copias limpias todo lo que hemos borrado:
- Plugins
- Temas
- Archivo
wp-config.php
- Carpetas
wp-admin
ywp-includes
más los archivos sueltos de un WordPress limpio recién descargado.
Puedes subir las copias nuevas desde el gestor de archivos del panel del hosting o por FTP, como prefieras.
Analiza tu web de nuevo
Cuando hayas sustituido todo por copias limpias, vuelve a analizar tu web para comprobar que ya no hay archivos o carpetas infectadas.
Si aún queda algo sin limpiar es porque te saltaste un paso completo o parte de él, así que tómatelo en serio y vuelve al principio, en seguridad no vale hacer las cosas a medias.
Si ya está limpia … sigue leyendo que no has terminado.
Refuerza la seguridad
Ahora toca, lo antes posible, reforzar la seguridad de tu web, yo sigo estos sencillos pasos:
- Cambio de hosting, si fuese necesario, a uno que te ofrezca garantías, un firewall en condiciones y software y hardware siempre actualizado.
- Instalar y configurar bien un buen plugin de seguridad.
- Añadir un buen cortafuegos.
- Proteger archivos y carpetas a prueba de bombas.
- Programar copias de seguridad frecuentes para evitar futuros sustos.
Seguridad 100%
¿Has leído en alguna parte que alguien te garantiza al 100% la seguridad de tu web? No lo creas, es mentira, no existe tal cosa. Un hacker con el tiempo y conocimientos suficientes siempre irá por delante. Nuestra misión es intentar evitar ataques indiscriminados de piratillas novatos o poco especializados, ponérselo difícil, y sobre todo reaccionar rápido y a tiempo para recuperar la web.
En el servicio de mantenimiento web que hacemos hace años es raro que infecten la web de un cliente, pero si pasase, al menos garantizamos que nos enteramos el mismo día que pasa, y siempre tenemos copias de seguridad limpias suficientes como para recuperar la web en cuestión de minutos, que es lo importante.
Gracias, todo muy clarito pero no me entero, la mitad de las cosas no sé hacerlas ¿entonces?
Si esto no es lo tuyo, si simplemente quieres recuperar la web de tu marca o negocio pero no tienes los conocimientos o confianza suficiente como para realizar estas tareas por tu cuenta, siempre puedes contratar a profesionales especializados en seguridad web y WordPress que lo hagan por ti, es más barato de lo que imaginas.
Además, a partir de que tengas la web limpia, te recomiendo que contrates un servicio de mantenimiento WordPress que vigile y solucione en el futuro estas cosas por ti, y puedas dedicarte a tu negocio.
El artículo Cómo detectar, eliminar y evitar puertas traseras en una web WordPress lo publicó Fernando Tellado previamente en Ayuda WordPress. Lo que ves aquí es una copia de dicho contenido :/
0 Commentaires