Seguridad de WordPress: Guía Completa contra Hackers

Si administras sitios de WordPress, una de las cosas que debes tener en mente es la seguridad de tus sitios.

Todos los sitios, sin importar cuan insignificantes estos sean, puedes ser el objetos de ataques con el fin de vulnerarlos.

En este post encontrarás algunos consejos de seguridad para tu sitio de WordPress para reducir las posibilidades de que tu sitio sea hackeado

Por supuesto que yo no aplico cada una de estas recomendaciones, porque mis sitios son básicamente son blogs que yo solo administro.

Pero hay sitios que probablemente requieran aplicar algunos de estos consejos.


Table of Contents


#1 Hosting para WordPress Seguro

Debemos tener claro que no importa que proveedor de hosting uses, tu sitio puede ser hackeado.

Te puede pasar en GoDaddy, Cloudways, SiteGround, Rocket.net.

Habiendo dicho eso, hay proveedores de hosting en los que los sitios de WordPress tienden a ser más propensos a ser hackeados que en otros.

Toma en cuenta que el negocio de algunos proveedores de Hosting radica en que si tu sitio es hackeado, usted necesitará ayuda y ellos estarán en primera línea para ofrecer esa ayuda por un monto a cambio.

Escoge una serie de criterios que debe tener tu proveedor de hosting antes de hospedar tu sitios en este.

Nota: La elección de tu proveedor de hosting es tu completa responsabilidad.


#2 Realizar un Respaldo de Tu Sitio de WordPress

Uno de los mejores consejos de seguridad es tener un respaldo de tu sitio en tu computadora o en un sitio de almacenamiento remoto.

Si sufres de un ataque de un hacker puedes restaurar una copia de tu sitio que no esté infectada en otro servidor mientras investigas lo que pudo llevar al hackeo en primer lugar.

Asegúrate no alojar los respaldos en tu servidor ya que los hackers buscan copias de estos en las instalaciones de los sitios de WordPress

Yo trato de realizar respaldos de mis sitios cada vez que estos sufren grandes actualizaciones o se les agrega mucho contenido.

Hay muchos plugins que te permitirán respaldar tu sitio en caso de hackeo

  • Si tienes un sitio que raramente sufre cambios, un respaldo semanal o mensual es suficiente.
  • Si tienes un e-commerce, debes usar un plugin que realice respaldos automáticos com cierta regularidad.

No confíes los respaldos de tu sitio a tu proveedor de hosting, por más buena reputación que estos tengan.

Nota: Aunque los buenos proveedores de hosting hacen respaldos automáticos, tu eres el responsable de tu sitio y debes tener respaldos que se puedan usar en caso de un evento fortuito.


#3 Usar un Web Application Firewall (WAF)

Un web application firewall es una medida de seguridad que previene los ataques de bots y hackers.

Un web application firewall puede bloquear bots y el acceso a archivos importantes de tu sitio como las páginas de acceso y otros archivos importantes.

Uno de los mejores web application firewalls es CloudFlare.

Cloudflare permite la creación de 5 reglas personalizadas en su WAF.

Con conocimientos básicos, yo he podido generar reglas que bloquean todos los ataques de fuerza bruta y el acceso a partes exclusivas de mi sitio que solo los administradores deben accesar.

Nota: Si no tienes un buen argumento en contra de usar CloudFlare, te invito a sacar provecho de todos sus servicios gratuito. No hay mejor que administrar tu propio WAF.


#4 No Uses Temas y Plugins de WordPress Nulos

Uno de los grandes problemas es que los usuarios por el deseo de usar un producto premium descargan temas y plugins nulos.

La práctica de usar plugins y temas nulos o sin licencia es maś común de los que creemos.

Yo he descargado temas y plugins nulos para realizar pruebas en un ambiente local, pero en este momento, yo no uso temas o plugins premium, por los cuales no este pagando una subscripción.

Hay sitios donde se pueden bajar temas y plugins nulos gratuitos o a un muy bajo costo y que no contienen malware.

Si usas esa ruta, tienes que saber muy bien lo que haces y tener una respuesta en el peor de los escenarios.

Nota: Si no sabes migrar un sitio, limpiar la instalación o la base de datos, mejor ni te metas en el juego de usar temas o plugins nulos.


#5 Usuarios y Contraseñas en WordPress

Si alguna vez has visto una lista de los intentos fallidos para vulnerar tu sitio, vas a descubrir que los hackers tratan de vulnerar tu sitio por medio de ataques de fuerza bruta

Los intentos son automatizados y prueban una gran cantidad de usuarios y contraseñas en pocos minutos

  • Crea un usuario complejo de descifrar
  • Crea una contraseña compleja de descifrar

Asegúrate de usar una contraseña que sea una combinación de letras minúsculas, mayusculas, números y caracteres.

Tambien asegúrate que tu display name o nickname de WordPress no sea tu nombre de usuario.

Si tu sitio es vulnerado con un ataque de fuerza bruta es porque eres un tonto, ya que esos ataques son realizados con listas de usuarios y contraseñas que solo un tonto usaría.

De los sitios hackeados cada año, aproximadamente un 7% se debía a un exitoso ataque de fuerza bruta.

Nota: Usa un gestor de contraseñas seguro como BitWarden y usa usuarios y contraseñas imposibles de recordar.


#6 Resto de los Usuarios y Contraseñas

No creas que la contraseña de tu sitio es la única que importa:

Tambien debes usar contraseñas seguras para:

  • La base de datos.
  • Acceso SFTP.
  • Proveedor de Hosting.
  • Registrador de dominio.
  • Correo Electrónico
  • Acceso SSH

Nota: Usa un gestor de contraseñas seguro como BitWarden y usa usuarios y contraseñas imposibles de recordar.


#7 Mantener WordPress, Plugins y Temas Actualizados, PHP y otros

Un consejo básico para mantener la seguridad es actualizar WordPress, plugins y los temas de tu sitio.

En ocasiones WordPress, los temas y los plugins son actualizados cuando vulnerabilidades son encontradas en estos

Si estas subscrito a boletines de seguridad de WordFence, PatchStack y SolidWP, encontrarás los reportes de los temas y plugin que tienen vulnerabilidades.

De igual manera, asegúrate que la versión de PHP y de cualquier otro software usado en tu servidor se encuentre actualizada.

Nota: Lo mejor que puedes hacer es no escoger temas y plugins que constantemente en los boletines de seguridad.


#8 Bloquear Acceso a la Base de Datos, Acceso SFTP Y SSH

Si nunca accedes a tu base de datos, a la instalación de WordPress or accedes remotamente a tu sitio, estos puntos deberían estar bloqueados.

En mi caso, mi proveedor de hosting permite el bloque rotundo de esos tres puntos y permiten que las credenciales funcionen únicamente con direcciones IP especificas que puedes agregar y remover cuando quieras.

Si por alguna razón mi contraseña compleja se filtrará, esta no funcionaría si la dirección IP del atacante no esta autorizada.

Nota: Este debería ser un buen criterio a la hora de elegir un proveedor de hosting.


#9 Cloudflare Turnstile

Yo en realidad no pienso mucho en los ataques de fuerza bruta, porque mis páginas de acceso están protegidas por el cortafuegos de Cloudflare.

Si alguien logra esquivar el WAF de Cloudflare, tendrá que tratar de descifrar una contraseña de 40 caracteres.

Para mitigar un ataque de fuerza bruta, he instalado Cloudflare Turnstile en la página:

#1Página de acceso
#2Página de Registro
#3Página para Cambio de Contraseña

El plugin Simple Cloudflare Turnstile permite la integración de Cloudflare Turnstile.

Nota: La ventaja de usar Cloudflare Turnstile es que limita a los bots y impide que ataques concurrentes agoten los recursos de tu servidor.


Las recomendaciones anteriores son las recomendaciones de seguridad para WordPress que no son negociables

Seguridad para Sitios WordPress

El resto de recomendaciones te pueden ayudar, pero yo no las aplico activamente.


#1 No Permitir Nuevos Registros en WordPress

Si tu blog no requiere que usuarios se registren para acceso, asegúrate de desmarcar la opción de que cualquiera pueda registrarse.

Esto es de suma importancia debido a que hay ataques que requieren de tener un nivel de acceso de usuario.

Si tienes usuarios registrados, asegúrate que no tengan el rol de administrador.

Nota: Esto se encuentra deshabilitado en mis sitios, pero mis páginas de login se encuentran bloqueadas por el WAF de Cloudflare


#2 Cierres de Sesión Automáticos en WordPress

Si tiene un sitio web de WordPress con múltiples autores, editores o administradores, debes practicar constantemente el cierre de sesión de los usuarios inactivos de su sitio web de WordPress.

Ya que nunca puede estar seguro de si los usuarios de su sitio han cerrado la sesión o no.

Tener sesiones almacenadas en su navegador puede exponer a los usuarios al secuestro de sesiones y su sitio web será pirateado fácilmente.

Nota: Yo soy el único usuario en mis sitios, el acceso al escritorio esta bloqueado por el WAF de Cloudflare


#3 Usar Certificados de Seguridad

En este tiempo es tan fácil tener un certificado de Seguridad (SSL Certificate)

La mayoría de proveedores de hosting ofrecen certificados de seguridad gratuitos de Let’s Encrypt.

Si usas CloudFlare, puedes usar la opción de SSL que estos tienen disponible.

Si tu proveedor de hosting no tiene la opción de implementar y actualizar los certificados de seguridad en pleno 2023, considera usar un proveedor de hosting de calidad.

Nota: Tambien se pueden implementar por medio de CloudFlare.


#4 Escanear tu Sitio de WordPress con Regularidad

Yo no soy fan de usar plugins de seguridad y tampoco estoy obsesionado con respecto al escaneo regular de mis sitios

Sin embargo, puedes escanear tu sitio para asegurarte que no está infectado usando plugins gratuitos que identifican malware o cambios en plugins o archivos de la instalación de WordPress.

WordFence es uno de los plugins más populares para esta tarea.

Una vez que tus dudas sean despejadas por el plugin, puedes desactivar y borrar el plugin.

Nota: No he tenido incidentes de seguridad en años, no uso plugin de seguridad en este momento y raramente escaneo mis sitios.


#5 Cambiar el Permiso de Ciertos Archivos

Una de las maneras de contrarrestar los ataques realizados por hackers es cambiando los permisos de ciertos archivos

Los archivos del sistema cuyos permisos debes verificar son estos:

/public_html/0755
public_html/wp-includes0755
/public_html/.htaccess0644
/public_html/wp-admin/index.php0644
/public_html/wp-admin/js/0755
/public_html/wp-content/themes0755
/wp-content/plugins0755
/public_html/wp-admin0755
/public_html/wp-content0755
/public_html/wp-config.php0640

Hay plugins de seguridad que permiten cambiar los permisos de estos archivos.

Nota: Todo esos archivos se pueden proteger mediante el WAF de CloudFlare.


#6 Utilizar Protección contra HotLinking

Otra de las maneras de proteger los recursos de tus sitios es usar la protección contra Hot linking

Usar el sistema en contra de hot linking te ayudará a evitar que otros sitios web se vinculen a sus recursos de imagen o abusen de tu ancho de banda.

Código para el .HTACCESS si deseas prevenir el Hot Linking sin la ayuda de un plugin.

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)example.com/.*$ [NC]
RewriteRule .(gif|jpg|jpeg|bmp|zip|rar|mp3|flv|swf|xml|php|png|css|pdf)$ – [F]

Yo no aplico esto mediante plugins o mediante la modificación del archivo .HTACCESS

Nota: Todo esos archivos se pueden proteger mediante el WAF de CloudFlare.


#7 Detener Bots Maliciosos

En el contexto de WordPress, los bots maliciosos que intentan realizar actividades no deseadas en tu sitio, como el spam en comentarios o intentos de acceso no autorizados.

Puedes detener los bots usando plugins o WAF a nivel de CDN

Estos son algunos plugins recomendados para minimizar la fuerza con los que bots maliciosos escanean tu sitio

  • Black Hole
  • BBQ: Block Bad Queries

Cloudflare tambien cuenta con BOT Fight Mode, funcionalidad que permite detectar y detener bots de manera automática.

Nota: Yo no suelo enfocarme en la detección de bots debido a que requiere mucho trabajo, mi enfoque esta en blindar las areas que puedes ser focos de problema.


#8 Detener la Numeración del Usuario

La enumeración de usuarios es un tipo de ataque donde las partes nefastas pueden sondear su estructura de enlaces permanentes para descubrir su identificación de inicio de sesión.

Esto suele ser un precursor para los ataques de fuerza bruta.

Si está seguro de que todos sus usuarios usan contraseñas seguras que se actualizan regularmente, entonces no hay nada de qué preocuparse

Si todas tus páginas para iniciar sesión están blindadas, esto no es algo que deba preocuparte

Nota: Yo no suelo hacer nada activamente para detener la numeración del usuario, ya que mis páginas de inicio son bastante seguras,


#9 Prevención de Spam

Una de las medidas que tambien debes tomar es reducir el Spam que llega a tu sitio en los comentarios y por medio de los formularios de contacto.

Si no le encuentras utilidad a los comentarios que también son parte de tu contenido puedes desactivarlos por completo.

Nota: Yo no tengo habilitada la sesión de comentario en mis sitios, por lo tanto no tengo que lidiar con spam y otros.


#10 Remover la Información de Versión de WordPress

El generador de WordPress agrega automáticamente cierta meta-información dentro de las etiquetas “principales” de cada página en el front-end de su sitio.

A continuación se muestra un ejemplo de esto:

<meta name = “generator” content = “WordPress 3.5.1” />

La meta-información anterior muestra qué versión de WordPress está ejecutando actualmente su sitio y, por lo tanto, puede ayudar a los piratas informáticos o rastreadores a escanear su sitio para ver si tiene una versión anterior de WordPress o una con un exploit conocido.

Si tienes la última versión de WordPress, no te preocupes por esto

Código para el PHP File si deseas aplicar esta información de manera manual:

function remove_version_from_style_js( $src ) {
if ( strpos( $src, 'ver=' . get_bloginfo( 'version' ) ) )
$src = remove_query_arg( 'ver', $src );
return $src;
}
add_filter( 'style_loader_src', 'remove_version_from_style_js');
add_filter( 'script_loader_src', 'remove_version_from_style_js');

Nota: Si usas la última versión de WordPress y si las otras area de tu sitio están bien protegidas, no hay nada de que preocuparse


#11 Cambiar el Prefijo de la Base de Datos

Su base de datos de WordPress es el activo más importante de su sitio web porque contiene mucha de la valiosa información de su sitio.

La base de datos también es un objetivo para los piratas informáticos a través de métodos como inyecciones SQL y código malicioso y automatizado que se dirige a ciertas tablas.

Una forma de agregar una capa de protección para su base de datos es cambiar el prefijo de tabla predeterminado de WordPress de “wp” a otra cosa que sea difícil de adivinar para los hackers.

WordFence ha indicado que Cambiar el Prefijo de la Base de Datos no Mejora tu Seguridad, sin embargo realizar esto no requiere de mucho esfuerzo.

Puedes cambiar el prefijo de la base de datos usando un plugin y luego eliminar el plugin.

Nota: Algo más efectivo es usar un cortafuegos personalizado y bloquear palabras claves que pueden conducir a una inyección SQL.


#12 Desactivar el XMLRPC.PHP en WordPress

Otras de las medidas de seguridad es desactivar el XMLRPC.PHP en WordPress , hazlo si no requieres acceso remoto a tu sitio como la conexión que estableces con tu sitio con algunos plugins como Jetpack

Puedes verificar el estado de tu archivo XMLRPC.PHP usando el siguiente validador de XMLRPC.PHP

Si deseas aplicar esta medida de seguridad de manera manual, este el Código para el .HTACCESS

# Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order deny,allow
deny from all allow from 123.123.123.123
</Files>

Nota: Yo he bloqueado el acceso a todos los archivos .php para los no administradores con la ayuda de CloudFlare.


#13 Bloquea los Ataques de Fuerza Bruta

Además de tener una contraseña robusta, debes de detener los ataques de fuerza bruta por dos razones:

  • Mejorar la seguridad
  • Evitar el desperdicio de los recursos de tu servidor

Una de las medidas es cambiar la dirección de login, a pesar que la medida es criticada por algunos y alabada por otros.

Si usas Jetpack, puedes eliminar el inicio de sesión que WordPress brinda por Default y solo permitir el inicio de sesión por medio de WordPress.com

Nota: Yo he bloqueado el acceso a todos los archivos .php para los no administradores con la ayuda de CloudFlare. Esa medida bloquea el acceso de las páginas de acceso para el público.


#14 Bloquear la Dirección IP

Yo no creo en bloquear direcciones IP ya que los bots pueden utilizar miles de direcciones IP diferentes para llevar a cabo ataques coordinados.

La única forma de detener ataques automatizados es usando plugins de seguridad.

Creo que WordFence realiza esto de una manera bastante efectiva.

Nota: Yo no suelo enfocarme en bloquear direcciones IP, mi enfoque esta en blindar las areas que puedes ser focos de problema.


#15 Usar Autenticación de Dos Factores

La autenticación de dos factores consiste en ingresar tu usuario y contraseña para luego ingresar un código de un autenticador.

Esta medida asume que un hacker tiene tu usuario y contraseña o los credenciales de alguien que trabaja en tu sitio.

Nota: Si eres el único usuario registrado en tu sitio, esta medida no es necesaria. Si tienes blindadas tus páginas de acceso, ni piensen en hacer esto.


#16 Poner Preguntas de Seguridad a la Página de Acceso

Otra medida de seguridad para tu página de acceso es el uso de preguntas de Seguridad.

All In One WP Firewall pone operaciones matemáticas básicas para poder iniciar sesión

Nota: Si eres el único usuario registrado en tu sitio, esta medida no es necesaria. Si tienes blindadas tus páginas de acceso, ni piensen en hacer esto.


#17 Desactivar la Navegación del Directorio

Por defecto, la indexación de directorios está habilitada en los sitios web de WordPress, una persona con intenciones hostiles puede navegar y descubrir los archivos y la estructura de su sitio web.

Mi proveedor de hosting previene que esto suceda en mis sitios de manera automática.

Nota: Adicionalmente, he bloqueado el acceso a todos los archivos .php para los no administradores con la ayuda de CloudFlare.


#18 Detener la Edición de Archivos PHP desde el Escritorio

Esta es una medida a la cual no le encuentro sentido ya que si un hacker se encuentra en tu escritorio de WordPress, ya perdiste.

Un pequeño código implementado desde el escritorio no detendrá a nadie que tenga los conocimientos suficientes para hackear un sitio.

Nota: Aún no le encuentro sentido a esta medida encontrada en algunos plugins de seguridad.


#19 Desactivar la Ejecución de Archivos PHP

Si los hacker logran subir un archivo a tu sitio de WordPress, estos pueden tratar de ejecutarlo.

Para prevenir eso, debes pegar un archivo .HTACCESS en la carpeta wp-content/uploads/  con este código:

<Files *.php>
deny from all
</Files>

Nota: No cuesta nada aplicar esta optimización, si no usas plugins que permitan subir archivos y si bloqueas acceso a tus archivos .php a no administradores no hay nada de que preocuparte


#20 Actualiza las Llaves de Seguridad de WordPress.

Una de las formas de proteger tu sitio es mediante la actualización de las llaves de seguridad.

Estas llaves de seguridad se les conoce como Salt Keys


#21 Implementar Seguridad de HTTP Headers

Una de las maneras de proteger tu sitio en contra de algunas vulnerabilidades es mediante la implementación de HTTP Headers.

Puedes revisar como esta la condición de los headers en tu sitio mediante el uso del sitio Security Header.

Haz la prueba


#22 Usar un Plugin de Auditoría

Si debes de darle acceso a un tercero para que revise algo de tu sitio, debes crear otro usuario con las funciones limitadas al servicio que va a realizar.

Una buen forma de prevenir problemas con darle acceso a terceros es mediante el uso de un plugin de auditoria.

Plugins Recomendados

  • WP Security Audit Log
  • Activity Log

Puedes leer más sobre el tema en esta publicación: Plugins de Auditoria de WordPress


#23 Realiza Test de Seguridad

Algo que deberías hacer es realizar test de vulnerabilidad

Tipo de VulnerabilidadTest
SQL InjectionSQL Injection Scanner
Cross Site Scripting (XSS)XSS Scanner

#24 Monitorear los Errores 404

Puedes bloquear algunos bots con algunos plugins pero eso es una tarea imposible bloquearlos todos.

Los bots siempre andan husmeando en tu sitio en busqueda de una vulnerabilidad.

Hay plugins que te permiten registrar los errores 404 y algunos plugin te permiten ver el tráfico de tu sitio en tiempo real.

Si cambiaste la dirección de acceso y ves que de distintas partes del mundo intentan acceder, bloquea esas direcciones.

Lo mismo puede hacer con las direcciones IP’s que buscan plugins con vulnerabilidades


#25 ¿Esta tu Sitio de WordPress en Linea?

Una buena práctica es tener un servicio que te permita saber si tu sitio esta en linea.

Un hacker pudo haber borrado tu sitio y pueden pasar horas hasta darte cuenta.

Plugins y Servicios Recomendados

  1. Jetpack
  2. Uptime Robot

#26: Proteger Archivo WP-Config.PHP

Uno de los archivos más importante a proteger es el archivo WP-Config.

Tiene la contraseña de la base de datos y las wordpress salts

Código con el Archivo. HTACCESS

<files wp-config.php>
order allow,deny
deny from all
</files>

#27 Detener Script Injection

Para proteger tu sitio, debes protegerlo ante la Inyección de Scripts

Este es un Código que puedes agregar a tu archivo .HTACCESS.

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{QUERY_STRING}
(<|%3C).script.(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2})
RewriteRule ^(.*)$ index.php [F,L]

#28 Revisar si tus Credenciales están expuestos en la Dark Web

Otra de las medidas que puedes implementar a nivel externo es usar una herramienta que verifica si tu sitio ha sido mencionado en la deep web y si los credenciales han sido expuestos allí.

ImmuniWeb tiene una herramienta gratuita que verifica lo que acabamos de mencionar:

Domain Security Test

Si tu nombre dominio aparece en los resultados, puedes cambiarlos para evitar un posible hackeo.


#29 Re-nombrar la carpeta de Plugins

Una de las recomendaciones que se brindan con poca frecuencia es re-nombrar la carpeta de plugins.

Re-nombrar la carpeta de plugins es algo que se puede realizar con la ayuda de código o de plugins

Si eres de los que usa CloudFlare u otro servicio como WAF (Web Application Firewall), no debes molestarte con esto.

En caso de querer hacerlo, este es el plugin que puede ayudarte con eso:


Manuel Campos, English Professor

Manuel Campos

I am José Manuel. I am writing about things I know and things that I am learning about WordPress. I hope you find the content of this blog useful.

WP SURFER

home

about

privacy

contact

© 2024 WP SURFER • Made with Love in Costa Rica