【技术实现步骤摘要】
一种抗隐式污点传播的动态污点检测方法及系统
本专利技术涉及软件安全性分析
,特别涉及一种抗隐式污点传播的动态污点检测方法及系统。
技术介绍
污点分析技术通过对不信任的输入数据做标记,静态跟踪程序运行过程中污点数据的传播路径,检测使用污点数据的不安全方式,用这种方法可以检测到敏感数据(如字符串参数)被改写而造成的缓冲区溢出、格式化字符串等问题。当检测到一个攻击时,污点分析技术可以提供详细的攻击过程,给出由于污点数据所导致的漏洞被利用的过程。隐式污点传播则是为了对抗显示污点传播检测工具而提出来的一类攻击方法,用于绕过现有的污点检测工具,并实施进一步的攻击。隐式污点传播包括多种攻击方式:控制流依赖方式、良心代码构造方式以及边信道攻击方式。如图1所示,以现有简单编码攻击为例,实现隐式污点传播。简单编码攻击是一种数组索引攻击方式,XTainted的值将用于索引判断语句中的控制条件,YUntainted的值将通过判断语句中的控制条件的取值进行传递。这样,XTainted到YUntainted的非传值过程将无法被显式污点分析 ...
【技术保护点】
1.一种抗隐式污点传播的动态污点检测方法,其特征在于:包括以下步骤,/nS1、将从外部获取的不可信数据标记为污点数据,并将所述污点数据存入内存中;/nS2、采集在内存中被调用的污点数据,并根据污点标记策略对污点数据进行筛选、过滤得到相应的有效污点数据;/nS3、捕获被测程序载入污点数据运行后的数据流信息,将有效污点数据按字节变异,并将变异后的污点数据作为模拟数据重新载入被测程序,再捕获隐式数据流信息;/nS4、根据所捕获的数据流信息和隐式数据流信息进行对比,寻找数据流信息与隐式数据流信息之间的依赖关系。/n
【技术特征摘要】
1.一种抗隐式污点传播的动态污点检测方法,其特征在于:包括以下步骤,
S1、将从外部获取的不可信数据标记为污点数据,并将所述污点数据存入内存中;
S2、采集在内存中被调用的污点数据,并根据污点标记策略对污点数据进行筛选、过滤得到相应的有效污点数据;
S3、捕获被测程序载入污点数据运行后的数据流信息,将有效污点数据按字节变异,并将变异后的污点数据作为模拟数据重新载入被测程序,再捕获隐式数据流信息;
S4、根据所捕获的数据流信息和隐式数据流信息进行对比,寻找数据流信息与隐式数据流信息之间的依赖关系。
2.根据权利要求1所述的一种抗隐式污点传播的动态污点检测方法,其特征在于:所述步骤S1中污点数据的标记具体包括以下步骤:
S101、根据配置文件的污点标记策略,建立起外部不可信数据与污点标记的一一映射关系。
3.根据权利要求1所述的一种抗隐式污点传播的动态污点检测方法,其特征在于:所述不可信数据为引起程序产生各类安全问题的数据,不可信数据的来源包括:键盘的输入、读写磁盘的输入、网络接口的输入和客户端Web参数。
4.根据权利要求1所述的一种抗隐式污点传播的动态污点检测方法,其特征在于:所述步骤S2中进行筛选、过滤得到相应的有效污点数据具体包括以下步骤:
S201、使用四元组序列(P,T,x,c)表示漏洞位置,其中P代表源程序,x是输入数据,c是脆弱性条件,T是x在P上的执行路径;
S202、使用T(P,c)表示漏洞签名,即由输入x所获得的程序P上的执行路径为T,脆弱性条件c在执行路径T上被检查;
S203、如果T满足脆弱性条件,记作|T|=c;定义脆弱性语言Lp*c,描述对于程序P,输入x,产生执行路径满足脆弱性条件c;令∑*表示程序P的输入域,Lp*c={x∈∑*|T(P,c)=c},那么一个漏洞签名满足下列属性:
其中exploit代表满足脆弱性条件,产生漏洞;benign代表不满足脆弱性条件,不可以被利用。
5.根据权利要求1所述的一种抗隐式污点传播的动态污点检测方法,其特征在于:所述步骤S3中污点数据的变异具体包括以下步骤:
S301、捕获被测程序载入有效污点...
【专利技术属性】
技术研发人员:刘思源,
申请(专利权)人:重庆富民银行股份有限公司,
类型:发明
国别省市:重庆;50
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。