Autor: Armando Felipe Fuentes Denis/ armandofelipe1992@gmail.com
Cuando se crea una web en wordpress normalmente se suele dar mucha importancia al aspecto, las funcionalidades, la usabilidad o el contenido pasando por alto muchas veces un factor tan importante como la seguridad.
Segurar al 100% una web creada con wordpress es casi misión imposible. Al final, si alguien se empeña en acceder a tu web y tiene los conocimientos necesarios, de un modo u otro, es probable que lo consiga.
Hay muchas personas colaborando en el código de WordPress, infinidad de «plugins» y «themes» desarrollados por terceros y es muy fácil que aparezca un «bug» por algún lado que les haga la vida más fácil a los «hackers».
El objetivo es ponérselo tan difícil como se pueda. Si quieren entrar, al menos que se lo ganen.
Desarrollo
Uno de los grandes problemas de WordPress en el aspecto de seguridad es que da muchas pistas a un posible intruso. Más aun si se utilizan la instalación automática de tu alojamiento, de ahí que es recomendable realizar la instalación de WordPress de una forma un poco más artesanal. Además de aprender como funciona, no dejar algunas cosas en manos de un instalador automático.
Si tu ves una web realizada con este CMS de entrada ya sabes que es muy probable que su dueño acceda a ella a través de http://unsitiocualquiera.com/wp-login.php o que acceda al panel de administración a través de http://unsitiocualquiera.com/wp-admin. Es casi seguro que tendrá el archivo config.ini en la raíz del sitio y bastante probable que los prefijos de las tablas de la base de datos sean wp_. Incluso podría ser que si se ha instalado con un instalador automático, el usuario por defecto admin aun esté creado.
Podríamos seguir buscando pistas y más pistas muy fácilmente. Y seguramente, si alguien quiere acceder a esa web, estos detalles serán los primeros que buscará.
Para evitar este tipo de cosas y mejorar la seguridad de tu WordPress, es recomendable seguir una serie de tip muy sencillos, al alcance de todo el mundo, que como mínimo le pondrán las cosas un poco más difíciles al próximo maleante que se fije en tu web.
1.-Nombre de usuario
Puede parecer muy obvio, pero resulta sorprendente la cantidad de sitios a los que aun se accede con el típico usuario admin.
Evitar este tipo de usuario (admin, administrador, editor, etc…). Del mismo modo, evita usar tu nombre o cualquier referencia al dominio del sitio.
En general, evitar cualquier nombre de usuario que pueda ser predecible.
Tener en cuenta, que muchos de los accesos no deseados a WordPress se hacen por fuerza bruta y ese tipo de nombres de usuario, serán los primeros en probar.
En informática se denomina ataque de fuerza bruta a la forma de recuperar una clave probando todas las combinaciones posibles hasta encontrar aquella que permite el acceso. Esto se logra con programas a los que se carga una lista de usuarios y contraseñas más frecuentemente utilizados y se encarga de ir probando todas las combinaciones una a una hasta que encuentra la correcta
Hay que distinguir entre nombre de usuario y alias. WordPress, por defecto, utiliza el nombre de usuario como el nombre que se muestra públicamente y esto es algo que debes cambiar. Para ello, accede a editar un usuario y se verá un apartado que dice Mostrar este nombre públicamente, esto es lo que se tiene que cambiar.
El nombre de usuario, como ves está en gris y no lo se puede cambiar. Pero se puede introducir un alias en el campo para ello y luego en el desplegable del nombre a mostrar elegir el alias. De este modo, podría firmar mis artículos como ArmandoF (poniéndolo en mi campo Alias), pero estar accediendo a mi panel de control con el nombre de usuario pericodelospalotesysuprimodelparque (en el campo nombre de usuario).
Si ya tienes creado un usuario admin, con tu nombre o similar (ya sea porque tu autoinstalador lo creó así o porque no te pareció inapropiado al instalar tu WordPress), la solución es sencilla. Creas un nuevo usuario. Accedes a la administración con el nuevo usuario y borras el antiguo. En el momento de borrar, te pedirá que hacer con los artículos que ya estaban escritos por ese usuario. Le dices que los asigne al nuevo usuario y listo.
2.- Contraseña segura
¿Como debería ser una contraseña segura?
-Debería tener como mínimo 8 caracteres.
-Debería ser alfanumérica. Contener letras minúsculas, letras mayúsculas, números y signos de puntuación.
–No utilices información personal en ella. Nada de fechas, nombres de parejas o hijos, etc… Que nos conocemos.
– Que no sea pronunciable.
Una buena contraseña debería tener un aspecto parecido a esta: Ow\SoJs2 y para bordarlo, deberías tener una distinta para cada servicio que utilices. Es evidente, si utilizas la misma en todos los servicios, el día que alguien consiga descubrir una, las descubre todas. Y de verdad, vale la pena perder algo de tiempo con esto, que no nos damos cuenta de la importancia que tiene, hasta que nos sucede.
Algunos trucos para crear contraseñas seguras y fáciles de recordar
El primer truco consiste en utilizar una frase que te sea fácil de recordar y utilizar la primera letra de cada palabra. Por ejemplo, en lugar de usar tu fecha de cumpleaños, que la adivinaría hasta tu vecino, podrías usar la frase “Yo nací el 29 de Julio del 80″ y cogiendo la primera letra de cada palabra quedaría Yne2dJd8. Fácil de recordar, difícil de descifrar.
Si quieres generar una para cada servicio que se utiliza, se puede utilizar otro tipo de frase. Por ejemplo, la frase “Me gustaría hacer login en Gmail.com” podríamos transformarla en algo parecido a esto: MghleG.c. Fácil de recordar, difícil de descifrar y adaptable a cada servicio que utilices.
Que llevas mucho tiempo con las mismas contraseñas y las quieres cambiar. Cambias la frase, cambian todas las contraseñas. Sólo hay que usar un poco la imaginación.
El segundo truco consiste en crear un “algoritmo” propio y aplicarlo a cada servicio a utilizar. Dicho así suena complicado, pero ya verás como no. Por ejemplo. Se quiere crear una contraseña para Gmail. Se decide que tu algoritmo será ponerle un 15 delante, un 7 detras, la tercera letra en mayúscula y un punto al principio. La contraseña nos quedaría algo así: .15gmAil7. Fácil de recordar, difícil de descifrar.
Una vez selecciondo un “algoritmo” que es fácil de recordar, se pueden crear todas las contraseñas seguras que se deseen. Siguiendo con el mismo ejemplo, la de Facebook quedaría como sigue: .15faCebook7.
Que llevas mucho tiempo con las mismas contraseñas y las quieres cambiar. Cambias el algoritmo, cambian todas las contraseñas.
3.- Actualizar WordPress, «theme» y «plugins» regularmente
Actualiza tanto WordPress como el «theme» y los «plugins» que se utilicen en cuanto aparezcan versiones nuevas. Más a menudo de lo que nos gustaría se descubren «bugs» y fallos en el código que pueden permitir accesos no deseados a la instalación.
Los desarrolladores se esfuerzan en detectar y subsanar estos fallos tan pronto como aparecen y sacan una nueva versión de su código para solucionarlo. Es por esto que es importante mantener el sistema actualizado como si de un sistema operativo se tratara.
4.- Utilizar «Themes» y «Plugins» originales
El problema de descargar «plugins» y «themes» piratas es que muchas veces estos (no originales) pueden llevar «scripts» y códigos maliciosos que pueden echar al traste tu web en cuestión de segundos. Más o menos los mismos que tardas en instalarlos.
Mi consejo es utilizar única y exclusivamente «themes» y «plugins» originales descargados o desde el repositorio oficial o desde la página web del desarrollador. Y ojo, que originales no siempre quiere decir de pago.
5.- Proteger wp-admin desde el panel de control
Esto es muy sencillo y puede ahorrar muchos dolores de cabeza. Se trata de proteger el directorio wp-admin desde el panel de control a nivel de servidor, para que solo se pueda acceder si se conoce el usuario y la contraseña para ese directorio.
Se sugiero que se haga mediante .htaccess que es uno de los más utilizados.
¿Que pasará después de proteger el directorio? Que primero hay que introducir el usuario y password que se acaba de crear para acceder al directorio y una vez autenticado, se podrá acceder al login de WordPress. Digamos que tendrás una doble verificación para acceder a la administración de tu web.
6.- Realiza «backups» regularmente
Es primordial realizar copias de seguridad de tu web periódicamente. Al menos una vez por semana y a poder ser de forma automática. Ya sabes lo desagradable que es a veces el tal Murphy y falta que una semana se te olvide sacar el «backup», para que ocurra un desastre y se pierda lo último realizado.
La forma más sencilla es a través de plugin. Te muestro un par de ellos para automatizar las copias de seguridad e incluso mandarlas a algún sistema en la nube como Google Drive o Dropbox.
UdraftPlus (4.9 MB)
BackWPup (2.5 MB)
Los dos son bastante parecidos y funcionan igual de bien.
Es posible realizar las copias de seguridad a través del mismo Cpanel del servidor. También resulta sencillo, pero luego automatizarlo no tanto porque hay que usar CronJobs y eso se verá más adelante.
Otro punto importante en cuanto a las copias de seguridad es contar con un buen proveedor de «hosting».
7.- Limita los intentos de «login»
Esto es tan sencillo como instalar un «plugin». Si por ejemplo, se limita el número de intentos fallidos a 3, si se escribe mal el usuario y el «password» 3 veces, no se podrá volver a intentarlo hasta pasado un tiempo predefinido. ¿Que conseguimos con esto? Dificultar los ataques de fuerza bruta de los que se ha hablado un poco más arriba. Estos ataques se basan en intentar el «login» infinidad de veces hasta encontrar la combinación correcta. Si se limitan los intentos de «login», se intenciona la protección a este tipo de ataques.
Estas dos opciones funcionan bien:
«Limit login attempts»: es un plugin muy sencillo y aunque lleva mucho tiempo sin actualizarse, aun sigue funcionando bien.
«Login Lockdown»: parecido al anterior. Este también es muy sencillo de usar y a diferencia del anterior, su creador lo actualiza regularmente. «Login Lockdown», además de permitirte limitar el número de logins y el tiempo a esperar si se fallan, crea una lista negra con las IP que han intentado acceder fraudulentamente al WordPress. Esta lista se puede gestionar directamente desde el «plugin», por si alguna IP ha sido incluida por error y debe borrarse.
8.- Cambiar el prefijo de las tablas de la base de datos
Como dije al principio, uno de los problemas de WordPress es la cantidad de pistas que da a los visitantes con intenciones de dudosa moralidad. Otra de esas pistas son los prefijos de las tablas de la base de datos. Si alguien quiere atacar tu sitio mediante una inyección SQL, lo primero que comprobará es si los prefijos de las tablas son los que vienen por defecto (que es algo que muy poca gente cambia).
La primera opción, y la más sencilla es cambiarlos cuando haces la instalación de tu WordPress. Si utilizas un instalador automático del «hosting» que tengas contratado, seguramente no puedas modificarlos pero si lo haces de forma manual, realizar este cambio te resultará muy sencillo.
Este proceso debe realizarse antes de instalar WordPress, si ya lo tienes instalado no servirá.
¿Recuerdas el archivo wp-config.php? Ábrelo con tu editor de texto plano preferido y busca el siguiente texto:
1
2
3
4
5
6
7
|
/**
* Prefijo de la base de datos de WordPress.
*
* Cambia el prefijo si deseas instalar multiples blogs en una sola base de datos.
* Emplea solo números, letras y guion bajo.
*/
$table_prefix = ‘wp_’;
|
Ese wp_ es el prefijo por defecto que usarán tus tablas. Cámbialo por algo un poco más complicado, como si fuera una contraseña, pero en este caso no te preocupes porque no necesitarás recordarla. Podrías usar por ejemplo algo así: Wj4De]a9 Con este ejemplo, el código del archivo quedaría así:
1
2
3
4
5
6
7
|
/**
* Prefijo de la base de datos de WordPress.
*
* Cambia el prefijo si deseas instalar multiples blogs en una sola base de datos.
* Emplea solo números, letras y guión bajo.
*/
$table_prefix = ‘Wj4De]a9_’;
|
La segunda opción, es un «plugin». Y este procedimiento sí lo podrás usar aunque ya tengas tu WordPress instalado. Los pasos a seguir son:
Siempre que se trabaje sobre la base de datos es imprescindible realizar una copia de seguridad previamente por si algo sale mal.
Descargar el plugin desde esta Web: Seoegghead.
Subir a la carpeta «plugins» del servidor con Filezilla, es un único archivo llamado wordpress-table-rename.php.
Activa el plugin desde el administrador de WordPress.
Entra en Opciones/Table Rename
En el primer campo aparece el prefijo actual de las tablas. En el segundo campo debes poner el nuevo prefijo que se desee utilizar. Y hacer clic en «Generate New Tables». Si todo va bien y no se produce ningún error, esto creará un duplicado de las tablas actuales, con el nuevo prefijo elegido. Se puede comprobar con PhpMyAdmin.
Una vez creadas las nuevas tablas, hacer clic en Change $table_prefix. Este segundo paso modificará el prefijo en el wp-config.php.
Para terminar, si todo funciona correctamente, se deben borrar las tablas viejas con PhpMyAdmin.
Y por último, la tercera opción que es hacerlo todo manualmente. No es difícil, pero si bastante más tedioso. Para ver los pasos a seguir puedes auxiliarte de la ayuda de WordPress donde explican muy bien como realizar el cambio manualmente.
Conclusiones
Como te imaginarás, estas no son todas las medidas que puedes tomar para segurar tu instalación de WordPress, pero si que son las más importantes. En artículos futuros se explicarán: nuevas medidas de seguridad para tu web.
Referencias bibliográficas
Fuentes, D. & Felipe, A. (2015). Consejos para proteger tu sitio web en WordPress. Blog de ArmandoF [online] Disponible en: http://armandof.cubava.cu/2015/06/28/consejos-para-proteger-tu-sitio-web-en-wordpress/
Seoegghead Consulting Group. [online]. Disponible en: http://www.seoegghead.com/software/wordpress-table-rename.seo