BitácoraWP

Seguridad en WordPress: Cómo proteger y evitar malware.

Un apartado que muchas veces se deja de lado es la seguridad en WordPress. Muchas veces implementamos medidas de seguridad luego de haber sido infectados y pasar por ese mal momento en que tu sitio:

  • No esta disponible a los usuarios.
  • Aparecen anuncios que tu no colocaste.
  • Tu sitio redirige a otros sitios que no reconoces.
  • Los resultados de busqueda aparecen caracteres extraños.
  • Google marca tu sitio como no seguro.
  • etc.

Para prevenir estos escenarios es recomendable proteger tu sitio WordPress. Ya sean con plugins, o simples trucos que te serviran para volver tu sitio web mucho mas seguro.

¿Por qué es importante mejorar la seguridad en WordPress?

La cantidad de sitios web en el mundo creados con WordPress son del  42,9%. Lo cual traducido en otras palabras significa mas mercado para los ciberdelincuentes enfocados en WordPress.

Por lo que estate seguro de que si o si te van a atacar, mas aun si tienes un sitio medianamente posicionado, con buen cantidad de visitas, o es directamente tu negocio (e-commerce, Plataforma de aprendizaje, sistema de tu empresa, etc).

Por lo cual si eres uno de los muchos usuarios que confían en WordPress para construir su presencia en línea, ¡estás en el lugar correcto!.

Cómo mejorar la seguridad en WordPress

En este artículo, veremos acerca de como proteger WordPress y consejos prácticos para blindar tu sitio y estar preparado para afrontar los futuros ataques .

Dividire el artículo en 3 secciones,

Recuerda que recomiendo seguir todas las acciones. Pero si deseas puedes saltar las que no te convensan.

IMPORTANTE: Recomiendo seguir este tutorial siempre y cuando este seguro de que tu sitio este libre de malware. Si tu sitio fue infectado debes limpiarlo, puedes seguir este tutorial de como limpiar un sitio infectado y luego seguir con este tutorial para blindar tu sitio.

Acciones que debes hacer si o si.

Mantener actualizada la versión de WordPress.

Una de las mayores causas de ataques exitosos se dan por sitios que tienen una versión de WordPress antigua. Debido a que sus vulnerabilidades son tan conocidas que hasta en Google las puedes encontrar.

WordPress lanza actualizaciones de forma regular para corregir estos problemas de rendimiento y seguridad. Por lo que es muy importante mantener actualizada tu versión de WordPress ya que en cada actualización se corrigen vulnerabilidades encontradas en la versión previa.

IMPORTANTE: Es recomendable realizar una copia de seguridad antes de actualizar tu versión de WordPress.

Puedes ir a la sección de Escritorio > Actualizaciones para ver si hay una versión nueva de WordPress que puedes instalar.

actualizar WordPress

Mantener actualizados los temas y plugins.

Otras posibles vulnerabilidades son los plugins y temas. Debido a que sus códigos pueden ser analizados, se hallan vulnerabilidades las cuales pueden usarse para acceder o ejecutar funciones en nuestro sitio.

Tambien es muy común que en caso hayas sido infectado, se creen archivos maliciosos y sobretodo backdoors en los archivos de tus plugins. Esto puede evitarse y hasta solucionar actualizando tus plugins y tus temas.

actualizar plugins

Usar plugins y temas originales.

Una de las razones mas comunes de infección son debido al uso de plugins o temas piratas o descargadas de un sitio que no sea el repositorio WordPress o el sitio oficial del plugin o tema.

A menos que hayas estudiado todo el código que contiene un plugin no oficial que desees instalar. No te recomiendo hacerlo. De lo contrario es casi seguro que tu sitio sea infectado en un futuro.

Usar los temas y plugins necesarios.

En el caso de los temas, recomiendo instalar solo dos temas. Uno activo (puede incluir el tema hijo) y un tema de respaldo en caso falle el activo.

Si tienes mas de dos temas, puedes eliminar los temas restantes de la siguiente forma:

temas en WordPress
eliminar tema en WordPress
temas en WordPress

Para los plugins recomiendo instalar solo los necesarios y los demas desinstalarlos, no solo basta con desactivarlos. al desinstalarlos disminuyes el peso de tu sitio, puedes mejorar la velocidad de carga y sobre todo disminuiras el número de peligros y vulnerabilidades que podría tener tu sitio.

plugins inactivos WordPress

Usar credenciales de acceso seguras.

Evita utilizar nombres de usuario comunes, ejemplo ( admin, tusitioAdmin, administrador, root, admin@tusitio.com ). Estos tipos de nombres son los mas utilizados en ataques de fuerza bruta en las que prueban mediante un bot un sin fin de contraseñas hasta dar con el usuario y contraseña de tu sitio.

Asimismo tu contraseña preferentemente debe ser una generada con un generador de contraseñas seguras. El mismo wordpress te sugiere una contraseña segura al momento de instalar WordPress y al momento de crear un nuevo usuario.

Con una contraseña segura disminuiras exponencialmente la probabilidad de caer bajo un ataque de fuerza bruta.

añadir usuario en WordPress
añadir usuario en WordPress

Usar un certificado SSL.

La función del certificado SSL, aparte de evitar que aparezca un mensaje gigante rojo de «Sitio no seguro» a tus visitantes, es la de cifrar los datos enviados de punto a punto. Esto en caso tus datos sean interceptados en el trayecto de envío y recepción de información. Si es asi el atacante solo obtendra datos cifrados.

Generalmente los mismos proveedores de hosting ofrecen el certificado SSL de forma gratuita, en caso no cuentes con uno solicita a tu hosting, en caso no te lo provean deberias considerar cambiar de proveedor de hosting.

Acciones en el panel de WordPress

Usar la versión https de tu sitio.

Es muy comun que la dirección principal configurada de un sitio sea http://tusitio.com en lugar de https://tusitio.com.

La diferencia entre http y https es que en la segunda estas haciendo uso del certificado SSL.

Puedes configurar esto en el apartado de Ajustes > Generales de tu WordPress.

direccion https en wordpress
direccion https en wordpress

No permitir que cualquier usuario se registre.

En caso tu sitio no requiera que se registren usuarios por si mismos, puedes desactivar la opción de «Cualquiera puede registrarse» en Ajustes > Generales.

Al desactivar esta opción no permitiras que cualquier visitante ( usuario normal o atacante) se registre como usuario en tu sitio WordPress.

limitar miembros en WordPress

Moderar los comentarios

Una posible puerta a los ataques es el formulario de comentarios. El atacante puede realizar una inyección SQL o simplemente generar SPAM mediante los comentarios.

Una forma de enfrentar esto es aprobando los comentarios manualmente o simplemente desactivarlos. Puedes optar por uno o por los dos segun sea tu necesidad de recibir comentarios en tu sitio.

Puedes configurar este apartado en Ajustes > Comentarios. Marcando las casillas de «El comentario debe aprobarse manualmente» y «Los usuarios deben registrarse y acceder para comentar».

Moderar comentarios, seguridad en wordpress

Cambiar la dirección de acceso.

Como todo usuario wordpress conoce, la dirección para acceder a la administración en WordPress es www.tusito.com/wp-admin. Esto lo saben aun mas los atacantes.

Al cambiar esta dirección de acceso, tu sitio se vuelve menos atractivo para recibir ataques de fuerza bruta.

Puedes cambiar la dirección de administración utilizando el plugin WPS hide login. Siguiendo estos pasos:

1.- Instala el plugin WPS hide login del repositorio de WordPress.

plugin wps hide login

2.- Ingresa a la sección de «Ajustes > WPS hide Login«, configura la nueva dirección de acceso y guarda los cambios.

seguridad en wordpress cambiar direccion de acceso

Eso es todo, tu dirección de acceso habra cambiado.

IMPORTANTE: En caso olvides la nueva dirección de acceso y no puedas acceder, puedes volver a usar /wp-admin desactivando el plugin manualmente. Para esto simplemente cambia el nombre a la capeta «wps-hide-login» en la ruta «wp-content > plugins» de los archivos de tu sitio.

Utilizar un plugin de seguridad

Es obligatorio tener un plugin de seguridad activo y configurado en tu sitio WordPress. Hay gran variedad de plugins para seguridad. Desde gratuitos, de pago y freemiuns.

Aqui te dejo una lista de los mas utilizados:

  • Wordfence
  • Sucuri
  • WP Cerber
  • Jetpack

Recomiendo el uso de Wordfence, un plugin gratuito el cual ofrece:

  • Firewall
  • Limite de intentos de inicio de sesión
  • Scaner de malware
  • Autenticación 2FA
  • entre otras

Aqui un tutorial detallado de como instalarlo y configurarlo.

Limitar los intentos de acceso

En caso tu plugin de seguridad no cuente con este beneficio, puedes utilizar el plugin Limit Login Attemps Reloaded, el cual como su nombre lo indica te permitira limitar el numero de intentos de inicio de sesión fallidos por dirección IP.

plugin limit login attemps

Puedes configurar el limite de intentos de acceso en los ajustes del plugin. Recomiendo usar un numero menor a 4 para los intento de sesión.

proteger wordpress, limitar el intento de inicios de sesion

Utilizar un prefijo de tablas en base de datos diferente

Al momento de instalar WordPress en tu sitio, Se te consulta por un prefijo de tablas.

prefijo de tablas wordpress

El prefijo por defecto es «wp_». Lo cual la mayoria de sitios usa. Por lo que es practicamente público que tus tablas se llamen «wp_options, wp_comments, wp_users, etc» y esto hace mas sencillo los ataques a tu base de datos. Pero si cambias el prefijo a por ejemplo clave_options, clave_users, etc, los atacantes no sabran el nombre de tus tablas y sera mas complicado ejecutar ataques de inyección SQL.

IMPORTANTE: antes de realizar este procedimiento, se recomienda realizar una copia de seguridad de la base de datos. Esto para revertir en caso suceda un imprevisto.

Para lograr esto de forma sencilla puedes utilizar el plugin Brozzme DB prefix & Tools adons y seguir estos Pasos:

  • Instalamos el plugin Brozzme DB Prefix & Tools Addons.
  • Vamos a la sección de «Herramientas > DB PREFIX» .
  • Veremos nuestro prefijo actual. Colocaremos nuestro prefijo nuevo o usaremos el que nos genero en la segunda caja y damos click al botón «Change db prefix».
plugin brozzme db prefix
cambiar el prefijo de las tablas en WordPress, seguridad en WordPress

Listo podremos ver en nuestro phpMyAdmin que el prefijo de las tablas ha cambiado.

prefijo de las tablas en WordPress

Otra forma de cambiar el prefijo seria de forma manual. Esta forma es mas complicada, por lo que puedes ver este tutorial mas detallado de como realizarlo.

Acciones en el panel del hosting.

Para esta sección utilizaremos el panel de administración que te provea tu hosting. En mi caso utilizare Cpanel.

Necesitaremos editar los archivos de nuestro sitio. Para esto iremos a la sección de archivos de nuestro panel.

administrador de archivos Cpanel

Ingresaremos a la carpeta en la que se encuentra nuestro sitio WordPress. Generalmente se llama «public_html«.

Desactivar la edición de archivos en WordPress

WordPress tiene la opción de editar archivos de tu tema desde el panel de WordPress. En caso un usuario no reconocido haya logrado acceder a tu sitio, va a poder editar facilmente estos archivos, lo cual no es bueno.

Puedes quitar la opción de editar archivos en WordPress editando el archivo wp_config.php.

editar archivo wp-config

Añade el siguiente código al archivo y guarda los cambios, de preferencia añadelo al final del contenido.

define( 'DISALLOW_FILE_EDIT', true );

Si deseas volver a activar esta característica, solo tendras que borrar la línea agregada.

Deshabilitar la ejecución de PHP en carpetas que no son de confianza.

Existen carpetas las cuales son de acceso publico, como la carpeta de imagenes y archivos.

Existe la posibilidad que un atacante suba archivos script a estas carpetas y las ejecute. Secuestrando o dañando tu sitio WordPress.

Para evitar esto podemos añadir una regla al archivo .htaccess ubicado en la raiz de los archivos de tu sitio WordPress.

editar archivo htaccess

IMPORTANTE: Copia el código actual de tu archivo .htaccess en un bloc de notas o descarga el archivo antes a modo de copia de seguridad.

Agrega el siguiente código en el archivo y guardalo. De preferencia añaedlo al final del contenido

<FilesMatch “\.(php|php\.)$”>
    Order Allow,Deny
    Deny from all
</FilesMatch>

Este código evitara que puedan acceder a archivos con terminación php o que su nobre contenga php, esten o no en una carpeta pública.

Deshabilitar XML-RPC

XML-RPC es una forma en la que que puedes ejecutar funciones remotamente en tu sitio WordPress, en caso no cuentes con acceso a una PC. Desafortunadamente esta función conlleva mas riesgos que beneficios por lo que es altamente recomendable desactivarla.

Puedes utilizar el plugin Disable XML-RPC para hacerlo.

Tambien puedes hacerlo de forma manual. Para ello editaremos el archivo .htaccess de tu sitio WordPress.

IMPORTANTE: recomiendo hacer una copia del archivo .htacess antes de realizar el proceso.

Un vez en el archivo agrega este código, de prefrencia al final del contenido del archivo.

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

IMPORTANTE: Puedes cambiar las xxxxxx por tu dirección ip, en caso contrario borra esa linea.

Para verificar que en efecto el XML-RPC esta desactivado puedes visitar esta página, ingresar la url de tu sitio y chequealo. Si el análisis muestra un mensaje de error significa que el XML-RPC esta desactivado.

verificar XML-RPC en WordPress
verificar XML-RPC en WordPress

Verificar la version de PHP.

Recomiendo utilizar la ultima versión de php disponible. Incluso las nuevas actualizaciones de WordPress son creadas para ejecutarse en las versiones de php mas recientes. Si no actualizas php llegara un momento en el que tu sitio WordPress no sea compatible. Ademas que con cada nueva actualización se corrigen vulnerabilidades que existen en versiones anteiores.

Para ver la versión de php que estas usando, ingresa al apartado de «MultiPhp Manager» del panel de tu hosting.

administrar versión de php Cpanel

Ubica tu sitio WordPress y veras la versión php que estas usando.

Si deseas actualizar la versión. Primero anota la versión actual en la que te encuentras, luego selecciona tu sitio y en las opciones de la parte superior derecha elige la versión de php que deseas. Te recomiendo las dos mas recientes.

Da click en aplicar y listo tu php esta actualizado.

cambiar versión de php Cpanel

Si ves errores en tu sitio luego de realizar este procedimiento, puedes volver a la version en la que te encontrabas.

Verificar los permisos en los archivos.

Es recomendable que configures los permisos de tus archivos y carpetas de la siguiente manera:

  • Permiso para Archivos 0644
  • Permisos para Carpetas 0755
permisos de archivos WordPress, proteger wordpress

En caso que tus archivos no esten con esta configuración de archivos puedes solicitar a tu proveedor de hosting que las cambie.

Nombres de usuario y Contraseñas seguras.

Se recomienda tener los accesos de:

  • Panel del hosting.
  • Accesos FTP.
  • Bases de datos.

Con usuarios no genéricos como (admin, administrador, tu correo personal, etc), ademas de usar contraseñas seguras generadas por la misma plataforma o por otra como esta.

Conclusión

Realizar estas acciones mejorara exponencialmente la seguridad de tu sitio WordPress y lo hara menos atractivo de recibir ataques y mas aun de ser infectada.

Asi te evitaras el trabajo y la mala experiencia de ser infectado.