Más del 25% de las webs están hechas en WordPress. Y se dice que unas 37.000 webs son hackeadas cada día. Si mantenemos las proporciones y hacemos el cálculo, tenemos que unas 9.250 instalaciones WordPress al día serían víctimas de ataques. Y entre estas podría estar la tuya.

Conseguir que tu WordPress sea seguro no es solamente cuestión de tener una contraseña super segura. Usar un tema con errores (que aparentemente no se ven, pero están ahí), instalar un plugin mal programado o no tener los archivos bien protegidos ni actualizados puede dar lugar a que de un día para otro nuestra web en WordPress acabe siendo hackeada.

Y el problema principal no es el hackeo en sí, sino el mal rato que vas a pasar, el tiempo (y dinero, seguramente) que tendrás que dedicar a solucionar el problema y la mala imagen que estarás dando a tus visitantes. Sin menospreciar tampoco las pérdidas que vas a tener durante el periodo en el que tu WordPress no está accesible (si tu web genera ingresos).

Por todo esto, y aunque hemos hablado anteriormente en varias ocasiones sobre seguridad en WordPress y hemos reiterado que WordPress es seguro, nunca está de más repasar algunos pequeños consejos que podemos aplicar en nuestra web para ponérselo más difícil a los malos.

Aunque no seas un super experto, podrás aplicar estos trucos en tu web fácilmente y es posible que te salven de más de un problema en el futuro.

1. Escanea tu web regularmente

Si tu proveedor de alojamiento web no lo hace ya por ti, algo que deberías hacer prácticamente cada día (aunque depende de tu número de visitas y la popularidad de tu web) es escanear tu WordPress en búsqueda de infecciones. Esto es lo mismo que hace tu programa antivirus en tu ordenador. No esperes a que tu web esté infectada; anticípate e instala un plugin de seguridad que vaya haciendo pasadas por tus archivos regularmente.

Si no sabes qué plugin puedes utilizar para esto, aquí te dejo una lista con los tres más conocidos:

Estos plugins revisan, entre otras cosas, tus archivos WordPress en busca de cambios sospechosos y te alertarán cuando los encuentren.

2. Desactiva el editor de plugins y temas

Los usuarios administradores de WordPress pueden editar los archivos contenidos dentro de los plugins y temas directamente mediante el editor que WordPress incluye por defecto. Este editor es accesible desde el Escritorio de WordPress, dentro del menú Apariencia » Editor o Plugins » Editor.

El problema es que el más ligero error al editar desde ahí un archivo PHP, por ejemplo, causará que nuestra web se rompa y sólo veamos una pantalla en blanco cuando la visitemos. Además, si nos roban la contraseña de administrador, cualquier atacante podrá editar los plugins y añadir código malicioso.

Por lo tanto, una medida de protección sencilla es desactivarlo. De esta forma sólo podrás modificar el código del tema o de los plugins mediante acceso FTP.

define( 'DISALLOW_FILE_EDIT', true );

La desactivación se consigue añadiendo la anterior directiva en el archivo wp-config.php (ya te hablé de este archivo en un artículo anterior).

3. Oculta la versión de WordPress

Por defecto, WordPress muestra la versión que estás usando en tu web. Esto provoca que si no tienes tu WordPress actualizado sea relativamente sencillo para los atacantes buscar instalaciones WordPress con una versión concreta, de la cual se conozca una vulnerabilidad, y entonces tomar ventaja para aprovecharse de esta.

Por tanto, tener un WordPress con una versión que no sea la última pone en riesgo a tu web. Lo que puedes hacer es ocultar el número de versión añadiendo la siguiente línea PHP en el archivo functions.php de tu tema:

add_filter( 'the_generator', '__return_null' );

Recuerda que si pones esta linea en tu tema, la perderás cuando este se actualize a una nueva versión. Así que deberías plantearte tener un tema hijo o repasar esta entrada donde te explicamos cómo añadir tus personalizaciones a WordPress.

4. Limita el número de accesos fallidos

Un ataque típico que pueden hacerte es el de fuerza bruta para conseguir descubrir tu contraseña probando miles de posibilidades hasta que adivinen cual es la buena. WordPress por defecto no limita el número de accesos fallidos, por lo que un atacante podría probar contraseñas de forma ininterrumpida. Por suerte, muchos proveedores de alojamiento incluyen extensiones para controlarlo.

Si no es tu caso, puedes instalar un plugin como Login LockdownWP Limit Login Attempts que te ayudarán a bloquear usuarios que intenten acceder a tu WordPress con credenciales inválidos un cierto número de veces.

5. Limita el acceso a la página de login

Una manera muy efectiva de proteger tu instalación WordPress es bloquear totalmente el acceso a las páginas /wp-admin y /wp-login.php.

Sin embargo esto sólo es recomendable si dispones de una IP fija (o más) y siempre vas a acceder al Escritorio de WordPress desde esa misma IP (o conjunto de IPs). Si es tu caso, sigue leyendo para saber cómo hacerlo.

Para hacer que sólo puedas acceder al Escritorio desde un conjunto de IPs, tienes que añadir en el archivo .htaccess de tu instalación el siguiente fragmento de instrucciones:

RewriteEngine on
RewriteCond %{REQUEST_URI} ^(.*)?wp-login\.php(.*)$ [OR]
RewriteCond %{REQUEST_URI} ^(.*)?wp-admin$
RewriteCond %{REMOTE_ADDR} !^80.1.1.1$
RewriteCond %{REMOTE_ADDR} !^80.1.1.2$
RewriteCond %{REMOTE_ADDR} !^80.1.1.3$
RewriteCond %{REMOTE_ADDR} !^80.1.1.4$
RewriteRule ^(.*)$ - [R=403,L]

Donde has de cambiar las IPs que yo te he puesto de ejemplo (de 80.1.1.1 a 80.1.1.4) por las IPs que tu quieras que puedan acceder a tu Escritorio. Aquí te he puesto 4 IPs, pero puedes poner tantas como quieras añadiendo más líneas como las del ejemplo.

6. Desactiva el reporte de errores de PHP

Cuando estás desarrollando un plugin o un tema para WordPress, tener habilitado el reporte de errores es muy útil, ya que te permite saber si algo está fallando y cuál es el problema. Además, nos indica también el archivo PHP que falla y la línea dentro de ese archivo donde está el error.

No obstante, en producción tenemos que desactivar esto, ya que si un atacante ve uno de estos errores podrá saber la ruta absoluta donde está el archivo PHP que falla, algo que puede usar en su beneficio y en tu contra.

Por suerte, para desactivar el reporte de errores tan sólo hemos de añadir la siguiente directiva en el archivo wp-config.php:

error_reporting( 0 );
@ini_set( 'display_errors', 0 );

7. Ten los permisos correctos en los archivos

Para evitar que los atacantes puedan tomar control de tu instalación hay que asegurarse de que los archivos que tenemos en WordPress tienen los permisos de acceso adecuados. Habitualmente es posible cambiar los permisos mediante FTP o con alguna opción que nuestro proveedor de alojamiento incluya en los paneles de administración.

Los permisos correctos que tendrías que tener son los siguientes:

  • Los directorios (carpetas) dentro de tu instalación tendrían que tener el permiso 755 o 750.
  • Los archivos dentro de tu instalación tendrían que tener el permiso 644 o 640.
  • El archivo wp-config.php tendría que tener el permiso 600.

Estos números que te he puesto hacen referencia a la codificación de los permisos de lectura, escritura y ejecución definidos en sistemas operativos Unix. Puedes aprender algo más sobre esto aquí.

8. Activa la autenticación en 2 pasos

Una protección adicional al acceder a WordPress es usar autenticación en 2 pasos. Muchos servicios webs actuales utilizan esta autenticación que, además de tu usuario y contraseña, te piden introducir un código temporal que te envían a tu teléfono móvil (o a otro dispositivo) y sólo es válido unos pocos segundos.

Por defecto, WordPress no incluye esta funcionalidad, pero es posible activarla usando cualquiera de estos plugins:

  • Google Authenticator, aunque lleva tiempo sin actualizarse.
  • Authy, un servicio de pago con un plan gratuito para webs con necesidades pequeñas.
  • Clef, un servicio que se combina con una aplicación para móviles.

9. Realiza copias de seguridad regularmente

Seguramente podrías pensar que hacer copias de seguridad no es una manera de protegerte frente a ataques de seguridad… y es posible que tengas razón. Técnicamente podríamos considerar las copias de seguridad como una “defensa pasiva”, pero está claro que es lo único que va a servirte para recuperar tu web cuando todo lo demás falla.

Si haces copias de seguridad una vez al mes pero actualizas tu web a diario, de poco te va a servir. Lo recomendable es adecuar la frecuencia de las copias de seguridad al ritmo de cambios que haya en tu WordPress. En nuestro caso, realizamos copias de seguridad a diario (se encarga nuestro proveedor de alojamiento automáticamente) y así nos ha ido siempre bien.

Tienes muchos plugins que te ayudan a realizar estas tareas periódicamente:

10. Cambia de proveedor de alojamiento

Aunque pueda parecer una broma, el proveedor de alojamiento es uno de los factores determinantes en temas de seguridad para WordPress. En este informe se indica que en el 41% de los WordPress hackeados la causa fue un fallo de seguridad en la infrastructura del proveedor de alojamiento.

Como has podido ver en los puntos anteriores, hay muchas mejoras de seguridad que los proveedores de alojamiento pueden incluir en su abanico de servicios:

  • Control de acceso limitado a un número máximo de fallos.
  • Gestión automática de copias de seguridad.
  • Escaneo de archivos y alertas.
  • Gestión de permisos de archivos.

Si tu proveedor actual no permite nada de esto, o si has tenido algún problema de seguridad en alguna ocasión, quizás deberías pensar en un cambio de proveedor. Compara otros hostings y no intentes recortar demasiado presupuesto aquí, ya que lo podrás pagar caro más tarde.

Conclusión final

Te he explicado varios trucos sencillos para aplicar en tu WordPress y así mejorar la seguridad global de la web. Son aspectos sencillos que posiblemente conocías y ya tenías controlados, pero si no es el caso, no pierdas más tiempo y ponlos en marcha desde ahora mismo.

Aunque es imposible protegerte al 100%, estos pequeños consejos pueden salvarte de situaciones problemáticas. Y estoy seguro de que aplicarlos te llevará menos de una hora (excepto si necesitas el número 10, claro).

Y si encuentras problemas o no estás seguro de algo, háznoslo saber mediante los comentarios. Nos encanta recibir vuestras opiniones al respecto.

Imagen destacada de Ervins Strauhmanis.

2 Comentarios

  1. Hola!
    Muchos de esos plugins consumen demasiados recursos, me parece mejor, contratar un buen hosting, que te garantice seguridad, como web empresa y puedes quedarte tranquilo, al menos ellos dicen eso.
    Gracias por este articulo, muy útil.
    Hasta pronto!

Dejar respuesta