Tiempo de lectura: 5 minutos

Un gestor de contenidos, como Joomla! o WordPress, es una aplicación que se ejecuta en un servidor. Facilita la creación de entradas con texto e imágenes así como su organización. Por ejemplo, WordPress me permite escribir esta entrada usando un mini editor de texto que viene incluido de serie. La entrada se puede organizar en categorías y puedo aplicarle un formato concreto. Una vez está escrita la entrada se puede publicar en el momento o bien programarlo para un día concreto. Los usuarios pueden dejar comentarios en la entrada y aportar sugerencias o preguntar las dudas. Todo este flujo, desde la creación de una entrada hasta su publicación, se puede realizar usando un gestor de contenidos.

Es cierto que se puede tener una página Web sin usar ninguna de estas aplicaciones, pero eso también afecta a la forma de trabajar. Puede ser más sencillo y rápido pero al mismo tiempo hace más complicado que otros usuarios participen. Si en algún momento necesitamos un diseño nuevo, por ejemplo para presentar un proyecto nuevo, será más complicado encontrar empresas o trabajadores freelance que nos ayuden.

La visibilidad y la seguridad

Con una Web, cualquier usuario del mundo puede acceder a las entradas que escribimos. Si bien tiene un coste el servidor, suele ser reducido y no obliga a realizar una inversión grande. Esta visibilidad facilita que lleguemos a los usuarios finales sin tener que realizar inversiones costosas en prensa o revistas. Tener visibilidad también tiene algunos inconvenientes. El principal es que por tener publicada una Web, vamos a recibir ataques en el servidor. Habrá usuarios que intentarán usar un fallo de seguridad y acceder a todos los recursos del servidor.

Normalmente los servidores se dimensionan para unas visitas estimadas. Podemos estimar 100 visitas simultáneas y en ese caso se sirven todos los recursos de la Web sin problemas. Si recibimos 200 visitas la Web aún puede continuar aunque funcionará todo de forma más lenta. El problema aumentaría si pasáramos a recibir 1000 visitas o 5000 visitas de forma simultánea. ¿Quiere decir que la Web tiene mucho éxito y su contenido atrae a muchos usuarios? No necesariamente. Lo más probable es que estemos recibiendo un ataque. Las visitas que recibe una Web pueden ser de usuarios normales y de bots. Un bot es un pequeño programa que realiza una tarea cuando se conecta a una Web.

Robot

Robot

Los bots son programas útiles y generalmente son buenos. Por ejemplo, para que el contenido aparezca en un buscador es necesario que antes lo haya indexado (leído) un bot. Cuando un usuario busque ciertas palabras, le aparecerá nuestra página Web. En otras ocasiones los bots tienen una finalidad más malvada e intentan acceder a los recursos del servidor. Pueden probar contraseñas de diccionario para identificarse como un usuario concreto o buscar plugins sin actualizar que permiten acceder a los recursos del servidor. Este escenario no es apocalíptico sino que es el día a día de muchos servidores. Los bots no duermen y pueden acceder a cualquier hora. También pueden venir de cualquier país del mundo. ¿A que suena divertido?

Formas de protegerse (aumentando la seguridad)

Generalmente los ataques los realizan bots. Al final un bot es un programa que ejecuta una serie de instrucciones. Espera una organización y si ésta cambia, empiezan a fallar. Con un ejemplo se verá más claro. En WordPress se usa por defecto un usuario por defecto. Si no se ha cambiado, sólo tenemos que probar contraseñas hasta que acertemos. En una Web que no tiene ninguna protección, puede ser cuestión de tiempo que lo consigan. Supongamos que el usuario es admin y la contraseña 1234. En un par de intentos un bot podría acceder a la cuenta y ahí tener acceso a los recursos de la Web.

Nota: si alguno de los bots no quiere aparecer en la captura (ya que aparece la dirección IP), puede ponerse en contacto conmigo usando el formulario de contacto para eliminarlo.

Registro de accesos

Registro de accesos

En la captura vemos las direcciones IP junto con el ID del usuario y el nombre que han probado. Si tenemos una contraseña sencilla es cuestión de tiempo que lo consigan. ¿Qué pasa si modificamos un poco las condiciones? En lugar del usuario admin vamos a poner otro que no esté relacionado con WordPress, por ejemplo, superMegaAdmin. Los bots intentarán usar el nombre por defecto y se encontrarán con un pequeño problema. De los dos elementos que necesitan para entrar en una Web ya tienen uno que es aleatorio. Los bots más avanzados pueden analizar la Web e intentar sacar los usuarios reales. Eso les da un poco de ventaja pero no mucha.

Una de las primeras cosas que podemos usar para protegernos es simple. Hay que modificar el funcionamiento por defecto de WordPress.

Algunas medidas de protección

Una primera medida es no usar un usuario con el nombre por defecto. A esa medida se le puede sumar una contraseña decente. Por ejemplo, una contraseña como 1234 es sencillo de descubrir por prueba y error. Si la contraseña es @5&ñ la cosa cambia un poco. Es más complicada pero con 4 caracteres y tiempo se podría sacar. Cada carácter que se añade a una contraseña la hace más robusta. Si ponemos 10 caracteres con una combinación de letras, números y símbolos conseguiremos una seguridad razonable.

WordPress permite instalar plugins de muchos tipos. Dentro del catálogo podemos encontrar plugins de seguridad. Con ésto ya se pueden hacer cosas más divertidas. Por ejemplo, que si un usuario falla la contraseña 3 veces se le active un bloqueo de 1 hora. Durante ese tiempo no podrá iniciar sesión y se bloqueará su dirección IP. Otra posibilidad es bloquear al bot si utiliza usuarios concretos (como admin) o que no existan en el sistema. Al aplicarles un bloqueo de acceso temporal les haces perder tiempo. Cuando se cansan pasarán a buscar otro servidor menos protegido.

Logo de WordPress

Logo de WordPress

También podemos usar listas negras de direcciones IP de atacantes. Cualquier petición que llegue de esa IP se bloquea. De esta forma nos protegemos y reducimos la carga del servidor. Si hacemos un bloqueo por IP, el atacante podría usar una VPN para ocultar su dirección. Es cierto pero también es más costos en recursos para un atacante que tenga control sobre muchos bots. Le obliga a hacer un trabajo extra que no realizará si no es un ataque profesional.

Conclusiones

El objetivo de esta entrada es que conozcáis las ventajas e inconvenientes que tenemos por publicar una Web. Por una parte podemos llegar a muchos usuarios / clientes con una inversión mínima. Al mismo tiempo también nos ponemos en el rango de los usuarios más oscuros. No existe la seguridad perfecta pero si se puede conseguir un nivel de seguridad razonable con pequeñas medidas. Al usar un gestor de contenidos, como WordPress o Joomla! ganamos tanto facilidad para crear una imagen de marca como diferentes elementos de seguridad que se están utilizando a diario. No tener un diseño a medida puede ser una ventaja en muchas ocasiones.

En WordPress hay dos extensiones que nos pueden ayudar a proteger el servidor. Una de ellas es All In One WP Security and Firewall plugin. Es una extensión que permite asegurar WordPress. Nos permite bloquear usuarios que cumplan ciertos requisitos o desactivar los ataques más comunes. Otra extensión muy útil es Redirection. A diferencia de la primera, no tiene un módulo de seguridad directo. Se encarga de detectar las páginas que no existen (páginas 404) y añadirlas a un listado. En ese listado tendremos tanto los accesos legítimos a la Web como los que realizan los bots para buscar fallos y acceder al servidor. Juntando los dos plugins podemos bloquear a los atacantes o mandarlos a una página concreta. De esa forma se piensan que han tenido éxito y pierden el tiempo intentando aprovechar un fallo que no existe.

Referencias

  • Robot: https://www.flickr.com/photos/firepile/
  • Escudo (imagen de la entrada): https://www.flickr.com/photos/mxing/
0 comentarios

Dejar un comentario

¿Quieres unirte a la conversación?
Siéntete libre de contribuir!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.