The embodiments include computing devices, devices and methods implemented by devices for randomizing time-varying address space layout. The device can start the first or more versions of the system service and assign a random virtual address space layout to each version of the first or more versions of the system service. The device may receive a first request for executing system services from the first application. The device can randomly select the first version of the system service from the first or more versions of the system service and use the data of the first version of the system service to perform the system service.
【技术实现步骤摘要】
【国外来华专利技术】时变地址空间布局随机化
技术介绍
黑客将各种策略用于攻击计算设备,包括移动设备。许多策略涉及尝试识别应用的存储器布局,使得可以通过了解服务在存储器中处于的位置来利用系统服务中的已知漏洞。这种攻击可以体现以系统服务为目标的“控制劫持攻击”,例如返回导向编程(ROP)。ROP攻击的目标是权限提升和后续益处。这种攻击通常采用暴力(bruteforce)战术,其中,攻击方穷尽地探索进程地址空间以找出漏洞或小工具(gadget)代码/数据位置。暴力战术可能导致攻击的受害者系统服务崩溃。另一种形式的攻击利用了信息泄漏。这样的技术利用格式字符串漏洞来获得某些信息(例如,返回地址,并且因此获得一些库函数位置)。易受攻击的进程的信息泄漏可能会危害另一个进程,尤其是使用动态碎片(shred)库的进程。攻击可以结合技术,来更有效地发现被一个或多个进程使用的地址空间的可利用漏洞。地址空间布局随机化(ASLR)是一种众所周知的技术,其通过在运行时将程序的不同部分存储在存储器中随机选择的位置并且使用地址空间映射来实现程序执行,来保护应用免受黑客攻击。ASLR提供传统应用映射所不能承担的针对黑客攻击的保护,在所述传统应用映射中在特定的固定(例如,连续)位置处加载程序部分。ASLR使攻击方难以在活动地运行的进程的地址空间中找到不同的代码位置。但是,ASLR仍然可能被攻击。即使应用代码是使用ASLR来随机化的,但是因为可以使用相同的地址空间,所以在对受害者系统服务的重新初始化时,也可以使用攻击方在暴力攻击中收集的信息。
技术实现思路
各个实施例的方法和装置提供了用于计算设备上的时变地址空间布局随机化 ...
【技术保护点】
1.一种在计算设备上的时变地址空间布局随机化的方法,包括:启动系统服务的第一多个版本;向所述系统服务的所述第一多个版本中的每个版本分配随机虚拟地址空间布局;从第一应用接收对执行所述系统服务的第一请求;从所述系统服务的所述第一多个版本中随机选择所述系统服务的第一版本;以及使用所述系统服务的所述第一版本的数据来执行所述系统服务。
【技术特征摘要】
【国外来华专利技术】2016.03.31 US 15/087,1981.一种在计算设备上的时变地址空间布局随机化的方法,包括:启动系统服务的第一多个版本;向所述系统服务的所述第一多个版本中的每个版本分配随机虚拟地址空间布局;从第一应用接收对执行所述系统服务的第一请求;从所述系统服务的所述第一多个版本中随机选择所述系统服务的第一版本;以及使用所述系统服务的所述第一版本的数据来执行所述系统服务。2.根据权利要求1所述的方法,还包括:从所述第一应用接收对执行所述系统服务的第二请求;从所述系统服务的所述第一多个版本中随机选择所述系统服务的第二版本;以及使用所述系统服务的所述第二版本的数据来执行所述系统服务。3.根据权利要求1所述的方法,还包括:向所述系统服务的所述第一多个版本中的每个版本分配系统服务版本标识符,其中,所述系统服务的所述第一多个版本中的每个版本的所述系统服务版本标识符是不同的;将所述系统服务的所述第一多个版本中的每个版本的所述系统服务版本标识符与所述系统服务的系统服务标识符进行关联;存储所述系统服务的所述第一多个版本中的每个版本的所述系统服务版本标识符与所述系统服务标识符的关联结果;将所述系统服务的所述第一多个版本中的每个版本的所述系统服务版本标识符与所述系统服务的所述第一多个版本中的每个版本的所述随机虚拟地址空间布局中的相应的一个随机虚拟地址空间布局进行关联;以及存储所述系统服务的所述第一多个版本中的每个版本的所述系统服务版本标识符与所述系统服务的所述第一多个版本中的每个版本的所述随机虚拟地址空间布局中的相应的一个随机虚拟地址空间布局的关联结果。4.根据权利要求3所述的方法,其中:对执行所述系统服务的所述第一请求包括所述系统服务标识符;从所述系统服务的所述第一多个版本中随机选择所述系统服务的第一版本包括:从与所述系统服务标识符相关的所述系统服务的所述第一多个版本中随机选择所述系统服务的所述第一版本;所述方法还包括:向所述第一应用提供所述系统服务的所述第一版本的第一系统服务版本标识符;以及从所述第一应用接收对执行具有所述第一系统服务版本标识符的所述系统服务的所述第一版本的请求。5.根据权利要求4所述的方法,还包括:使用所述第一系统服务版本标识符与所述第一系统服务版本的所述随机虚拟地址空间布局之间的关联结果,来对所述第一系统服务版本的随机虚拟地址进行定位;将所述第一系统服务版本的所述随机虚拟地址转化为物理地址,所述系统服务的所述第一版本的所述数据存储在所述物理地址处;以及取得所述系统服务的所述第一版本的所述数据。6.根据权利要求3所述的方法,还包括向所述系统服务的所述第一多个版本中的每个版本分配进程标识符,其中,针对所述系统服务的所述第一多个版本中的每个版本的所述进程标识符是相同的,并且其中,针对被分配所述进程标识符的所述系统服务的所述第一多个版本中的每个版本,发生以下操作:向所述系统服务的所述第一多个版本中的每个版本分配随机虚拟地址空间布局,向所述系统服务的所述第一多个版本中的每个版本分配系统服务版本标识符,以及将所述系统服务的所述第一多个版本中的每个版本的所述系统服务版本标识符与所述系统服务的系统服务标识符进行关联。7.根据权利要求1所述的方法,还包括:接收对为动态生成的执行所述系统服务的所述第一版本的代码分配代码缓冲器空间的请求;随机选择代码缓冲器地址;确定与所述代码缓冲器地址相关的代码缓冲器空间是否足够大并且可用于存储所述动态生成的代码;以及响应于确定所述代码缓冲器空间足够大以存储所述动态生成的代码,在所述代码缓冲器地址处存储所述动态生成的代码。8.根据权利要求1所述的方法,还包括:从第二应用接收对执行所述系统服务的第二请求;检测到来自所述第二应用的对执行所述系统服务的所述第二请求是对所述系统服务的攻击;启动所述系统服务的第二多个版本;向所述系统服务的所述第二多个版本中的每个版本分配随机虚拟地址空间布局,其中,所述系统服务的所述第一多个版本中的每个版本的所述随机虚拟地址空间布局和所述系统服务的所述第二多个版本中的每个版本的所述随机虚拟地址空间布局是不同的;从所述系统服务的所述第一多个版本和所述系统服务的所述第二多个版本中随机选择所述系统服务的第二版本;以及使用所述系统服务的所述第二版本的数据来执行所述系统服务。9.根据权利要求1所述的方法,其中:启动系统服务的第一个多个版本包括:在具有不同指令集架构的多个异构处理器核心中的一个处理器核心上启动所述系统服务的所述第一多个版本中的所述系统服务的多版本中的每个版本;从所述系统服务的所述第一多个版本中随机选择所述系统服务的第一版本包括:随机选择在其上启动所述系统服务的所述第一版本的所述多个异构处理器核心中的第一异构处理器核心;使用所述系统服务的所述第一版本的数据来执行所述系统服务包括:通过所述第一异构处理器核心来执行所述系统服务;以及所述方法还包括:将来自所述第一应用的对执行所述系统服务的所述第一请求传输给所述第一异构处理器核心;接收由所述第一异构处理器核心对所述系统服务的所述执行的输出;以及向所述第一应用返回所述输出。10.一种计算设备,包括:启动器,其被配置为:执行包括启动系统服务的第一个多个版本的操作;映射器,其通信地连接到所述启动器,并且被配置为执行包括向所述系统服务的所述第一多个版本中的每个版本分配随机虚拟地址空间布局的操作;请求协调器,其通信地连接到所述启动器,并且被配置为执行包括下列各项的操作:从第一应用接收对执行所述系统服务的第一请求;从所述系统服务的所述第一多个版本中随机选择所述系统服务的第一版本;以及处理器,其通信地连接到所述请求协调器,并且配置有可执行指令以执行包括使用所述系统服务的所述第一版本的数据来执行所述系统服务的操作。11.根据权利要求10所述的计算设备,其中:所述请求协调器被配置为执行还包括下列各项的操作:从所述第一应用接收对执行所述系统服务的第二请求;以及从所述系统服务的所述第一多个版本中随机选择所述系统服务的第二版本;以及所述处理器被配置有可执行指令以执行还包括使用所述系统服务的所述第二版本的数据来执行所述系统服务的操作。12.根据权利要求10所述的计算设备,其中:所述启动器被配置为执行还包括以下操作的操作:向所述系统服务的所述第一多个版本中的每个版本分配系统服务版本标识符,其中,所述系统服务的所述第一多个版本中的每个版本的所述系统服务版本标识符是不同的;所述请求协调器被配置为执行还包括下列各项的操作:将所述系统服务的所述第一多个版本中的每个版本的所述系统服务版本标识符与所述系统服务的系统服务标识符进行关联;以及存储所述系统服务的所述第一多个版本中的每个版本的所述系统服务版本标识符与所述系统服务标识符的关联结果;以及所述处理器被配置有用于执行还包括下列各项的操作的可执行指令:将所述系统服务的所述第一多个版本中的每个版本的所述系统服务版本标识符与所述系统服务的所述第一多个版本中的每个版本的所述随机虚拟地址空间布局中的相应的一个随机虚拟地址空间布局进行关联;以及存储所述系统服务的所述第一多个版本中的每个版本的所述系统服务版本标识符与所述系统服务的所述第一多个版本中的每个版本的所述随机虚拟地址空间布局中的相应的一个随机虚拟地址空间布局的关联结果。13.根据权利要求12所述的计算设备,其中:所述请求协调器被配置为执行操作,使得:从所述第一应用接收对执行所述系统服务的所述第一请求包括接收所述系统服务标识符;从所述系统服务的所述第一多个版本中随机选择所述系统服务的第一版本包括:从与所述系统服务标识符相关的所述系统服务的所述第一多个版本中随机选择所述系统服务的所述第一版本;以及所述处理器被配置有用于执行还包括下列各项的操作的可执行指令:向所述第一应用提供所述系统服务的所述第一版本的第一系统服务版本标识符;以及从所述第一应用接收对执行具有所述第一系统服务版本标识符的所述系统服务的所述第一版本的请求。14.根据权利要求13所述的计算设备,其中,所述处理器被配置有可执行指令以执行还包括下列各项的操作:使用所述第一系统服务版本标识符与所述第一系统服务版本的所述随机虚拟地址空间布局之间的关联结果,来对所述第一系统服务版本的随机虚拟地址进行定位;将所述第一系统服务版本的所述随机虚拟地址转化为物理地址,所述系统服务的所述第一版本的所述数据存储在所述物理地址处;以及取得所述系统服务的所述第一版本的所述数据。15.根据权利要求12所述的计算设备,其中:所述启动器被配置为执行还包括向所述系统服务的所述第一多个版本中的每个版本分配进程标识符的操作,其中,针对所述系统服务的所述第一多个版本中的每个版本的所述进程标识符是相同的;所述映射器被配置为执行操作,使得针对被分配所述进程标识符的所述系统服务的所述第一多个版本中的每个版本,发生向所述系统服务的所述第一多个版本中的每个版本分配随机虚拟地址空间布局;所述启动器被配置为执行操作,使得针对被分配所述进程标识符的所述系统服务的所述第一多个版本中的每个版本,发生向所述系统服务的所述第一多个版本中的每个版本分配系统服务版本标识符;以及所述处理器被配置有可执行指令以执行操作,使得针对被分配所述进程标识符的所述系统服务的所述第一多个版本中的每个版本,将所述系统服务的所述第一多个版本中的每个版本的所述系统服务版本标识符与所述系统服务的系统服务标识符进行关联。16.根据权利要求10所述的计算设备,还包括存储器分配器,其通信地连接到所述请求协调器,并且被配置为执行包括下列各项的操作:接收对为动态生成的执行所述系统服务的所述第一版本的代码分配代码缓冲器空间的请求;随机选择代码缓冲器地址;确定与所述代码缓冲器地址相关的代码缓冲器空间是否足够大并且可用于存储所述动态生成的代码;以及响应于确定所述代码缓冲器空间足够大以存储所述动态生成的代码,在所述代码缓冲器地址处存储所述动态生成的代码。17.根据权利要求10所述的计算设备,其中:所述请求协调器被配置为执行还包括下列各项的操作:从第二应用接收对执行所述系统服务的第二请求;检测到来自所述第二应用的对执行所述系统服务的所述第二请求是对所述系统服务的攻击;所述启动器被配置为执行还包括启动所述系统服务的第二多个版本的操作;所述映射器被配置为执行还包括下列操作的操作:向所述系统服务的所述第二多个版本中的每个版本分配随机虚拟地址空间布局,其中,所述系统服务的所述第一多个版本中的每个版本的所述随机虚拟地址空间布局和所述系统服务的所述第二多个版本中的每个版本的所述随机虚拟地址空间布局是不同的;所述请求协调器被配置为执行还包括以下操作的操作:从所述系统服务的所述第一多个版本和所述系统服务的所述第二多个版本中随机选择所述系统服务的第二版本;以及所述处理器被配置有可执行指令以执行还包括使用所述系统服务的所述第二版本的数据来执行所述系统服务的操作。18.根据权利要求10所述的计算设备,其中:所述启动器被配置为执行操作,使得启动系统服务的第一个多个版本包括:在具有不同指令集架构的多个异构处理器核心中的一个处理器核心上启动所述系统服务的所述第一多个版本中的所述系统服务的多版本中的每个版本;所述请求协调器被配置为执行操作,使得从所述系统服务的所述第一多个版本中随机选择所述系统服务的第一版本包括:随机选择在其上启动所述系统服务的所述第一版本的所述多个异构处理器核心中的第一异构处理器核心;所述处理器是所述第一异构处理器核心,并且被配置有可执行指令来执行操作,使得使用所述系统服务的所述第一版本的数据来执行所述系统服务包括:通过所述第一异构处理器核心来执行所述系统服务;以及所述请求协调器被配置为执行还包括下列各项的操作:将来自所述第一应用的对执行所述系统服务的所述第一请求传输给所述第一异构处理器核心;接收由所述第一异构处理器核心对所述系统服务的所述执行的输出;以及向所述第一应用返回所述输出。19.一种计算设备,包括:用于启动系统服务的第一多个版本的单元;用于向所述系统服务的所述第一多个版本中的每个版本分配随机虚拟地址空间布局的单元;用于从第一应用接收对执行所述系统服务的第一请求的单元;用于从所述系统服务的所述第一多个版本中随机选择所述系统服务的...
【专利技术属性】
技术研发人员:S·A·K·加塔拉,G·C·卡斯卡瓦尔,R·古普塔,
申请(专利权)人:高通股份有限公司,
类型:发明
国别省市:美国,US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。