一种操作系统地址空间随机化分配系统及方法技术方案

技术编号:15398124 阅读:67 留言:0更新日期:2017-05-22 11:04
一种操作系统地址空间随机化分配系统及方法,涉及信息安全领域,提高地址空间随机化分配范围,从而提高操作系统随机化的安全性。操作系统地址空间随机化分配系统,包括用户空间层和内核空间层。所述用户空间层包括:用户空间可执行程序局部随机化管理策略生成/解析器、全局随机化管理策略模块、随机事件采集模块。所述内核空间层包括:可执行程序加载模块、虚拟文件系统管理模块、管理策略解析模块、随机化因子生成模块、地址空间随机化分配模块。操作系统地址空间随机化分配方法,用于操作系统地址空间随机化分配系统。所述分配系统及方法同样适用于目前国产龙芯处理器平台。

Operating system address space random allocation system and method

The invention relates to an operating system address space random allocation system and method, which relates to the field of information security, improves the allocation range of address space randomization, thereby improving the safety of the operating system randomization. The operating system address space randomization allocation system includes the user space layer and the kernel space layer. The user space layer comprises a user space executable program, a local randomization management strategy, a generation / parser, a global randomization management policy module, and a random event acquisition module. The kernel space layer comprises an executable program loading module, a virtual file system management module, a management policy resolution module, a random factor generation module and an address space randomization allocation module. Operating system address space randomization allocation method for operating system address space randomization allocation system. The distribution system and the method are also applicable to the current domestic Godson processor platform.

【技术实现步骤摘要】
一种操作系统地址空间随机化分配系统及方法
本专利技术涉及信息安全领域,特别涉及一种操作系统地址空间随机化分配系统及方法。
技术介绍
计算机是信息存储和处理的基础设施,然而基于设计复杂性和实现的成本因素考虑,用于存储和处理信息的计算机并不安全。引起计算机不安全的主要因素包括:①缺乏专门为安全需求而设计的硬件;②操作系统从设计之初就没有考虑安全机制;③计算机语言天生的缺陷,如C语言所引入的缓冲区溢出安全隐患。这些因素的存在会给计算机系统带来不同层次的安全漏洞,给恶意软件留下可乘之机。如目前恶意软件猖獗,网络攻击不断,存储和处理信息的IT基础设施或多或少地受到病毒感染和攻击,计算机的安全运行和存储在其中的数据安全必然受到威胁。计算机安全的威胁主要来源于缓冲区溢出漏洞,内存管理的安全性是计算机安全的核心,这是因为大部分的安全漏洞与内存管理相关。如广泛流行的拒绝服务攻击(DoS)、敏感数据窃取和获取超级用户权限等攻击的深层原因都与系统缺乏安全的内存管理相关。从CVE2012Linux内核漏洞数据库来看,80%漏洞与堆栈缓冲区溢出、恶意代码执行、空指针引用、内存崩溃、指针和函数参数安全检查缺失有关。再者广泛使用的C语言并不是安全的计算机语言,对象的长度不做安全检查,并且大量使用指针,同时指针的不正确使用会给代码带来安全隐患。Linux操作系统大部分代码由C语言完成,与其他应用程序一样,同样存在缓冲区溢出安全隐患。目前缓冲区溢出漏洞依然是威胁计算机安全的第一威胁。从CVE2012Linux内核漏洞数据库来看,由缓冲区溢出直接引发的漏洞就占30%,其他形式的漏洞大部分也是由缓冲区溢出引发。缓冲区溢出漏洞攻击通过局部变量缓冲区溢出覆盖栈帧的返回地址,篡改栈帧内容植入恶意代码(如壳代码(shellcode))并使之运行。近年来计算机安全引起广泛重视,开始设计和实现有一定安全功能的硬件和软件设施。硬件技术如处理器支持不可执行的NX位和相应的页表管理机制;软件技术如编译器增加防范缓冲区溢出的堆栈保护(StackGuard)等技术。这两项技术能比较有效防范和阻止利用缓冲区溢出漏洞植入恶意代码并使之执行的攻击。然而安全技术与黑客漏洞利用攻击是相互博弈的过程,出现了缓冲区溢出的变种攻击。返回库函数(return-to-libc)攻击是缓冲区溢出的变种攻击的典型代表,它不需要在栈中植入恶意代码和在栈中执行,所以NX技术和编译器的栈保护技术对它是无效的。程序一般都会链接C函数库,即libc。return-to-libc缓冲区溢出攻击不需要在函数栈区植入代码,只需修改栈帧返回地址的内容,使其指向不安全的系统库函数。如libc中系统(system)函数只需要给它一个参数就可以执行外部代码,例如“/bin/sh”,攻击者利用库函数的漏洞进行攻击。return-to-libc的成功率依赖于系统地址空间的固定分配,漏洞利用者能比较容易地猜测出目标系统的库函数入口地址,从而能有效地实施return-to-libc攻击。如果系统放弃原有的地址空间固定分配方式,而采用地址空间随机化分配策略,能有效阻止return-to-libc攻击,因为系统随机映射库函数的地址空间提高了攻击者探测库函数的地址的难度,在64位系统中几乎探测不出,能有效防范该类缓冲区变种攻击。目前,x86通用平台的windows和Linux操作系统也支持地址空间随机化分配功能。但现有的地址空间随机化分配方式存在比较多的问题,如:①目前的随机化分配范围比较有限,10几位的随机范围,攻击者采用暴力猜测办法容易猜测出随机化分配后的地址空间分布情况。②随机数产生算法只与时钟相关,不够安全。目前系统的随机化分配的随机数产生算法依赖于系统的库函数(random函数),而该函数的算法是根据系统的时钟值来产生随机数,攻击者若获取目标系统的时钟值就容易猜测出目标应用的地址空间随机化分配后的布局而实施return-to-libc攻击。③不够灵活,系统要么选择开启地址空间随机化分配功能,即系统所有进程都采取随机化分配方式,要么关闭该功能,用户不能根据应用的安全需求自主选择开启和关闭随机化分配功能;地址空间包括:栈地址空间、堆地址空间和内存映射(mmap)地址空间,目前的随机化分配方式也不能根据具体的安全需求独立配置这三个地址空间是否采取随机化分配方式。④目前国产龙芯处理器平台的Linux操作系统还缺乏功能完善的地址空间随机化分配功能的支持。
技术实现思路
本专利技术要解决的技术问题是提供一种操作系统地址空间随机化分配系统及方法,提高地址空间随机化分配范围,从而提高操作系统随机化的安全性。为了解决上述问题,本专利技术提供了一种操作系统地址空间随机化分配系统,包括用户空间层和内核空间层,所述用户空间层包括:用户空间可执行程序局部随机化管理策略生成/解析器、全局随机化管理策略模块、随机事件采集模块;所述内核空间层包括:可执行程序加载模块、虚拟文件系统管理模块、管理策略解析模块、随机化因子生成模块、地址空间随机化分配模块;所述用户空间可执行程序局部随机化管理策略生成/解析器用于:针对可执行程序或动态库生成局部随机化管理策略并将所述局部随机化管理策略以可执行文件形式或动态库文件形式输出至所述可执行程序加载模块;以及对所述局部随机化管理策略进行解析以向用户报告针对所述可执行程序或动态库的局部随机化管理策略;所述全局随机化管理策略模块用于:保存全局随机化管理策略,其中所述全局随机化管理策略包括:全局地址空间随机化分配强制策略、全局栈空间随机化分配策略、全局堆空间随机化分配策略以及全局内存映射随机化分配策略;以及在用户配置情况下供用户从中选择全局随机化管理策略以输出至所述虚拟文件系统管理模块;所述随机事件采集模块用于:采集包括以下内容的随机事件数据:用户随机输入的键盘值和鼠标值、所述操作系统的当前中断次数和所述操作系统的当前网络交换数据量;以及将所述随机事件数据提供给随机化因子生成模块;所述可执行程序加载模块用于:对来自所述用户空间可执行程序局部随机化管理策略生成/解析器的以所述可执行文件或动态库文件形式的所述局部随机化管理策略进行分析,并且加载所述可执行文件或动态库文件且将所述局部随机化管理策略输出至所述管理策略解析模块;所述虚拟文件系统管理模块:注册有虚拟文件系统,其中所述虚拟文件系统待装载来自全局随机化管理策略模块的全局随机化管理策略,并且具有全局随机化管理策略默认配置;用于对虚拟文件系统进行解析以获取最终全局随机化管理策略,使得在所述用户配置的情况下将所述虚拟文件系统中所装载的全局随机化管理策略作为所述最终全局随机化管理策略输出至所述管理策略解析模块,而在无用户配置的情况下将所述全局随机化管理策略默认配置作为所述最终全局随机化管理策略输出至所述管理策略解析模块;所述管理策略解析模块用于:对来自所述可执行程序加载模块的所述局部随机化管理策略和来自所述虚拟文件系统管理模块的所述最终全局随机化管理策略进行解析以生成最终随机化运行策略,并将所述最终随机化运行策略输出至所述地址空间随机化分配模块;所述随机化因子生成模块用于:根据来自所述随机事件采集模块的所述随机事件数据生成随机化修正值,根据所述随机化修正值和所述操作系统的系统本文档来自技高网
...
一种操作系统地址空间随机化分配系统及方法

【技术保护点】
一种操作系统地址空间随机化分配系统,其特征在于,包括用户空间层和内核空间层,所述用户空间层包括:用户空间可执行程序局部随机化管理策略生成/解析器、全局随机化管理策略模块、随机事件采集模块;所述内核空间层包括:可执行程序加载模块、虚拟文件系统管理模块、管理策略解析模块、随机化因子生成模块、地址空间随机化分配模块;所述用户空间可执行程序局部随机化管理策略生成/解析器用于:针对可执行程序或动态库生成局部随机化管理策略并将所述局部随机化管理策略以可执行文件形式或动态库文件形式输出至所述可执行程序加载模块;以及对所述局部随机化管理策略进行解析以向用户报告针对所述可执行程序或动态库的局部随机化管理策略;所述全局随机化管理策略模块用于:保存全局随机化管理策略,其中所述全局随机化管理策略包括:全局地址空间随机化分配强制策略、全局栈空间随机化分配策略、全局堆空间随机化分配策略以及全局内存映射空间随机化分配策略;以及在用户配置情况下供用户从中选择全局随机化管理策略以输出至所述虚拟文件系统管理模块;所述随机事件采集模块用于:采集包括以下内容的随机事件数据:用户随机输入的键盘值和鼠标值、所述操作系统的当前中断次数和所述操作系统的当前网络交换数据量;以及将所述随机事件数据提供给随机化因子生成模块;所述可执行程序加载模块用于:对来自所述用户空间可执行程序局部随机化管理策略生成/解析器的以所述可执行文件或动态库文件形式的所述局部随机化管理策略进行分析,并且加载所述可执行文件或动态库文件且将所述局部随机化管理策略输出至所述管理策略解析模块;所述虚拟文件系统管理模块:注册有虚拟文件系统,其中所述虚拟文件系统待装载来自全局随机化管理策略模块的全局随机化管理策略,并且具有全局随机化管理策略默认配置;用于对虚拟文件系统进行解析以获取最终全局随机化管理策略,使得在所述用户配置的情况下将所述虚拟文件系统中所装载的全局随机化管理策略作为所述最终全局随机化管理策略输出至所述管理策略解析模块,而在无用户配置的情况下将所述全局随机化管理策略默认配置作为所述最终全局随机化管理策略输出至所述管理策略解析模块;所述管理策略解析模块用于:对来自所述可执行程序加载模块的所述局部随机化管理策略和来自所述虚拟文件系统管理模块的所述最终全局随机化管理策略进行解析以生成最终随机化运行策略,并将所述最终随机化运行策略输出至所述地址空间随机化分配模块;所述随机化因子生成模块用于:根据来自所述随机事件采集模块的所述随机事件数据生成随机化修正值,根据所述随机化修正值和所述操作系统的系统库函数来生成随机数,并对所述随机数执行2...

【技术特征摘要】
1.一种操作系统地址空间随机化分配系统,其特征在于,包括用户空间层和内核空间层,所述用户空间层包括:用户空间可执行程序局部随机化管理策略生成/解析器、全局随机化管理策略模块、随机事件采集模块;所述内核空间层包括:可执行程序加载模块、虚拟文件系统管理模块、管理策略解析模块、随机化因子生成模块、地址空间随机化分配模块;所述用户空间可执行程序局部随机化管理策略生成/解析器用于:针对可执行程序或动态库生成局部随机化管理策略并将所述局部随机化管理策略以可执行文件形式或动态库文件形式输出至所述可执行程序加载模块;以及对所述局部随机化管理策略进行解析以向用户报告针对所述可执行程序或动态库的局部随机化管理策略;所述全局随机化管理策略模块用于:保存全局随机化管理策略,其中所述全局随机化管理策略包括:全局地址空间随机化分配强制策略、全局栈空间随机化分配策略、全局堆空间随机化分配策略以及全局内存映射空间随机化分配策略;以及在用户配置情况下供用户从中选择全局随机化管理策略以输出至所述虚拟文件系统管理模块;所述随机事件采集模块用于:采集包括以下内容的随机事件数据:用户随机输入的键盘值和鼠标值、所述操作系统的当前中断次数和所述操作系统的当前网络交换数据量;以及将所述随机事件数据提供给随机化因子生成模块;所述可执行程序加载模块用于:对来自所述用户空间可执行程序局部随机化管理策略生成/解析器的以所述可执行文件或动态库文件形式的所述局部随机化管理策略进行分析,并且加载所述可执行文件或动态库文件且将所述局部随机化管理策略输出至所述管理策略解析模块;所述虚拟文件系统管理模块:注册有虚拟文件系统,其中所述虚拟文件系统待装载来自全局随机化管理策略模块的全局随机化管理策略,并且具有全局随机化管理策略默认配置;用于对虚拟文件系统进行解析以获取最终全局随机化管理策略,使得在所述用户配置的情况下将所述虚拟文件系统中所装载的全局随机化管理策略作为所述最终全局随机化管理策略输出至所述管理策略解析模块,而在无用户配置的情况下将所述全局随机化管理策略默认配置作为所述最终全局随机化管理策略输出至所述管理策略解析模块;所述管理策略解析模块用于:对来自所述可执行程序加载模块的所述局部随机化管理策略和来自所述虚拟文件系统管理模块的所述最终全局随机化管理策略进行解析以生成最终随机化运行策略,并将所述最终随机化运行策略输出至所述地址空间随机化分配模块;所述随机化因子生成模块用于:根据来自所述随机事件采集模块的所述随机事件数据生成随机化修正值,根据所述随机化修正值和所述操作系统的系统库函数来生成随机数,并对所述随机数执行230模运算来获得随机化因子,以用于在所述地址空间随机化分配模块执行地址空间随机化分配时调整地址空间的固定分配地址,并将所述随机化因子输出至所述地址空间随机化分配模块;以及所述地址空间随机化分配模块用于:根据来自所述管理策略解析模块的所述最终随机化运行策略和来自所述随机化因子生成模块的所述随机化因子来执行所述地址空间随机化分配,使得所述地址空间具有随机化地址。2.如权利要求1所述的分配系统,其特征在于,所述可执行文件或动态库文件中具有用于存放所述局部随机化管理策略的程序段头。3.如权利要求2所述的分配系统,其特征在于,所述可执行程序加载模块用于对来自所述用户空间可执行程序局部随机化管理策略生成/解析器的以所述可执行文件或动态库文件形式的所述局部随机化管理策略进行分析包括:所述可执行程序加载模块对所述可执行文件或动态库文件中的程序段头进行解析以提取出所述局部随机化管理策略。4.如权利要求1、2或3所述的分配系统,其特征在于,所述局部随机化管理策略包括:局部栈空间随机化分配策略、局部堆空间随机化分配策略以及局部内存映射空间随机化分配策略。5.如权利要求4所述的分配系统,其特征在于,所述管理策略解析模块通过如下步骤对所述局部随机化管理策略和所述最终全局随机化管理策略进行解析以生成最终随机化运行策略:全局强制判断步骤:判断所述全局地址空间随机化分配强制策略是否开启,如果是,则使所述操作系统的所有进程都实施栈空间随机化分配、堆空间随机化分配以及内存映射空间随机化分配,否则进入全局栈判断步骤、全局堆判断步骤以及全局内存映射判断步骤;全局栈判断步骤:判断所述全局栈空间随机化分配策略是否开启,如果是,则进入局部栈判断步骤,否则使栈空间正常分配;局部栈判断步骤:判断所述局部栈空间随机化分配策略是否开启,如果是,则使与所述可执行文件或动态库文件对应的栈空间实施随机化分配,否则使栈空间正常分配;全局堆判断步骤:判断所述全局堆空间随机化分配策略是否开启,如果是,则进入局部堆判断步骤,否则使堆空间正常分配;局部堆判断步骤:判断所述局部堆空间随机化分配策略是否开启,如果是,则使与所述可执行文件或动态库文件对应的堆空间实施随机化分配,否则使堆空间正常分配;全局内存映射判断步骤:判断所述全局内存映射空间随机化分配策略是否开启,如果是,则进入局部内存映射判断步骤,否则使内存映射空间正常分配;以及局部内存映射判断步骤:判断所述局部内存映射空间随机化分配策略是否开启,如果是,则使与所述可执行文件或动态库文件对应的内存映射空间实施随机化分配,否则使内存映射空间正常分配。6.如权利要求1、2、3或5所述的分配系统,其特征在于,所述全局随机化管理策略默认配置是:开启或关闭所述全局栈空间随机化分配策略、开启或关闭所述全局堆空间随机化分配策略以及开启或关闭所述全局内存映射空间随机化分配策略。7.如权利要求6所述的分配系统,其特征在于,所述全局随机化管理策略默认配置是:开启所述全局栈空间随机化分配策略、开启所述全局堆空间随机化分配策略以及开启所述全局内存映射空间随机化分配策略。8.如权利要求1、2、3、5或7所述的分配系统,其特征在于,栈空间随机化地址=栈空间固定分配地址-随机化因子;以及堆空间随机化地址=堆空间固定分配地址+随机化因子;内存映射空间随机化地址=内存映射空间固定分配地址+随机化因子。9.如权利要求8所述的分配系统,其特征在于,所述操作系统是Linux操作系统。10.如权利要求9所述的分配系统,其特征在于,所述可执行程序采用elf格式。11.如权利要求9或10所述的分配系统,其特征在于,所述虚拟文件系统采用proc格式。12.一种操作系统地址空间随机化分配方法,其特征在...

【专利技术属性】
技术研发人员:游瑞邦涂碧波孟丹
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:北京,11

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

1