【技术实现步骤摘要】
基于动态二进制平台检测运行时程序漏洞的方法
本专利技术涉及虚拟机与程序分析
,特别涉及一种基于动态二进制平台检测运行时程序漏洞的方法。
技术介绍
近年来,随着计算机技术的蓬勃发展,软件应用的爆炸式增长以及计算机系统规模与复杂性的增加都使得计算机系统与软件的安全越来越受到重视。软件从开发到发布都不可避免的存在安全漏洞,这些漏洞造成的后果小到系统崩溃,大到攻击者获取相应应用程序的完全控制权。因此需要在程序应用前对程序存在的漏洞进行检测。以漏洞检测为测试目标的软件行为分析方法通常可分为两个主要部分,一部分是具体的测试方法,另一部分是测试用例的生成。在开源操作系统、开源软件以及GPL的推动下,面向源代码的漏洞检测方法取得了很好的发展。但是出于商业利益的考虑,大部分软件厂商不公开其源代码,而是直接发布编译好的执行程序。因此需要在运行执行程序前,对执行程序存在的漏洞进行检测。目前,对于没有源代码的二进制程序,使用二进制插装技术来进行漏洞检测,通过对二进制文件的汇编指令进行插装来获得调用信息,执行回调函数进行相关操作。对汇编指令的插装方式包括两种:静态二进制插装和动态二进 ...
【技术保护点】
一种基于动态二进制平台检测运行时程序漏洞的方法,其特征在于,包括如下步骤:S1、基于二进制代码执行平台Pin,对主存和寄存器中来自外部渠道的输入进行识别并将其作为可疑污染源加以标记;S2、通过中间指令层实现可疑污染源传播行为的跟踪,根据各指令操作数的污点状态对污点行为进行分析,其中污点状态包括被污染、未被污染和受控污染;S3、建立内存模型和寄存器模型记录每个主存字节和寄存器字节的污点状态。
【技术特征摘要】
1.一种基于动态二进制平台检测运行时程序漏洞的方法,其特征在于,包括如下步骤:S1、基于二进制代码执行平台Pin,对主存和寄存器中来自外部渠道的输入进行识别并将其作为可疑污染源加以标记;S2、通过中间指令层实现可疑污染源传播行为的跟踪,根据各指令操作数的污点状态对污点行为进行分析,其中污点状态包括被污染、未被污染和受控污染;S3、建立内存模型和寄存器模型记录每个主存字节和寄存器字节的污点状态。2.如权利要求1所述的基于动态二进制平台检测运行时程序漏洞的方法,其特征在于,所述的步骤S2,具体包括:将待检测二进制程序中的所有指令进行分类,包括算数/逻辑指令、存储器访问指令、控制传输指令、可传播污染点行为的指令、不帮助传播污点行为的指令以及执行后可以清理受污染和/或受控污染数据的指令;将分析代码防止在基本块的末尾,以对分类后的指令执行之前获取寄存器值;在获取寄存器值后,利用每个指令的操作数来调用相应的指令处理过程来执行指令分析任务。3.如权利要求1所述的基于动态二进制平台检测运行时程序漏洞的方法,其特征在于,所述的内存模型具体用于:使用两比特来识别所述主存字节的污染状态,并在字节被污染或受控污染时,将该字节添加在链接哈希表中;所述的寄存器模型具体用于:对所述寄存器进行分类,对每个类别的寄存器采用对应的数组记录其污点状态。4.如权利要求2所述的基于动态二进制平台检测运行时程序漏洞的方法,其特征在于,所述的将分析代码放置在基本块的末尾,以对分类后的指令执行之前获取寄存器值,具体包括:将存储在所述二进制代码执行平台Pin中的基本块所有指令时复制到软件保留指令缓存中;利用INS_InsertCall()获取存储在itrace.out中的寄存器值,并将获取的寄存器值存储在同一个数组中...
【专利技术属性】
技术研发人员:朱二周,周泽人,李学俊,
申请(专利权)人:安徽大学,
类型:发明
国别省市:安徽,34
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。