El vicepresidente de TI afirma que no le hizo daño al 100% de los PW de los 16 mil empleados. ¿Nos está mintiendo?

74

Trabajo para una empresa que tiene ~ 16,000 empleados. Periódicamente, nuestro vicepresidente de TI envía un boletín con "consejos técnicos" y otras cosas de TI. El tema del boletín de esta semana fue "seguridad de contraseña". El párrafo introductorio me llamó la atención:

  

Acabamos de descifrar todas las contraseñas de usuario en uso para ver si los empleados están usando contraseñas seguras. Utilizamos una combinación de herramientas de fuerza bruta, rcracki, hashcat / oclHhashcat y john-the-ripper para descifrar las contraseñas.

A esto siguió un boletín informativo típico sobre buenas prácticas de contraseña: no utilice palabras de diccionario; asegúrese de usar mayúsculas / símbolos mixtos; no escriba su contraseña en un adhesivo amarillo junto a su monitor; etc ...

Ahora, no soy un experto en criptografía, pero era escéptico de que él afirmara que habían "descifrado todas las contraseñas de los usuarios". Puedo creer que tal vez corrieron todos los hashes a través de sus herramientas y "desencriptaron" una gran parte de ellas, pero ¿es realmente razonable que tengan los recursos informáticos para afirmar que los han descifrado? > all ? (Por cierto, ¿está "descifrado" incluso correcto en este contexto?)

Le envié un correo electrónico preguntándole si quería decir que habían ejecutado todas las contraseñas A TRAVÉS de las herramientas de descifrado, y simplemente encontraron una gran cantidad de las más débiles. Sin embargo, respondió que no, de hecho, habían descifrado TODAS las contraseñas de los usuarios.

Puedo apreciar la lección de seguridad que está tratando de enseñar aquí, pero mi contraseña es de 8 caracteres aleatorios, generados por KeePass. Pensé que era bastante bueno, es algo similar a Q6&dt>w} (obviamente no es eso, pero es similar a eso).

¿Son las herramientas modernas de craqueo realmente tan poderosas? ¿O es probable que este tipo esté simplemente tirando de mi pierna en nombre de una buena lección de seguridad?

P.S. Respondí a su correo electrónico preguntándole si podía decirme cuáles eran los últimos dos caracteres de mi contraseña. Aún no hay respuesta, pero lo actualizaré si se las arregla para producirlo.

EDITAR: Algunas respuestas están discutiendo la longitud de mi contraseña particular. Tenga en cuenta que no solo afirma que rompieron MI contraseña (lo cual es creíble si me distinguen), sino que afirma que hicieron esto para TODOS los usuarios, ¡y tenemos más de 10,000 empleados! No soy tan ingenuo como para pensar que eso significa 10,000 contraseñas buenas y seguras, pero si incluso el 1% de los usuarios tienen una buena contraseña, ¡todavía son 100 buenas contraseñas seguras que dicen haber sido descifradas!

    
pregunta loneboat 28.11.2012 - 15:28
fuente

13 respuestas

29

Hay algunas posibilidades aquí, algunas de las cuales ya se han llamado. Cualquiera de estos hará que sea bastante trivial para su VP (IT) haber "descifrado todas las contraseñas de usuario" independientemente de la definición que esté usando para "descifrar".

  1. Las contraseñas en cuestión están, de hecho, almacenadas con cifrado reversible.
    • Es posible que su VP se esté refiriendo a las contraseñas de una aplicación web interna, donde eligieron usar cifrado en lugar de hashing.
    • Es posible que su VP se refiera a las contraseñas de Windows, y la política de grupo de su compañía permite el almacenamiento con cifrado reversible.
  2. Las contraseñas a las que se refiere tu VP se almacenan utilizando algoritmos de hashing débiles y / o se están procesando sin sales por usuario.
    • El hash de LM es un ejemplo de un algoritmo débil, que es común en las implementaciones de Windows que están optimizadas para la compatibilidad con versiones anteriores.
    • Si no se utiliza una sal por usuario, el diccionario & los ataques de tabla arco iris mucho más fácil.
  3. Las contraseñas a las que se refiere tu VP pueden estar realmente almacenadas en texto sin formato, y solo está diciendo que fueron "desencriptadas" para ocultar el hecho de que nunca fueron cifradas / hash en primer lugar.
  4. Los empleados de su empresa en realidad hacen todos usan contraseñas muy débiles .
    • Independientemente de cuán aleatoria sea su contraseña, 8 caracteres no han sido considerados "fuertes" por algún tiempo.

Considero que el elemento 4 de esa lista es bastante improbable, así que, a menos que alguno de los otros tres sea cierto, es muy posible que tu VP esté exagerando un poco. Sin embargo, a menos que escuches a alguien en el nivel C de tu empresa, dudo que haya mucho que puedas hacer para cambiar cualquier cosa, excepto la fortaleza real de tu propia contraseña. Para ello:

  • Algunas personas dicen que "12 es el nuevo 8". Yo digo que vaya por 15. Esto no solo hará que la contraseña sea naturalmente más fuerte, sino que también evitará que Windows la almacene en el formato de hash LM débil. El hash de LM solo puede manejar contraseñas de hasta 14 caracteres. Windows puede lanzar un mensaje de advertencia cuando cambia su contraseña para que tenga 15 caracteres o más, pero esto (en la mayoría de los casos) puede ignorarse de forma segura.
  • No use la misma contraseña en varias aplicaciones. Como mínimo, sugiero que mantenga su contraseña de trabajo diferente de las contraseñas utilizadas para cuentas personales. Lo ideal es que no haya dos aplicaciones que utilicen la misma contraseña.
  • Sigue con el resto de las cosas buenas que estás haciendo. Generar aleatoriamente sus contraseñas a partir de un conjunto completo de caracteres ASCII es genial. Solo asegúrese de que el producto final incluya los cuatro tipos de caracteres y no palabras reales.
respondido por el Iszi 28.11.2012 - 16:33
fuente
61

La única forma realista de que el 100% de las contraseñas se hayan descifrado es si está almacenando hashes LM en Windows. Los hash de LM se dividen en 2 trozos de siete caracteres que hacen factibles los ataques de la tabla de fuerza bruta / arco iris (también son sensibles a mayúsculas y minúsculas para mayor facilidad). Las tablas del arco iris existen para esto y es fácil de hacer.

Fuera de eso, cualquier persona con contraseñas de más de 10 caracteres que no estén en un diccionario (o que se puedan encontrar mediante la mutación de las palabras del diccionario) no se descifrará en ningún sistema razonable, incluso con algoritmos débiles (por ejemplo, md5) y sin sal . Las tablas de arco iris de AFAIK no son prácticas con contraseñas tan largas (para referencia tablas de arco iris gratuitas tienen un paquete de 2,8 TB de hashes MD5 que se completa con algunas contraseñas de nueve caracteres (no es un conjunto de caracteres completo).

Un punto que destacaría es que si fuera vicepresidente de TI me concentraría en deshacerme de los hashes LM en lugar de simplemente informar a las personas sobre las buenas prácticas de contraseña por la misma razón que él pudo recuperar el 100% de contraseñas :)

    
respondido por el Rоry McCune 28.11.2012 - 15:59
fuente
29

"Descifrado" no es el término correcto. Es decir, las contraseñas podrían estar cifradas en lugar de estar ocultas, pero el descifrado sería sencillo por cualquiera que conozca la clave de cifrado (que también es la clave de descifrado); no tendría sentido aplicar herramientas de cracking como John the Ripper .

Por lo tanto, su VP está utilizando una terminología aproximada. Por lo tanto, es plausible que también haya usado la sintaxis y la gramática aproximadas. Probablemente, enviaron las contraseñas de más de 10k a las herramientas de descifrado, y rompieron algunas de ellas (una proporción lo suficientemente importante como para exigir una intervención de VP, pero no todas). Su uso de "todo" es solo, digamos, un entusiasmo demasiado enfático.

Ahora estoy listo para creer que pudo romper la mitad de las contraseñas. Se ha documentado que el Morris worm , en 1988, podría romper aproximadamente el 10% de las contraseñas existentes con un diccionario de menos que mil palabras ...

    
respondido por el Thomas Pornin 28.11.2012 - 16:22
fuente
8

Descifrado no es la palabra correcta, pero probablemente prefirió la legibilidad en lugar de la precisión técnica. También estoy de acuerdo en que probablemente no obtuvo todos de ellos, sino una gran parte.

Ahora, su contraseña tiene un problema: 8 caracteres no son muy largos si su empresa utiliza un hash rápido como MD5 o LM. Un cracker decente basado en GPU puede alcanzar alrededor de 50M hashes / s MD5. Si asume 100 caracteres imprimibles en un teclado QWERTY, ese es un espacio clave de 10,000,000,000,000,000 para una contraseña de ocho caracteres, que es un tiempo de craqueo esperado de ~ 3.15 años. Es poco probable que haya atrapado el tuyo, pero no es particularmente seguro.

Alternativamente, él podría tener una tabla de arco iris gigante de 8 caracteres para un conjunto de caracteres completo, que detectaría tu contraseña de inmediato.

    
respondido por el Polynomial 28.11.2012 - 15:41
fuente
6

Hay algo en lo que puedo pensar en cómo los rompieron tan rápido:

  • Están utilizando LM Hashes en su empresa para Windows (muy peligroso y entonces tiene un problema mayor que las simples contraseñas débiles)
  • Utilizaron un ataque de mesa arco iris y tienen una mesa arco iris muy grande (8 caracteres es posible)
  • Tienen sus contraseñas almacenadas encriptadas en lugar de con hash y las descifran con su clave

De todos modos, los 8 caracteres actuales se consideran lo suficientemente sólidos para la mayoría de los usuarios normales, pero siempre aconsejo usar al menos 12. Si estamos hablando de administradores de sistemas o personas con acceso a algunos sistemas críticos, siempre aconsejo 16. Algunos la gente considera este "exceso", pero yo prefiero que sean "demasiado" fuertes que demasiado débiles. Si está utilizando KeePass para proteger sus contraseñas, realmente no tiene que preocuparse por lo que son porque no necesita recordarlas de todos modos.

    
respondido por el Lucas Kauffman 28.11.2012 - 15:37
fuente
4

Hice un ejercicio similar en un cliente (Windows LM hashes) y obtuve más del 75% de las contraseñas de los usuarios con herramientas similares mencionadas en el póster original. Este tipo de ataque generalmente obtiene más del 90% de las contraseñas derivadas de humanos de 8 caracteres (western & english language). Cuanto más larga sea la contraseña, más amplio será el juego de caracteres, más difícil será esta y menor será la tasa de aprobación. En mi cliente, muchas de las contraseñas eran de 8 caracteres o menos que me hacían la vida bastante fácil. El 25% eran caracteres largos o contenidos que no estaban en las tablas del arco iris.

Si su VP de TI hubiera gastado dinero en esto, entonces podría haber usado una de las listas de contraseñas comerciales o una solución SaaS que tiene depósitos realmente enormes de todas las contraseñas disponibles para conjuntos de caracteres amplios (la mayoría no incluye £ para Ejemplo) y si las contraseñas generalmente tenían menos de 10 caracteres, es muy probable que obtenga una tasa de aciertos que se acerque al 100%.

    
respondido por el Callum Wilson 28.11.2012 - 16:35
fuente
3

Mucha gente ha mencionado esto mucho más detalladamente cuando estoy a punto de hacerlo, y muchos de ellos son técnicamente correctos con sus opciones proporcionadas (preste atención específica a la respuesta de Iszi, ya que es tecnológicamente sólida y completa). Sin embargo, solo quería dar mis dos centavos y decir que probablemente sea una de las dos cosas que están sucediendo.

  1. Ellos están almacenando las contraseñas usando un cifrado reversible (una opción de Política de Grupo AD), entonces solo está usando el cifrado y él realmente las "descifró". Esta es una idea horrible, pero la gente lo hace para auditar contraseñas o para compatibilidad con aplicaciones heredadas.

  2. Él está mintiendo y ellos descifraron la mayoría, pero no todas, las contraseñas.

También existe la posibilidad de que estén almacenando hashes LM; La razón por la que no creo que esto sea lo que están haciendo es porque tendrían una grave falta de seguridad adecuada en ese caso.

Rompo contraseñas todo el tiempo en mi trabajo y tengo que decir que NUNCA las he descifrado todas. Trabajo para una empresa con aproximadamente 50,000 empleados y, por lo general, desciframos cerca de 8,000 contraseñas con 1 hora de esfuerzo, también conocida como la fruta de bajo rendimiento.

Una vez que haya pasado el paso de 1 hora de esfuerzo, se vuelve exponencialmente más difícil de descifrar las contraseñas (ya que generalmente son palabras complejas sin diccionario de longitud suficiente en ese punto), por lo que generalmente nos detenemos allí a menos que lo intentemos para probar un punto o descifrar una contraseña específica. No hay manera de que la mayoría de los equipos de seguridad puedan monitorear y auditar las contraseñas de todos los empleados todo el tiempo en una compañía grande, por lo que seleccionamos la forma más fácil de descifrar y volver a descifrar las contraseñas trimestralmente.

    
respondido por el JZeolla 28.11.2012 - 18:24
fuente
3

Permítame decirle que si su VP de TI, de hecho, descifró el 100% de las contraseñas, tiene algunos agujeros de seguridad evidentes que van más allá de la debilidad o la fuerza relativas de la contraseña de texto simple elegida por los usuarios.

Algunas posibilidades:

  • En realidad no estás usando un hash. Muchas bibliotecas de seguridad "integradas", como las de Directiva de grupo o ASP.NET, hacen que las contraseñas cifradas en lugar de las de hash sean una opción. El propósito es permitir que un administrador recupere una cuenta cuya contraseña se haya perdido sin quitar la cuenta por completo. Pero, si está diseñado para ser reversible de manera eficiente, entonces, bueno, se puede revertir de manera eficiente. Si alguien tuviera ese tipo de acceso para descifrar las contraseñas de manera legítima, es el CIO, pero puede haber usado las herramientas de descifrado solo para ilustrar que no necesitaba acceso de administrador.
  • Estás usando un hash comprometido. MD5, LMHash, etc. están dañados y no se debe utilizar nunca para el almacenamiento de contraseñas.
  • Estás utilizando un hash que es técnicamente criptográfico, pero no es adecuado para contraseñas, como SHA1 / 2. Esto suele ser por una de dos razones:
    • El hash es demasiado rápido para calcularlo, lo que hace posible un ataque paralelo, como una GPU o un cracker basado en botnet.
    • Las contraseñas, incluso las buenas, tienen una entropía relativamente baja en comparación con otras cosas para las que se utiliza un hash seguro, como los resúmenes de mensajes / sumas de comprobación. A menos que la entropía se aumente artificialmente usando un sal aleatorio, por lo general toma un cracker de fuerza bruta menos tiempo para encontrar una contraseña en conflicto que para encontrar un mensaje en conflicto de mayor tamaño de entrada.

Haga que el vicepresidente le muestre lo que hizo para obtener las contraseñas de texto sin formato y las contraseñas mismas. NO debería haber sido tan fácil. Si tiene algún control sobre la función de hash utilizada (lo que significa que no está incorporada, como para la Política de grupo), buscaría cambiar a un hash que está diseñado específicamente para el hashing de contraseñas, como bcrypt o scrypt. Estos dos funcionan bien porque son muy lentos, y no solo son lentos ahora, sino que también pueden configurarse para ser siempre lentos, mediante el uso de funciones de derivación de claves que toman la sal y realizan una operación de complejidad exponencial variable para "calentarse". arriba "el hash basado en cifrado. BCrypt es un hash completo, con KDF y cifrado incorporado; Scrypt es solo el KDF, que puede emparejarse con cualquier cifrado seguro, como AES.

    
respondido por el KeithS 28.11.2012 - 23:53
fuente
1

Dudo que lo hicieran sin una gran cantidad de poder de procesamiento (inalcanzable) (para la parte de fuerza bruta, a menos que solo constituya una pequeña cantidad de todo el proceso. Un algoritmo de hashing de calidad es casi imposible de descifrar, por lo que si "descifró" las contraseñas, probablemente Tuvo que usar principalmente la fuerza bruta.

Además, "descifrar" no es el término correcto, descifrar obviamente implica que las contraseñas fueron una vez cifradas , y el cifrado implica una función de dos vías. El hash es solo una función de una sola vía, es decir, no se puede realizar ingeniería inversa (bueno, algo así, pero eso está fuera del alcance de esta respuesta).

    
respondido por el Phillip Schmidt 28.11.2012 - 19:09
fuente
1

¡8 caracteres no son suficientes! (permítanme explicar a continuación)

  

Primero, aunque me gustaría agregar, para toda la corrección que las contraseñas de 16k pueden ser   todos se agrietan si están aplastados con un algoritmo débil. Primero, uno lo hará   descifre lo que a veces puede ser más de la mitad de ellos (dependiendo del coeficiente intelectual promedio y el descuido de sus colegas) con una   ataque del diccionario, luego una fuerza bruta el resto usando el arco iris   tablas (digamos que es MD5 sin sal). Tomará tiempo, pero no años,   a menos que, por supuesto, varias personas tuvieran una contraseña muy larga y segura. Esta   Tomará mucho tiempo para la fuerza bruta, posiblemente demasiado tiempo, pero cuáles son las probabilidades, "la mayoría intelectual" no se preocupa por las buenas contraseñas, e incluso cuando les gusta, por ejemplo, usan 8 caracteres. ;)

-Y vuelve a la longitud de la contraseña-

Aunque dependerá mucho de lo que use el administrador para codificar su contraseña con

Como por ejemplo bcrypt, o posiblemente incluso mejor scrypt, con un alto número de iteraciones mejorará drásticamente la seguridad de cualquier contraseña (aceptable).

Pero cuando hablas de una compañía con 16 mil empleados, existe la posibilidad de cosas como el espionaje corporativo. La mayoría de las personas que hacen estas cosas son expertos en tecnología y es muy probable que tengan una red de bots no muy grande pero todavía decente que adquirieron con un pequeño canal de virus escrito y distribuido personalmente, por ejemplo, un videojuego que ponen en la bahía pirata.

Utilicé este ejemplo para ilustrar cómo se dirigen a los jugadores con esto, lo que significa que tendrán una gran cantidad de gpu que pueden descargar cuando sea necesario .

De esta manera, el "tiempo esperado de craqueo de ~ 3,15 años", como Polynomial sugirió anteriormente, se divide rápidamente por, digamos, mil computadoras con tarjetas gpu muy decentes que pueden ser desechadas cuando están inactivas.

Ahora su contraseña hash MD5 está descifrada solo en ~ 1.149 días

  

(así que digamos que el 1% tiene una contraseña generada al azar de 8 caracteres como usted,   eso es 160 x 1.149 = 221.37 días, por lo que le llevará un poco más que   medio año para probar todas las contraseñas.)

Aunque Lucas Kauffman arriba indicó correctamente que una contraseña de 12 o incluso 16 caracteres es la más apropiada técnicamente, sin embargo, yo prefiero una frase de contraseña .

Jeff Atwood, el creador de este mismo sitio web, hace mucho que los defiende !

¡Así que empieza a usar uno! Fácil de recordar, improbable de romper.

    
respondido por el Happy 28.11.2012 - 22:43
fuente
1

Pocas cosas que me molestan en esta historia que me hacen creer que está mintiendo (o eso quiero creer)

  • Existen herramientas para hacer cumplir la política de contraseñas a nivel empresarial, es más rápido y más barato usarlas que descifrar todas las contraseñas de los usuarios solo para educarlos sobre el uso de contraseñas mejores / más seguras

  • Dijo que descifró las contraseñas, lo que es una muy mala señal, alude a que están usando un cifrado bidireccional y no un hash de forma aleatoria, por usuario salt (y una función de hashing lenta como bcrypt , scrypt o PBKDF2) de nuevo, probablemente sea más fácil de arreglar que ir y descifrar las 16,000 contraseñas. Demostrar que la falta de atención a la terminología de seguridad no va de la mano en las habilidades de hacker estrella de rock necesarias para descifrar 16,000 contraseñas.

  • Sea cual sea el sistema, esta protección con contraseña no parece tener ningún mecanismo de retraso por intento fallido (lo que permite ataques de fuerza bruta), por lo que tuvieron acceso a alguna base de datos interna y pasaron por alto cualquier mecanismo de bloqueo / retraso, o no no tenga ninguna protección de este tipo en su sistema.

Realmente espero que su compañía no esté administrando el dinero de las personas, operando procesos médicos sensibles o cualquier cosa que tenga que ver con la vida de las personas, ya que es un paraíso para los piratas informáticos. Asegúrese de que el nombre de su compañía permanezca en el anonimato ya que no suena bien desde aquí.

En cuanto al vicepresidente de TI, realmente espero que esté bromeando, pero es una trampa 22, si logró hacer lo que hizo, solo significa que no está haciendo bien su trabajo, y si no lo hizo, entonces él es simplemente deshonesto y es igual de malo.

    
respondido por el Eran Medan 30.11.2012 - 04:57
fuente
0

Con un conjunto de tablas de arco iris es completamente posible que hayan descifrado todas las contraseñas de la empresa. Las tablas de arco iris son conjuntos de hashes precomputados creados antes de los intentos de descifrado de contraseñas que se utilizan para descifrar contraseñas mucho más rápido que los métodos de fuerza bruta. rcracki es una de las herramientas enumeradas en su pregunta que hace precisamente eso. hashcat y JtR son herramientas de fuerza bruta aunque también pueden usarse para crear tablas de arco iris.

Así que no hay duda de que lo que dice es totalmente posible.

Por cierto, una contraseña de 8 caracteres no es suficiente en estos días, usa al menos 9.

    
respondido por el GdD 28.11.2012 - 15:37
fuente
-1

No soy un experto en seguridad, pero entiendo que el cifrado de las contraseñas cuando se guardan en la Base de datos es una forma, no se puede deshacer. Así que la contraseña es hash y se guarda en la base de datos

Todo lo que puedes hacer entonces es cuando una persona desea iniciar sesión, la contraseña que se acaba de ingresar se revisa y se compara con el hash en la base de datos y si coincide, la contraseña es correcta.     

respondido por el Nick 28.11.2012 - 15:38
fuente

Lea otras preguntas en las etiquetas