cwe - 1233:安全敏感的硬件控制与失踪的锁保护
描述
产品使用寄存器锁保护机制,但它并不能保证锁防止修改的系统寄存器或控制执行重要的硬件系统配置变化。
扩展描述
集成电路和硬件知识产权(ip)可能提供设备配置控件需要编程设备电源复位后一个可信固件或软件模块,一般由BIOS设置/引导装载程序。重置后,可以有一个期望的控制不能用于执行任何进一步的修改。这种行为通常是使用一个可信实现锁,这可以设置为禁用写入保护的寄存器或地址区域。锁保护的目的是防止某些系统配置的修改(例如,内存/内存保护单元配置)。
然而,如果锁位并不能有效的写保护所有系统寄存器或控件,可以修改保护系统配置,那么敌人可以使用软件来访问寄存器/控制和修改受保护的硬件配置。
的关系
模式的介绍
不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 |
请注意 |
架构和设计 |
期间推出的这些问题可能是硬件架构和设计和确定后在测试或系统配置阶段。 |
实现 |
期间推出的此类问题可以实现和确认后在测试或系统配置阶段。 |
常见的后果
这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
范围 |
影响 |
可能性 |
访问控制
|
可以修改系统配置的保护锁位即使锁设置。 |
|
示范例子
示例1
考虑下面的示例设计的数字温度传感器检测到过热的硅和触发系统关闭。系统临界温度限制(CRITICAL_TEMP_LIMIT)和热传感器校准(TEMP_SENSOR_CALIB)数据必须由固件编程。
注册 |
字段描述 |
CRITICAL_TEMP_LIMIT |
[31:8]保留字段;只读;默认值0 [7:0]临界温度摄氏0 - 255;Read-write-lock;默认125 |
TEMP_SENSOR_CALIB |
31:0热传感器校准数据。斜率值用于传感器读取映射到一个度。读写;默认的25 |
TEMP_SENSOR_LOCK |
[31:1]保留字段;只读;默认值0 [0]锁,锁CRITICAL_TEMP_LIMIT登记;Write-1-once;默认值0 |
TEMP_HW_SHUTDOWN |
[31:2]保留字段;只读;默认值0 [1]上启用硬件关闭临界温度检测;读写;默认值0 |
CURRENT_TEMP |
[31:8]保留字段;只读;默认值0 当前温度摄氏0 - 255 (7:0);只读;默认值0 |
在这个示例中只注意CRITICAL_TEMP_LIMIT寄存器TEMP_SENSOR_LOCK的保护,而安全设计意图是保护任何修改的临界温度检测和响应。
的反应系统,如果系统加热到临界温度,控制TEMP_HW_SHUTDOWN[1],这不是可锁定的。此外,TEMP_SENSOR_CALIB寄存器不是保护锁。
通过修改温度传感器校准,传感器数据的转换度可以改变,这样当前温度不会超过临界温度检测程序价值的保护锁。
同样,通过修改TEMP_HW_SHUTDOWN。启用,系统响应检测当前温度超过临界温度可以被禁用。
改变TEMP_HW_SHUTDOWN TEMP_SENSOR_CALIB控制由TEMP_SENSOR_LOCK锁定。
TEMP_SENSOR_CALIB |
31:0热传感器校准数据。斜率值用于传感器读取映射到一个度。Read-write-Lock;默认25;被TEMP_SENSOR_LOCK一点[0] |
TEMP_HW_SHUTDOWN |
[31:2]保留字段;只读;默认值0[1]上启用硬件关闭临界温度检测;Read-write-Lock;默认值0;被TEMP_SENSOR_LOCK一点[0] |
观察到的例子
参考 |
描述 |
|
某些服务器留下写保护锁位设置启动后,可能允许闪存的修改部分。 |
|
链:芯片组竞态条件( cwe - 362),当一个中断处理程序检测到一个试图允许写入BIOS(违反锁位),当处理程序重置允许写入位回0,允许攻击者问题BIOS写在时间窗口( ref - 1237]。 |
潜在的缓解措施
弱点Ordinalities
Ordinality |
描述 |
主 |
(其他弱点的弱点存在独立的) |
检测方法
手动分析
设置锁。试图修改信息的保护锁。如果信息被更改,实现一个设计解决。重新测试。同时,试图间接清楚锁或绕过它。
|
会员资格
这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
引用
|