[发明专利]数据流分析方法和装置有效
申请号: | 201310548222.2 | 申请日: | 2013-11-07 |
公开(公告)号: | CN103809966A | 公开(公告)日: | 2014-05-21 |
发明(设计)人: | J·杜比;S·A·瓜尔涅里;M·皮斯托亚;O·特里普 | 申请(专利权)人: | 国际商业机器公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 北京市中咨律师事务所 11247 | 代理人: | 于静;张亚非 |
地址: | 美国*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据流 分析 方法 装置 | ||
技术领域
本发明一般地涉及程序代码的静态分析,更具体地说,涉及数据流分析。
背景技术
本节旨在为下面公开的本发明提供背景或上下文。此处的描述可以包括概念,这些概念可以被贯彻,但不一定是先前构想、实现或描述的概念。因此,除非在此另外明确指明,否则本节中描述的内容不是本申请中的描述的现有技术,并且不认为通过包括在本节中而成为现有技术。
污染分析包括搜索从不可信输入点(源)到敏感消费者(汇(sink))的数据流。在静态版本的污染分析中,检查程序而不执行构成程序的代码。相反,创建程序的模型。这种模型可以包括通常使用流图表示的数据流,该流图是在程序执行期间可能遍历程序的所有路径的表示。这些数据流是潜在的安全问题,除非每个数据流经过致使数据安全的操作(例如杀毒器)。给定调用图G,静态污染分析算法典型地包括两个阶段:
1)遍历G以便在代码中查找源、汇和杀毒器:
●源是通过字段读取指令获得的值,或者是从调用返回到某些方法(称为源方法)的值;
●汇可以是某些对象的字段或者是给定方法(称为汇方法)的参数;以及
●杀毒器只是方法。
2)从源开始执行过程间数据流分析,以便判定是否具有到达汇而未由杀毒器拦截的污染流。该分析以源结构定义的变量为种子。即,字段读取指令和源方法使用污染值设置种子,并且通过数据流分析遵循污染值以便确定污染流。
尽管这种分析是有利的,但这些常规分析仍然具有问题。可以出现的一个问题包括混淆(aliasing),其中在一个实例中,多个对象的多个字段引用同一值。混淆还可以涉及堆中的关系,即,同一对象的多个本地名称。众所周知,堆是程序用于动态存储器分配的存储器区域。就污染分析而言,用于仿真正在运行的程序的模型还仿真该程序的堆。堆中的混淆将存在问题,因为如果具有多个本地名称的对象被污染,则所有的多个本地名称也应该标记为被污染。但是,许多污染分析工具没有考虑或者不能处理堆中的混淆。
发明内容
在一个示例性实施例中,公开一种方法,所述方法包括:使用适合于程序污染分析的程序数据流模型,利用基于所述程序的堆模型从污染源到所述堆中的实体来跟踪信息。执行所述跟踪以便所述信息与污染传播相关,并且针对所述堆中的所述实体以字段敏感的方式执行所述跟踪。所述方法包括:基于所述跟踪的输出,执行数据流分析以便确定从所述污染源通过数据流路径到使用所述污染的汇的污染流。
在另一示例性实施例中,一种装置包括:被配置为使用适合于程序污染分析的程序数据流模型,利用基于所述程序的堆模型从污染源到所述堆中的实体来跟踪信息的模块,其中执行所述跟踪以便所述信息与污染传播相关,并且针对所述堆中的所述实体以字段敏感的方式执行所述跟踪;以及被配置为基于所述跟踪的输出,执行数据流分析以便确定从所述污染源通过数据流路径到使用所述污染的汇的污染流的模块。
附图说明
图1是示出跟踪被污染访问路径的代码段;
图2是没有堆问题的代码段;
图3是具有堆问题的代码段;
图4是图3的代码段的堆图的可视化;
图5是根据本发明的示例性实施例的示例性逻辑流程图的框图,其示出示例性方法的操作、包含在计算机可读存储器中的计算机程序指令的执行结果和/或在硬件中实现的逻辑执行的功能;
图6是根据本发明的示例性实施例的示例性逻辑流程图的框图,其示出图5中的方框的示例性操作,并且进一步示出示例性方法、包含在计算机可读存储器中的计算机程序指令的执行结果和/或在硬件中实现的逻辑执行的功能;以及
图7是适合于执行本发明的示例性实施例的系统的框图。
具体实施方式
通过参考图1-7描述此处的示例性实施例。具体地说,对图5和6的某些方框的描述参考其它附图。图5是根据本发明的示例性实施例的示例性逻辑流程图的框图,其示出示例性方法的操作、包含在计算机可读存储器中的计算机程序指令的执行结果和/或在硬件中实现的逻辑执行的功能,图6是图5中的一个方框执行的操作的类似框图。
首先,通过对程序进行静态建模(即,不执行程序),执行污染分析以便确定被污染数据流。可以执行污染分析以便输出通过程序的被污染路径集合。可以进一步执行污染分析以便例如检查被污染路径集合,并且例如通过判定任何被污染路径是否具有针对被污染数据执行的正确操作(例如,在正确位置),针对被污染路径执行额外分析以致使数据安全。这种额外分析将减少被污染路径的数量。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310548222.2/2.html,转载请声明来源钻瓜专利网。