描述
产品实现了解码机制来解码某些bus-transaction信号安全标识符。如果解码实现不正确,那么不可信的代理现在可以获得资产未经授权的访问。
扩展描述
芯片系统(SoC),各种集成电路和硬件引擎生成的事务如访问(读/写)资产或执行某些操作(例如,重置,取回,计算,等等)。在各种类型的消息的信息,一个典型的事务由源身份(确定交易的发起者)和目的地身份(事务路由到相应的实体)。有时与安全事务是合格的标识符。安全标识符帮助目的地代理决定允许操作的集合(例如,访问一个资产的读和写)。一个解码器解码总线事务安全标识符映射到必要的访问控制/保护。
一个共同的弱点,可以在这个场景中存在不正确的解码,因为一个不可信的代理的安全标识符是解码成信任代理的安全标识符。因此,一个不可信的代理之前没有资产可以获得资产。
的关系
此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
相关的视图”研究概念”(cwe - 1000)
自然 |
类型 |
ID |
的名字 |
ChildOf |
支柱——一个弱点是最抽象类型的弱点和代表一个主题类/基地/变体相关弱点。支柱是不同于一个类别作为支柱技术上仍然是一种弱点,描述了一个错误,而一个类别代表一个共同特征用于组相关的东西。 |
284年 |
访问控制不当 |
此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
相关观点“硬件设计”(cwe - 1194)
自然 |
类型 |
ID |
的名字 |
ChildOf |
类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 |
1294年 |
不安全的安全标识符机制 |
模式的介绍
不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
常见的后果
这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
范围 |
影响 |
可能性 |
保密 完整性 可用性 访问控制
|
技术的影响:修改内存;读记忆;DoS:资源消耗(其他);执行未经授权的代码或命令;获得特权或假设的身份;质量退化
|
高 |
示范例子
示例1
考虑一个系统有四个总线主人和一个译码器。解码器应该解码每个总线事务,并分配相应的安全标识符。安全标识符是用来确定访问资产。总线事务包含安全信息Bus_transaction(十五14),14和15位通过包含安全标识符信息。下表提供巴士大师以及他们的安全标识符和信任的假设:
总线主控 |
安全标识符解码 |
信任的假设 |
Master_0 |
“00” |
不可信的 |
Master_1 |
“01” |
受信任的 |
Master_2 |
“10” |
不可信的 |
Master_3 |
“十一” |
不可信的 |
资产是AES-Key寄存器进行加密或解密。关键是128位实现为一组4个32位寄存器。AES_KEY_ACCESS_POLICY是用来定义代理事务可以访问的安全标识符AES-key寄存器。安全标识符的大小是4位(即。通过0),一些3。每一位在这四位定义了安全标识符。只有4安全标识符AES-key允许访问的寄存器。当设置的数量(即。,“1”)允许各自行动代理人的身份匹配的数目。如果清除(即。,“0”),不允许各自的行动,相应的代理。
注册 |
字段描述 |
AES_ENC_DEC_KEY_0 |
AES加密或解密的关键[0:31] 默认值0 x00000000 |
AES_ENC_DEC_KEY_1 |
AES加密或解密的关键[32:63] 默认值0 x00000000 |
AES_ENC_DEC_KEY_2 |
AES加密或解密的关键[64:95] 默认值0 x00000000 |
AES_ENC_DEC_KEY_3 |
AES加密或解密的关键[96:127] 默认值0 x00000000 |
AES_KEY_ACCESS_POLCY |
[31:4]0 x00000000违约 (握)0 x01代理与安全标识“1”访问AES_ENC_DEC_KEY_0通过AES_ENC_DEC_KEY_3寄存器 |
下面的伪代码概述的过程中检查安全标识符的值AES_KEY_ACCESS_POLICY注册:
下面是一个解码器的伪代码,只检查[14]的总线事务来确定安全标识符必须分配。
如果(Bus_transaction [14] = =“1”)
Security_Identifier = =“1”
其他的
Security_Identifier = = " 0 "
安全标识符是两位,但上面的译码器的代码只检查一个比特的价值。两个主有0位设置为“1”——Master_1和Master_3。Master_1是可信的,而Master_3不是。上面的代码将因此允许一个不可信的代理,Master_3访问AES-Key寄存器的目的除了信任Master_1。 的解码器应该检查整个大小bus-transaction信号安全标识符分配相应的安全标识符。以下是不错的伪代码:
如果(Bus_transaction[十五14]= =“00”)
Security_Identifier = = " 0 "
如果(Bus_transaction[十五14]= =“01”)
Security_Identifier = =“1”
如果(Bus_transaction[十五14]= =“10”)
Security_Identifier = =“2”
如果(Bus_transaction[十五14]= =“十一”)
Security_Identifier = =“3”
潜在的缓解措施
阶段:体系结构和设计
安全标识符解码器必须审查设计一致性和共同的弱点。 |
实施阶段:
访问和编程流必须测试pre-silicon和post-silicon测试来检查这个弱点。 |
脆弱性映射笔记
用法:允许
(CWE ID可以用来映射到现实世界的漏洞) |
原因:可接受的使用 |
理由是: 这CWE条目底部的抽象级别,这是一个首选的抽象级别映射到漏洞的根本原因。 |
评论: 仔细阅读这两个名称和描述,以确保此映射是一个适当的配合。不要试图“力”映射到底层基础/变体只是遵守这首选的抽象级别。 |
更多的信息是可用的,请编辑自定义过滤器或选择一个不同的过滤器。
|