Evaluación de amenazas de contraseña

Antes de implementar código que protege las contraseñas, es mejor analizar el entorno en particular de las formas en que un atacante podría intentar penetrar en las defensas de software.

Empiece por analizar la arquitectura de red o sistema. A continuación se muestran algunos ejemplos:

  • Número de contraseñas que se deben proteger. ¿Se requiere una contraseña para iniciar sesión en el equipo local? ¿Se usa la misma contraseña para iniciar sesión en la red? ¿Las contraseñas se propagan a más de un servidor de la red? ¿Cuántas contraseñas se deben alojar?
  • Tipo de red (si existe) que se usará. ¿Se implementa la red mediante un sistema de directorios corporativos (como LDAP) y se usa su arquitectura de contraseña? ¿Hay objetos que almacenen contraseñas sin cifrar?
  • Red abierta frente a cerrada. ¿La red está autocontenida o está abierta al exterior? Si es así, ¿está protegido por un firewall?
  • Acceso remoto. ¿Los usuarios tendrán que acceder a la red desde una ubicación remota?

Después de analizar el sistema o la arquitectura de red, puede empezar a analizar cómo un atacante podría intentar atacarlo. Estas son algunas posibilidades:

  • Lee una contraseña sin cifrar del registro de un equipo.
  • Lea una contraseña sin cifrar codificada de forma rígida en el software.
  • Lee una contraseña sin cifrar desde la página de códigos de intercambio de un equipo.
  • Lee una contraseña del registro de eventos de un programa.
  • Lea una contraseña de un esquema extendido del servicio de directorio de Microsoft Active Directory que tenga objetos que contengan una contraseña de texto no cifrado.
  • Ejecute un depurador en un programa que requiera una contraseña.
  • Adivina una contraseña. Se puede usar cualquiera de varias técnicas. Por ejemplo, el atacante podría conocer información personal sobre un usuario e intentar adivinar una contraseña de esa información (por ejemplo, el nombre de un cónyuge o pareja o hijo). O bien, se puede probar un método de fuerza bruta, donde se prueban todas las combinaciones de letras, números y signos de puntuación (solo es factible cuando se usan contraseñas cortas).

La comparación de las posibles metodologías de ataque con la arquitectura del sistema o de red probablemente revelará los riesgos de seguridad. En ese momento, se puede establecer un factor de riesgo para cada riesgo y los factores de riesgo se pueden usar para evaluar las correcciones.