Seguridad en WordPress

  • Por
  • y  
Resumen y vídeo de la clase dedicada a la seguridad en WordPress, donde se analizan los posibles problemas de seguridad más habituales y se ofrecen recomendaciones para incrementar la seguridad en el CMS.

En este artículo encontrarás un completo resumen y la grabación de la clase dedicada a seguridad dentro del Curso Gratuito de Iniciación a WordPress, donde hicimos varias clases generales sobre WordPress centrándonos en su administración y optimización.

La clase fue impartida por el equipo de ApacheCtl, con David Hernández (Dabo) y Oscar Oreixa, dos componentes del core de ApacheCtl, que nos ofrecieron esta clase desde una perspectiva totalmente diferente a lo que cualquiera de nosotros podría haber supuesto. Gracias a su experiencia en la seguridad de sistemas y lo que se conoce como "Hacking Ético", lo que pudo haber sido un simple recorrido a los plugins más famosos para WordPress en el ámbito de la seguridad, se convirtió en una demostración de por qué este CMS puede ser foco fácil de ataques de seguridad si no se toman las medidas oportunas.

Por supuesto, toda la clase está repleta de consejos útiles para solucionar las posibles vulnerabilidades o los puntos débiles de WordPress y por los cuales se es susceptible de recibir ataques con mayor frecuencia.

Nota: No queremos usar la palabra "hackeado" cuando se refieren a ataques de seguridad, porque el significado de hacker no es algo relacionado con la explotación de fallos de seguridad para robar contraseñas o hacer fraude en general en sistemas informáticos. Eso se llama vandalismo y a los causantes se les llama ladrones o bandidos. Hacker es aquel que usa la inteligencia para la resolución de problemas. Además hay que mencionar también que todo esto que vamos a ver sobre WordPress y sus posibles problemas de seguridad se puede aplicar directamente a cualquier otro software libre que tengamos instalado en un servidor web abierto al público en Internet.

La seguridad es un tema crítico en el momento que vivimos. Muchas veces pensamos erróneamente "yo tengo un blog que ve poca gente y por ello puedo estar tranquilo, ya que nadie va a querer atacarme". Nadie irá a por ti por ser quien eres, (salvo que seas famoso, tengas dinero o poder), sino por los recursos que tiene tu servidor. Querrán usarlo como salida de envíos masivos de spam, para hacerlo miembro de una botnet, usarlo para actividades criminales, etc.

Ten en cuenta que la mayoría de los ataques están automatizados y no son personas, sino máquinas los que están detrás de ellos. Por supuesto, están orquestados por criminales que se ganan la vida a base de fraude y uso de malware. Estos criminales están muy al tanto de las vulnerabilidades que se pueden explotar y mediante máquinas conectadas están constantemente a la caza de sistemas inseguros donde extender sus lazos.

Plugins de seguridad

El vídeo comienza repasando una serie de recomendaciones de plugins, aunque no se vieron los plugins directamente sino que Dabo nos recomendó un post en su propio blog donde ya habla de los plugins que él encuentra más interesantes para WordPress y la seguridad.

En ese post encuentras un poco de todo: para hacer backups para ataques por fuerza bruta, para evitar ciertas peticiones maliciosas o consulta de datos que no deberían estar visibles, prevenir spam, etc.

Nota: Si quieres una recomendación rápida de un plugin que te soluciona la mayoría de los asuntos que tienen que ver con la seguridad y que puedes ajustar dentro de tu WordPress, revisa iThemes Security o Wordfence.

Sería muy largo dedicarse a ver todos esos plugins uno a uno, mostrando su funcionamiento y el modo de trabajar con ellos. Además, por suerte, en esta clase nos dedicamos a algo mucho mejor, y mucho más difícil de conocer, que es explicar cómo un atacante podría encontrar las puertas de entrada a tu sitio en WordPress si no lo has protegido bien. Cualquiera de esos plugins, con un poco de experiencia y pruebas, cualquier persona será capaz de usarlos y ajustar su funcionamiento a las necesidades propias.

Seguridad de un sistema es la seguridad del eslabón más débil

Debemos comenzar por decir que la seguridad comienza por el sistema del propio usuario y administrador del WordPress. Aunque parezca obvio, la seguridad es como una cadena, que se puede romper fácilmente si cualquiera de sus eslabones es débil.

Por tanto, debemos de cuidar aspectos tan básicos como la contraseña del acceso al administrador de WordPress, a partir de 15 caracteres, mezclando números y letras. También no usar el usuario "admin" que es el configurado por defecto, cambiando ese nombre para que por fuerza bruta no se pueda burlar la seguridad intentando recuperar la contraseña de ese nombre de usuario.

Pero no solo eso, sino también mantener sistema actualizado con el que nos conectamos a WordPress, o sea, si usamos Windows, Linux o Mac, instalar todas las actualizaciones del sistema y del software que usamos y si lo ves necesario para ti, tener un antivirus que nos permita implementar algo más de seguridad. No instalar programas de dudosa procedencia, etc. Ojo, si te han "troyanizado" ya tu ordenador da igual que coloques la contraseña más segura del mundo, que te podrán robar los datos por ese software malicioso que puedes ya tener. En ese sentido es responsabilidad de todos los desarrolladores mantener los sistemas siempre vigilados.

Otra cosa que puede ocurrir es que tengas tu correo electrónico con una clave poco segura y cuando WordPress te recuerda el password o te permite cambiarlo con un enlace que te mandan al email, cualquier atacante pueda obtener esa pista simplemente entrando en ese correo inseguro que has configurado como administrador de WordPress.

Consejos de seguridad habituales

Existen diversos consejos de seguridad básicos que se deberían implementar en todo WordPress. La mayoría de los plugins de seguridad te sirven para cubrir estos consejos y muchos otros.

  • Cambiar el usuario "admin": Como hemos dicho, no debemos usar ese nombre de usuario, porque es el que van a intentar atacar en primera instancia.
  • Cambiar los prefijos de las tablas: otro fallo habitual es dejar las tablas de WordPress con los nombres predeterminados. En la instalación debes definir un prefijo personalizado y si no lo hiciste, existen plugins que te permiten cambiarlo.
  • Cambiar la ruta de login al administrador: también es importante cambiar la URL del login de WordPress para esconderla a personas que no tienen autorizado el acceso.

Consejos a nivel de servidor

Sería conveniente contar siempre con un servidor autónomo para tener una instalación de WordPress segura, con una opción mínima de VPS (Servidor Privado Virtual). Al menos en proyectos que pretendan tener una relevancia básica y un elevado grado profesional.

Sabemos que en la mayoría de las ocasiones se empieza con un hosting compartido, en el que estás alojado en un servidor con otros cientos o a veces miles de otras webs. Estos entornos son baratos y repito, sirven para empezar, pero no son siempre seguros. Al estar alojado en un mismo servidor con muchas otras webs significa que tú puedes tener los deberes hechos, pero si tu vecino comete una imprudencia, ambos estaréis expuestos. Es decir, puedes haber trabajado para dejar tu WordPress bien seguro, pero otra persona alojada en el mismo servidor puede que no y por ello todos tus datos estarían expuestos a ataques y robos de la misma manera que si tú mismo hubieras provocado el fallo de seguridad.

Ocurre mucho también con los servidores de hosting compartido, que el proveedor de turno no tiene actualizada la versión de PHP o del servidor web, o del panel de administración. Igual lo hace para no perder la configuración de estos sistemas con los sitios web alojados, pero es un problema serio, porque cualquiera de esas aplicaciones sin actualizar son susceptibles de recibir ataques que exploten vulnerabilidades conocidas.

El VPS, o ya de manera más avanzada todavía, el servidor dedicado, te permite tener un entorno autónomo, sin que otros "vecinos" puedan provocar fallos en tu sistema. Ese VPS o servidor dedicado lo has configurado tú mismo y por tanto, si has hecho las cosas bien, puedes estar seguro de la fortaleza del sistema. Claro que también requiere conocimientos avanzados para la configuración del servidor, pero en este caso podemos pedir ayuda para configurar el sistema y luego simplemente tener en cuenta el mantenerlo al día con todas las actualizaciones instaladas.

Ten en cuenta que si tu negocio está en la web, la base del mismo va a estar en el servidor y lo debes tener todo bien montado y bien configurado. Además de tener un entorno que te permita cambiar ciertas cosas y esto lo consigues a partir de lo que se llaman los servidores VPS.

Muchas veces ocurre que la parte de un presupuesto para un negocio online dedicada al alojamiento es lo que menos atención se le presta y se acaba invirtiendo poco dinero en muchos casos. Pero eso no debería ser así, sino al contrario, se tendría que pensar en los servidores como la base donde se va a sustentar el negocio.

Cuidado con los plugins

Los plugins son los causantes de la mayoría de los problemas de seguridad que se encuentran en el día a día con WordPress. Pero esto es algo que también afecta a cualquier CMS o pieza de software que tengamos en un proyecto. El "core" de WordPress podemos estar seguros que tiene un código de calidad, que se ha revisado por muchos desarrolladores y que se encuentra siempre actualizado ante cualquier eventual fallo. Sin embargo, no ocurre lo mismo con los plugins, ya que cualquier desarrollador independiente puede crear un plugin sin cuidado y producirse con ello problemas muy graves.

Hay que tener por tanto muchos cuidados con los plugins. Pueden llegarte problemas por plugins que no has actualizado, en estado muy inmaduro, realizados por desarrolladores que no prestan tanta atención a los temas de seguridad y que no se toman la molestia de actualizarlos.

Los consejos acerca de plugins serían:

  • Usar los mínimos posibles
  • Mantenerlos siempre actualizados
  • Usar solo los que tengan una buena reputación
  • Prestar atención a la cantidad de actualizaciones que se realiza de ellos y su continuidad
  • Constatar que hay alguien detrás que responde, ya sea una empresa o una comunidad

Un error muy típico es probar varios plugins y luego dejarlos ahí sin prestarles atención. Puede que incluso lo tengamos desactivado pensando que pueda ser inofensivo, pero el código está ahí y si representa un problema de seguridad el atacante sería capaz de explotarlo, independientemente de que no esté activado.

Cuidado con los temas (themes) gratuitos o pirateados

Otra fuente de problemas en WordPress puede venir con los temas, las plantillas con las que cambiar el aspecto de la página (themes en la jerga de WordPress). Las plantillas también incluyen código PHP susceptible de tener problemas de seguridad de diversos tipos, pero también ocurre habitualmente que se ofrecen themes para descarga que vienen infectados con software malicioso, destinado a robar cualquier tipo de datos, las contraseñas, etc.

No es cuestión de asustarse, seguramente la mayoría de los temas estén perfectamente libres de errores o software espía, pero hay que ser conscientes de este problema y descargar solo aquellos temas cuya procedencia esté garantizada. Desconfía seriamente de aquellos sitios que te ofrezcan temas gratuitos que sean copia de los de pago, puesto que pueden estar pirateados con la intención de servir de gancho para atacar tu sitio.

Siempre es bueno examinar el código fuente del tema, sobre todo si lo has obtenido de un sitio poco fiable, para cerciorarse que no tiene una puerta de atrás que lo que pretende es tener el control de tu servidor.

Auditoría de seguridad WordPress

De este momento en el presente artículo te hemos resumido hasta el minuto 30:00 de la clase y a continuación comienza una parte todavía más interesante, en la que se realiza una auditoría de seguridad de varios sitios web creados con WordPress.

En esta auditoría se realizan una serie de comprobaciones comprobaciones de seguridad básicas, no intrusivas, es decir, simplemente se observa cómo está instalado y configurado WordPress en función de la información que expone el sitio web y el servidor donde está alojado. Con esos datos se puede deducir si esos sitios basados en el CMS se pueden considerar seguros.

En estas pruebas se utilizan varios sitios de referencia y gracias a ellas podremos ver que muchos de ellos tienen problemas bastante serios, que los harían vulnerables a distintos tipos de ataques de seguridad. Se dice que aproximadamente el 60% de los sitios basados en WordPress son vulnerables, por eso a veces se considera al CMS poco seguro, pero no es por el software en sí, sino por cómo está se implementado, ya sea por ignorancia, descuido o desinterés.

A lo largo de esta auditoría de seguridad conocimos además varias herramientas que resultan clave para encontrar errores de seguridad, que son usadas por los equipos de administración de sistemas y posibles atacantes.

Pero toda esta parte no es posible explicarla con palabras, es mucho mejor que lo veas por ti mismo, a partir del minuto 30 en este vídeo. Seguro que aprenderás varias cosas y te hace más consciente de lo crítico que es la problemática de la seguridad.

A continuación tienes el vídeo completo de esta clase dedicada a la seguridad (puedes saltarte las presentaciones que se ofrecieron en los primeros 9 minutos):

Autor

David Hernández (Dabo)

Dabo se dedica a la adminstración de servidores bajo GNU/Linux y la seguridad de la información en su empresa ApacheCtl de la que es cofundador y donde dirige el área de hacking. Es además miembro de DebianHackers y coordinador del podcast Kernel Panic.

Autor

Oscar Reixa

Cofundador, GEO y sysadmin en @apache_ctl, empresa dedicada a la administración de servidores y la seguridad de la información. Mantiene diversos blogs dedicados a la tecnología y deportes

Compartir

Comentarios

Daniel Maldonado

03/7/2014
Felicidades por el artículo
Excelente síntesis de todos los puntos a tener en cuenta dentro de cada proyecto en WordPress, realmente es un sistema de los más utilizados y requiere que le prestemos atención en todo momento si es que lo implementamos en producción.
Yo estoy ejecutando un proyecto llamado WPHardening que es una herramienta escrita en Python y que nos puede ser muy útil a la hora de aseguridad nuestros proyecto en WordPress. El enlace es el siguiente: https://github.com/elcodigok/wphardening
Saludos!

xirux-nefer69@mixmail.com

02/8/2014
Cambiar el nombre de las tablas
Lo de cambiar el prefijo wp- de las tablas... ¿eso no es fácil de descubrir sin más que mirar el código fuente de la página?
Un saludo.

SO-JUM

02/4/2015
De vital importancia.
Soy el chico que va lento con el PHP y por tanto estoy metido en Wordpress. Un artículo buenísimo ya que la seguridad es lo primero. Yo estoy buscando el famoso plugin de los 70 idiomas pero nada que no lo encuentro en fin tendré que tener más paciencia.
Ahora paso vía twitter a seguir al autor de esta entrada tan currada. Saludos