针对应用安全性的二进制转换和随机化系统技术方案

技术编号:15112621 阅读:33 留言:0更新日期:2017-04-09 03:10
在一个实施例中,描述了提供二进制转换和随机化系统的方法。重定位元数据被接收,针对可执行文件中的多个执行单元中的每一个执行单元,重定位元数据包括从可执行文件到地址空间范围的映射。针对多个执行单元中的至少一个,映射被修改以用随机定位的地址空间范围处的指令的重定位副本替换该地址空间范围内的指令。多个执行单元的顺序因此可以被修改。使用重定位元数据来从可执行文件生成镜像,并且使得镜像执行。随机化可以以双程实行以提供针对每一个计算机以及针对每一次执行而被唯一随机化的可执行文件。

【技术实现步骤摘要】
【国外来华专利技术】
本公开一般地涉及计算机应用安全性。更具体地,本公开涉及用于修改二进制计算机程序镜像以提高应用安全性的技术。
技术介绍
本节中所描述的方法可以被执行,但不一定是之前已经构思或执行的方法。因此,除非本文中以其他方式进行指示,否则本节中所描述的方法不是本申请中权利要求的现有技术并且不因包含在本节中而承认是现有技术。为了保护计算机系统免受可能危害系统安全性的恶意攻击,加强计算机应用以对抗使能任意代码未经授权的执行的漏洞利用(exploit)技术是有用的。某些种类的漏洞利用依赖于代码和数据布局的知识来成功攻击应用。防止这些种类的漏洞利用的现有方法只在一定程度有效。附图说明在附图中:图1A示出了针对应用安全性的示例二进制转换和随机化系统;图1B示出了针对应用安全性的示例双程二进制转换和随机化系统。图1C示出了由针对应用安全性的二进制转换和随机化系统扩增的示例重定位元数据;图2示出了用于提供针对应用安全性的二进制转换和随机化系统的方法;图3示出了可以实现用于提供针对应用安全性的二进制转换和随机化系统的方法的计算机系统。具体实施方式在下面的说明中,为了解释,给出许多具体的细节以便提供对本公开的全面理解。然而,对本领域的技术人员显而易见的是本公开可以在没有这些具体细节的情况下被实现。在其他实例中,众所周知的结构和设备以框图的形式被示出以便避免不必要地模糊本公开。>本文中根据下面的大纲来描述实施例:1.0概述2.0结构概述2.1应用攻击向量2.2地址空间布局随机化2.3二进制转换和随机化系统2.4双程BTRS随机化3.0功能概述3.1程序分析3.2元数据扩增3.3镜像随机化4.0实现机制-硬件概述5.0延伸和替换6.0附加公开1.0概述在实施例中,呈现了用于提供针对应用安全性的二进制转换和随机化系统的方法。在实施例中,接收重定位元数据,该重定位元数据针对可执行文件中的多个执行单元的每一个执行单元,包括从可执行文件到地址空间范围的映射。针对多个执行单元中的至少一个,映射被修改以用随机定位的地址空间范围处的指令的重定位副本替换该地址空间范围内的指令。使用重定位元数据来从可执行文件生成镜像,并且执行镜像。在另一实施例中,重定位元数据在第一计算机处被接收。针对包括计算机可执行指令的可执行文件内的多个执行单元中的每一个特定执行单元,重定位元数据包括该特定执行单元从可执行文件到地址空间范围的映射,其中执行单元是代码函数或基本控制块。针对多个执行单元中的所有执行单元,基于使用对第一计算机唯一的随机化函数,映射被修改以用随机定位的地址空间范围处的指令的重定位副本替换该地址空间范围内的指令。多个执行单元的顺序因此被修改。使用重定位元数据来从可执行文件生成镜像,并且使用第二计算机来执行镜像。对镜像的第二随机化过程可以在执行之前由第二计算机实行。在其他方面,实施例提供了被配置为实行上述方法的计算机装置和计算机可读介质。2.0结构概述图1A示出了针对应用安全性的示例二进制转换和随机化系统。图1A的系统100包括计算机160A、计算机160B、计算机160C、计算机160D和网络119。为了清楚地示出示例,图1A示出了四个计算机160A-160D,但是其他实施例可以在任意大小的联网计算机系统的情境中实现。计算机160A包括可执行文件140、运行时加载器162、元数据数据库163、控制流分析器166、编译器167和源代码168。元数据数据库163包括重定位元数据150。运行时加载器162包括二进制转换和随机化系统(BTRS)应用164以及扩增的重定位元数据180。BTRS应用164包括可以实现随机或伪随机处理的随机化函数165。计算机160B包括可执行文件140。计算机160C包括可执行文件140。计算机160D包括可执行文件140和漏洞利用攻击程序161。计算机160A-160D中的每一个都可以包括任意类型的计算设备,包括个人计算机、工作站、服务器、膝上型计算机、上网本、平板电脑或移动计算设备。计算机160A-160D还可以包括诸如路由器、交换机和其他联网设备之类的专用设备。网络119宽泛地表示一个或多个网络或互联网络。计算机160A-160C可以运行包括计算机可执行指令的可执行文件140,该计算机可执行指令用以提供应用、运行服务或者执行任意其他任务。例如,如果计算机160A-160C是路由器,则可执行文件140可以提供网络路由服务。如果计算机160A-160C是通用计算机,则可执行文件140可以是web浏览器或文档阅读器。为了从源代码168生成可执行文件140,可以使用编译器167。除了从源代码168生成的二进制代码,可执行文件140还包括图1A中未具体示出的链接的共享库函数和对外部库(例如,动态链路库和操作系统库)的调用。为了简单起见,编译器167和源代码168被示为托管于还运行可执行文件140的相同计算机160A。然而,在替换实施例中,编译器工具链可以被托管于单独开发环境,在这种情况下只有经编译的最终结果(可执行文件140)被托管于计算机160A。2.1应用攻击向量恶意攻击者可能试图获取可执行文件140的副本以用于分析。在一些情况下,可执行文件140可能已经是免费可用的,例如,作为托管于公共网站上的预编译的二进制文件下载。在这种情况下,其他计算机(例如,计算机160B和160C)还可以运行相同的可执行文件140,并且还可以是攻击者可能的目标。在其他情况下,特别是当计算机160A是专用设备时,可执行文件140可以只托管于计算机160A,在这种情况下,攻击者可以写入固件拔提取工具、使用专用转储(dumping)以及对硬件进行反向工程、或者以其他方式设计提取可执行文件140的方法。为了示例,假定计算机160D是攻击者的主机。假定二进制提取是成功的,则攻击者可以将可执行文件140的副本存储在计算机160D上。漏洞利用攻击程序161然后可以对可执行文件140执行辅助或自动的分析以(例如,根据对有缺陷数据的错误解析)找出漏洞(bug)或漏洞利用。在路由服务的情况下,可执行文件140可能未能对有缺陷的网络分组执行边界检查。在web浏览器的情况下,可执行文件140可能错误地解析有缺陷的web标签或脚本。在文档观察者的情况下本文档来自技高网...

【技术保护点】
一种数据处理方法,包括:接收重定位元数据,针对可执行文件中的多个执行单元中的每一个执行单元,所述重定位元数据包括从所述可执行文件到地址空间范围的映射;针对所述多个执行单元中的至少一个,修改所述映射以用随机定位的地址空间范围处的指令的重定位副本替换所述地址空间范围内的指令;使用所述重定位元数据来从所述可执行文件生成镜像;使得所述镜像执行;其中,所述方法由一个或多个计算设备执行。

【技术特征摘要】
【国外来华专利技术】2013.08.12 US 13/964,9171.一种数据处理方法,包括:
接收重定位元数据,针对可执行文件中的多个执行单元中的每一个执
行单元,所述重定位元数据包括从所述可执行文件到地址空间范围的映
射;
针对所述多个执行单元中的至少一个,修改所述映射以用随机定位的
地址空间范围处的指令的重定位副本替换所述地址空间范围内的指令;
使用所述重定位元数据来从所述可执行文件生成镜像;
使得所述镜像执行;
其中,所述方法由一个或多个计算设备执行。
2.如权利要求1所述的数据处理方法,其中,所述一个或多个计算设
备包括分发服务器,并且其中,所述镜像的执行在客户端计算设备上。
3.如权利要求1所述的数据处理方法,其中,所述多个执行单元是代
码函数或基本控制块。
4.如权利要求1所述的数据处理方法,其中,所述修改还包括修改所
述多个执行单元的顺序。
5.如权利要求1所述的数据处理方法,其中,所述修改还包括针对所
述多个执行单元的至少一个的代码重生成或寄存器重分配。
6.如权利要求1所述的数据处理方法,其中,所述修改还包括将所述
多个执行单元映射到多个代码段。
7.如权利要求1所述的数据处理方法,其中,所述随机定位的地址空
间范围基于使用随机化函数,所述随机化函数对拥有所述镜像的用户或者
执行所述镜像的机器中的一个是唯一的。
8.如权利要求1所述的数据处理方法,其中,所述可执行文件包括参
考...

【专利技术属性】
技术研发人员:乔·伊浦斯坦马克西姆·潘琴科简·席福林
申请(专利权)人:思科技术公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1