【技术实现步骤摘要】
本专利技术涉及信息安全
,涉及一种移动智能终端的操作系统的堆溢出漏洞验证方法,更具体地,涉及一种Android系统的堆溢出漏洞验证方法。
技术介绍
随着移动互联网的快速发展,Android系统已经成为目前全球市场占比最高的移动智能终端操作系统。基于Android系统的智能设备作为用户日常社交通信和移动办公的媒介,存储了大量的用户隐私信息和敏感数据,因此很容易成为恶意攻击的主要目标。近年来,Android系统不断曝光各种漏洞,严重影响了系统自身的安全性,进而威胁到上层应用软件的数据、业务和代码安全。Android系统更新机制慢、更新周期长和版本碎片化问题,使得系统漏洞的补丁无法及时有效地部署到用户的终端设备上,这在无形中提升了系统漏洞的利用价值,为攻击者提供了可乘之机。其中,堆溢出漏洞是一类危害很大的Android系统漏洞。堆溢出漏洞能导致堆内存空间中的缓冲区溢出,覆盖一些关键数据,让攻击者有机会篡改系统的执行流程,控制系统去执行恶意代码,达到窃取隐私信息和敏感数据的目的。为了提升系统安全性,有必要对各个版本的Android系统中的堆溢出漏洞进行验证,以判断Android系统是否存在特定的堆溢出漏洞,并且这些漏洞能否被攻击者利用。中国专利技术专利CN104751056A披露了一种基于攻击库的漏洞验证系统与方法,该方法以漏洞扫描结果为基础设计验证方法,在虚拟机中构建合适的模拟攻击环境,编写漏洞验证脚本进行测试,以验证目标漏洞的存在性和危害性。多个漏洞验证脚本形成一个攻击库,当新的漏洞出现时,匹配攻击库中的漏洞验证脚本进行验证。该方案是在Windows平 ...
【技术保护点】
一种Android系统的堆溢出漏洞验证装置,其特征在于,所述装置包括漏洞检测模块、利用判定模块和利用验证模块;其中,漏洞检测模块,用于向堆缓冲区填写第一输入样本,检测是否发生堆溢出,以确定堆溢出漏洞的存在性;利用判定模块,用于根据漏洞检测模块的结果,向堆缓冲区填写第二输入样本,通过执行漏洞引发Android系统的系统进程崩溃,以确定堆溢出漏洞被利用的可能性;利用验证模块,用于根据利用判定模块的结果,向堆缓冲区填写第三输入样本,通过执行漏洞控制Android系统的系统进程的执行流程,以验证堆溢出漏洞的可利用性。
【技术特征摘要】
1.一种Android系统的堆溢出漏洞验证装置,其特征在于,所述装置包括漏洞检测模块、利用判定模块和利用验证模块;其中,漏洞检测模块,用于向堆缓冲区填写第一输入样本,检测是否发生堆溢出,以确定堆溢出漏洞的存在性;利用判定模块,用于根据漏洞检测模块的结果,向堆缓冲区填写第二输入样本,通过执行漏洞引发Android系统的系统进程崩溃,以确定堆溢出漏洞被利用的可能性;利用验证模块,用于根据利用判定模块的结果,向堆缓冲区填写第三输入样本,通过执行漏洞控制Android系统的系统进程的执行流程,以验证堆溢出漏洞的可利用性。2.根据权利要求1所述的装置,其特征在于,所述第一输入样本比堆缓冲区大小多四个字节,多出的该四个字节为溢出值value1,用来覆盖堆中C++对象的虚函数表指针;所述漏洞检测模块用于:创建C++对象,监控该对象所在的堆内存区域;该内存区域的前四个字节存放虚函数表指针,记录该值为vftp1;向堆缓冲区填写第一输入样本,记录该内存区域的前四个字节的值为vftp2;如果满足条件vftp2!=vftp1且vftp2=value1,确定C++对象的虚函数表指针被第一输入样本的溢出值覆盖,确定堆溢出漏洞存在。3.根据权利要求1所述的装置,其特征在于,所述利用判定模块用于:构造第二输入样本,所述第二输入样本比缓冲区大小多四个字节,多出的该四个字节为溢出值,并且该值位于堆缓冲区的内存地址区间内,用来覆盖堆中C++对象的虚函数表指针;向堆缓冲区填写所述第二输入样本,堆溢出后引发系统进程崩溃,基于系统进程在虚函数调用点崩溃,确定堆溢出漏洞利用可能性。4.根据权利要求1所述的装置,其特征在于,所述利用验证模块用于构造第三输入样本,所述第三输入样本比缓冲区大小多四个字节,包含:溢出值、伪造虚函数表、伪造函数以及填充数据;其中,多出的该四个字节为溢出值,其值被设置为伪造虚函数表在堆内存空间中的起始地址,用于覆盖C++对象的虚函数表指针;其中,伪造虚函数表中含有一个伪造函数指针,其值被设置为伪造函数在堆内存空间中的起始地址,用来误导系统进程调用相应的虚函数,执行伪造函数;其中,伪造函数由多个汇编指令组成,用于将堆缓冲区的内存区域标记为可执行,并且实现一个显式的功能;其中,填充数据,用于追加在伪造虚函数表和伪造函数之后,以实现堆内存空间的字节对齐,并保证所述第三输入样本的大小比缓冲区大小多四个字节。5.根据权利要求4所述的装置,其特征在于,所述利用验证模块用于:向堆缓冲区填写第三输入样本,触发堆缓冲区溢出;C++对象的虚函数表指针将会被溢出值覆盖,指向堆内存空间中伪造虚函数表;系统进程调用虚函数,根据被覆盖的虚函数表指针找到伪造虚函数表,被伪造函数指针错误地引导到伪造函数处执行指令;...
【专利技术属性】
技术研发人员:朱大立,李莹,冯维淼,郭辰阳,邓习海,
申请(专利权)人:中国科学院信息工程研究所,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。