[发明专利]内存完整性检查有效
| 申请号: | 201380080188.9 | 申请日: | 2013-10-31 | 
| 公开(公告)号: | CN105637486B | 公开(公告)日: | 2018-11-13 | 
| 发明(设计)人: | 奈杰尔·爱德华兹;克里斯·I·道尔顿;保罗·法拉博斯基 | 申请(专利权)人: | 慧与发展有限责任合伙企业 | 
| 主分类号: | G06F11/00 | 分类号: | G06F11/00 | 
| 代理公司: | 北京德琦知识产权代理有限公司 11018 | 代理人: | 柴德海;康泉 | 
| 地址: | 美国德*** | 国省代码: | 美国;US | 
| 权利要求书: | 查看更多 | 说明书: | 查看更多 | 
| 摘要: | |||
| 搜索关键词: | 内存 完整性 检查 | ||
根据示例,内存完整性检查可以包括:接收计算机程序代码,以及使用加载器将该计算机程序代码加载到内存中。内存完整性检查可以进一步包括:通过选择性地实现同步验证和/或异步验证,验证该计算机程序代码的完整性。该同步验证可以基于与该计算机程序代码的加载关联的加载器安全特征。此外,异步验证可以基于与包含该计算机程序代码的内存关联的媒介控制器。
背景技术
操作系统(OS)通常包括一套软件(即,机器可读指令),该套软件管理计算机硬件资源并且为计算机程序提供公共服务。OS通常包括加载器,该加载器负责加载计算机程序。例如,加载器将计算机程序置于内存中,并且进一步准备该计算机程序以供执行。加载器通常通过以下方式操作:将包含该计算机程序指令的可执行文件的内容读到内存中,并且随后实施其它准备性工作以准备该可执行文件以供运行。例如,加载器通常通过以下方式准备计算机程序代码以供执行:重新安置内存地址以使这些内存地址在对另一模块(如,共享库)中的计算机程序代码进行函数调用时指向正确位置。加载器还在计算机程序代码被设置在其中的内存页面上设置保护标志。一旦完成加载,OS就可以通过将控制转移至被加载的计算机程序代码来启动计算机程序。
附图说明
本公开的特征是通过示例图示的并且不局限于下面的图,在图中相同的附图标记表示相同的元件,其中:
图1图示根据本公开的示例的包括内存完整性检查装置的环境;
图2图示根据本公开的示例的用于实现内存完整性检查装置的方法;
图3图示根据本公开的示例的用于实现内存完整性检查装置的方法的其它细节;以及
图4图示根据本公开的示例的可以用于实现内存完整性检查装置的计算机系统。
具体实施方式
为了简洁和说明目的,主要参照示例描述本公开。在下面的描述中,为了提供对本公开的深入理解,陈述许多特定细节。但是,将显而易见的是,可以在没有对这些具体细节限制的条件下实施本公开。在其它例子中,为了不会不必要地使本公开模糊,未详细地描述一些方法和结构。
在本公开全文中,术语“一”和“一种”的目的在于表示至少一个特定元件。如本文所用的,术语“包括”意味着包括但不限于,术语“包含”意味着包括但不限于。术语“基于”意味着至少部分地基于。
计算机程序代码可以由授权的用户或未授权的用户加载并且置于内存中。例如,未授权的用户可能为了恶意目的而安装计算机程序代码。为了确保计算机程序代码是授权的用户安装的,计算机程序代码的完整性可以基于加载器和OS的正确运行和控制。可选地或此外,加载并且置于内存中的计算机程序代码的完整性可以基于负责内存页面表转换机制的OS虚拟内存组件的正确操作和控制。可以用其它安全特征扩展加载器的功能,以使加载器针对可能的病毒或恶意软件签名而检查所加载的每段计算机程序代码,并且确定关联的计算机程序是否安全。如果目标指令集支持,那么加载器可以将每段可执行的计算机程序代码置于不可变的页面(例如,被标记为“可执行的(eXecutable)”、“不可写的(non-Writable)”或“不可读的(non-Readable)”)中。此外,加载器可以确认所有其它内存页面被标记为“不可执行的(Non-eXecutable)”(例如,数据页面)。与加载器的功能有关的这些方面可以确保可信的计算机程序代码在计算机上运行。此外,自修改计算机程序代码可能需要请求用于写代码页面的权限,使得加载器和OS具有再检查的机会。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于慧与发展有限责任合伙企业,未经慧与发展有限责任合伙企业许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201380080188.9/2.html,转载请声明来源钻瓜专利网。





