攻击模型

攻击模型捕获信息,用以从攻击者的角度思考问题:威胁建模、滥用案例开发与完善、数据分类和技术专用攻击模式。

1 级攻击模型

[AM1.2: 80] 创建数据分类方案及清单。

组织的安全利益相关者约定一份数据分类方案,并使用该方案根据(无论是场内或场外的)软件处理的数据所属的种类,对列出软件的清单。这就能够根据数据分类排列应用程序的优先级。可以采用多种分类方案——例如,其中一种方案是围绕 PII 分类。根据涉及的方案和软件,首先对数据仓库进行分类(参见 [CP2.1 确定 PII 库存)],然后根据所使用的数据仓库为应用程序推导分类可能是最简单的方法。解决该问题的其他方法还包括根据知识产权保护、披露影响、受攻击风险、与 GDPR 的相关性或地理边界进行数据分类。

[AM1.3: 36] 确定潜在攻击者。

SSG 确定潜在攻击者,旨在了解其动机和能力。这项演练的成果可能是一套攻击者资料,包括有关攻击者类别的一般草图,以及对值得注意的个体的更详细的描述。有时,可能雇用第三方承包商提供此类信息。特定的和有前后关系的攻击者信息,几乎总是比从别人的列表中复制的一般信息更有用。此外,简单地把这个领域分成内部人员和外部人员的列表不会带来有用的结果。识别攻击者时,应当考虑组织不断发展的软件供应链和攻击面。

[AM1.5: 51] 收集并利用攻击情报。

SSG 通过了解新型攻击和漏洞保持领先地位。具体而言,通过出席技术会议和监控攻击者论坛,将获得的信息与组织内发生的问题关联起来(也许可以通过查看操作日志和遥测关联),SSG 能够识别潜在问题并与专家合作,深入了解潜在的漏洞利用情况。很多时候,订阅商业服务能够为收集基本攻击情报提供合理的途径。攻击信息不论来源如何,都必须能够为开发人员、测试人员和 DevOps 工程师所执行和利用。

2 级攻击模型

[AM2.1: 8] 构建关联潜在攻击者的攻击模型和滥用案例。

SSG 通过构建关联潜在攻击者的攻击模式和滥用案例来做好安全测试和架构分析准备(参见 [AM1.3 确定潜在攻击者])。然而,这些资源并非必须针对每个应用程序重新构建才能有用;相反,情况类似的应用程序可以采用同一套标准资源,而 SSG 可以基于自己的攻击防御经验丰富原有的资料。例如,设计欠佳的云应用程序遭受攻击后产生的云安全攻击模式能够促进产生新型测试。一家公司跟踪与特定攻击相关联的欺诈和资金成本后,获得的信息能够反过来用于优先执行构建攻击模式和滥用案例的流程。不断发展的软件架构(例如,微服务、无服务器架构)可能要求组织改进其攻击模式和滥用案例的创建方法和内容。 

[AM2.2: 7] 创建技术专用攻击模式。

SSG 创建技术专用攻击模式,以便掌握专门针对特定技术的攻击知识。例如,如果组织的云软件依赖的是云供应商的安全装置(例如,密码学),SSG 可以编目密码包的习惯及其可能被利用的方式。与安全边界(如 IoT)直接相关的攻击模式可能也非常有用。从现有的通用攻击模式着手创建所需的技术专用攻击模式通常最为容易,但仅靠在结尾添加“移动应用程序专用”等字样是不够的。

[AM2.5: 16] 编制并维护最可能发生的攻击列表。

SSG 定期分析不断变长的攻击类型列表,并使组织集中精力开展针对优先短列表(前 N 列表)的预防工作,并用它来推动变革。这份初始列表可以合并组织内外部的多个来源提供的输入。一些组织根据预计的潜在业务损失程度确定其列表的优先级,而另一些组织可能会根据对其软件的攻击成功概率确定优先级。前 N 列表无需过于频繁地更新,并且只需将攻击进行粗略排序即可。例如,SSG 可以每年举行两次集体讨论,创建一份列表,列明组织应当准备好在“现在”、“不久”和“有时”需要应对的攻击。

[AM2.6: 11] 收集并发布攻击情况。

SSG 收集并发布组织受攻击的情况,让并不便宜的课程发挥最大优势。无论是得逞还是未遂的攻击都值得记录,而且讨论软件攻击的历史信息能够起到将软件安全植根于公司现实场景的效果。这对于训练学员,帮助他们反驳可能过于关注他人的前 10 名列表,或过时平台攻击的通用方法尤其有用(参见 [T1.6 创建并使用公司安全记录专用材料])。向构建新系统的人员隐藏攻击信息未能利于从负面事件中获得任何积极效益。

[AM2.7: 10] 建立内部论坛用于讨论攻击。

组织拥有内部论坛,供 SSG、卫星团队和其他团队讨论攻击和攻击方法。讨论用于和所有人沟通攻击者的视角。SSG 还可以保留一份内部邮件列表,鼓励邮件订阅者讨论有关公开事件的最新信息。解决与企业有关的攻击和漏洞利用,如果能够触发讨论开发、基础架构及其它缓解措施,就变得特别有用。只是重复发布公共邮件列表中的项目,并不能达到与积极讨论相同的效果,瞒着实际编写代码的人员秘密进行讨论同样无济于事。每个人都应当自由提出问题并了解漏洞和利用情况(参见 [SR1.2 创建安全门户])。

3 级攻击模型

[AM3.1: 3] 设置科学团队开发新型攻击方法。

SSG 拥有一个科学团队,能够在真正的攻击者知道他们存在之前,识别和禁用此类新的攻击类别。由于新技术对安全的影响还没有得到充分的探索,所以内部试验有时是最好的方法。这不是一个查找已知漏洞类型新实例的渗透测试团队,而是一个创造新型攻击的研究团队。科学团队中甚至可能有在 DEF CON 等会议上公布研究成果的著名安全研究人员。

[AM3.2: 2] 创建并利用自动化来模仿攻击者。

SSG 为测试人员装备自动化,用于模仿攻击者的行为。例如,科学团队确定新的攻击方法后可能要求配备新工具,SSG 就可以打包新工具并分发给测试人员。这里的想法是推动攻击能力超越一般商业工具和产品包含的内容,然后让其他人更容易使用这些知识和技术。根据公司的特定技术栈和潜在攻击者定制这些新工具强化了总体优势。当技术堆栈和编码语言的发展速度超过供应商的创新速度时,在内部创造工具和自动化可能是最好的前进方式。在 DevOps 领域,可以通过工程设计创造这些工具并将其直接纳入工具链和自动化中(例如,Chaos Monkey)。

[AM3.3: 0] 监控自动化资产创造。

SSG 实现技术控制,提供各种网络、机器、软件和相关基础架构资产的持续更新视图,工程团队会在其 ALM 流程中实现这些视图的实例化。SSG 与工程团队一同了解自定义自动化和云提供商仪表板的工程用途,旨在快速建立软件部署所需的服务器、数据库、网络和整个云。监视应用设计的变化(例如,将单个应用移动到微服务)也是这项工作的一部分。这种监控需要开展专项工作;仅靠常用系统、网络和应用程序记录和分析是不够的。可能需要多管齐下的方法才能成功,包括耗用编排和虚拟化元数据、查询云服务提供商 API,以及从外到内的网络爬虫抓取。随着流程的改进,数据将帮助推进威胁建模(参见 [AA1.1 执行安全功能审查])。