1.5 纵深防御
你已经了解了安全漏洞的潜在影响、可能面临的攻击类型以及应对这些攻击的策略,下面我将向你介绍防止这些攻击的方法。纵深防御是军事演习和信息安全的共同战略。基本概念是制定一个多层防御,确保在一个或多个防御措施失败的情况下仍能成功抵抗攻击。
图1-5展示的是保护你资产的多层防御样式。
图1-5 纵深防御
你至少需要对外部网络、内部网络、主机、应用程序和数据层进行防御。各层良好的防御措施将增加成功渗透网络并直接攻击资产的难度。
也就是说,纵深防御不是灵丹妙药。无论进行多少层防御,或者你在每层设置了多少个防御措施,都不可能无限期地阻挡每一个攻击者。这也不是信息安全背景下纵深防御的目标。纵深防御的目标是,在你真正重要的资产和攻击者之间设置足够的防御措施,从而及时发现正在进行的攻击,并有足够的时间来阻止它。
这种拖延策略的一个例子是,要求员工每60天或90天更换一次密码。这使得攻击者更难及时破解密码继续使用。
使用严格的密码构建规则是另一种拖延策略。比如,密码“mypassword”共有10个字符,只使用一个字符集。攻击者使用相对较慢的现成系统可能需要一到两周时间才能破解此密码,而使用特制的密码破解系统或僵尸网络,可能只需要一两个小时。
如果你使用更安全的密码设置规则,使用MyP@ssword1这样的密码,虽然也是10个字符,但使用了4个字符集,在专门构建的硬件上破解密码将耗费数千年时间,而对于大型僵尸网络而言,破解密码将耗费数年时间。
如果你要求员工频繁更改密码并创建复杂的密码,攻击者将无法及时破解其中的密码来使用。
密码中的熵
前面讨论的复杂密码示例使用经典的强密码设置方案,该方案由8个或更多个字符组成,并包含多个字符集(大写字母、小写字母、数字和标点符号)。有些人会认为包含的熵(不可预测性)不足以保证真正的安全,而且你最好使用一个更长、更混乱无序、更容易记住的密码,比如correcthorsebatterystaple[4]。
最终,你的主要关注点应该是构建合理安全的密码,并定期更改。
纵深防御策略中包含的层会根据防御的情况和环境而有所差别。如前文所述,从严格的逻辑(非物理)信息安全角度来看,你可能希望将外部网络、网络边界、内部网络、主机、应用程序和数据层视为防御区域。
你可以通过包含其他重要层(如物理防御、策略或用户意识和培训)来增加防御模型的复杂度,但我暂时还是举一个更简单的例子。
表1-1列出了所讨论的每一层可能使用的一些防御措施。
表1-1 分层防御
在一些情况下,由于防御措施适用于多个领域,因此会在多个层实施防御性措施。渗透测试就是一个很好的例子,这种方法通过使用攻击者用来入侵的相同策略来发现安全漏洞,在每个层中都应用这种策略。第14章中将进行更深入的讨论。你可能想在防御的每一层都使用渗透测试。你还可以查看特定控制绑定到特定层的位置,例如网络边界的防火墙和代理。与安全领域中的所有内容一样,你可能会认为,某些或所有这些控制可能存在于所显示的层以外,但这只是一个很好的通用指导原则。后面将更详细地讨论表1-1中所示的每个领域,以及你可能想要针对每个领域使用的具体防御措施。