密码威胁评估

在实现保护密码的代码之前,最好分析特定环境,了解攻击者可能尝试渗透软件防御的方法。

首先分析网络或系统体系结构。 下面是一些示例:

  • 必须保护的密码数。 登录到本地计算机是否需要密码? 用于登录到网络的密码是否相同? 密码是否传播到网络上的多个服务器? 必须容纳多少个密码?
  • 要使用的网络类型(如果有)。 网络是否使用公司目录系统(如 LDAP)实现,并且其密码体系结构是否使用? 是否存储未加密密码的任何对象?
  • 打开网络与关闭网络。 网络是自包含的还是向外部开放? 如果是这样,它是否受防火墙保护?
  • 远程访问。 用户是否需要从远程位置访问网络?

分析系统或网络体系结构后,可以开始分析攻击者如何尝试攻击它。 下面是一些可能性:

  • 从计算机的注册表读取未加密的密码。
  • 读取软件中硬编码的未加密密码。
  • 从计算机的交换代码页中读取未加密的密码。
  • 从程序的事件日志中读取密码。
  • 从具有包含纯文本密码的对象的扩展 Microsoft Active Directory 目录服务架构中读取密码。
  • 在需要密码的程序上运行调试器。
  • 猜测密码。 可以使用多种技术中的任何一种。 例如,攻击者可能知道一些有关用户的个人信息,并尝试从该信息中猜测密码(例如配偶/伴侣或子女的名称)。 或者,可能会尝试暴力方法,其中尝试字母、数字和标点符号的所有组合(仅在使用短密码时才可行)。

将可能的攻击方法与系统或网络体系结构进行比较可能会揭示安全风险。 此时,可以为每个风险建立一个风险因素,并且风险因素可用于对修补程序进行会审。