cwe - 1304:不当保存完整的硬件配置国家权力保存/恢复操作期间
描述
产品执行权力保存/恢复操作,但它并不能保证配置的完整性状态维护和/或操作的开始和结束之间的验证。
扩展描述
电源关闭之前,知识产权(IP)保存当前状态(S)持久性存储,如flash或不间断内存以优化恢复操作。在这个过程中,攻击者访问持久性存储可能改变(S)的配置可能会修改权限,禁用保护,和/或硬件造成破坏。如果IP不验证配置状态存储在持久的记忆,再次重获力量或操作时,IP可以通过激活一个不必要的妥协/有害的配置。
模式的介绍
不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 |
请注意 |
架构和设计 |
弱点介绍通过失踪内部完整性保证期间保存/恢复力量 |
集成 |
弱点介绍通过失踪的外部力量保存/恢复期间完整性验证 |
常见的后果
这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
范围 |
影响 |
可能性 |
保密 完整性
|
技术的影响:DoS:不稳定;DoS:崩溃,退出或重新启动;DoS:资源消耗(其他);获得特权或假设的身份;旁路保护机制;改变执行逻辑;质量退化;意想不到的状态;减少可维护性;减少性能; Reduce Reliability
|
高 |
示范例子
示例1
下面的伪代码演示了力量保存/恢复工作流可能导致弱势通过缺乏验证后的配置状态恢复。
空白save_config_state () {
void * cfg;
cfg = get_config_state (); save_config_state (cfg);
go_to_sleep ();
}
空白restore_config_state () {
void * cfg; cfg = get_config_file (); load_config_file (cfg);
}
下面的伪代码的完整性检查减灾工作流程:
空白save_config_state () {
void * cfg; void *沙;
cfg = get_config_state (); save_config_state (cfg);
/ /保存散列(cfg)到受信任位置 沙= get_hash_of_config_state (cfg); save_hash (sha);
go_to_sleep ();
}
空白restore_config_state () {
void * cfg; void * sha_1 sha_2;
cfg = get_config_file (); / /恢复散列的配置可信的记忆 sha_1 = get_persisted_sha_value ();
sha_2 = get_hash_of_config_state (cfg); 如果(sha_1 ! = sha_2)
assert_error_and_halt ();
load_config_file (cfg);
}
必须指出在上一个示例中良好的伪代码,内存(散列存储的配置状态)时必须值得信赖的力量之间的硬件是保存和恢复状态。
潜在的缓解措施
阶段:体系结构和设计
在IP,将完整性检查通过密码散列的配置状态。内的散列可以保护知识产权等通过存储在内部寄存器,永远不要失去权力。电源关闭之前,知识产权执行散列的配置并将它保存在这些持续的寄存器。恢复后,保存配置的IP执行散列和比较它与保存的散列。如果它们不匹配,那么配置IP不应该信任。 |
阶段:集成
外的IP,将完整性检查通过值得信赖的代理的配置状态。电源关闭之前,值得信赖的代理执行散列的配置并保存持久性存储的哈希。恢复后,IP请求可信代理验证当前配置。如果散列的配置是无效的,那么配置IP不应该信任。 |
阶段:集成
以外的IP,将一个受保护的环境,防止未修改的配置状态不可信的代理。电源关闭之前,一个值得信赖的代理可以节省IP的配置状态在这个位置,只有是特权保护。恢复后,可信代理将保存的状态加载到IP。 |
功能区域
脆弱性映射笔记
用法:允许
(CWE ID可以用来映射到现实世界的漏洞) |
原因:可接受的使用 |
理由是: 这CWE条目底部的抽象级别,这是一个首选的抽象级别映射到漏洞的根本原因。 |
评论: 仔细阅读这两个名称和描述,以确保此映射是一个适当的配合。不要试图“力”映射到底层基础/变体只是遵守这首选的抽象级别。 |
更多的信息是可用的,请编辑自定义过滤器或选择一个不同的过滤器。
|