Seguridad en WordPress Guía 2021

por | Feb 25, 2021 | Ciberseguridad | 2 Comentarios

WordPress es el gestor de contenidos más usado en el mundo, más del 35% de todos los sitios web en el mundo están hechos con este, es por eso por lo que es muy importante tener muy presente la seguridad a la hora de crear un sitio web con este CMS, ya que cada día los ciberataques a sitios web aumentan por parte de los ciberdelincuentes, normalmente estos suelen atacar los sitios web por un motivo en concreto, como un reto personal, venganza, lucro, desprestigio la marca, autopromocionarse, entre muchos otros, es por eso que con solo tener tu sitio web alojado, por ejemplo, en un hosting, VPS o un servidor dedicado, con solo tener la posibilidad de recibir tráfico desde internet, la red de redes, ya corre el riesgo de poder sufrir ataques por parte de ciberdelincuentes, debido a esto es por lo que he decidido hacer esta guía sobre seguridad en WordPress para que sepas como securizar y añadir barreras de protección a tu sitio web creado con este gestor de contenidos, no voy a limitarme a solo darte recomendaciones de plugins de seguridad, voy a darte también fragmentos de códigos para que los implementes en tus ficheros de configuración y, que puedan complicarle la labor de a los ciberdelincuentes y puedas tener tu sitio web de una forma más asegurada, que es la intención.

Tabla de contenidos

Problemas de seguridad más comunes

Empezamos hablando sobre los principales problemas de seguridad, en realidad, los problemas más graves se pueden evitar usando el sentido común, esto es algo muy cliché en la ciberseguridad, pero en verdad si se pusiera en práctica se podrían evitar muchos inconvenientes. La lista de los 5 problemas más comunes según Wordfence (plugin de seguridad para WordPress) es la siguiente:

  • Plugins
  • Fuerza bruta
  • Núcleo
  • Tema
  • Hosting

Hay muchos más que puedes seguir indagando por aquí. Y es que, en realidad esta lista está en todo lo correcto ya que, la primera razón por la cual pueden vulnerar sitios web, son los plugins y es que, muchas personas que crean sus sitios web con este CMS creen que mientras más plugins tengan, mejor será el sitio web y esto en teoría puede ser verdad, mientras más plugins tengas, más funcionalidades tendrá tu web, pero también tendrá una velocidad de carga más lenta y, por supuesto, más código, código que puede tener vulnerabilidades que los atacantes usen para poder entrar a, por ejemplo, el dashboard de WordPress como administrador, de ahí la importancia de siempre mantener los plugins, el tema que estés usando y la versión de WordPress actualizada ya que así, además de que se agreguen nuevas funcionalidades, se implementarán parches de seguridad que pueden corregir vulnerabilidades que los atacantes puedan usar para comprometer tu sitio web.

Por otro lado, podemos destacar los ataques por fuerza fruta y el hosting, los ataques por fuerza bruta suelen verse mucho en los formularios de acceso, el típico /wp-login.php (que es algo que debes cambiar YA mismo, más adelante verás cómo puedes hacerlo), bien, a través de este tipo de formularios, los atacantes suelen probar distintas combinaciones de usuarios y contraseñas (en algunos casos solo de un usuario con muchas contraseñas, puesto que, hay formas pasivas de enumerar usuarios en WordPress, veremos también más adelante como evitar esto), todo esto con la intención de lograr adivinar la combinación correcta de usuario y contraseña para poder acceder al sitio web (usualmente suelen apuntar a usuarios administradores, aunque en algunos casos también es común que apunten a usuarios comunes, ya que hay formas en las que se puede escalar privilegios en WordPress, usualmente por una vulnerabilidad por falta de actualización).

También, aquí entra en juego otra debilidad que muchas personas suelen tener, USAR CONTRASEÑAS DÉBILES Y USAR LA MISMA CONTRASEÑA PARA TODO, perdonar las mayúsculas pero es que es algo tan obvio y tan necesario que no se haga que prefiero recalcarlo, es evidente que usar contraseñas débiles es ponerle la tarea mucho más simple a los ciberdelincuentes, ya que cuando se hace un ataque de este tipo, se suele usar una lista de palabras, la más famosa para esta labor es una llamada “rockyou”, que contiene cerca de 14.341.564 de contraseñas, es por eso que hay que crearse contraseñas largas, con mayúsculas, minúsculas, caracteres especiales, hasta con trozos de marte si es necesario, pero que NO SEA COMÚN y, por favor, usar contraseñas distintas para cada servicio, porque es muy común hoy en día que un usuario se registre en muchos servicios con una sola dirección de correo electrónico y, a más servicios esté registrado, más probabilidad hay que haya un inconveniente en alguno de esos servicios que provoque que se filtren las credenciales de los usuarios, a lo que quiero llegar es que, un atacante que quiera atacar tu sitio web, que investigue un poco, sepa que correo se usa para acceder a la administración, podría encontrar alguna base de datos con las credenciales de acceso con ese mismo correo pero a un servicio distinto y, si usas la misma contraseña para todo, el ciberdelincuente solo tendría que copiar la contraseña y pegarla en el login para acceder y esto aplica para todos los servicios, no solo para WordPress.

Seguidamente, es importante resaltar que, actualmente existen sitios web como Exploit DB, donde se suelen subir exploits que pueden explotar vulnerabilidades encontradas en aplicaciones, servicios, gestores de contenido, entre otras tecnologías, por lo que, una persona sin apenas conocimiento técnico que pueda hacer un reconocimiento nada avanzado sobre tu sitio web y pueda detectar tu versión de WordPress o ver la versión de alguno de tus plugins, buscar si hay una vulnerabilidad para esa versión y encontrar un exploit (y digo encontrar y no crear, partiendo de que hablamos de personas con un perfil no muy técnico), pueden llegar a comprometer tu sitio web de forma muy fácil, es por eso que ese concepto de “¿Quién va a querer atacar mi sitio web?, la gente que sabe hacer eso tiene otras cosas que hacer”  que lo repiten mucho, no aplica, actualmente toda la información está en internet y al alcance de la mayoría y no hay que ser alguien que controle mucho de ciberseguridad para poder vulnerar un CMS, por eso es mejor siempre asegurar todo  lo que se pueda el sitio web, así que, a continuación veremos formas de poder añadir barreras de seguridad a tu sitio web hecho en WordPress.

Recomendaciones de seguridad

Cambiar login por defecto

Bien, empezamos por la más básica y una de las más útiles, ya que, si un ciberdelincuente no tiene acceso a la página para acceder a tu sitio, no podrá ni siquiera hacer fuerza bruta a un formulario de login (esto claro, que tu sitio no permita el registro de usuarios, en dicho caso deberías plantearte añadir un captcha en el formulario, por ejemplo, el que ofrece Google), entonces, para poder hacer esto, se puede instalar un plugin bastante ligero y fácil de usar, yo en este ejemplo usaré un wordpress que tengo instalado en mi VPS que uso para pruebas, el plugin se llama WPS Hide Login, es tan fácil como instalarlo, activarlo, irte a Ajustes > General y ahí, especificar el nuevo nombre del directorio de login y, a cuál directorio enviará las personas que intenten entrar al wp-login.php:

cambiar login por defecto en wordpress

Código útil para mejorar la protección

Bien, ahora veremos algunos fragmentos de código que pueden ayudarte a mejorar la seguridad de CMS, esto gracias a que ocultaremos mucha información que para un ciberdelincuente puede ser de ayuda a la hora de hacer un reconocimiento del sitio web,  te indicaré el código y en cuál fichero debes ponerlo, ya que algunos solo se podrán ejecutar en determinados ficheros de configuración del WordPres, por favor, realiza una copia de seguridad de cada fichero antes de editarlo, así si llega a darse una incompatibilidad, puedes devolver el fichero a como estaba antes:

En el fichero .htacces:

#Bloquear archivos sensibles

<files .htaccess>

Order allow,deny

Deny from all

</files>

<files wp-config.php>

Order allow,deny

Deny from all

</files>

 

#Bloquear archivos instalación

<files install.php>

Order allow,deny

Deny from all

</files>

<files setup-config.php>

Order allow,deny

Deny from all

</files>

 

#Bloquear información sobre WordPress 

<files readme.html>

Order allow,deny

Deny from all

</Files>

<files license.txt>

Order allow,deny

Deny from all

</files>

 

#Ocultar información del servidor (Apache) (Este comando puede fallar en determinados servidores. En ese caso, no usar)

ServerSignature Off

 

En el wp-config.php:

//Evitar que se puedan editar temas y plugins desde el Dashboard de WordPress

define( ‘DISALLOW_FILE_EDIT’, true );

 

//Desactivar el reporte de errores

error_reporting( 0 );

ini_set( ‘display_errors’, 0 );

Para cada código tienes un comentario que describe lo que hace.

No usar temas ni plugins piratas.

Seguidamente, esto es algo bastante obvio pero muy común que las personas que crean sus sitios web con este CMS no lo cumplen y, es NO usar plugins ni temas piratas, esto se debe a que, al instalar un tema o plugin pirata, este puede contener código malicioso que puede comprometer tu sitio web, además que, si está pirata, no recibirá actualizaciones y, por ende, las vulnerabilidades que se vayan descubriendo para esa versión que instalaste, no serán corregidos.

Por lo cual, es muy recomendable que se los plugins y temas de pago que necesites, intentes al máximo pagarlos para que tengas el código oficial, las actualizaciones, el soporte, etc.

Realizar copias de seguridad.

Por otro lado, están las copias de seguridad, estás son completamente necesarias, si por ejemplo hubo un fallo de seguridad en tu sitio web, alguien logró acceder y daño por completo el sitio en cuestión, una copia de seguridad puede ayudar a restablecer todo a como estaba en el momento que se hizo la copia. Actualmente muchos proveedores de hosting permiten la posibilidad de hacer una copia de seguridad al día (algo muy útil en realidad), así que si vas a elegir un hosting, ten presente esto, aunque igualmente existen plugins que permiten esta labor como por ejemplo, UpdraftPlus WordPress Backup Plugin pero igualmente, siempre que lo haga tu hosting será mucho mejor.

Usar SSL.

Seguidamente esta el implementar un certificado SSL en tu sitio web para que se use el protocolo HTTPS y de esta forma la información viaje de forma cifrada, en realidad esto puede dar más seguridad a tus visitantes ya que, su información, por ejemplo credenciales de inicio de sesión o registro, viajarán cifradas y, si un ciberdelincuente con por ejemplo, un sniffer de red como Wireshark (que no es nada difícil de usar), captura el tráfico, no podrá serle tan fácil ver la información que capture, al contrario que pasaría si no se implementará un certificado SSL y se usara el protocolo HTTP donde ahí el tráfico si viajaría en texto plano y en mismo ejemplo con el ciberdelincuente, este si podría leer, por ejemplo, las credenciales que se han enviado.

¿Cuál es el mejor plugin de seguridad?

Por otro lado, hablar sobre el mejor plugin de seguridad para WordPress, es algo completamente relativo, depende de con cuál te sientas más cómodo,  actualmente existen muchos como iThemes Security, Wordfence Security, WPScan (sí, además de la herramienta también tienen un plugin de seguridad), entre muchos otros, he de decir que en algunos casos, varios de estos plugins pueden afectar a la indexación de tu sitio web por parte de los buscadores, ya que, en algunos casos, suelen ser tan restrictivos que pueden bloquear a los robots de Google mismamente, así que es cuestión de ir probando y ver cuál te da mejores resultados (probando uno a la vez por favor), ahora,  vamos a ver como instalar y configurar Wordfence Security, uno de los más completos que existen actualmente, para instalarlo simplemente hay que buscar su nombre en la opción de “Añadir plugin”:

wordfence instalacion

Luego de instalarlo y activarlo, puedes poner una dirección de correo a la cual se enviarán las notificaciones de seguridad, accesos, bloqueos, entre otras:

Wordfence instalado

Las configuraciones son muy simples, el hecho de ya tenerlo instalado hace que se apliquen unas ciertas configuraciones de seguridad, igualmente veremos el Firewall y los escaneos en busca de código malicioso.

 

Para el Firewall, debemos dirigirnos a la opción de Firewall > Manage Firewall:

Firewall de wordfence

Seguidamente, entraremos en la opción “Rate Limiting”, ahí podremos establecer reglas para bloquear a usuarios dependiendo de su comportamiento en nuestro sitio web:

Configurar firewall

En este punto, podremos establecer reglas de, por ejemplo, si se detecta que un usuario esta accediendo más de 15 veces en menos de un minuto a la página 404, podemos intuir que, estará buscando algo y no lo consigue (como por ejemplo el directorio de login si es que lo cambiamos), en dicho caso lo mejor es bloquearlo:

De hecho, si te fijas cuando puse esa opción me arrojó un mensaje diciendo que era muy estricto y sí, lo es, puesto que un usuario sin malas intenciones si podría equivocarse unas 15 veces (poco probable, pero cabe la posibilidad), así que igualmente, debes jugar con estos valores para que se adecuen a las necesidades de tu sitio web, tanto los tipos de bloqueo como la duración del bloqueo.

Buena gestión de permisos.

Por otro lado, está tener una buena gestión de permisos, yo siempre recomiendo tener un usuario administrador para gestionar el CMD (por favor que el nombre no sea “Administrador” o “admin” ni nada parecido) y, tener otro que no tenga los permisos de administrador y que se verá de forma pública para, por ejemplo, ser el autor de los artículos que se suban, así si alguien apunta a ese usuario y logra acceder, accederá con sus permisos y no con los del administrador.

Anidado a esto, saber gestionar los permisos cobra más importancia si en tu sitio web se permite el registro de nuevos usuarios, como por ejemplo, una academia, una tienda online, un foro, etc, en este caso, debes gestionar de buena forma los permisos que se les asignan a los usuarios que recién se registra y, hacer otro tipo de configuraciones recomendadas como por ejemplo, ocultar a los usuarios sin permisos la barra de herramientas, si los usuarios pueden subir ficheros al servidor, asegurarse de filtrar las extensiones que se puedan subir y asegurar que el fichero que se suba con una extensión sí es un fichero de ese tipo (para evitar que puedan subir un código en php y en la petición cambiarlo para que el servidor crea que se está subiendo, por ejemplo, una imagen con extensión jpg), entre otros.

Buena gestión de permisos.

Finalmente te voy a dar una serie de recomendaciones adicionales que logran complementar las que ya hemos visto:

 

  • No acceder a la administración de WordPress desde una red pública, en dicho caso usar una VPN.

 

  • Asegurarse de usar contraseñas robustas, este sitio web puede ayudar a la hora de darte una idea de cómo son.

 

  • Siguiendo con las contraseñas, para no tenerlas anotadas en un papel al alcance de cualquiera, usa un gestor de contraseñas.

 

  • Contratar un buen hosting que pueda ayudarte en caso de un incidente de seguridad.

 

  • Utilizar un CDN, por ejemplo, Cloudflare, este tiene una tarifa gratuita.

 

  • Modifica el prefijo de la base de datos.

 

  • Si reciben comentarios, usa un plugin como Akismet para filtrar el spam.

 

Espero que todo esto les haya servido y que pudieran aprender algo nuevo.

2 Comentarios

  1. Dante martínez

    Articulaaazo, algun problema si lo comparto con mis compis del grado superior?

    Responder
  2. pedrito navas

    Suelo diseñar webs en wordpress y siempre vengo a este articulo por los códigos, gracias :DD

    Responder

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información adicional sobre protección de datos:
Responsable: Martin Frias.
Finalidad: Moderar los comentarios de este sitio web.
Cesión: NO se cederán a nadie, salvo obligación legal.
Derechos: Acceso, rectificación, cancelación y borrado de tus datos.
Legitimación: Tu consentido expreso.

Pin It on Pinterest

Share This