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%,其他形式的漏洞大部分也是 ...
【技术保护点】
一种操作系统地址空间随机化分配系统,其特征在于,包括用户空间层和内核空间层,所述用户空间层包括:用户空间可执行程序局部随机化管理策略生成/解析器、全局随机化管理策略模块、随机事件采集模块;所述内核空间层包括:可执行程序加载模块、虚拟文件系统管理模块、管理策略解析模块、随机化因子生成模块、地址空间随机化分配模块;所述用户空间可执行程序局部随机化管理策略生成/解析器用于:针对可执行程序或动态库生成局部随机化管理策略并将所述局部随机化管理策略以可执行文件形式或动态库文件形式输出至所述可执行程序加载模块;以及对所述局部随机化管理策略进行解析以向用户报告针对所述可执行程序或动态库的局部随机化管理策略;所述全局随机化管理策略模块用于:保存全局随机化管理策略,其中所述全局随机化管理策略包括:全局地址空间随机化分配强制策略、全局栈空间随机化分配策略、全局堆空间随机化分配策略以及全局内存映射空间随机化分配策略;以及在用户配置情况下供用户从中选择全局随机化管理策略以输出至所述虚拟文件系统管理模块;所述随机事件采集模块用于:采集包括以下内容的随机事件数据:用户随机输入的键盘值和鼠标值、所述操作系统的当前中断 ...
【技术特征摘要】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。