[发明专利]用于确定性代码流完整性保护的技术有效
申请号: | 201780052750.5 | 申请日: | 2017-08-17 |
公开(公告)号: | CN109643345B | 公开(公告)日: | 2023-07-25 |
发明(设计)人: | M.E.库纳维斯;D.M.德拉姆;R.L.萨希塔;K.S.格雷沃尔 | 申请(专利权)人: | 英特尔公司 |
主分类号: | G06F21/54 | 分类号: | G06F21/54;G06F21/62;G06F21/64;H04L9/06 |
代理公司: | 中国专利代理(香港)有限公司 72001 | 代理人: | 高苇娟;申屠伟进 |
地址: | 美国加利*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 确定性 代码 完整性 保护 技术 | ||
用于代码流完整性保护的技术包括静态分析器,其标识受保护代码的原子代码路径中的潜在小工具。在潜在小工具之后插入标记指令,所述标记指令具有与该标记指令的地址对应的参数,在原子代码路径的出口点之后插入散列评估器指令,所述散列评估器指令具有与该标记指令的地址对应的参数,并且在散列评估器指令之后插入比较评估器指令和散列校验指令。目标计算设备执行受保护代码并根据标记指令的参数更新路径散列,根据散列评估器指令的参数确定预期散列值,并且如果路径散列和预期散列值不匹配则生成异常。描述并要求保护其他实施例。
对相关美国专利申请的交叉引用
本申请要求2016年9月27日提交的题为“TECHNOLOGIES FOR DETERMINISTIC CODEFLOW INTEGRITY PROTECTION”的美国实用专利申请序列号15/276,895的优先权。
背景技术
面向返回编程(ROP)漏洞利用是可以规避将存储器的位置标记为不可执行的某些防御的恶意的软件(恶意软件)的越来越常见的形式。ROP漏洞利用通过将每个以“返回”指令结束的大量现有的可执行代码段(称为小工具(gadget))串起来而工作。每个ROP小工具通常短,并且通常不对应于现有过程或甚至可执行代码中的现有指令边界。攻击者构造恶意堆栈,所述恶意堆栈包括一系列指向所期望的小工具序列的返回地址。通过使计算机的处理器使用恶意堆栈而不是合法系统堆栈执行软件来实行ROP漏洞利用。例如,可以通过粉碎堆栈、使用缓冲区溢出漏洞利用、转向新堆栈或以其他方式破坏系统堆栈来引入恶意堆栈。面向跳转编程(JOP)和面向调用编程(COP)漏洞利用是类似的,但目标小工具分别以间接跳转指令或调用指令而不是返回指令开始或结束。
可以通过维持与普通系统堆栈(也称为“遗留堆栈”)并行的“影子堆栈”来防止某些ROP漏洞利用。影子堆栈维持普通软件不可访问的存储器中的遗留堆栈的副本,并且可用于确定遗留堆栈是否已被恶意软件篡改。可用于帮助防止ROP、JOP或其他控制流漏洞利用的其他措施可以包括将ENDBRANCH指令插入到二进制文件中以专门标记针对间接分支或跳转的被允许目标。
附图说明
在附图中通过示例的方式而非通过限制的方式图示了本文中描述的概念。为了图示的简单和清楚,各图中图示的元件不一定按比例绘制。在认为适当的情况下,参考标签在各图之间重复以指示对应或类似的元件。
图1是用于代码流完整性保护的计算设备的至少一个实施例的简化框图;
图2是可以由图1的一个或多个计算设备建立的各种环境的简化框图;
图3是用于静态地分析和检测(instrument)可以由图1-2的计算设备执行的代码的方法的至少一个实施例的简化流程图;
图4是为了代码流完整性保护所检测的原子代码路径的至少一个实施例的简化流程图;
图5A和5B是可以由图1-2的计算设备执行的用于代码流完整性保护的方法的至少一个实施例的简化流程图;以及
图6是可以由图1-2的计算设备的处理器执行的用于代码流完整性保护的方法的至少一个实施例的简化流程图。
具体实施方式
虽然本公开的概念对各种修改和替代形式敏感,但是其特定实施例已被在附图中通过示例的方式示出并且将在本文中详细地描述。然而,应当理解,不意图将本公开的概念限制于所公开的特定形式,而正相反,意图是涵盖与本公开和所附权利要求一致的所有修改、等同物和替代物。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于英特尔公司,未经英特尔公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201780052750.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:用于共享安全性元数据存储器空间的方法和装置
- 下一篇:控制流完整性