[发明专利]针对应用安全性的二进制转换和随机化系统有效
申请号: | 201480056057.1 | 申请日: | 2014-08-07 |
公开(公告)号: | CN105612525B | 公开(公告)日: | 2021-09-24 |
发明(设计)人: | 乔·伊浦斯坦;马克西姆·潘琴科;简·席福林 | 申请(专利权)人: | 思科技术公司 |
主分类号: | G06F21/14 | 分类号: | G06F21/14 |
代理公司: | 北京东方亿思知识产权代理有限责任公司 11258 | 代理人: | 李晓冬 |
地址: | 美国加利*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 针对 应用 安全性 二进制 转换 随机化 系统 | ||
1.一种数据处理方法,包括:
接收重定位元数据,针对可执行文件中的多个执行单元中的每一个执行单元,所述重定位元数据包括从所述可执行文件到地址空间范围的映射,其中,所述多个执行单元是基本控制块;
针对所述多个执行单元中的至少一个,修改所述映射以用随机定位的地址空间范围处的指令的重定位副本替换所述地址空间范围内的指令,从而更新所述重定位元数据以生成扩增的重定位元数据,其中,所述扩增的重定位元数据包括头部、一个或多个二进制原子、文件重定位和程序控制流程图;
使用所述扩增的重定位元数据来从所述可执行文件生成镜像;
使得所述镜像执行;
其中,所述方法由一个或多个计算设备执行;以及
其中,所述随机定位的地址空间范围基于使用随机化函数,所述随机化函数对拥有所述镜像的用户或者执行所述镜像的机器中的一个是唯一的。
2.如权利要求1所述的数据处理方法,其中,所述一个或多个计算设备包括分发服务器,并且其中,所述镜像的执行在客户端计算设备上。
3.如权利要求1所述的数据处理方法,其中,所述修改还包括修改所述多个执行单元的顺序。
4.如权利要求1所述的数据处理方法,其中,所述修改还包括针对所述多个执行单元的至少一个的代码重生成或寄存器重分配。
5.如权利要求1所述的数据处理方法,其中,所述修改还包括将所述多个执行单元映射到多个代码段。
6.如权利要求1所述的数据处理方法,其中,所述可执行文件包括参考所述多个执行单元中的地址的数据。
7.如权利要求6所述的数据处理方法,其中,针对参考所述多个执行单元中的地址的数据,所述重定位元数据还包括映射至数据地址空间范围的数据,并且还包括在所述生成之前:将所述数据地址空间范围修改成随机定位的地址空间范围。
8.如权利要求6所述的数据处理方法,其中,所述镜像包括被置于随机定位的地址空间范围的查找表,其中,所述查找表被用来通过使用查找函数来查找所述多个执行单元中的地址。
9.如权利要求6所述的数据处理方法,其中,参考所述多个执行单元中的地址的数据包括以下各项中的一个:过程链接表(PLT)、全局偏移表(GOT)、交换表、函数指针或虚拟方法表(VTBL)。
10.如权利要求1所述的数据处理方法,其中,所述方法由操作系统的运行时加载器响应于由所述操作系统执行所述可执行文件的请求而被执行,或者其中,所述方法由管理程序响应于由虚拟化的操作系统执行所述可执行文件的请求而被执行。
11.如权利要求7所述的数据处理方法,其中,所述指令的重定位副本包括参考所述数据地址空间范围的代码段,并且其中,所述代码段被标记为只执行。
12.一种包括一个或多个计算设备的系统,所述系统被配置为:
接收重定位元数据,针对可执行文件中的多个执行单元中的每一个执行单元,所述重定位元数据包括从所述可执行文件到地址空间范围的映射;
针对所述多个执行单元中的至少一个,修改所述映射以用随机定位的地址空间范围处的指令的重定位副本替换所述地址空间范围内的指令,从而更新所述重定位元数据以生成扩增的重定位元数据,其中,所述扩增的重定位元数据包括头部、一个或多个二进制原子、文件重定位和程序控制流程图,其中,所述多个执行单元是基本控制块;
使用所述扩增的重定位元数据来从所述可执行文件生成镜像;
使得所述镜像执行;以及
其中,所述随机定位的地址空间范围基于使用随机化函数,所述随机化函数对拥有所述镜像的用户或者执行所述镜像的机器中的一个是唯一的。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于思科技术公司,未经思科技术公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201480056057.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:原位井筒、岩心和钻屑信息系统
- 下一篇:远程存储