¿Qué es un ataque de fuerza bruta y cómo detectarlo?

18min

La mayoría de las técnicas de intrusión se basan en ataques de fuerza bruta, realizados de manera automatizada por bots que aprovechan patrones habituales de las aplicaciones y el comportamiento a veces descuidado de los usuarios.

Índice

¿Qué es un ataque de fuerza bruta?

Los ataques de fuerza bruta son uno de los métodos más frecuentes para conseguir el acceso no autorizado a servidores o aplicaciones. Su modo de acción es muy sencillo, ya que simplemente se realizan múltiples tentativas de login a través de los sistemas de autenticación, tratando de adivinar pares de usuario y contraseña.

El ataque de fuerza bruta no tiene nada de sofisticado y simplemente consiste en probar y probar hasta que se encuentra con una combinación de usuario y contraseña válida. Pero, a pesar de su naturaleza básica, resulta bastante efectivo si no tenemos las debidas precauciones.

Además de su capacidad de funcionar con pocos recursos técnicos tiene un amplio alcance, ya que es posible utilizarlo para acceder a sistemas de todo tipo, desde aplicaciones web, servidores, correos electrónicos o paneles de administración, por poner varios ejemplos.

Tipos de ataques de fuerza bruta

Dentro de los ataques de fuerza bruta podemos distinguir entre varios tipos.

Ataque de fuerza bruta simple

El más simple de los ataques de fuerza bruta y consiste en probar combinaciones posibles, simplemente cambiando caracteres sin un orden o estrategia muy definido.  Es más lento pero es útil especialmente contra contraseñas cortas y muy efectivo cuando el sistema atacado no tiene una protección de número de intentos fallidos.

Ataque de diccionario

Los atacantes utilizan frecuentemente diccionarios a la hora de realizar intentos de conexión. En este segundo tipo de ataque de fuerza bruta lo que se intenta es validar los usuarios y las claves con respecto a diccionarios de nombres y contraseñas reales, muchas veces filtradas en otros ataques previos a sistemas informáticos.

A veces también se usan contraseñas comunes que usuarios poco precavidos repiten de manera mucho más frecuente de lo que nos imaginamos. Este tipo de ataque es también muy frecuente ya que consigue reducir de manera sensible el número de intentos necesarios para realizar el acceso al sistema. De hecho es el tipo de ataque más frecuente que encontramos en Internet.

Ataque híbrido

También hay sistemas de ataques de fuerza bruta que utilizan un enfoque híbrido que consiste en combinar diccionarios con pequeñas variaciones automáticas, realizadas sustituyendo caracteres que muchas veces son utilizados por los propios usuarios para construir claves fáciles de recordar.

Por ejemplo pueden sustituir ciertas vocales por números (la «i» por un «1» o la letra «a» por una «@») y realizar cambios progresivos: desde «password» podrían probar luego «Password», «Passw0rd», «Password1″…

Este tipo de ataque es especialmente útil cuando los usuarios utilizan claves sencillas pero cambiandoles algunas letras, pensando que así van a crear contraseñas más difíciles de burlar.

Ataque de fuerza bruta inversa

Otro tipo de ataque de fuerza bruta es el que trata de comprobar una contraseña contra miles de usuarios. Este ataque se conoce como fuerza bruta inversa justamente porque en vez de probar muchas contraseñas se prueban muchos usuarios.

Ataques de credential stuffing

Luego tenemos el ataque de credential stuffing que básicamente consiste en utilizar bases de datos filtradas por servicios previamente atacados. Por ejemplo, en un servicio en Internet los delincuentes consiguen robar un listado de emails y contraseñas. Entonces prueban en otro servicio más crítico, como podría ser Gmail, esas mismas combinaciones de usuarios y contraseñas.

Con eso se aprovechan del hecho de que muchos usuarios repiten la misma contraseña para muchos de los servicios que usan. Razón por la cual siempre se aconseja no repetir la misma clave en varios sitios web.

¿Cómo detectar un ataque de fuerza bruta?

Los ataques de fuerza bruta se pueden detectar y esa detección temprana es esencial para conseguir proteger los sistemas. Vamos a ver cómo se puede conseguir.

Incremento anormal de intentos de inicio de sesión

Si ocurren muchos intentos fallidos en pocos segundos está claro que hay una máquina intentando burlar nuestra seguridad. Incluso si ocurren muchos fallos simultáneamente es una señal clara. También una actividad nocturna inusual. Para conseguir detectarlo necesitaríamos mantener una estadística de los intentos de login y compararla a través del tiempo.

Registros de acceso sospechosos en logs

Los log se rellenan de manera automática con los intentos de acceso, o si nosotros desarrollamos aplicaciones podemos enviar mensajes a ellos. Pues bien, esos log pueden ser un buen medio de comprobar posibles ataques de fuerza bruta.

Por ejemplo, cuando se intenta acceder al servicio y da un problema podemos almacenar una entrada en el log para poder verificarlo, incluso con datos de seguimiento como el usuario o la IP. Esos log luego se pueden analizar con muchos tipos de herramientas de las que hablaremos enseguida.

IP repetidas o ubicaciones inusuales

Si te llegan miles de intentos desde una única IP es altamente sospechoso, especialmente si esa IP proviene de algún país que no suele ser cliente de tu negocio, como por ejemplo Rusia.

Alertas de seguridad y sistemas de monitorización

A veces se usan herramientas específicas para conseguir detectar patrones y sistemas antibot que puedan evitar que máquinas puedan estar haciendo uso de las funcionalidades de login.

Caídas de rendimiento provocadas por intentos masivos

Los ataques de fuerza bruta también pueden producir caídas de rendimiento, especialmente si no están preparados para ofuscarse, sobre todo cuando surgen intentos en breve espacio de tiempo. En estos casos podemos detectar un uso de CPU elevado o una saturación en la base de datos.

Consecuencias de un ataque de fuerza bruta

Si tenemos la mala suerte que un ataque de fuerza bruta consigue un acceso a uno de nuestros servicios online, o a uno de nuestros servidores, los efectos pueden ser muy negativos.

Compromiso de cuentas y credenciales

Si una de nuestras cuentas se ve comprometida el atacante podrá hacer uso de ella a nuestro nombre, utilizando los servicios de manera fraudulenta. Pero esto no es lo peor, ya que esa cuenta inicial puede ayudarle a conseguir privilegios en otros servicios. Por ejemplo, imaginemos que consiguen acceder a nuestro correo electrónico. Gracias a tener acceso al email podrían acceder a otras cuentas, consiguiendo objetivos todavía más dañinos para nosotros.

Acceso no autorizado a sistemas o datos

Si el acceso se produce a un servidor de aplicaciones, una cuenta comprometida podría significar la extracción de datos confidenciales de nuestros usuarios, o la instalación de malware en el sitio web, ampliando la infección a nuestros visitantes.

Riesgos legales y de privacidad

Como gestores de sitios web, especialmente aquellos servicios críticos, tenemos la responsabilidad de los datos que proporcionan nuestros usuarios. De modo que los ataques de fuerza bruta pueden comprometer los datos de los usuarios y potencialmente hacer que tengamos que rendir cuentas por no atender normativas y aspectos legales, ya sea ante las administraciones o por responsabilidad ante los usuarios.

Pérdida de confianza de usuarios

Hablando de usuarios, otra de las consecuencias sería que perdamos la confianza de nuestros clientes, con posibles abandonos del servicio o simplemente daño a nuestra reputación y a la marca que representamos.

Impacto en el rendimiento del servidor

Aparte de todo lo anterior, el simple hecho de estar recibiendo un ataque nos puede causar un impacto negativo en el rendimiento del servidor por sobrecarga de CPU o memoria.

Por si no lo sabes, algunos ataques de fuerza bruta pueden acabar en un ataque de denegación de servicio (DoS). Obviamente depende también mucho de cómo esté el servicio implementado, ya existen mecanismos para protegernos, como pueden ser los captcha o aplicaciones que limitan el número de accesos fallidos a los sistemas de autenticación.

¿Cómo prevenir ataques de fuerza bruta?

Ahora la pregunta del millón, ¿cómo puedo prevenir los ataques de fuerza bruta? Pues la respuesta es que depende mucho del tipo de servicio al que se está intentando atacar, ya que no es lo mismo un intento de acceso a un servidor que a una cuenta de correo.

En cualquier caso, es posible implementar mecanismos de prevención que reduzcan mucho las posibilidades (o hagan imposible) que un ataque de fuerza bruta pueda tener éxito.

Uso de contraseñas seguras y políticas de complejidad

Para empezar, si se trata del acceso a un servicio online, que utilizas como usuario, la mejor estrategia es utilizar contraseñas suficientemente seguras. También en este caso es extremadamente aconsejable utilizar protección por doble factor de autenticación 2FA, como por ejemplo la recepción de un SMS al móvil para validar el acceso.

Implementación de autenticación multifactor (MFA)

El MFA ayuda mucho para que se reduzca la posibilidad de éxito de un ataque por fuerza bruta. De hecho, podemos decir que prácticamente neutraliza la mayoría de ataques, incluso si la contraseña es comprometida.

2FA, del que acabamos de hablar es uno de los tipos de MFA, solo que un poco más específico ya que indica que requieres de 2 factores, mientras que MFA es más general permitiendo más factores como correos, apps autenticadoras o sistemas más sofisticados como llaves físicas.

Limitación de intentos de inicio de sesión

Especialmente si somos nosotros los titulares del servicio, como administradores de los servidores o desarrolladores de software, es importante que tengamos en cuenta una limitación de los intentos de inicio de sesión, ya sea por usuario, IP o ambas cosas.

Esa defensa es especialmente importante para conseguir evitar este tipo de ataques. Cuando se detecta se debe pasar a un bloqueo, que puede ser a nivel de usuario, de IP o la presentación de un formulario con CAPTCHA.

Uso de firewalls y sistemas de detección

En los servidores existen aplicaciones que permiten evitar accesos no autorizados, como los firewall o Fail2ban. Con un firewall puedes hacer un filtrado de IP, por ejemplo para bloquear a los usuarios que vienen de países con los que no sueles trabajar. También puedes usar sistemas de detección de bots.

Fail2ban es una aplicación excelente para servidores ya que permite bloquear a usuarios que realizan accesos muy repetidos, con fallos de autenticación por SSH.

Actualizaciones y parches de seguridad

Recordando que siempre es importante que nuestro sistema se encuentre debidamente actualizado, con todos los parches de seguridad instalados. Esto no evitará ataques de fuerza bruta directamente pero permitirá mejorar la protección del sistema de manera general.

Herramientas para detectar y bloquear ataques de fuerza bruta

Ahora vamos a conocer diversas herramientas que nos sirven para detectar y bloquear ataques de fuerza bruta. Algunas las hemos nombrado ya y hay otras que deberías conocer si eres el administrador de un sitio web o de un servidor.

Plugins de seguridad para WordPress

Existen muchos plugins de seguridad para WordPress que permiten mitigar ataques de fuerza bruta y otros tipos de accesos no permitidos.

Algunos plugins habituales para esta área son Wordfence Security, iThemes Security (Ahora Solid) o All In One WP Security. Estos plugins por lo general tienen una versión gratuita que permite reducir el 80% o 90% los vectores de ataque. Por lo general permitirán varias mejoras de seguridad aparte del propio ataque de fuerza bruta. No necesitas tener todos los plugins instalados, con tener uno correctamente configurado será suficiente.

Sistemas IDS e IPS

Los sistemas IDS (Intrusion Detection System) e IPS (Intrusion Prevention System) son herramientas muy a tener en cuenta en todo lo que respecta a la seguridad informática. El IDS detecta y el IPS bloquea automáticamente, por lo que ambos se complementan.

Monitorización de logs del servidor

Como hemos dicho antes, a través del análisis de logs podemos detectar ataques persistentes. En esta área existen muchas herramientas. Una de ellas es la mencionada Fail2ban, que consideramos esencial para servidores. No sé si la conoces pero una vez la hayas configurado en tu servidor te sorprenderá la cantidad de accesos y bloqueos que realiza. Es hasta cierto punto asustador.

Otras herramientas para logs fundamentales son el stack ELK (ElasticSearch + Logstash + Kibana) o el analizador de logs GoAccess.

WAF (Web Application Firewall)

Otra herramienta de protección la aportan los Web Application Firewall, que son softwares que filtran tráfico HTTP / HTTPS antes de llegar a la aplicación. Los WAF son herramientas inteligentes que son capaces de detectar patrones de uso sospechosos y, cuando eso ocurre, bloquear a los usuarios.

A diferencia de otras herramientas con Fail2ban, que funcionan a nivel de Log, son capaces de actuar cuando el acceso se está produciendo y realizar distintos tipos de comportamiento en función del tipo de acceso, el patrón detectado y el nivel de riesgo.

Por ejemplo pueden bloquear accesos a URL como /login, mostrar CAPTCHAS cuando se encuentran determinados riesgos, bloquear por región o dependiendo del comportamiento. Por tanto, muchas de las protecciones que nos aportan son positivas para evitar los ataques de fuerza bruta.

Alertas automáticas y respuesta temprana

Además de la propia protección del bloqueo es importante que los sistemas sean capaces de notificar. Las alertas en tiempo real pueden proporcionarnos información importante para mejorar la estrategia ante determinados comportamientos, detectar falsos positivos, permitir la respuesta temprana ante problemas más serios, o simplemente cumplir normativas.

En este sentido podemos usar desde herramientas básicas como Fail2ban, que tiene sistemas de notificación integrados hasta herramientas más avanzadas como Wazuh que es un agente open source para Linux al que le podemos aplicar diversas reglas cuando surgen ataques de fuerza bruta. Otras herramientas de logs como OSSEC permiten configurar scripts para enviar notificaciones cuando encuentran ciertos comportamientos.

Ataques de fuerza bruta en WordPress y otros CMS

Los CMS son blancos muy habituales de los ataques de fuerza bruta, ya que los atacantes y bots pueden basar su comportamiento en las cosas que saben de ellos, como por ejemplo las URL de acceso a las páginas de administración, al sistema de autenticación de usuarios de la web, etc. Incluso se trata a menudo de software libre que puede tener vulnerabilidades conocidas en versiones anteriores, que los atacantes pueden explotar si no estamos debidamente actualizados.

Además, lo anterior se combina con que muchas veces los usuarios de estos sistemas son descuidados, algo que también facilita mucho que los ataques sean fructíferos.

¿Por qué WordPress es un objetivo frecuente?

Dentro de todos los CMS WordPress es especialmente atacado porque es un sistema extremadamente popular. Como sabemos, concentra gran parte de la web pública, ya que actualmente alrededor de un 43% de los sitios están basados en este gestor de contenido. En resumen, su popularidad lo convierte en el objetivo principal de los bots automatizados.

A esto le podemos unir el hecho que comentábamos antes para todos los CMS: se conoce su modo de funcionamiento y las propias vulnerabilidades de las versiones antiguas, lo que hace que resulte especialmente atractivo como blanco para los ataques de fuerza bruta.

Incluso el enorme ecosistema de plugins de WordPress, que es una excelente ventaja del propio CMS, a veces puede ser un inconveniente, ya que los plugins (o incluso los temas de WordPress) pueden introducir vulnerabilidades que los atacantes conocen y explotan.

Al final, ocurre un poco lo mismo que con los sistemas Windows, que reciben más ataques no porque sean especialmente inseguros, sino porque estadísticamente es más rentable atacarlos.

Señales de fuerza bruta en WordPress

Cuando tenemos un sitio en WordPress los indicadores que tenemos que manejar, para detectar los ataques de fuerza bruta son los siguientes:

  • Accesos en masa por POST a /wp-login.php
  • Solicitudes repetidas a /xmlrpc.php
  • Intentos de acceso a usuarios inexistentes probados en un breve espacio de tiempo
  • Aparición de errores 401 y 403 repentinos
  • Aumento del consumo de CPU del servidor, si es que podemos acceder a ese valor

Medidas específicas para proteger un CMS

Hayamos detectado o no ataques de fuerza bruta es ideal que tomemos algunas medidas de protección en WordPress, ya que pueden mitigar o simplemente prevenir posibles problemas.

Algo importante es desactivar XML-RPC si no se usa. Ese archivo es especialmente peligroso porque permite probar cientos o incluso miles de combinaciones usuario y contraseña en una única petición HTTP, lo que aumenta considerablemente los riesgos.

Lo puedes desactivar de varias maneras pero una recomendada es mediante el archivo wp-config.php, añadiendo este código:

// Después de 'ABSPATH'
add_filter('xmlrpc_enabled', '__return_false');

También es recomendable cambiar la URL de login al administrador, algo que puedes hacer con plugins de seguridad.

También es recomendable limitar REST API pública porque puede usarse para obtener toda la lista de usuarios del sitio web, lo que les ofrece a los atacantes una información esencial para que los ataques de fuerza bruta sean más direccionados.

Configuración segura del acceso administrativo

En los CMS uno de los principales puntos que debemos de proteger es el acceso al panel de administración del sitio. Para ello tenemos que hacer algunas configuraciones finas que ayuden a mejorar la seguridad. A este proceso le llamamos hardening, que es simplemente la realización de acciones para mejorar la seguridad de un sistema, implementando capas de protección.

En este punto lo ideal es basarnos en algún plugin, siendo que existen varios que nos pueden ayudar. Por ejemplo puedes usar Solid Security Basic, que es la versión gratuita de Solid Security (lo que antes se llamaba iThemes Security)

Este tipo de plugins, una vez activados, tienen una página de administración desde donde puedes iniciar un asistente que te lleva paso por paso para proteger el sistema.

Protección de formularios de login

El formulario de login de usuarios es otro de los puntos de entrada de los ataques de fuerza bruta. Los puedes proteger con las típicas funciones de CAPTCHA o incluso 2FA obligatorio. El mismo plugin Solid Security te sirve también en este punto, por lo que no necesitas más herramientas.

Buenas prácticas de seguridad frente a ataques de fuerza bruta

Vamos acabando ya, con una lista de las buenas prácticas recomendadas para prevenir ataques de fuerza bruta.

Auditorías periódicas de seguridad

Realiza revisiones de vez en cuando para verificar la seguridad del sistema. Estas auditorías periódicas te ayudarán a detectar posibles debilidades que debes corregir.

Durante estas labores de hardening periódicas puedes revisar los usuarios, herramientas desactualizadas, políticas de contraseñas, permisos incorrectos, exposición de puntos de entrada, etc.

Monitorización continua de accesos

Usa herramientas de monitorización para ver qué accesos se producen y acompaña los resultados para que los avisos te permitan detectar anomalías y corregirlas. Usa sistemas de alertas para no dejar pasar patrones que indiquen posibles ataques de fuerza bruta.

Educación y concienciación de usuarios

Aquí siempre repetimos aquella frase de «la seguridad es tan fuerte como el eslabón más débil». El usuario es muchas veces ese eslabón, por descuidos o comportamientos que no se ajustan a los recomendados. Esto lo puedes combatir con un poco de formación para que actúen de manera responsable.

Uso de servicios de seguridad gestionada

Sobre todo si tienes entre manos un servicio crítico es importante que tengas además algún servicio de seguridad gestionada.

Plan de respuesta ante incidentes

Desarrolla un plan de respuesta con los pasos que debe seguir el personal técnico si se detecta alguna anomalía. Ese plan debe incluir el procedimiento de bloqueo inmediato, qué elementos deben acompañarse para poder analizar hasta dónde han podido acceder, qué tipo de notificación legal aplica al servicio que tienes entre manos, etc.

Sergio Arias

Productos relacionados: