¿Existe un método estándar para demostrar la seguridad de la contraseña a los no matemáticos?

16

Mi cliente tiene un servidor que está siendo sometido a intentos de inicio de sesión por fuerza bruta desde una botnet. Debido a los caprichos del servidor y del cliente del cliente, no podemos bloquear fácilmente los intentos a través de un firewall, cambio de puerto o cambio de nombre de cuenta de inicio de sesión.

Se tomó la decisión de dejarlo abierto al ataque, pero encuentre un método para mantener segura la contraseña. La gerencia y algunos de los otros consultores han determinado que lo mejor que se puede hacer es instalar un software de rotación de contraseña para rotar la contraseña cada diez minutos y proporcionar la nueva contraseña a los usuarios que necesitan iniciar sesión.

Los intentos de fuerza bruta ocurren dos veces por segundo.

Necesito demostrar que implementar una contraseña segura con 12-15 caracteres es una solución más fácil y gratuita. Sé cómo probar esto con las matemáticas, pero estaría escribiendo algo así como "hay x muchas posibles permutaciones de nuestra contraseña, y el atacante solo puede intentar n intentos por día, por lo que esperamos que vayan x / 2 días en promedio antes de que adivinen nuestra contraseña ". ¿Existe una "prueba" más estándar de esto?

Cerdo
fuente

Respuestas:

14

Usar fail2ban con iptables es una excelente manera.

Aquí están las matemáticas para ti:

Las letras mayúsculas y minúsculas mixtas y los símbolos comunes, de 8 caracteres de largo, le dan 2.9 billones de combinaciones y con 10,000 intentos por segundo tomará 9,488 años. Eso es lo máximo, por supuesto: espere que su contraseña se descifre en 4000 años. 1000 años si no te sientes con suerte.

Como puede ver, no debería tener ningún problema si usa una contraseña de 15 caracteres como:

dJ&3${bs2ujc"qX
Steven
fuente
¿Cómo ayudaría fail2ban contra una botnet?
innaM
2
El único problema que tendrá es que nadie puede recordar sus contraseñas ..
Jeff Atwood
Ese es un enlace realmente interesante, ¡pero he notado (en la parte inferior de la página) que sus tiempos de ataque se basan en Pentium 100s! Quizás un poco desactualizado ahora, pero sigue siendo una buena lectura.
Coops
8

Además de fail2ban,

Si está ejecutando cualquier UNIX moderno, generalmente puede cambiar el tiempo de inactividad de entrada de contraseña incorrecta a hasta 5 segundos, disminuyendo la velocidad de ataque en un 2000%. [Solaris 10 lo tiene en / etc / default / login, busque SLEEPTIME] Lo que con las mismas tolerancias significaría que podría rotar la contraseña cada 3 horas y 20 minutos.

Además, los intentos de contraseña antes del bloqueo serían una opción viable, pero sospecho que no es para ti porque tienes varios usuarios compartiendo una cuenta y no quieres que se bloquee todo el tiempo.

Requerir una contraseña de 12-15 caracteres ayuda, pero si está siendo atacado continuamente, otra solución probablemente sea mejor. No sé cuál es la tolerancia presupuestaria de su empresa en esto, pero las tarjetas de clave RSA para todos los que necesiten iniciar sesión en esa cuenta también lo resolverían. La autenticación de dos factores empuja la probabilidad al tiempo de computación cuántica.

El enfoque de fuerza bruta que dura el tiempo suficiente para publicar en este foro es bastante sorprendente. En términos generales, es bastante sencillo y, en el mejor de los casos, es un relleno de registro mientras ocurre un ataque real.

usuario5605
fuente
6

¿Qué tal una apelación a la autoridad? Puede consultar las Pautas de implementación técnica de seguridad del Departamento de Defensa (iase.disa.mil/stigs/stig) y decir "Si es lo suficientemente bueno para el Departamento de Defensa, es lo suficientemente bueno para nosotros"

Brien
fuente
5

Algo a tener en cuenta: si tiene una contraseña que no cambia, y los ataques de fuerza bruta están probando un universo de contraseñas que incluye la suya, se garantiza que el ataque de fuerza bruta golpeará eventualmente y seguirá siendo vulnerable después de eso.

La "posibilidad" de que una selección aleatoria llegue a su contraseña se puede calcular, como ha sugerido, pero eso puede no contar toda la historia.

Si observa los intentos de fuerza bruta, por ejemplo, y ve que la contraseña más larga que intentan es de 10 caracteres, al elegir cualquier cosa a 12 se asegurará de que nunca sea golpeado.

Tenga mucho cuidado al intentar aplicar estadísticas a un caso particular; solo predicen el comportamiento general con una gran cantidad de muestras.

Aparte de eso, si las matemáticas no (o no pueden) convencer a alguien, trate de encontrar algo que tenga la misma posibilidad de ocurrir pero que sea familiar, como quizás loterías o accidentes automovilísticos o que caiga un rayo. Si puede decir "la posibilidad de que alguien acceda a esta contraseña es casi lo mismo que ganar la lotería seis semanas seguidas", puede darles una mejor sensación.

piCookie
fuente
3
¿Por qué no elegir una contraseña que el atacante ya haya intentado? Es una broma.
innaM
4

Una cosa que no se ha considerado es qué nombre de usuario está utilizando la botnet para Bruteforce. En todos los casos que he visto, las fuerzas brutas han sido por variaciones de administrador y raíz, y en un caso raro, los nombres de usuario se han eliminado del sitio web de corp.

También cambiaría las restricciones de inicio de sesión interactivo para que su cuenta raíz esté deshabilitada (preferida) o restringida a su subred local o rango de direcciones similar.

Preflightsiren
fuente
2

Dos veces por segundo no está mal. Solíamos ver miles de intentos por minuto, antes de implementar fail2ban , que bloqueará una IP particular fuera de la red durante un período de tiempo establecido después de tantos intentos fallidos (todos configurables).

Esto ha funcionado muy bien para nosotros.

Brent
fuente
2

En realidad, puede realizar un escaneo selectivo contra ataques ssh de fuerza bruta utilizando iptables, si esto funciona para usted.

Estas dos cadenas:

iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --set --name sshscans 
iptables -A INPUT -m recent --rcheck --seconds 60 --hitcount 5 --name sshscans --rsource -j DROP 

bloqueará el acceso a cualquier persona que intente conectarse a SSH más de 5 veces en un intervalo de 60 segundos. Puede cambiar el número "--hitcount" si desea que se permita un número mayor que 5 por segundo.

palmero
fuente
2

Es sorprendente la cantidad de personas que no entienden las curvas exponenciales, pero todos saben la diferencia entre 10, 100 y 1000, por lo que podría ser un buen lugar para comenzar a hacer comparaciones.

Otra táctica podría ser mostrarle a la gente cuánto tiempo se tarda en forzar con fuerza bruta una contraseña de 6 caracteres. Si tiene algún conocimiento de programación, puede armar una herramienta rápida que lo haga.

Maximus Minimus
fuente
2

También podría mostrarles con qué facilidad están disponibles las tablas de arco iris:

http://project-rainbowcrack.com/table.htm

Rico
fuente
Sin embargo, solo es útil si obtienen los hashes de la contraseña, y con la sal adecuada, la amenaza puede reducirse.
skitzot33
2

Esto puede ser un poco extraño, pero estoy usando denyhosts y reduce considerablemente los intentos de fuerza bruta en mis cajas de Linux.

skitzot33
fuente