5 acciones básicas para proteger nuestra instalación de WordPress

Enviado por Daniel Muñoz Egido el Jue, 21/12/2017 - 09:00
imagen de una persona encapuchado delante de líneas de código

Es posible mejorar sustancialmente la seguridad de nuestra instalación de WordPress con cinco sencillos pasos que todos podemos, y debemos realizar, nada más empezar a trabajar con este estupendo gestor de contenidos.

WordPress es un potente y popular CMS (Content Management System) que nos permite crear de una manera fácil e intuitiva desde un sencillo blog hasta un completo portal de comercio electrónico, pasando por sitios web corporativos, CRM, foros, etc. En la actualidad, en torno al 26% de todos los sitios web existentes en todo el mundo están construidos con esta herramienta, lo que la hace muy apetecible para posibles ataques.

Antes de nada debemos asegurar que WordPress es seguro, y con un buen mantenimiento y una buena política de plugins, lo suficientemente robusto como para que podamos estar tranquilos con ella. Pero siempre podemos realizar una serie de acciones que nos van a permitir mejorar de manera sustancial la protección de nuestra instalación. Veamos cuales son estas acciones.

Evita emplear el usuario "admin" por defecto

Uno de los principales, y más frecuentes, errores en los cuales solemos caer es emplear "admin" como usuario con rol de administrador nada más realizar la instalación de nuestro WordPress. El principal motivo por lo que lo realizamos es que es fácil de recordar y resulta obvio el nombre para el papel que realiza. Pero debemos pensar que lo mismo que es obvio para nosotros lo será también para un posible atacante.

Quizá, el ataque más frecuente que se suele realizar contra un sitio web sea el denominado "por fuerza bruta", o lo que es lo mismo, aquellos que se realizan probando de manera masiva posibles nombres de usuarios y contraseñas, normalmente a partir de enormes bases de datos. El primer usuario que van a probar es "admin", con lo que si hemos empleado este nombre ya les habremos facilitado la mitad de su "trabajo".

En el caso de que ya hayamos creado este usuario, existe una forma bastante sencilla de cambiarlo. Si accedemos a la base de datos de nuestro CMS a través de phpMyAdmin, lo cual podemos hacer prácticamente en todos los servicios de hosting existentes actualmente en el mercado, localizaremos la tabla llamada users, y dentro de ésta, editamos la línea en la que se encuentre el usuario "admin". Cambiamos el nombre del usuario (no la contraseña, ya que al estar encriptada no podremos hacerlo desde aquí) y guardamos los cambios realizados. Y ya está, cuando volvamos a acceder a nuestra instalación de WordPress podremos utilizar el nuevo usuario y "admin" ya no será una opción dentro de nuestro sitio.

 

phpMyAdmin-1.jpg

 

Limitar el número de intentos de acceso

Como hemos comentado anteriormente, el ataque más frecuente es el denominado "de fuerza bruta" por la que se van probando diferentes nombres de usuario y contraseña. En muchas ocasiones, esta acción está llevada a cabo por parte de una computadora de manera masiva, es decir, pueden probar miles de combinaciones almacenadas en una base de datos.

Por defecto, WordPress no establece un límite de intentos para poder acceder al área de administración de nuestra instalación, pero podemos implementarlo fácilmente mediante la instalación de diversos plugins que además nos ofrecen importantes opciones de personalización. En muchas de nuestra instalaciones usamos para ello el plugin Loginizer, que en su versión gratuita nos ofrece, entre otras opciones, limitar el número de intentos de acceso por parte de un determinado usuario o IP desde la cual está realizando dicho intento.

 

loginizer-1.jpg

loginizer_1.png

 

Por ejemplo, en el caso concreto de los ataques de fuerza bruta, solo deberemos establecer los siguientes parámetros: número máximo de intentos, tiempo de duración del bloqueo, número máximo de bloqueos, tiempo de bloqueo extendido (en el caso de haber superado el número de bloqueos permitidos en el periodo de tiempo determinado), reseteo o reinicio del número de intentos, y cuándo se debe enviar una notificación por email al administrador del sistema para avisar de un posible ataque. Como podemos vere, una sencilla manera de protegernos de este tipo de ataques.

Autenticación en dos pasos

La autenticación en dos pasos (two-factor Authentication) es llevar la protección contra los ataques de fuerza bruta a un nivel superior. La manera tradicional y más extendida para acceder a un determinado sitio es emplear un usuario y contraseña, que en principio, sólo nosotros debemos poseer. Pero la experiencia nos ha demostrado que esto no siempre es así, por lo que una solución que es tremendamente útil desde el punto de vista de la seguridad es introducir un factor más, uno que sólo nosotros tengamos realmente, o que sólo nosotros deberíamos tener. Lo tradicional ha sido el uso del  móvil o del correo electrónico.

Cuando intentamos acceder al sistema éste envía al medio configurado una clave adicional (distinta en cada ocasión) y que deberemos introducir junto con las ya tradicionales de usuario y contraseña. De esta manera aseguramos de manera exponencial la seguridad de nuestro sitio y de los datos en él contenidos.

Existen diversas formas de implementar la autenticación en dos pasos dentro de nuestra instalación de WordPress. Una de ellas es mediante la utilización del plugin Google Authenticator que nos permite emplear el sistema de autenticación en dos pasos de Google a través de su app para Android e iPhone. De formar similar, pero de manera autónoma, funciona Duo Two-Factor Authentication, mediante el cual podremos recibir tanto un SMS en nuestro móvil con una clave, o bien recibirla mediante una app que podremos instalar en nuestro teléfono móvil. Su funcionamiento y configuración es realmente sencillo. La aplicación es gratuita para sitios con número máximo de 10 usuarios.

 

google-authenticator.jpg

 

Automatizar las actualizaciones

El mantenimiento y actualización del core de WordPress, así como de sus plugins y temas, son una de las piezas clave de la seguridad de nuestra instalación. Como ya explicamos en un post anterior, la mayor parte de las infecciones que se producen en sitios gestionados por CMSs open source son producto de la desactualización o del empleo de complementos o temas de terceros no seguros. Es decir, por falta de mantenimiento.

Mientras que por defecto aquellas actualizaciones de menor envergadura se producen de manera automática, aquellas de un mayor calado requerirán de nuestra autorización. Si no solemos acceder con frecuencia al área de administración de nuestro sitio, esto pueden suponer un importante riesgo de seguridad.

La forma más efectiva de configurar las actualizaciones automáticas, ya sea del core, plugins o temas, es a través de la inserción de unas cuantas líneas de código en el archivo functions.php de nuestro tema o dentro de un plugin específico de nuestro sitio. Si lo que queremos es automatizar las actualizaciones del core de WordPress, deberemos añadir alguna de estas líneas en función de lo que queramos automatizar (añadir todas para seleccionar todas las opciones):

 

add_filter( 'allow_dev_auto_core_updates', '__return_true' );           // Activa las actualizaciones de desarrollo
add_filter( 'allow_minor_auto_core_updates', '__return_true' );         // Activa actualizaciones menores
add_filter( 'allow_major_auto_core_updates', '__return_true' );         // Activa actualizaciones mayores

 

En el caso que queramos automatizar las actualizaciones de plugins y temas, también añadiremos las siguientes líneas de código:

 

add_filter( 'auto_update_plugin', '__return_true' );  //Para los plugins
add_filter( 'auto_update_theme', '__return_true' );  //Para los temas

 

En cualquiera de los casos, si lo que queremos es que no se produzca la actualización automática, sólo deberemos sustituir la expresión '_return_true' por 'return_false'. Sólo recordar que si hemos introducido estas líneas en el archivo functions.php de nuestro tema, las deberemos volver a introducir si cambiamos de tema.

Desactivación de la navegación e indexación de directorios

Cuando accedemos a un directorio en el que no hay ningún archivo del tipo index.html o index.php, el navegador indexará y mostrará la lista de carpetas y archivos que hay dentro de dicho directorio si previamente no hemos establecido lo contrario. El sitio donde se establecen las acciones que se pueden llevar a cabo o no dentro de los directorios de un sitio es el archivo .htaccess.

El archivo .htaccess se encuentra ubicado en la raíz de nuestra instalación de WordPress. Para poder editarlo deberemos o bien descargarlo mediante ftp a nuestro ordenador y una vez modificado volverlo a subir al mismo, o bien emplear algún editor de código que nos permita editar en vivo archivos de nuestro servidor mediante algún protocolo de comunicación, normalmente ftp también, como Visual Studio o NetBeans, por ejemplo.

Para desactivar la posibilidad de indexación de directorios sólo deberemos añadir la siguiente linea de código al archivo .htaccess:

 

Options -Indexes

 

Con lo que este archivo nos tiene que quedar, en función de otras posibles configuraciones que podamos haber añadido, de la siguiente manera:

 

wp-seguridad-2_0_0.png

 

Conclusiones

Podemos afirmar sin riesgo a confundirnos que WordPress es una herramienta lo suficientemente segura para que podamos confiar en ella totalmente. No obstante, siempre podemos tomar medidas complementarias para incrementar la seguridad de la misma. Con estos cinco pasos convertiremos la mayoría de los sitios creados con esta herramientas CMS en robustos. Aun así, dentro del campo de la seguridad se pueden implementar diferentes acciones o herramientas que irán añadiendo grados de protección, siendo algunos de ellos muy específicos para determinados tipos de sitios.

Para poder realizar algunas de estas acciones hay que editar y modificar alguno de los archivos del sistema, a lo cual no le debemos tener miedo. Existen mucho y muy buenos manuales en Internet que nos explican como trabajar con este tipo de archivos y las diferentes herramientas para poder hacerlo. De todas maneras siempre deberemos crear una copia de seguridad de la instalación por si algo no saliera como habíamos previsto.

Para ampliar las acciones que podemos realizar en nuestra instalación de WordPress para mejorar la seguridad os recomendamos la lectura de nuestra guía de seguridad en WP:

Y tu, ¿quieres compartir alguna medida de protección que emplees con nosotros?

 

Añadir nuevo comentario

Este campo sólo es para verificar que usted es una persona. No será almacenado ni utilizado con ningún otro propósito

HTML Restringido

  • Etiquetas HTML permitidas: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • Saltos automáticos de líneas y de párrafos.
  • Las direcciones de correos electrónicos y páginas web se convierten en enlaces automáticamente.

Documentación Hoy le informa que los datos facilitados por usted en este formulario serán tratados informáticamente por Documentación Hoy con el objetivo de publicar su comentario a este contenido. Para poder llevar a cabo esta acción necesitamos su consentimiento explícito. Los datos proporcionados se conservarán mientras no solicite el cese de la actividad. Los datos no se cederán a terceros salvo en los casos en que exista una obligación legal. En cualquier momento usted puede ejercitar su derecho a acceder, rectificar, limitar o borrar sus datos enviándonos un e-mail a info@documentacionhoy.com. Usted puede encontrar más información en nuestra Política de Privacidad.

CAPTCHA
Esta pregunta es para comprobar si usted es un visitante humano y prevenir envíos de spam automatizado.