路径敏感的源码访问关联变量模式挖掘及相关缺陷检测

来源 :中国人民大学 | 被引量 : 0次 | 上传用户:simetl12
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
利用数据挖掘技术可以从海量数据中获取有价值的知识模式。广泛存在的软件源码作为一种特殊的数据形式,在其上应用数据挖掘技术进行源码形式的信息挖掘,已经成为一个新颖而重要的课题。其中,挖掘软件源码中隐含的缺陷检测规则并自动地检测源码中存在的缺陷和漏洞,近年来成为信息安全与数据挖掘领域的一个研究热点。以自动或者较少线索的方式挖掘源码中的安全规则并自动地定位系统中的安全漏洞或缺陷,已经成为一种新的软件源码安全检测手段。  尽管目前已有大量工作研究了源码隐含缺陷检测规则的挖掘,取得了较大的进步,但仍存在如下问题:大多数工作采用路径非敏感的分析方法来挖掘源码中的规则,此方法虽比较简单但是会带来一定的噪声数据,对模式挖掘的准确率产生很大的消极影响;虽然有一些工作采用了路径敏感的方式进行源码模式的挖掘,但是他们只是简单地将各个可能的路径作为挖掘单位,没有充分考虑其存在的问题及其解决办法。  为解决以上工作存在的问题,本文针对软件源码中访问关联变量更新不一致引发的安全问题,提出了一种利用路径敏感的方式来挖掘源码系统中的访问关联变量更新规则并且自动地检测系统中的不一致更新缺陷的方法。该方法采用路径敏感的方式进行了源码访问关联变量分析,可以避免源码中互斥执行及条件执行的变量作为访问关联变量被挖掘出来。所涉及的互斥执行变量主要表现为存在于系统中永远不会同时执行的路径分支上(如if/else语句分支)的变量集合;条件执行的变量主要表现为存在于系统中可能不同时执行的条件分支上的变量集合。针对以上二类变量,本文引入路径敏感的分析来挖掘源码的访问关联变量,可以获得更加精确的挖掘结果。  使用路径敏感的分析方法,面临如下挑战:路径权重不均问题、路径爆炸问题,这也是传统源码挖掘领域很少引入路径敏感挖掘方法的原因。针对以上挑战,本文分别给出了有效的解决办法。路径权重不均问题,其产生的原因是由于程序中不同条件分支层次的路径比重不均衡,本文通过将每个所涉及的变量存储到唯一的项集的方式来解决此问题;路径爆炸问题产生的原因是程序中存在过多的条件分支而导致了计算复杂度的急剧上升,我们通过引入一些信息对路径分支进行过滤,从而缓解此问题。  本文在真实的大型源码系统(Linux内核源码)上评估了提出的方法。实验结果表明本文提出的方法对比于以前的工具,在准确率,计算效率以及有效性方面都表现出了一定的优势。
其他文献
北京大学研发的基于模式的软件过程构造工具集能够利用可复用的过程模式高效的定制适应特定项目需求的过程模型,此模型采用BPEL语言描述,可以在流程引擎的驱动下执行,为软件过程
随着信息技术日益广泛而深入地应用,现在的信息工程越来越庞大复杂,也越来越难以控制,在信息工程建设过程中,合同报表巨多,数据量庞大,并且数据间存在着密切的联系,为了实现监理的“
问答社区已成为一个受大众欢迎的网聚众人智慧的网络交流方式,现有的网络问答社区有百度知道、Yahoo! Answer、爱问知识人、搜搜问答等等。问答社区已经成为现代网络生活中不
缺陷报告是最重要的软件制品之一,它们记录着各个缺陷的详细信息,在软件的开发和维护过程中发挥着极其重要的作用。目前,软件开源社区基本都拥有自己的缺陷报告平台,用来提出、讨
物联网是世界信息产业发展的第三次浪潮,是各国政府和联盟组织关注的重点和亟待发展的科技前沿。无线传感器网络是构造物联网的子网络之一,为物联网提供了信息感知和无线通信等
ERP是当前国际上先进的企业管理模式。它可以对企业所拥有的财、物、人、信息、时间和空间等管理因素进行综合平衡和优化,面向全球化市场,协调企业的各个管理部门,围绕市场开展
为了提高互联网的服务质量,需要对一些占据大量带宽和流量的即时通讯应用进行流量识别,以便于网络管理。更为重要的是,即时通讯应用用户众多,信息量大,传播迅速。为了净化互联网环
1997年Phillips在q-整数的基础上引入了Bernstein多项式的一种推广,即q-Bernstein多项式算子。该算子引起了很多人从不同的角度研究。当q取1时,q-Bernstein多项式就是经典的Ber
Docker是容器虚拟化的主流技术和典型代表,它将应用及其依赖和运行环境打包为标准的、自包含的镜像(Docker Image)发布,通过创建容器实例(Docker Container)实现应用的快速交付
随着多核时代的到来,共享内存的多线程编程开始普及。多个线程在并发访问共享内存时会存在内存一致性问题。Java语言通过直接在语言层定义内存模型来解决该问题。Java内存模型