Hardening para WordPress: Cómo Reforzar la Seguridad de tu Sitio Web

Hardening para WordPress: Cómo Reforzar la Seguridad de tu Sitio Web

por Raúl Unzué Actualizado: 15/01/2025

Blindar Wordpress

Blindar un WordPress no es solo una cuestión de instalar plugins, sino de entender los posibles vectores de ataque y aplicar configuraciones técnicas que fortalezcan su seguridad. En esta guía pretendemos desarrollar a fondo cada aspecto para que puedas proteger tu instalación como un especialista IT.

Desde intentos de acceso forzado hasta inyecciones de código malicioso, un WordPress sin medidas de seguridad es como una casa sin cerradura. Por eso, hablar de "hardening" es clave: básicamente, se trata de reforzar las defensas de tu página web para que sea más difícil de vulnerarla.

Para comprender qué tenemos que proteger y cómo lo primero es hablar sobre la estructura de WordPress y cuáles son los ficheros más importantes dentro de su estructura:

Ficheros y Carpetas más comunes en WordPress

WordPress organiza sus ficheros o archivos en una estructura bien definida que incluye todos los elementos necesarios para que el sistema funcione correctamente.

Sin embargo, algunos de estos archivos y carpetas pueden ser más vulnerables a ataques si no se protegen adecuadamente. Aquí tienes un desglose de los elementos principales y cuáles suelen ser los más atacados.

Fichero / Carpeta

Descripción funcionalidad y posibles ataques

wp-config.php

Archivo de configuración principal. Contiene credenciales de base de datos, claves de seguridad y configuraciones importantes

.htaccess

Archivo de configuración para servidores Apache. Controla redirecciones y permisos. Puede ser modificado para introducir redirecciones maliciosas o exponer el sistema

wp-admin/

Carpeta que contiene todos los archivos para el panel de administración

wp-content/

Carpeta para temas, plugins y archivos subidos por el usuario. Normalmente, estos son varios de los puntos de entrada de los ataques. Por ejemplo, usar imágenes o documentos cargados para cargar malware

wp-includes/

Biblioteca principal de funciones y archivos base de WordPress. No es un archivo directamente editable, pero pueden intentar cargar scripts maliciosos para comprometer el sitio web

index.php

Archivo de inicio, redirige las solicitudes al sistema principal de WordPress

wp-login.php

Maneja la página de inicio de sesión de WordPress, normalmente es el objetivo principal para ataques de fuerza bruta

Una vez que entendemos la estructura de WordPress, vamos a intentar explicar que tipos de ataques y herramientas usan para vulnerarlos.

Geeknetic Hardening para WordPress: Cómo Reforzar la Seguridad de tu Sitio Web 1

Tipos de ataques y Herramientas utilizadas

Hablemos de los tipos de ataques más comunes que podemos sufrir en nuestro WordPress:

  • Ataques de fuerza bruta: Intentos automatizados de adivinar tu usuario y contraseña
  • Inyecciones SQL: Código malicioso que intenta acceder a tu base de datos
  • Cross-Site Scripting (XSS): Usa formularios o comentarios para insertar scripts dañinos
  • Malware: Archivos dañinos que comprometen tu servidor o infectan a tus visitantes

Vamos a desarrollar cómo son estos ataques, para poder entender cómo podemos mitigarlos en primera instancia y qué herramientas se suelen utilizar:

Ataques de Fuerza Bruta

  • Funcionamiento:
    • Bots automatizados prueban combinaciones de usuario y contraseña hasta dar con una válida. Por defecto, WordPress usa "/wp-login.php" como URL de acceso, lo que facilita a los atacantes saber dónde dirigir sus esfuerzos
  • Herramientas utilizadas:
    • HYDRA y BURP SUITE para automatizar pruebas de contraseñas
    • Diccionarios de contraseñas como rockyou.txt
  • Cómo mitigarlo:
    • Cambia la URL de inicio de sesión con plugins como WPS Hide Login
    • Limita intentos de inicio de sesión con Limit Login Attempts Reloaded
    • Implementa autenticación en dos pasos (2FA) con plugins como Google Authenticator

Inyecciones SQL

  • Funcionamiento:
    • Los atacantes insertan código SQL malicioso en formularios o URLs para manipular la base de datos. Si no se valida correctamente la entrada del usuario, pueden acceder o modificar datos sensibles
  • Herramientas utilizadas:
    • SQLMAP para automatizar la detección y explotación de vulnerabilidades SQL
  • Cómo mitigarlo:
    • Usa un plugin de seguridad como Wordfence para bloquear intentos maliciosos
    • Implementa validación de entradas en formularios personalizados
    • Mantén actualizado el núcleo de WordPress y plugins para cerrar vulnerabilidades conocidas

Cross-Site Scripting (XSS)

  • Funcionamiento:
    • Los atacantes insertan scripts maliciosos en campos de entrada (comentarios, formularios) que luego son ejecutados por el navegador de otros usuarios. Esto puede usarse para robar cookies de sesión o redirigir a sitios maliciosos
  • Herramientas utilizadas:
    • OWASP ZAP para probar vulnerabilidades XSS
  • Cómo mitigarlo:
    • Filtra y escapa todas las entradas del usuario con funciones como esc_html() o esc_attr() en WordPress. Con esto lo que hacemos es convertir caracteres especiales en texto plano seguro.
    • Desactiva los comentarios o usa plugins como Akismet Anti-Spam para gestionar contenido malicioso

Subida de Archivos Maliciosos

  • Funcionamiento:
    • Los atacantes suben archivos como imágenes o PDFs que en realidad contienen scripts maliciosos. Estos scripts pueden ejecutarse en el servidor si no se validan correctamente los archivos subidos.
  • Herramientas utilizadas:
    • METASPLOIT y COMMIX para explotar estas vulnerabilidades.
  • Cómo mitigarlo:
    • Asegúrate de que el directorio /wp-content/uploads/ tenga permisos correctos (750) y un archivo .htaccess que prohíba la ejecución de scripts.
    • Restringe los tipos de archivo permitidos en functions.php:
function custom_upload_mimes($mimes) { $mimes = [
 'jpg|jpeg|png|gif' => 'image/jpeg',
 'pdf' => 'application/pdf', ]; return $mimes;}
 add_filter('upload_mimes', 'custom_upload_mimes');

Síntomas de una Infección en Wordpress

Muchas veces, podemos estar infectados y no ver síntomas en nuestro CMS hasta que ya es muy tarde. Vamos a explicar varios síntomas que pueden darnos pistas sobre problemas en nuestro WordPress:

  1. Redirecciones inesperadas
    • Cuando los usuarios intentan visitar tu página y son redirigidos a sitios sospechosos o fraudulentos.
  2. Mensajes de advertencia en navegadores web
    • "Este sitio podría dañar tu ordenador" o alertas de sitios inseguros.
  3. Rendimiento lento
    • Una caída repentina en la velocidad de carga, provocada por scripts maliciosos que consumen recursos del servidor.
  4. Archivos desconocidos o modificados
    • Si encuentras archivos que no recuerdas haber subido, como “.php” en directorios sospechosos.
  5. Aumento del tráfico saliente
    • Malware que usa tu servidor para enviar spam o participar en ataques DDoS.
  6. Cambios en el código o contenido
    • Enlaces sospechosos insertados en tus posts o páginas, generalmente con contenido relacionado a sitios fraudulentos.
  7. Usuarios no autorizados
    • Nuevas cuentas de administrador que no has creado.
  8. Caída en el SEO
    • Disminución de posiciones en buscadores debido a contenido malicioso indexado. No es un síntoma claro, pero podría ser una de las causas.
  9. Exceso de correos Spam
    • Tu servidor podría estar siendo usado para enviar correos no deseados.
  10. Bloqueo del sitio por el Hosting
    • Algunos proveedores detectan malware y suspenden temporalmente tu cuenta.

Geeknetic Hardening para WordPress: Cómo Reforzar la Seguridad de tu Sitio Web 2

Pautas y Configuraciones para Mitigar Ataques

Es importante indicar que ningún sistema es invulnerable, pero sí podemos realizar configuraciones o pautas en ellos para que sea lo más complejo posible hackearlos.

Elección del Hosting para WordPress

Alojar tu página web WordPress en un buen hosting es fundamental y la base, para garantizar rendimiento, seguridad y facilidad de gestión. Aquí tienes los aspectos clave que debes considerar al contratar un hosting específicamente para WordPress en temas de seguridad:

  • Soporte para WordPress:
    • Asegúrate de que el hosting esté optimizado para WordPress, con versiones actualizadas de PHP (8.x o superior), bases de datos MySQL o MariaDB, y servidores web como Nginx o Apache con módulos configurados para CMS.
  • Certificado SSL incluido:
    • Es obligatorio para cualquier web hoy en día, tanto para la seguridad de los datos como para mejorar tu SEO.
  • Protección contra malware:
    • Escaneos regulares del sitio y herramientas para detectar plugins maliciosos o vulnerabilidades en WordPress.
  • Backups automáticos:
    • Es esencial contar con copias diarias del sitio completo, incluyendo la base de datos y los archivos del tema. Verifica si puedes restaurar las copias de forma sencilla desde el panel de control.
  • Firewall especializado:
    • Busca un hosting que ofrezca un firewall específico para aplicaciones web (WAF) configurado para proteger WordPress de ataques comunes como fuerza bruta, SQL injection o cross-site scripting (XSS).
  • Disponibilidad 24/7:
    • Problemas técnicos pueden surgir en cualquier momento, y un soporte rápido es crucial.
  • Canales de atención:
    • Asegúrate de que ofrecen chat en vivo, tickets de soporte y atención telefónica. Si disponen de especialistas de WordPress en el servicio técnico, te ayudará a resolver las incidencias lo más rápido posible.

Cambiar la URL de Inicio de Sesión

La primera configuración una vez instalado vuestro WordPres sería cambiar la URL de inicio de sesión:

  • Por qué hacerlo:
    • Cambiar “https://www.misitiowordpress.com/wp-login.php” a una URL personalizada reduce ataques de fuerza bruta automatizados.
  • Cómo hacerlo:
    • Usa un plugin como WPS Hide Login.
      • Ve al panel de administración, instala el plugin y define una nueva URL para la página de inicio de sesión
      • Ejemplo: Cambiar “/wp-login.php” a “/mi-login-seguro”

Protección de wp-config.php

  • Por qué hacerlo:
    • wp-config.php, como ya hemos comentado, contiene información crítica, como las credenciales de la base de datos.
  • Cómo hacerlo:
    • Cambia los permisos:
      chmod 440 wp-config.php
    • Mueve el archivo fuera del directorio raíz. Si el sitio está en /var/www/html/, mueve el archivo a /var/www/, por ejemplo.
    • Agrega esta línea al archivo .htaccess para denegar accesos:
<files wp-config.php="">order allow, deny deny from all</files>

Implementar HTTPS

  • Por qué hacerlo:
    • Encripta las comunicaciones y protege contra ataques como el Man-in-the-Middle.
  • Cómo hacerlo:
    • Instala un certificado SSL usando Let's Encrypt:
      sudo apt updatesudo apt install certbot python3-certbot-apache
       sudo certbot --apache
    • Redirige todo el tráfico a HTTPS con .htaccess:
      RewriteEngine OnRewriteCond %{HTTPS} !=on
       RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Monitoreo y bloqueo de IPs sospechosas

  • Por qué hacerlo:
    • Bloquear IPs maliciosas reduce la cantidad de tráfico malicioso.
  • Cómo hacerlo con Fail2ban:
    • Instala Fail2ban en el servidor:
      sudo apt install fail2ban

       

    • Crea una configuración personalizada en /etc/fail2ban/jail.local:
      [wordpress]enabled = trueport = http,httpsfilter = wordpress
       logpath = /var/log/apache2/access.logmaxretry = 3bantime = 3600
    • Reinicia Fail2ban:
      sudo systemctl restart fail2ban

Configuración de Permisos de Archivos y Directorios

  • Por qué hacerlo:
    • Evita que scripts maliciosos se ejecuten en directorios de WordPress.
  • Cómo hacerlo:
    • Permisos recomendados:
      • Archivos: 644
      • Directorios: 755
      • wp-config.php: 440
    • Comandos para aplicar:
      find /var/www/html/ -type d -exec chmod 755 {} \;
       find /var/www/html/ -type f -exec chmod 644 {} \;
       chmod 440 /var/www/html/wp-config.php

Monitoreo en cambio de ficheros

  • Por qué hacerlo:
    • Saber cuándo un fichero es actualizado o modificado te permitirá reaccionar lo antes posible ante un ataque
  • Cómo hacerlo:
    • Implementa plugins como Wordfence, que es capaz de enviarte emails con un resumen periódico de los cambios en tu sitio web.

Protección combinada con Plugins

  • Usa un solo plugin completo como Wordfence o All In One WP Security (plugins con cierta reputación y actualizaciones continuas) para gestionar la mayor parte de las tareas, y complementa con plugins específicos solo cuando sea necesario.

Demasiados plugins pueden ralentizar el sitio, consumir recursos del servidor o solapar funciones, además que se convierten en complementos a mantener en el futuro.

Herramientas para detectar infecciones en WordPress

Asegurar que tu WordPress no esté comprometido es clave para mantener su funcionamiento y reputación. Aquí tienes algunas herramientas y señales que pueden ayudarte a identificar si tu sitio está infectado:

Herramientas de detección

  1. Sucuri SiteCheck
    • Escanea tu web en busca de malware, spam, listas negras y vulnerabilidades.
    • Gratuito y fácil de usar.
    • También ofrece un firewall web si necesitas protección adicional.
    • https://sitecheck.sucuri.net

Geeknetic Hardening para WordPress: Cómo Reforzar la Seguridad de tu Sitio Web 3

  1. Wordfence Security Plugin
    • Uno de los plugins más populares para seguridad en WordPress.
    • Realiza análisis completos del sitio, detectando archivos maliciosos, cambios inesperados y vulnerabilidades.
    • En su versión gratuita ya es bastante efectiva.
    • Incluye un firewall para bloquear accesos sospechosos.

Geeknetic Hardening para WordPress: Cómo Reforzar la Seguridad de tu Sitio Web 4

  1. MalCare Security Plugin
    • Analiza tu sitio en busca de malware sin afectar el rendimiento del servidor.
    • Ideal para detectar infecciones profundas que otras herramientas podrían pasar por alto.

Geeknetic Hardening para WordPress: Cómo Reforzar la Seguridad de tu Sitio Web 5

  1. VirusTotal
    • Permite analizar la URL de tu sitio con múltiples motores de detección de malware.
    • Complementa otras herramientas con un análisis externo.
    • https://www.virustotal.com

Geeknetic Hardening para WordPress: Cómo Reforzar la Seguridad de tu Sitio Web 6

  1. WPScan
    • Escanea vulnerabilidades conocidas en temas, plugins y el núcleo de WordPress.
    • Necesita acceso al servidor para una ejecución más técnica.
    • https://wpscan.com/

Geeknetic Hardening para WordPress: Cómo Reforzar la Seguridad de tu Sitio Web 7

  1. Google Search Console

Geeknetic Hardening para WordPress: Cómo Reforzar la Seguridad de tu Sitio Web 8

Buenas prácticas para recuperar tu sitio WordPress tras un ataque

Recuperar un sitio WordPress tras un ataque puede ser un proceso complicado, pero con los pasos adecuados puedes minimizar el daño y restaurar tu web rápidamente. Aquí tienes un enfoque claro y práctico:

1. Mantén la calma y evalúa el daño

  • Verifica si el sitio está caído, redirige a otras páginas, tiene mensajes de advertencia o contenido comprometido.
  • Accede al panel de control de WordPress y al hosting para evaluar el alcance del ataque. Muchas veces puede quedar inaccesible.

2. Desactiva el sitio temporalmente

  • Si tu web distribuye Malware, ponla en modo mantenimiento o desactívala para evitar más daños a tus visitantes y a tu reputación.
  • Usa una página temporal que informe a tus usuarios que el sitio está en mantenimiento.

3. Realiza un backup completo

  • Guarda una copia de todos los archivos del sitio, bases de datos y registros antes de hacer cambios.
  • Esta copia de seguridad será útil para analizar el ataque o restaurar partes específicas.

4. Analiza y elimina el Malware

  • Escáneres Online y Plugins:
    • Usa herramientas como Wordfence, Sucuri, o MalCare para identificar y eliminar archivos infectados.
  • Inspección manual:
    • Revisa directorios clave como /wp-content/ y /uploads/ en busca de scripts maliciosos o archivos desconocidos.

5. Cambia las Credenciales

  • Base de Datos:
    • Cambia las credenciales de acceso desde el panel del hosting o phpMyAdmin.
  • WordPress:
    • Actualiza contraseñas de usuarios, especialmente de administradores y cámbialas periódicamente.
  • FTP/SSH y Hosting:
    • Cambia contraseñas para todas las cuentas relacionadas con el servidor.

6. Restaura desde un Backup Seguro (si es necesario)

  • Si tienes una copia de seguridad reciente libre de malware, úsala para restaurar el sitio por completo.
  • Verifica que la copia de seguridad no incluya vulnerabilidades que puedan ser explotadas de nuevo.

7. Actualiza todo el Software

  • Actualiza WordPress, plugins, temas y la versión de PHP para asegurarte de que el sitio no tenga vulnerabilidades conocidas.
  • Si tienes copias de seguridad y ante un problema de un plugin puedes volver fácilmente, no es mala práctica automatizar la actualización de los plugins de seguridad como mínimo, ya que se corrigen constantemente los bugs encontrados.

8. Revisa permisos de archivos y directorios

  • Configura permisos correctos para los archivos y carpetas:
    • Archivos: 644
    • Directorios: 755
    • Como hemos comentado antes, cambia los permisos de “wp-config.php” a 440
  • Esto previene modificaciones no autorizadas. Si no tienes mucha práctica, puedes hacerlo vía FTP / SSH a través de “Filezilla”, por ejemplo:

Geeknetic Hardening para WordPress: Cómo Reforzar la Seguridad de tu Sitio Web 9

9. Implementa un Firewall

  • Instala plugins como Wordfence o Sucuri para bloquear intentos de acceso sospechosos.
  • Configura reglas en el servidor para limitar ataques de fuerza bruta y accesos no autorizados. Por ejemplo, limita los países que te pueden visitar o bloquea IPs concretas que te realicen intentos de ataques.

Geeknetic Hardening para WordPress: Cómo Reforzar la Seguridad de tu Sitio Web 10

10. Monitorea y refuerza la Seguridad

  • Activa alertas de seguridad para que te notifiquen sobre actividades sospechosas (intentos de ataques de fuerza bruta, cambios en los ficheros, logins de usuarios en la administración…)
  • Implementa autenticación en dos pasos (2FA) para todos los usuarios.
  • Configura backups automáticos y periódicos en el hosting o con plugins como UpdraftPlus que puedes exportar la copia a un NAS de tu red.
  • Mantente informado sobre nuevas amenazas y mejores prácticas de seguridad en WordPress

Geeknetic Hardening para WordPress: Cómo Reforzar la Seguridad de tu Sitio Web 11

Conclusión: No bajes la guardia con WordPress

Como se puede ver, blindar WordPress no se trata solo de instalar un par de plugins, sino de entender las amenazas y actuar de forma proactiva. Aplicar configuraciones a nivel de servidor, establecer permisos estrictos y validar cada entrada de usuario son pasos esenciales para proteger tu sitio. Recuerda que ningún sistema es invulnerable, pero con estas medidas puedes minimizar enormemente el riesgo.

Además, mantenerte siempre alerta a las actualizaciones, tanto del núcleo como de plugins y temas, es básico.

Por último, nunca subestimes el poder de un buen backup, realiza copias automáticas y almacénalas fuera del servidor principal. Así, incluso si algo falla, siempre podrás recuperar tu sitio sin demasiados dolores de cabeza.

Fin del Artículo. ¡Cuéntanos algo en los Comentarios!

Redactor del Artículo: Raúl Unzué

Raúl Unzué

Soy un apasionado de la virtualización con más de 20 años de experiencia, especializado en soluciones como VMware(premio vExpert y vExpert Pro desde 2013), Proxmox e Hyper-V. Durante mi carrera, he ayudado a empresas a optimizar sus infraestructuras TI mientras comparto mis conocimientos como redactor IT. Mi objetivo es traducir lo complejo en algo práctico y accesible, combinando teoría con experiencia real. Si te interesa la virtualización, las herramientas TI o simplemente aprender algo nuevo, espero ayudarte con mis artículos.