密码威胁评估
在实现保护密码的代码之前,最好分析特定环境,了解攻击者可能试图渗透软件防御的方式。
首先分析网络或系统体系结构。 下面是一些示例:
- 必须保护的密码数。 登录本地计算机是否需要密码? 登录网络所用的密码是否相同? 密码是否传播到网络上的多个服务器? 必须容纳多少个密码?
- 网络类型 ((如果有将使用的任何) )。 网络是否使用公司目录系统 ((例如 LDAP) )实现,是否使用其密码体系结构? 是否有任何对象存储未加密的密码?
- 开放网络与封闭网络。 网络是自包含的还是向外部开放? 如果是,它是否受防火墙保护?
- 远程访问。 用户是否需要从远程位置访问网络?
分析系统或网络体系结构后,可以开始分析攻击者可能如何尝试攻击它。 下面是一些可能的错误:
- 从计算机的注册表中读取未加密的密码。
- 读取软件中硬编码的未加密密码。
- 从计算机的交换代码页读取未加密的密码。
- 从程序的事件日志中读取密码。
- 从具有包含纯文本密码的对象的扩展 Microsoft Active Directory 目录服务架构中读取密码。
- 在需要密码的程序上运行调试器。
- 猜出密码。 可以使用多种技术中的任何一种。 例如,攻击者可能知道一些有关用户的个人信息,并尝试从该信息 (猜测密码,例如配偶/伴侣或子女的姓名) 。 或者,可以尝试暴力破解方法,尝试字母、数字和标点符号的所有组合, (仅在使用短密码) 时才可行。
将可能的攻击方法与系统或网络体系结构进行比较可能会暴露出安全风险。 此时,可以为每个风险建立一个风险因素,并可以使用风险因素对修复进行会审。