描述
许多语言使用代码签名设施来保证代码的身份和因此领带代码分配权限内环境。颠覆这种机制可以帮助攻击者不断升级的特权。任何方式的颠覆一个虚拟机执行代码签名的方式分类为这种风格的攻击。
攻击的可能性
典型的严重性
先决条件
基于框架的语言支持代码签名(如,最常见的Java或. net) |
部署代码编写供应商,签订或合作伙伴。 |
攻击者,大多数情况下,也需要能够将代码放在受害者容器。这并不一定意味着他们将不得不颠覆host-level安全,除非显式地表示。 |
技能要求
(级别:高) 颠覆代码签名并不是一个简单的活动。大多数代码签名和验证计划是基于使用加密和攻击者需要有一个好的详细地理解这些密码操作。另外攻击者也需要意识到的方式访问的内存分配和容器,通常,颠覆代码签名的唯一方法是补丁代码在内存中。最后,知识签名和验证代码的特定于平台的机制是必须的。 |
所需资源
攻击者不需要列出先决条件以外的特殊资源为了进行这种风格的攻击。 |
后果
这个表指定不同的个体与攻击模式相关的后果。范围确定违反了安全属性,而影响了负面的技术影响,如果敌人成功的攻击。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能有高可能性模式将被用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
范围 |
影响 |
可能性 |
保密
访问控制
授权 |
获得特权 |
|
缓解措施
一个给定的代码签名方案可能因不当使用加密的。开发人员必须从来没有推出自己的密码,也不应该现有原语被修改或忽略。 |
如果攻击者不能直接攻击计划,他们可能试图改变环境影响签名和验证过程。可能的缓解是避免依赖旗帜或用户可控的环境变量。 |
例子,实例
在旧版本(3.0 b4)的网景浏览器攻击者能够蒙骗恶意Applet到客户机的浏览器可以执行“魔法外套”攻击。在这种攻击中,违法的Applet实现自己的getSigners()方法。该实现将使用包含VM的api来获取其他Applet的签名(通过调用_their_ getSigners()方法),如果任何运行Applet privileged-enough签名,恶意Applet将继承的特权是(比喻)穿上别人的外套。 |
一些(老)web浏览器允许脚本语言,比如JavaScript调用Java代码签名。在这种情况下,浏览器的VM实现跨语言边界将选择不进行堆栈检查(从称为Java调用JavaScript)签署并将短路“true”在语言边界。这样做意味着VM将允许任何特权(特权)脚本调用函数签名的代码中而不受惩罚,导致它们吸引攻击的牺牲品。 |
无符号代码加载到内核的能力的早期版本的Vista和旁路完整性检查是颠覆的一个例子。概念验证,可以绕过signature-checking机制Vista使用加载设备驱动程序。 |
分类法映射
CAPEC映射ATT&CK技术利用一个继承模型简化和减少直接CAPEC / ATT&CK映射。继承的映射表示文本说明父CAPEC有相关ATT&CK映射。注意,ATT&CK企业框架不使用一个继承模型的一部分映射到CAPEC。
内容的历史
提交 |
提交日期 |
提交者 |
组织 |
2014-06-23
(版本2.6) |
CAPEC内容团队 |
manbetx客户端首页 |
|
修改 |
修改日期 |
修饰符 |
组织 |
2017-01-09
(版本2.9) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Related_Attack_Patterns |
2018-07-31
(版本2.12) |
CAPEC内容团队 |
manbetx客户端首页 |
Attacker_Skills_or_Knowledge_Required更新,总结描述 |
2020-07-30
(版本3.3) |
CAPEC内容团队 |
manbetx客户端首页 |
更新的措施之一 |
2020-12-17
(版本3.4) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Related_Weaknesses |
2022-09-29
(版本3.8) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Taxonomy_Mappings |
|