[发明专利]一种抗隐式污点传播的动态污点检测方法及系统有效
申请号: | 202010064646.1 | 申请日: | 2020-01-20 |
公开(公告)号: | CN111240991B | 公开(公告)日: | 2023-03-14 |
发明(设计)人: | 刘思源 | 申请(专利权)人: | 重庆富民银行股份有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 重庆强大凯创专利代理事务所(普通合伙) 50217 | 代理人: | 蒙捷 |
地址: | 401121 重庆市*** | 国省代码: | 重庆;50 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 抗隐式 污点 传播 动态 检测 方法 系统 | ||
本发明涉及软件安全性分析技术领域,特别涉及一种抗隐式污点传播的动态污点检测方法及系统,所述方法应用于所述系统,所述方法包括S1、将从外部获取的不可信数据标记为污点数据,并将所述污点数据存入内存中;S2、采集在内存中被调用的污点数据,并根据污点标记策略对污点数据进行筛选、过滤得到相应的有效污点数据;S3、捕获被测程序载入污点数据运行后的数据流信息,将有效污点数据按字节变异,并将变异后的污点数据作为模拟数据重新载入被测程序,再捕获隐式数据流信息;S4、根据所捕获的数据流信息和隐式数据流信息进行对比,寻找数据流信息与隐式数据流信息之间的依赖关系。本发明解决了现有的污点检测方法无法检测隐式污点传播的问题。
技术领域
本发明涉及软件安全性分析技术领域,特别涉及一种抗隐式污点传播的动态污点检测方法及系统。
背景技术
污点分析技术通过对不信任的输入数据做标记,静态跟踪程序运行过程中污点数据的传播路径,检测使用污点数据的不安全方式,用这种方法可以检测到敏感数据(如字符串参数)被改写而造成的缓冲区溢出、格式化字符串等问题。当检测到一个攻击时,污点分析技术可以提供详细的攻击过程,给出由于污点数据所导致的漏洞被利用的过程。隐式污点传播则是为了对抗显示污点传播检测工具而提出来的一类攻击方法,用于绕过现有的污点检测工具,并实施进一步的攻击。隐式污点传播包括多种攻击方式:控制流依赖方式、良心代码构造方式以及边信道攻击方式。
如图1所示,以现有简单编码攻击为例,实现隐式污点传播。简单编码攻击是一种数组索引攻击方式,XTainted的值将用于索引判断语句中的控制条件,YUntainted的值将通过判断语句中的控制条件的取值进行传递。这样,XTainted到YUntainted的非传值过程将无法被显式污点分析工具截获。通过精心编写控制语句将可以达到传送所有ASCII码表中的所有字符的效果,通过这种攻击手段攻击者可以获得一个完整的未标记为污点数据的字符数组。
简单编码攻击中的每一个用于if控制语句的symbol都来自一个未被标记为污点数据的字符数组,用于比对XTainted的值,在判断条件为真时,将symbol的值传递给YUntainted。通过这种方法,每一个XTainted的值都会被传递给YUntainted,同时也躲避了显式污点分析工具的审查。
动态污点分析技术是一种针对数据信息流动的分析方法,该方法贯穿程序运行始终,跟踪数据在程序中的流动情况,记录程序对该数据的处理方式,求解目的数据与源数据的数学依赖关系。污点分析技术主要分为三个方面:污点标记、污点传播和污点检查。污点标记是指将来自文件、键盘、网络等不可信外部渠道输入的数据标记为“污点”。源数据进入程序之后,将会因为被程序处理而导致值的传递。因为源数据是不可信的,所以经过各种运算得到的数据依然是不可信的也会被打上污点属性,这个过程就是污点传播。数据在程序内部的流动,将引起污点集合的变更,准确地识别出哪些数据需要被标记,哪些数据需要被移除污点属性即是污点检查的工作。还可以对引起污点蔓延的操作进行精确定义,即污点的传播策略。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于重庆富民银行股份有限公司,未经重庆富民银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010064646.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种可调节的汽车座椅头枕及汽车座椅
- 下一篇:带有压力检测的滚边头组件