« Artículos « BlogTutorialesDownloads

Pasos sencillos para mejorar la seguridad de WordPress

Jueves, 17 de Julio, 2008

Acerca de

Soy Sergio Nouvel, diseñador y consultor Web. Escribo sobre Web, cultura y tecnología, así como artículos y tutoriales para desarrolladores Web. Más...

La seguridad es algo que todo desarrollador Web debe tener en cuenta a la hora de construir un sitio. Los sitios Web son vulnerables, en mayor o menor grado, a una gran variedad de ataques maliciosos, que van desde borrar los contenidos de un sitio o acceder a información personal hasta instalar malware inadvertidamente en ellos.

En mi caso, el tema me interesa bastante, puesto que casi todos los sitios que desarrollo en la actualidad son en plataforma WordPress.

Investigando un poco, he encontrado ciertas medidas de seguridad muy simples, que pueden mejorar la seguridad de un blog WordPress en varios escenarios. Aquí van.

1) Actualizarse a WordPress 2.6

WordPress 2.6, que salió a principios de esta semana (15 de julio), trae, además de varios parches y actualizaciones, un par de mejoras de seguridad que se suman a las de la versión 2.5 (cookies y contraseñas encriptadas, entre otras):

  • La publicación XML-RPC y Atom está desactivada por defecto y permite activarla /desactivarla a voluntad. Estos protocolos dejaban una puerta abierta para explotar vulnerabilidades, como veremos en un momento más.
  • Las consultas a la base de datos han sido filtradas a través de un mecanismo que evita los ataques de inyección SQL (forma muy común de hackear un sitio).

Este consejo, por extensión, quiere decir también mantente siempre actualizado a la última versión de WordPress. Los problemas que se parchan en una actualización pueden marcar la diferencia entre que tu sitio sea hackeado y que no lo sea.

Si actualizar WordPress manualmente te resulta tedioso, como a mí, puedes utilizar este plugin.

2) Desactivar la publicación XML-RPC y Atom

Nota: Si instalaste WordPress 2.6 desde cero, sin actualizar desde una instalación anterior, omite este punto.

XML-RPC y Atom son dos protocolos que permiten publicar en un blog desde una aplicación externa, como Windows Live Writer. Como permiten que un sistema externo tenga acceso al blog, han sido blanco de unas cuantas vulnerabilidades que han sido explotadas para hackear blogs.

Si no usas un sistema externo para publicar en tu blog, es preferible que desactives ambos protocolos en la pestaña Opciones > Escritura.

WordPress 2.6 trae estos protocolos desactivados por defecto, pero si actualizas desde una versión anterior, los conserva activados. Por esta razón este consejo no se aplica a quienes instalan WordPress 2.6 desde cero.

3) Cambiarle el prefijo a las tablas de WordPress

Si observas el archivo wp-config.php, que debes modificar antes de instalar WordPress, verás la siguiente línea:

$table_prefix  = 'wp_';

Este código le dice a WordPress con qué prefijo debe nombrar a las tablas de la base de datos. Por defecto el prefijo es “wp_”. Esto significa que las tablas son nombradas “wp_posts”, “wp_users”, “wp_options”, etc. Esto lo saben los hackers, que tienen un elemento a su favor a la hora de intentar atacar un sitio basado en WordPress: conocen los nombres de las tablas de la base de datos.

Por lo cual, si cambias el prefijo por defecto a uno menos predecible, como “azz34c_”, tus tablas se llamarán “azz34c_posts”, “azz34c_users”, “azz34c_options”, etc. Con esto añades un paso más de dificultad a cualquier intruso que quiera acercarse a tu base de datos.

4) Cambiar AUTH_KEY, SECURE_AUTH__KEY y LOGGED_IN_KEY en wp-config.php

Esto es muy importante y quizás ni lo sabías hasta leer esto: a partir de WordPress 2.5, una nueva variable llamada SECRET_KEY se añadió al mismo wp-config.php. A partir de la 2.6, esta variable se reemplazó por tres: AUTH_KEY, SECURE_AUTH_KEY y LOGGED_IN_KEY. Todas estas variables son literalmente “llaves” con las cuales se encriptan cookies, sesiones y passwords. Deberían ser largas y complicadas, puesto que no es necesario recordarlas.

Al parecer, si uno no define ninguna frase especial, WordPress encripta con una frase por defecto, haciendo un poco más vulnerable el sitio a ataques de fuerza bruta.

Voy de inmediato a cambiar las frases nuevas de WordPress 2.6, me acabo de dar cuenta de que existen :)

5) Cambiar el nombre de usuario “admin”

Como WordPress crea el usuario “admin” con todos los privilegios por defecto, un hacker que quiera obtener por fuerza bruta acceso a tu blog, sabe por dónde empezar: ya tiene tu nombre de usuario.

(Mejor ni imaginar si es que la contraseña es algo así como “1234” o “qwerty”)

Para reemplazar el usuario “admin” por otro que posea los mismos privilegios, debes hacer estos sencillos pasos:

  1. Ir a Opciones > Usuarios.
  2. Crear un usuario nuevo, y asignarle la función de Administrador (recuerda ponerle tu nombre para que aparezcas como autor al eliminar “admin”).
  3. Cerrar sesión e iniciarla con el usuario nuevo.
  4. Volver a ir a Opciones > Usuarios.
  5. Eliminar el usuario “admin”.
  6. WordPress te preguntará a quién le asignas la autoría de los posts que había creado “admin”. Eliges tu usuario actual, y listo.

6) Usar el plugin WP Security Scan

Este plugin hace un chequeo (en inglés) de ciertos tips como los que mencioné anteriormente, y es de ayuda para renombrar las tablas de WordPress en caso de que tengas tu blog ya instalado (que conste, a mi no me funcionó con todos los hostings). Para futuro prometen más chequeos, así que no viene mal tenerlo instalado.

7) UPDATE: Borrar wp-admin/install.php

Una vez que instalamos WordPress, ya no necesitamos más este archivo. Es difícil que esto pueda ser aprovechado para entrar “por la puerta trasera”, pero si llega a ocurrir un error en la base de datos y justo alguien está ahí para saberlo, podría ingresar y resetear la contraseña de administrador. El único “pero” es que tendríamos que recordarlo cada vez que actualicemos WordPress.

Para terminar, un buen link

En BlogSecurity.net están publicando constantemente noticias, consejos, papers y plugins con información relacionada a la seguridad en los blogs. Si eres desarrollador Web, haces blogs y te lo tomas en serio, este sitio vale la pena. ¡Saludos!

¿Preguntas? ¿Tienes otros tips? Hazte parte en los comentarios.

3 comentarios.

1

Julio 19, 2008Nuevas medidas de seguridad en Wordpress 2.6 « Since 1977

[…] he encontrado un buen artículo en el que habla de otras medidas de seguridad, algunas bastante sencillas y a la vez lógicas, pero […]

2

Junio 4, 2009Prometeo

Estoy intentando hacer lo que pone el punto 5, pero no me deja borrar mi admin antiguo. No sé por qué será. Qué eso de ponerle exactamente el mismo nombre?

3

Junio 4, 2009Sergio

@Prometeo: asegúrate de cumplir al pie de la letra los pasos. Recuerda que para borrar el usuario “admin” tienes que haber iniciado sesión como el otro usuario administrador.

Saludos

Comenta.