描述
失踪的不可变的信任根硬件导致的能力绕过安全启动或执行不可信或敌对的引导代码。
扩展描述
芯片系统(SoC)实现安全引导通过验证或验证签署了启动代码。签名的代码是通过一个实体的SoC信托。执行引导代码之前,SoC验证代码或代码的公共密钥已经签署了没有被篡改。的其他数据等融合的SoC系统硬件设置取决于是否启用了“安全启动”。这些数据扮演着重要的角色在建立信任的根(腐烂)执行secure-boot流动。
许多方面实现腐烂之一是通过将代码和数据存储在内存中或融合。这个内存应该是不变的,即,一旦腐烂编程/供应在内存中,内存应该锁定和阻止进一步编程或写道。如果内存内容(即。、腐烂)是可变的,那么敌人可以修改腐烂的代码来执行他们的选择,导致破坏安全启动。
注意,组件,如罗安全修补/更新功能应支持允许经过身份验证和授权的更新。
的关系
模式的介绍
不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 |
请注意 |
架构和设计 |
|
实现 |
期间推出的这些问题可能策略定义、硬件架构,设计,制造,和/或供应。他们可以确定以后在测试或系统配置阶段。 |
常见的后果
这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
范围 |
影响 |
可能性 |
身份验证 授权
|
技术的影响:获得特权或假设的身份;执行未经授权的代码或命令;修改内存
|
高 |
示范例子
示例1
腐烂是存储在内存中。这个内存可以修改的对手。例如,如果一个SoC实现“安全启动”将启动代码存储在芯片外/芯片上的闪光灯,闪光灯的内容可以修改通过使用flash程序员。同样,如果引导代码存储在ROM(只读存储器),但公钥或散列的公钥(用于启用“安全启动”)存储在闪存或容易修改的内存或写道,实现是脆弱的。
一般来说,如果启动代码、关键材料和数据,使“安全启动”都是可变的,实现是脆弱的。
良好的硬件架构将腐败定义为不可变的。实现不变性的最好方法之一是存储引导代码,公钥或散列公钥和其他相关数据的只读存储器(ROM)或一次性可编程(OTP)记忆,防止进一步的编程或写道。
潜在的缓解措施
阶段:体系结构和设计
在设计系统时,应指定腐烂存储在内存,不允许进一步编程/写道。 |
实施阶段:
在实现和测试,腐烂内存位置应该表明不允许进一步编程/写道。 |
检测方法
自动动态分析
自动化测试可以验证腐烂组件是不可变的。
|
体系结构或设计审查
信任的根元素和内存应该是架构和设计审查的一部分。
|
脆弱性映射笔记
用法:允许
(CWE ID可以用来映射到现实世界的漏洞) |
原因:可接受的使用 |
理由是: 这CWE条目底部的抽象级别,这是一个首选的抽象级别映射到漏洞的根本原因。 |
评论: 仔细阅读这两个名称和描述,以确保此映射是一个适当的配合。不要试图“力”映射到底层基础/变体只是遵守这首选的抽象级别。 |
引用
更多的信息是可用的,请编辑自定义过滤器或选择一个不同的过滤器。
|