[发明专利]一种基于指针分析的软件漏洞检测方法有效
申请号: | 201410201648.5 | 申请日: | 2014-05-06 |
公开(公告)号: | CN104021073B | 公开(公告)日: | 2017-02-01 |
发明(设计)人: | 曾庆凯;李会朋 | 申请(专利权)人: | 南京大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 南京瑞弘专利商标事务所(普通合伙)32249 | 代理人: | 陈建和 |
地址: | 211164 江苏省南京市江宁区*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 一种基于指针分析的软件漏洞检测方法,步骤如下借助插装软件,有3个主要的插装操作,分别完成基本数据类型恢复、复杂数据类型恢复和漏洞检测基本数据类型恢复的插装,插装操作为在属于类型敏感类指令集合的指令后面插入类型收集代码,然后根据不同的汇编指令插入不同的类型传播代码;复杂数据类型恢复的插装,插装操作为在内存申请类指令集合后面插入指针收集代码,根据不同的汇编指令插入指针分析代码,在指针分析的过程中便实现了对复杂数据类型的恢复;漏洞检测的插装,插装操作为在程序的外部输入位置插入污染标记代码,根据汇编指令插入污点传播代码,在安全敏感点插入安全检测代码。 | ||
搜索关键词: | 一种 基于 指针 分析 软件 漏洞 检测 方法 | ||
【主权项】:
一种基于指针分析的软件漏洞检测方法,其特征是步骤如下:借助插装软件,有3个主要的插装操作,分别完成基本数据类型恢复、复杂数据类型恢复和漏洞检测的插装:基本数据类型恢复的插装,其输入文件为要插装的可执行程序,插装操作为:在属于类型敏感类指令集合的指令后面插入类型收集代码,然后根据不同的汇编指令插入不同的类型传播代码;基本数据类型指程序中int、float基本变量类型;在程序分析的过程中,当遇到库函数调用或系统调用特殊指令时,在其后插入类型收集代码,以便从中提取出相关的类型信息;根据汇编指令的特征,插入对得到的类型信息进行类型推导的代码以及类型生成代码;插装后的可执行程序运行时,便得到了基本数据类型信息;复杂数据类型恢复的插装,其输入文件为恢复出来的基本数据类型以及要插装的可执行程序,插装操作为:在内存申请类指令集合后面插入指针收集代码,根据不同的汇编指令插入指针分析代码,在指针分析的过程中便实现了对复杂数据类型的恢复;复杂数据类型指数组和结构体,此类变量操作均是通过指针实现;在程序分析的过程中,在程序申请内存类指令的后面插入指针收集代码,然后根据汇编指令的特点插入其对应的指针传播、分析以及复杂数据结构重构代码;插装后的可执行程序运行时,便得到了复杂数据类型信息;漏洞检测的插装,其输入文件为恢复出来的复杂数据类型以及要插装的可执行程序,插装操作为:在程序的外部输入位置插入污染标记代码,根据汇编指令插入污染传播代码,在安全敏感点插入安全检测代码;在插装后的程序执行时,当安全检测代码检测到某个变量既包含污染属性又包含安全敏感属性,便判定出可能的安全漏洞;以带有数据类型信息的可执行程序为输入,进行漏洞检测代码的插装;使用污染分析的方法,在程序外部输入的指令后面插入污染标记代码;将内存写操作所涉及的变量标记为敏感变量,在敏感变量后面插入敏感标记代码;根据汇编指令特点插入其对应的污染传播代码;插装后的可执行程序运行时,经过污染传播,当一个变量同时拥有污染和敏感两个属性时,则判断此处易形成漏洞。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410201648.5/,转载请声明来源钻瓜专利网。