En esta guía de Seguridad para WordPress 2019 vamos a ver las medidas de seguridad web más utilizadas y pensadas para que un usuario medio pueda aprender cómo aumentar la seguridad en WordPress de manera fácil utilizando plugins de seguridad. También veremos las reglas de seguridad para proteger tu sitio usando el archivo htaccess.
Y en la parte final de este artículo podrás encontrar comentarios de profesionales y expertos en seguridad de WordPress.
Para que la lectura sobre cómo proteger WordPress contra Hackers no parezca aburrida he ilustrado las medidas de seguridad con imágenes de aliens. ¡Si te gustan compártelas en las redes sociales!
Servidor Seguro
Lo primero que tenemos que hacer para mejorar la seguridad es contratar un hosting de calidad, para asegurar que nuestra página web está alojada en un servidor seguro.
De lo contrario, toda la seguridad que implementemos después es inútil.
Por esta razón tenemos que comprobar que nuestro proveedor de hosting cumpla con las medidas de seguridad óptimas.
Medidas de seguridad para el servidor propias: Un buen hosting tiene que tener normas y protocolos de seguridad específicos para sus servidores, ya que solucionan vulnerabilidades en cuanto se descubren nuevos agujeros de seguridad.
Activar las Copias de seguridad automáticas: Las copias de seguridad es un básico de la seguridad web y normalmente hay que pedirle al hosting que active las copias de seguridad automáticas.
Firewall del servidor: Nuestro hosting debe ofrecer seguridad mediante Firewall a nivel de servidor, para bloquear intentos de ataques a los servidores.
Soporte después del hack: Para mí, lo más importante de un hosting es que te den soporte y soluciones si algún día tienes un problema de seguridad.
No serás el primero al que se le ha colado un virus y la empresa de hosting en vez de ayudarte te ha cancelado el servicio y te ha dejado totalmente tirado.
Por eso tenemos que elegir un hosting en el que estén dispuestos a ayudar en temas de seguridad y que te ayuden a solucionar los problemas, o al menos, que te pongan en contacto con empresas que aporten las soluciones.
✅ Un buen proveedor de hosting procurará tener la última tecnología y encargarse de:
- La seguridad del hardware y software para la red de sus servidores que aseguren físicamente los servidores y también las aplicaciones instaladas en ellos
- Actualizaciones constantes de la tecnología y del sistema operativo del servidor
- Actualizaciones constantes de las aplicaciones que ofrecen
- La configuración de permisos de los archivos y la base de datos
✅ Además un hosting de calidad también ofrecerá herramientas adicionales de protección web como:
- Copias de seguridad automáticas
- Protección de los ataques de denegación de servicio DDoS
- Análisis de virus de nuestro alojamiento
- Cortafuegos que analicen las solicitudes
- Protección contra el Hotlinking
- Bloqueo del acceso por países
✅ Y por último, y más importante, nuestro proveedor de hosting debe tener un sistema de soporte de calidad con estas características:
- Tener un sistema rápido y cómodo de soporte mediante tickets, chat o teléfono, para pedir ayuda fácilmente si lo necesitas
- Orientación en cualquier duda que tengas acerca del uso del servidor, sus aplicaciones y su seguridad
- Que facilite información y recursos en caso de tener problemas
- Técnicos de soporte especializados en WordPress
Protocolo HTTPS
El HTTPS (Hypertext Transfer Protocol Secure) Protocolo de Transferencia de Hypertexto Seguro, permite la comunicación y transferencia de información en internet de forma segura.
Este protocolo cifra la información que se envía en las URL para que no puedan ser descifradas si son capturadas por un hacker mientras se envían.
Seguro que ya has visto el https en un montón de páginas web.
Utilizando el protocolo HTTPS estamos protegiendo nuestra web de ataques de seguridad “man-in-the-middle”.
Para utilizar el protocolo HTTPS tenemos que instalar un certificado SSL en nuestro servidor.
El más utilizado es el certificado SSL de let’s encrypt, que es gratuito y la mayoría de proveedores de hosting tienen sencillos instaladores dentro del panel de control para instalar certificados SSL.
Guía cómo pasar una web WordPress a https
Permisos de Carpetas y archivos
Los archivos y carpetas de WordPress utilizan permisos para poder ser leídos, escritos o ejecutados por los sistemas informáticos, los temas y los plugins.
Tener configurados correctamente estos permisos es esencial para la seguridad de WordPress.
Una mala configuración de los permisos puede hacer que un archivo de administración pueda ser editado por cualquiera.
Podemos comprobar los permisos de los archivos y carpetas desde el administrador de archivos de nuestro servidor o mediante un programa FTP.
Los permisos por defecto que deberían tener las carpetas de WordPress son “755”.
Los permisos por defecto que deberían tener los archivos de WordPress son “644”.
Algunos plugins de seguridad pueden sugerir cambiar estos permisos por unos más restrictivos, pero ten en cuenta que muchos plugin necesitan tener los accesos por defecto para funcionar correctamente.
Actualizar WordPress, temas y plugins
Las actualizaciones de WordPress, temas y plugins no solo aportan nuevas funciones, sino que además solucionan agujeros de seguridad de WordPress.
Por este motivo, como norma general, siempre hay que actualizar WordPress y también mantener actualizados los plugins y temas que utilizamos.
Además cuando los desarrolladores de WordPress o plugins descubren un fallo de seguridad, primero lo arreglan y luego publican el fallo que se ha corregido.
Al hacer público el agujero de seguridad, los hackers, se ponen manos a la obra para explotar esa vulnerabilidad en todas las webs que no estén actualizadas.
Consejos y buenas prácticas de seguridad para temas y plugins
Para asegurar WordPress no podemos olvidar de hacer uso de unas buenas prácticas de sentido común cuando utilizamos temas y plugins.
- Usar estrictamente los necesarios y de total confianza para nuestro proyecto (Fijarse en las instalaciones activas, puntuación y comentarios)
- Solo descargarlos del sitio web oficial
- Actualizar siempre, los temas, plugins y WordPress
- Borrar todos los temas y plugins que no utilicemos o estén inactivos
- Tener en cuenta que cuantos más plugins, más posibles vulnerabilidades habrá.
- Usar plugins que tengan un soporte activo ya sea de pago o en los fotos de WordPress
Jamás, nunca, bajo ningún concepto, ni aunque te apunten con un arma en la cabeza te descargues temas o plugins piratas.
Contraseña segura en WordPress
Es ridículo construir un búnker con torres vigía, cámaras de seguridad, detectores de metales, control de accesos etc… y después esconder la llave del búnker debajo del felpudo.
No tiene sentido, ¿verdad?
Igual que no tiene sentido usar una contraseña débil para acceder a WordPress.
El simple hecho de usar contraseñas seguras para WordPress evitará la mayoría de ataques de fuerza bruta.
El agujero de seguridad más común en WordPress es usar una contraseña débil. Es un grave error del que hay que concienciar a los usuarios.
Con una contraseña insegura los hackers solo necesitan un ordenador potente, una librería de contraseñas y un programa automático que irá probando miles de contraseñas hasta que entren en el sistema.
Así que usar una contraseña segura es crucial para mantener nuestra página web segura.
El problema es que una contraseña segura no suele poder recordarse y si no usas aplicaciones de gestión de contraseñas es un dolor de cabeza.
Algunos programas de gestión de contraseñas son:
Pero hay métodos para crear contraseñas seguras y recordarlas.
Por ejemplo, podemos crear una contraseña segura a partir de 3 elementos fáciles de recordar y separarlos con caracteres especiales.
Ejemplos:
- elemento1.elemento2.elemento3
- teléfono*miapodo*codigopostal Ejemplo: 910123456*elfurioso*26532
- Matrícula,Dni,mascota Ejemplo: 4433DXX,60527464h,toby
De esta manera podemos crear contraseñas que recordaremos y que contienen todos los elementos para ser una contraseña fuerte como caracteres especiales, letras mayúsculas y minúsculas y números.
Una vez que la hemos creado podemos verificar si la contraseña es segura.
No olvides cambiar las contraseñas cada cierto tiempo y deberías utilizar diferentes contraseñas para el acceso del hosting, del usuario del FTP, y del usuario de la base de datos.
Editar usuario ADMIN
En versiones antiguas de WordPress se creaba un usuario llamado «admin» con permisos de administrador.
Si utilizamos admin como nombre de usuario para acceder a WordPress le estamos dando la mitad de la información que un alien necesita para entrar en nuestra página web.
Si hemos utilizado un auto instalador para instalar WordPress también puede que nuestro usuario se llame admin o cualquier otro nombre que el auto instalador configure por defecto.
Este nombre generado automáticamente suele tener un patrón y dar pistas sobre su origen. Si este es tu caso, arreglarlo es muy simple.
Para aumentar la seguridad de WordPress un poco más, tan solo tienes que crear un nuevo usuario administrador y eliminar el usuario admin que se ha generado automáticamente.
Cambiar prefijo wp_ de base de datos
Otra medida de seguridad para WordPress muy sencilla es cambiar el prefijo de la base de datos.
El prefijo de la base de datos son los caracteres con los que empezará el nombre de las filas que componen la base de datos.
Por defecto, en WordPress el prefijo de la base de datos es wp_ y esto lo sabe todo el mundo, incluso los hackers y, por supuesto, los aliens.
Por lo tanto deberíamos cambiarlo para no dar pistas y aumentar la seguridad.
Podemos elegir el prefijo de la base de datos durante la instalación de WordPress.
Y también podemos cambiar el prefijo de la base de datos con el plugin Change table prefix de una forma muy sencilla.
De esta manera será más difícil para los hackers adivinar el nombre de las tablas de la base de datos para atacarlas.
Tutorial «Como cambiar el prefijo de la base de datos.»
Cambiar la URL WP-ADMIN en WordPress
El login de WordPress es la zona más atacada por los Hackers y los Aliens, ya que es la puerta de acceso a la administración.
Por defecto, la ruta del login de WordPress es /wp-admin/ y dejar esta ruta facilita los ataques automatizados a las instalaciones de WordPress.
Para aumentar la seguridad del login de WordPress y evitar los ataques podemos cambiar la ruta del login wp-admin de WordPress.
Para ello podemos utilizar el plugin WPS Hide Login que nos permite cambiar la URL para iniciar la sesión de manera muy sencilla desde los ajustes generales de WordPress.
Tutorial Como cambiar la Url del Login de WordPress
Plugins de seguridad con Firewall WAF
Existen plugins de seguridad muy completos que son verdaderas maravillas.
Sirven para proteger WordPress y nos ofrecen en un solo plugin casi todas las medidas de seguridad que debemos tener implementadas.
Estas suites de seguridad son muy eficaces y tienen la ventaja de que todo se configura desde un único plugin.
Suelen incluir un Firewall WAF (Web Application Firewall), una herramienta que analiza y bloquea los ataques a nuestra página web en tiempo real.
Algunos de estos plugins son:
- Wordfence Security
- All in one security and firewall
- iThemes Security (anteriormente Better WP Security)
✅ Las medidas de seguridad varían un poco según el plugin, pero suelen tener las siguientes características:
- Escáner de nuestros archivos para buscar cambios, errores y virus
- Firewall Firewall WAF que detecta y bloquea visitas maliciosas
- Visor de tráfico de la web en tiempo real
- Herramienta para bloquear el acceso a la web por IP´s
- Asegura el Login de WordPress con captcha o límites de intentos de sesión
- Auditoria de contraseñas
- Verificación en dos pasos para acceder al login de WordPress
- Bloqueo por países
- Comprobación de los permisos de las carpetas y archivos
Recomendaciones
Wordfence: Es el plugin de seguridad con más instalaciones activas y el que utilizo en Sensación Web, muy potente y eficaz aunque un poco pesado
Si quieres más información puedes ver el Tutorial de Wordfence.
All in one wp security and firewall: Este plugin tiene una interfaz más amigable para el usuario y un sistema de puntuación que sirve para orientarnos sobre la seguridad de nuestra instalación.
Su punto fuerte es que incluye la mayoría de medidas de seguridad adicionales que no incluyen las otras suites, como cambiar la URL de administración o desactivar el archivo xlmrpc.
Combate el Spam
El Spam es la maldición de muchos blogs, y suele aparecer en los comentarios y en los formularios de contacto.
La mayoría de los comentarios que se reciben en los blogs son spam y por eso hay que tomar medidas antispam.
Además de molesto, el spam puede comprometer la seguridad de nuestra web, dejándola inactiva o propagando un virus tanto en nuestra web como en los ordenadores de los usuarios mediante enlaces maliciosos.
Para combatir el spam existen decenas de plugins y técnicas pero voy a destacar algunas que son efectivas y muy fáciles de configurar.
✅ Ajustes de los comentarios de WordPress
Para que seamos nosotros los que decidimos cuándo se debe publicar o no un comentario y reducir el spam publicado podemos configurar en ajustes > comentarios varias opciones:
- El comentario debe aprobarse manualmente
- El autor debe tener un comentario previamente aprobado
- El comentario se mantiene en espera si contiene enlaces
- Lista negra de comentarios
✅ Instalar un plugin antispam
Existen decenas de plugins que combaten el spam de manera muy efectiva y detectan automáticamente que comentarios son basura y cuáles son reales.
Algunos plugins antispam:
Puedes echarle un vistazo al Tutorial del plugin Akismet
✅ Instalar un sistema de gestión de comentarios
Una de las maneras más eficientes de combatir el spam es implementar un gestor de comentarios diferente al que WordPress tiene por defecto.
Disqus es un gestor de comentarios que, además de tener optimizaciones de carga también utiliza medidas anti spam para combatir los comentarios molestos.
Y cuenta con otras muchas mejoras respecto a los comentarios originales de WordPress como, por ejemplo, comentar usando cuentas de redes sociales y seguir el hilo de los comentarios en los que has participado.
Es una de las mejores elecciones si tienes muchos comentarios en tu web.
Copias de seguridad de WordPress
Las copias de seguridad es nuestro as en la manga que utilizamos cuando toda la protección anterior ha fallado y tu web se ha corrompido, ha sido infectada o simplemente un alien a puesto huevos en ella.
Las copias de seguridad nos permiten volver a un punto anterior donde nuestra web todavía no tenía problemas.
En mi opinión, tener copias de seguridad es la técnica de seguridad más importante de todas.
Hay muchas formas de hacer una copia de seguridad en WordPress, vamos a ver algunas, pero en definitiva hay que copiar los archivos del servidor y la base de datos.
✅ Copias de seguridad “a mano”
Las copias de seguridad manuales son las que creamos nosotros mismos sin ayuda de plugin ni programas externos, únicamente con las herramientas que nuestro hosting nos ofrece.
Tenemos que copiar tanto los archivos del servidor, como la base de datos de nuestra instalación de WordPress.
Copiar los archivos: Hoy en día los hosting cuentan con opciones muy sencillas que permiten descargarnos tanto los archivos como la base de datos a golpe de un clic.
Pero si no contamos con estas opciones para copiar los archivos utilizaremos el administrador de archivos de nuestro servidor, y normalmente solo hay que seleccionar los archivos y descargarlos o también podemos descargar los archivos mediante un gestor FTP.
Copiar la base de datos: Por último, tenemos que hacer una copia de la base de datos. Para ello tienes que acceder a la herramienta phpMyAdmin del servidor y exportar la base de datos.
✅ Copias de seguridad del servidor
Si has elegido un buen proveedor de hosting, contarás con opciones desde el panel de control del servidor para generar copias de seguridad automáticas.
Esta es una de las mejores soluciones, ya que las copias de seguridad se crean automáticamente por días o por horas, lo que nos ahorra mucho tiempo y nos permite tener copias de seguridad fiables.
La mayoría de los hosting cuentan con este servicio ya activado pero te recomiendo que te pongas en contacto con el soporte del hosting para verificarlo.
✅ Copias de seguridad mediante plugin
Existen decenas de plugin que crean copias de seguridad para WordPress, que copian los archivos y la base de datos automáticamente.
Incluso pueden mandar estas copias de seguridad directamente a Dropbox, Google Drive u otro servicio de almacenamiento en la nube.
Lista de plugin de Backup:
- UpdraftPlus WordPress Backup Plugin
- Duplicator
- Xcloner
- Back Up WordPress
- WordPress Backup
- Complete Central Backup
- BackWpUp
- WordPress Backup and Migrate Plugin
Si quieres saber más detalles sobre las copias de seguridad en WordPress puedes ver la guía completa de copias de seguridad en WordPress, donde encontraras más detalles.
Límite de intentos de login
Para combatir los ataques de fuerza bruta en el login una técnica muy eficaz es limitar los intentos de inicio de sesión que se producen cuando cometemos un error al poner el usuario o la contraseña.
Lo hackers utilizan programas automáticos que prueban miles de contraseñas comunes para intentar acceder a WordPress.
Con esta técnica que consiste en bloquear el acceso durante unos minutos si introducimos usuarios o contraseñas incorrectas una serie de veces, dificultamos la tarea de los programas automáticos de fuerza bruta haciendo que su tarea no sea productiva.
Las suits de seguridad como Wordfence, suelen tener estas opciones, pero también podemos implementar el límite de intentos de sesión con:
Tutorial Como limitar intentos los inicios de sesión en WordPress
Verificación en dos pasos
La verificación en dos pasos es una medida de seguridad que verifica de dos formas a los usuarios que intentan registrarse en un sistema.
Este segundo paso consiste en verificar al usuario con un segundo código que normalmente se envía a nuestro teléfono móvil o email y que debemos introducir en el login de WordPress.
También puede llevarse a cabo mediante el escaneo de un código QR, el envío de una URL, un sms etc…
De esta manera, se asegura que el usuario que se registra sea legítimo e impedimos que se puedan registrar con usuarios y contraseñas ya existentes.
Plugin de verificación en dos pasos:
- Google Authenticator
- Duo Two-Factor Authentication
- Authy Two Factor Authentication
- Rublon Two-Factor Authentication
Latch, un pestillo para el login de WordPress
Latch es una herramienta de seguridad que mediante una aplicación móvil permite bloquear funcionalidades en múltiples servicios web como WordPress y redes sociales.
En WordPress, Lacth va un paso más lejos que la verificación de dos factores y nos permite desactivar y activar el login, impidiendo cualquier acceso de usuarios, incluso nuestro propio acceso.
Así aseguramos el login de una manera muy eficaz, ya que para acceder a la administración debemos desbloquear el registro desde nuestro móvil.
De esta forma controlamos cuándo se puede acceder a la administración de WordPress e impedimos que alguien se registre de forma ilegítima y nos cause un destrozo en nuestra web.
Esta aplicación también nos permite hacer lo mismo con nuestros perfiles en redes sociales y con ella también podemos crear horarios de acceso.
Plugin Lacht
Guía oficial de instalación de Latch
Proteger el archivo .htaccess
El archivo .htaccess es el fichero de configuración del servidor apache, y se utiliza para crear múltiples reglas de configuración que afectan al servidor y a nuestra página web.
Podemos proteger el archivo .htaccess de accesos no deseados pegando un sencillo código dentro del mismo .htaccess
El archivo .htaccess es un archivo que está oculto y a veces no se muestra en el administrador de archivos del servidor si no marcamos la opción “ver archivos ocultos”.
Regla .htaccess:
# protege el archivo htaccess
<files .htaccess>
order allow,deny
deny from all
</files>
Proteger el archivo wp-config.php
El archivo wp-config.php contiene los datos de configuración de WordPress y la información sobre la base de datos.
En este archivo se pueden definir reglas que personalizan configuraciones avanzadas de WordPress.
Te dejo aquí un post con todo lo que se puede hacer en el archivo wp-config «wp-config.php: Todo lo que querías saber y mucho más»
Si queremos proteger el archivo wp-config.php de accesos no deseados lo podemos hacer introduciendo el siguiente código en el archivo .htaccess
Regla .htaccess:
# proteger el archivo wp-config.php
<files wp-config.php>
order allow,deny
deny from all
</files>
Proteger el archivo XML-RPC
El archivo xmlrpc.php es utilizado para que algunas aplicaciones y programas puedan comunicarse con WordPress.
Como, por ejemplo, la App de WordPress o los programas de correo como Outlook y Thunderbird que permiten publicar mediante correo electrónico en WordPress.
También algunos plugins como Jetpack o Json Api utilizan el archivo XMLRPC para algunas de sus funciones.
Puedes desactivar el archivo xmlrpc.php con reglas en el archivo .htaccess o eliminar el archivo XMLRCP directamente si estamos seguros que no lo utilizamos.
Regla .htaccess:
# proteger el archivo xmlrpc.php
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>
Y también podemos utilizar plugins como Disable XML-RPC
Personalmente, no me gusta la opción de eliminarlo o bloquearlo ya que podemos estar utilizandolo sin saberlo.
Lo que debemos hacer es proteger el archivo xmlrpc.php y para ello existen plugins de seguridad que protegen el archivo XMLRPC.
Akismet puede detectar los pingbacks masivos que se utilizarían en un ataque de denegación de servicio, y Wordfence el archivo de los ataques de fuerza bruta con los límites de intento de sesión, y de esta manera podemos proteger el archivo xmlrpc.php.
Eliminar archivos
Algunos de los archivos de WordPress pueden ser un agujero de seguridad o pueden dar pistas a los hackers sobre la versión de WordPress y de PHP que estamos utilizando.
wp-config-sample.php: este archivo se utiliza para introducir la información del servidor (nombre de la base de datos, usuario de la base de datos, prefijo etc..) durante la instalación de WordPress.
Pero una vez realizada la instalación se genera el archivo wp-config.php y el archivo wp-config-sample.php se queda obsoleto y ya no se vuelve a utilizar.
Por lo tanto podemos eliminar el archivo wp-config-sample.php
¡¡¡ATENCIÓN el archivo wp-config.php NO LO BORRES!!!
Otros Archivos adicionales que puedes eliminar para no dar pistas sobre la versión de WordPress que utilizas son:
- licencia.txt
- license.txt
- readme.html
Estos archivos se vuelven a generar al actualizar WordPress. Una alternativa a eliminarlos es bloquear su acceso con plugins de seguridad como Wordfence o similares.
Desactivar el editor de archivos
WordPress tiene la funcionalidad del editor de archivos que nos sirve para editar directamente los archivos de WordPress que se encuentran en el servidor.
El editor de archivos puede ser un gran problema de seguridad.
Puede que no confíes en los usuarios que tienes registrados en tu instalación de WordPress porque sean inexpertos y no quieres que puedan editar los archivos accidentalmente de forma incorrecta.
O puede que se produzca un registro de usuarios no deseados y, si el editor de archivos está activado podrán editar los archivos desde el panel de control de WordPress.
Así que, puedes desactivar el editor de archivos de WordPress introduciendo esta línea de código al final del archivo wp-config.php
## Disable Editing in Dashboard define('DISALLOW_FILE_EDIT', true);
Utilizar una CDN
Una CDN es una red de distribución de contenidos que utiliza servidores repartidos por el mundo para servir los contenidos estáticos de nuestra página web más rápidamente.
Utilizar una red de servidores CDN no solo es bueno para la velocidad de carga de nuestra página web, sino que también tiene diferentes beneficios de seguridad.
Aumenta la seguridad de nuestra web contra ataques DDoS y Hotlinking.
La razón es que como la carga de las peticiones de los usuarios está dividida en muchos servidores, el impacto de malas técnicas como el Hotlinking y de los ataques de denegación de servicio será menor.
Además, las redes CDN suelen utilizar su propio Firewall y análisis de usuarios.
La CDN más conocida y utilizada (ya que tiene un plan gratuito) es Cloudflare.
Si quieres más información sobre las redes CDN puedes leer el artículo Como instalar una red CDN en WordPress.
Bloquear el acceso por países
Una medida de seguridad avanzada es bloquear el acceso por países a nuestra página web.
Esta medida consiste en impedir cualquier acceso desde países a la zona pública o a la zona de administración de nuestra web.
De esta manera puedes impedir ataques que se originen desde países concretos.
Podemos implementar esta medida con plugins como:
- IP Geo Block Si queremos bloquear países en toda la web.
- Admin Block Country Para bloquear el acceso al admin desde ciertos países.
Algunos hosting también tienen aplicaciones en sus servidores para implementar el bloqueo por países.
Nota: Aunque esta medida parece la solución idónea para asegurar nuestra web, tiene varios inconvenientes, como por ejemplo que la IP que te ofrezca tu proveedor de internet no corresponda con la de tu país y te bloquees a ti mismo o que utilices servicios web que usen servidores externos para funcionar.
Por eso lo mejor es activarla únicamente si estamos bajo ataque, pero no es recomendable tenerla activada siempre.
Tutorial Como bloquear el acceso por países en WordPress
Roles de usuario
Los roles de usuario definen lo que pueden o no pueden hacer los usuarios registrados dentro de la administración de WordPress.
Para tener una seguridad adecuada un usuario debería tener únicamente las capacidades que va a utilizar y adecuadas a su cometido.
Por ejemplo, nunca le daríamos un usuario con el rol de administrador a un escritor de nuestro blog, ya que por inexperiencia o con malas intenciones puede “liarla parda”.
Para administrar estos permisos podemos utilizar los tipos de usuario que por defecto tiene WordPress.
Pero también podemos crear nuestros propios tipos de usuarios con roles personalizados mediante plugins como:
Por ejemplo, podemos crear un usuario de mantenimiento que puede actualizar y administrar temas, plugins etc pero que no pueda crear páginas o entradas.
Si quieres saber más sobre los roles de usuario y crear tipos de usuarios personalizados puedes leer el Post Roles de usuario Personalizados en WordPress.
Analizar WordPress en busca de códigos maliciosos
Si tienes sospechas de que tu instalación de WordPress ha sido hackeada puedes analizar tu web con plugins y herramientas online para detectar todo tipo de virus y problemas de seguridad.
Existen plugins que incluyen herramientas para analizar temas, plugins y tu instalación de WordPress como:
- Wordfence
- Sucuri
- Quttera Web Malware Scanner
- iThemes Security
- Vaultpress
- Anti Malware Security and Brute Force Firewall
- Theme Authenticity Checker (TAC)
También puedes analizar tu web con herramientas online para detectar problemas de seguridad como:
- Sitecheck de Sucuri
- Ssllabs Compueba tu certificado SSL
- Virustotal Analiza archivos, Url, Ip y dominios
- Unmaskparasites Comprueba si tu web está en listas de web con problemas de seguridad
- www.wpdoctor.es
Analiza la actividad de WordPress
Controlar y analizar la actividad de WordPress y de nuestro servidor es clave para resolver misterios sobre los errores que puedan producirse.
Para averiguar qué ha pasado en el servidor podemos consultar el Log del servidor, que es un archivo que registra en el tiempo todo lo que ocurre.
Normalmente el Log del servidor está activado y es accesible desde el hosting, si no, deberás ponerte en contacto con el soporte.
También puedes usar plugins para ver la actividad de tu web:
Con estos plugins podemos visualizar un Log muy detallado de todo lo que ocurre en nuestra web.
Y en el caso de Stream nos mostrará una lista de todas las acciones que se han realizado que podemos filtrar por usuarios, roles, acciones, dirección IP.
De esta manera podemos ver cualquier cambio en nuestra web y podemos detectar, por ejemplo, cuál es el último cambio que ha creado un error o quien es el culpable de las acciones que se producen.
Claves de seguridad «Keys y Salt»
Una medida de seguridad de WordPress son las claves secretas Keys y Salt. Estas claves son cadenas aleatorias de caracteres que se encuentran en el archivo wp-config.php, y son un tipo de contraseñas adicionales que protegen las sesiones abiertas.
En definitiva, mejoran la seguridad de las sesiones de los usuarios registrados que ya están iniciadas para impedir que roben las contraseñas o accedan a WordPress mediante las cookies de inicio de sesión.
Estas claves se generan automáticamente y no hace falta que las recordemos, ya que su uso es transparente para el usuario.
Pero es bueno saber que puedes cambiar estas claves en cualquier momento, por los caracteres que tu decidas o puedes ayudarte del generador de claves secretas de WordPress.
Al cambiarlas todas las sesiones iniciadas quedarán invalidadas y así podemos forzar a todos los usuarios a que vuelvan a iniciar sesión.
Utiliza Google Search Console
Google Search Console es una herramienta de análisis de Google que nos indica el estado de nuestra página web y, si se detectan problemas de velocidad, rastreo, usabilidad o seguridad, nos los mostrará en su panel de control y si es grave nos lo notifican por correo electrónico.
También nos ofrecerá ayuda y pasos adicionales si nuestro sitio web está pirateado.
Alerta de disponibilidad del sitio web
Si nuestra web no está disponible puede ser el inicio o la consecuencia de un ataque en la seguridad.
Si queremos enterarnos al momento de cuándo nuestra página web está caída, podemos utilizar Uptimerobot que nos notificarán con alertas por email, sms, twitter u otros canales de comunicación cuando nuestra web no esté disponible.
Normalmente también podemos ver la información sobre la disponibilidad de nuestra web en las estadísticas de nuestro hosting.
Pueden producirse pequeños fallos en los servidores que hagan que nuestra web no esté disponible durante segundos o minutos. Estos errores del servidor pueden ocurrir y son bastante normales en hosting de baja calidad, pero si lo hacen con mucha frecuencia pueden ser un indicio de problemas de seguridad como el lanzamiento de emails no autorizados desde nuestro servidor.
Conocer las últimas vulnerabilidades y noticias
Anticiparse a los problemas es una buena táctica de seguridad y para ello tenemos que conocer las últimas noticias sobre WordPress y vulnerabilidades para actuar en consecuencia.
En la web de WPScan Vulnerability Database podemos encontrar una gran base de datos con las vulnerabilidades de WordPress, plugin y temas, y podemos suscribirnos a su newsletter para no perdernos ni una.
También podemos enterarnos de las noticias y novedades de WordPress en la web Enlacepermanente.es donde Juan Hernando se encarga de crear un resumen semanal sobre WordPress.
Consejos de los expertos
En esta guía de seguridad para WordPress me he puesto en contacto con expertos de WordPress para preguntarles ¿Por qué la seguridad web en WordPress es importante? y pedirles consejos, anécdotas y/o opiniones sobre la seguridad de nuestras páginas web.
Tomás Sierra de Tomassierra.com
La respuesta es sencilla aunque para comprenderlo bien me gustaría hacer una comparación. Hace algunos años, el Sistema Operativo «Windows» era el elegido por la mayoría de los usuarios para llevar el control de sus equipos, tan sólo por una cuestión de números (o quizás alguna más) los ciberdelincuentes gastaban sus horas en crear virus, troyanos y otros tipos de malware para este SO.
La razón estaba clara: con un solo virus se podía infectar a un mayor número de equipos. Pues bien, esto es precisamente lo que está ocurriendo con WordPress, al tratarse del CMS más utilizado en el mundo.
En la actualidad, más del 40% de las páginas web que existen están hechas con algún CMS y de las cuales, casi un 75% están hechas con WordPress. Y eso no es todo, el crecimiento de WordPress es imparable y además está respaldado por una enorme comunidad en todo el mundo.
Y tú ¿todavía te preguntas por qué es necesaria la seguridad de WordPress?
Pablo López de Desarrollowp.com
La seguridad es un factor importantísimo en cualquier proyecto web que afrontemos. Debe ser un pilar básico y algo a lo que dedicarle tiempo suficiente para evitar en la medida de lo posible problemas en el futuro: robo de datos, inyección de código malicioso, redirecciones a páginas de terceros, malfunción del sitio, etc… que al final se traduce en pérdida de tiempo, clientes, dinero, degradación de imagen, desconfianza de los usuarios…
Si tú o tu negocio es online o tu reputación depende de tu web, sufrir un ataque puede ser demoledor. El tiempo que inviertas hoy en seguridad, es tranquilidad para el mañana.
Podemos afirmar que no existe la seguridad 100%, aunque considero que WordPress es un CMS seguro. Cada cierto tiempo se descubren vulnerabilidades nuevas, pero la respuesta es casi inmediata en forma de actualización que la corrige.
Por esto es importantísimo tener todos nuestros temas, plugins y el propio WordPress actualizado a la última versión.
No obstante, cuando hablamos de seguridad podríamos decir que la seguridad consta de «capas». Cada capa añadida hace que tu sitio sea más fuerte y seguro. Pero por muy fuerte que sea nuestro muro, la brecha más pequeña podría echarlo abajo.
De nada sirve instalar 1000 plugins si luego el usuario final tiene como username «admin» y como contraseña «1234».
Y capas hay muchas, pero podríamos destacar:
– Utilización de usuarios/contraseñas fuertes. Puedes comprobar la seguridad de una contraseña y lo que un bot tardaría en averiguarla aquí: Howsecureismypassword.net
– Evitar la enumeración de usuarios, para no dar a un atacante malintencionado el 50% de lo que necesita para entrar en tu panel de administración
– Mantenerse siempre actualizado (plugins, temas, WordPress)
– No instalar temas y/o plugins de sitios sospechosos (nulled)
– Elimina temas y plugins que no utilices, dejando el tuyo y el último de WordPress (a día de hoy twentyseventeen) de respaldo
– Proteger desde .htaccess archivos críticos como wp-login.php, wp-config.php o el propio .htaccess
– Proteger /wp-admin con contraseña de servidor
– Protegerse contra ataques de fuerza bruta
– Rellenar los «Salts y Keys» en el archivo wp-config.php para añadir seguridad a las cookies de sesión
– Disponer de un certificado SSL
– Contratar un hosting decente y huir de los baratos
– Disponer de un sistema de backups (manuales, periódicos y/o de servidor). Serán nuestro colchón de seguridad si el día de mañana pasa algo
Si aplicamos estos puntos, nuestro sitio será más seguro y nuestra tranquilidad mayor.
Carla Saiz de Carlasaiz.com
La seguridad web en WordPress es importante básicamente porque no tiene sentido montar una web y dejarla con el culo al aire a día de hoy en Internet. Y mucho menos cuando tratas con información de los usuarios, ya sea que recojas datos a través de un formulario o tengas un e-commerce. Una web no segura es un festín para una tarde de diversión de un hacker.
Aunque WordPress de por sí es bastante seguro, siempre hay algún agujero por donde se va a poder entrar, por el simple hecho de que los desarrolladores constantemente están actualizando y añadiendo nuevas funcionalidades a los themes o plugins, por eso es muy importante tener tu web a prueba de bombas.
Te quitas de muchos quebraderos de cabeza y tiempo de dedicación si consigues no tener que lidiar con una web hackeada. Aunque quién no ha pasado alguna vez por esto! Qué levante la mano! 🙂
Unos consejos básicos en cuanto a la seguridad en cualquier WordPress que siempre comento en mis clases y aplico a mis proyectos son: jamás tener el usuario como admin, poner una contraseña segura (nada del nombre de tu perro o tu fecha de nacimiento, jeje), proteger todos los formularios y el acceso al WordPress con recaptcha. Hacer backups semanales. Agregar nuestro site a Google webmaster tools para estar informado de cualquier tipo de error que nos pueda arrojar Google sobre nuestra web. Y cómo no estar siempre al tanto de WordPress, y siempre mantener todos los plugins, el theme y el core de WordPress actualizado.
Como anécdota te puedo contar que una vez me tuve que enfrentar con el hackeo del servidor de un cliente donde tenía alrededor de unas 20 webs y todas fueron hackeadas. ¿Por qué? Pues muy fácil, no tenía absolutamente nada actualizado desde hacía más de dos años en sus webs. Tampoco tenía ningún tipo de seguridad en su servidor y tampoco en todos los WordPress. Fue un gran marrón… :S
Uso el plugin de iThemes security por normal general. En algunos sites más complejos tiro de la versión pro y en cosas más sencillas de la versión gratuita. En alguna ocasión he tenido que usar el plugin de Wordfence porque el plugin de iThemes security entraba en conflicto con algún otro plugin que estaba usando.
El plugin de WP Security Scan también lo he usado cuando me han hackeado algún sitio para ver qué archivos estaban dañados.
EL plugin de Limit Login Attemps, lo he usado para limitar el login del usuario a un número de veces en caso de que se loguee mal.
Y éste plugin, WP Security Audit Log, lo uso cuando somos mucho trabajando en el WordPress, para tener un registro de todo lo que hace cada usuario.
Conclusión
Me he pasado todo el verano viendo videos, manuales, libros, blogs y artículos de seguridad, y también le he dado la lata a varios expertos y profesionales de WordPress para aprender todo lo posible sobre la seguridad que se puede aplicar a WordPress y decidir qué medidas de seguridad son las más importantes o pueden ser implementadas fácilmente por los usuarios medios y avanzados.
Y me he dado cuenta de que a toda esta información sobre seguridad web le faltaba algo… ¡los aliens! Jajajaja!
Lectura recomendada:
Hardening WordPress (Codex oficial de WordPress)
También te invito a dejar más información sobre la seguridad de WordPress en los comentarios y a compartir anécdotas de seguridad.
¿Qué te ha parecido esta guía? ¿Aplicas seguridad a tu web o vives la vida loca ignorando a los aliens de internet?
Gerardo! te has superado tron. Vaya pedazo de guía super-completa que te has marcado. Yo iba a hacer una del estilo pero ya ni me molesto. ¡Esta todo aquí! Voy a compartirla ahora mismo. Gracias por el aporte.
!Muchas Gracias Rafa! me alegra que le guste a un experto como tú! jajaja Un abrazo!
Una guía de seguridad con aliens es justo lo que el mundo necesitaba. Todo lo que esté explicado paso a paso por alienígenas merece estar en primera posición. Madre mía la de cosas que te pueden hacer a tu web. ¡A optimizar la seguridad de WordPress pero ya!
Jajajaja por supuesto Dani! Todo lo que tenga un alien es mucho mejor.
Tremenda guía, enhorabuena. Lo del CDN lo guardaré como oro en paño, daba por sentado que era un servicio de pago, ni siquiera sabía que podía configurarse gratis. ?✌️
Muchas Gracias Daniel! Aunque la verdad la CDN de Cloudflare se puede configurar desde su plataforma, el plugin sirve para cambiar alguna opción desde WordPress, pero desde el propio panel de control que de la web de Cloudflare se también se puede configurar.
Creo que es el post más completo sobre seguridad que he leído. Muchas gracias. Está muy bien explicado para quiénes aún estamos en proceso de aprendizaje de WordPress. El apartado sobre desactivar el editor de archivos me ha sorprendido mucho. ¡Detalles que no se suelen tener en cuenta y que pueden incubar aliens! Enhorabuena.
Alba me alegra que te guste! y gracias por contribuir en el copy, que las faltas de ortografía se me cuelan y para eso no tengo firewall jajaja 🙂
Gracias Gerardo, muy buena guia de seguridad, he aprendido mucho.
¡Wow! Como siempre un post completísimo Gerardo 😉 Voy a intentar aplicar algunas cosillas para proteger mi WordPress… Aunque esto ya es un nivel propio de la CIA de seguridad en WordPress eh! 😛
Sigue así!
Pedazo de guía Gerardo!! Muy completa, enhorabuena por el curre y gracias por una explicación tan completa ?✌️
Magnifica recopilación, no solo enumerar si no desarrollada.. articulo imprescindible.
Un saludo!
Muy grande Gerardo y bastante completa, grandes consejos de Pablo, como no podía ser de otra forma.
Me gustaría añadir una herramienta para automatizar algunas de estas opciones de seguridad. Sabemos que muchas veces esto de automatizar nos quita del control de algunas cuestiones, pero con esta herramienta podemos permitirlo. Se llama WPHardening, desarrollado por el gran Daniel Maldonado, algunas de sus funciones:
– Cambio de permisos en directorios y archivos .
– Eliminar archivos innecesarios como readme y licencias.
– Creación del archivo robots.txt
– Evadir el fingerprinting de varias herramientas como w3af y wpscan
– Eliminar las funciones de enumeración de versiones de WordPress independientemente del Theme que se instale.
– Evita el listado de directorios incorporando archivos index.php y .htaccess
– Añade cabeceras X-Frame-Options, X-Content-Type-Options.
– Opción para incorporar 6G Firewall.
– Opción para desactivas REST API.
– Recomendación y Descarga de diferentes plugins para mejorar la seguridad.
Un saludo.
Gracias por la aportación Javi, Eres un crack! Me lo apunto para un post para los usuarios más avanzados 🙂
PD: Es una herramienta que podeis descargaros en https://github.com/elcodigok/wphardening , es bastante avanzada y también un poco técnica, pero muy profesional, os animo a probarla.
Muy buena guía, muy completa y técnica, justo lo que buscaba. Me has ayudado muchísimo. Un saludo!
Muy buena guía de seguridad.Gracias
Brutal guía para conseguir seguridad para wordpress Gerardo!
Enhorabuena crack, la comparto ya mismo.
Un abrazo
Enhorabuena Gerardo!
Está genial esta guía, y a pesar de ser larga y de parecer «pesada» se sigue fácilmente cada uno de los pasos para conseguir la importantísima seguridad en wordpress. Muchísimas gracias, es LA guía!!
Da gusto cuando quieres informarte sobre seguridad en WordPress y encuentras una guía tan completa. Me has despejado muchas de las dudas que tenía. Gracias Gerardo por esforzarte tanto en ofrecer todo lujo de detalles. Sigue así
¡Un artículo sobre seguridad INCREIBLE!. Por mi trabajo, conozco personas tanto físicas como jurídicas que sufren ataques de malware constantemente, incluso llegando a hackeos de webs. Es un tema muy actual y que por desgracia el común de los mortales no son conscientes de riesgo que entraña «la red». Recomendaré tu artículo. Un trabajo muy bueno.
Hola. Tremendo post sobre todo para los que empezamos en este tema. Lo tendré siempre a mano para hacer de la web un bunker. 🙂
Buenas noches, llevo meses buscando como colocar las cabeceras de seguridad (X-Frame-Options, X-Content-Type-Options) pero el WAF siempre que las meto, ya sea con plugin o por el functions.php me deja sin acceso. Tengo entendido que las cabeceras en principio protegen a mis usuarios y de nada me sirve yo tener un fuerte, si por fuera mi comunidad está fichada. Tengo entendido que la forma recomendable es con el archivo functions.php (con el codigo especifico) y después con el plugin CSP. Si alguien me pudiera ayudar lo agradecería y veo que aquí sois muy cracks!! Un saludo Gente
Menudo dato, excelente!
voy aplicarlo a mi blog. un gran saludo desde lima