源代码挖掘论文-孟庆坤

源代码挖掘论文-孟庆坤

导读:本文包含了源代码挖掘论文开题报告文献综述及选题提纲参考文献,主要关键词:漏洞挖掘,软件安全,符号执行,导向模糊测试

源代码挖掘论文文献综述

孟庆坤[1](2017)在《源代码软件漏洞自动挖掘关键技术研究》一文中研究指出随着信息技术的发展,软件已成为与世界经济、文化、科技、教育和军事发展息息相关的重要元素,广泛地应用于通信、金融、医疗等众多领域。无论是商业软件还是程序员自行开发的小程序,开源代码/组件的使用已经变得越来越普遍,开源已经成为了一种趋势。源代码软件漏洞的影响越来越大,基于开源软件漏洞的网络攻击活动数量在逐年增长。源代码软件漏洞挖掘技术能够针对性的对开源软件进行挖掘,掌握开源软件的漏洞挖掘技术对我国、我军的信息安全具有重大战略意义。论文围绕源代码软件漏洞挖掘中的关键技术展开研究。通过梳理发现,现有的源代码漏洞挖掘方法还不够完善。在静态分析方面,现有方法存在支持的漏洞类型少、挖掘精度低的问题。在动态测试方面,符号执行和模糊测试技术虽然都能挖掘漏洞,但是符号执行存在路径爆炸问题,模糊测试存在覆盖率低、不具备导向性等问题。据此,结合源代码的直接或者间接信息、形式化方法,论文在漏洞静态分析、符号执行以及模糊测试方面展开了研究,主要工作和创新如下:针对多种类源代码软件漏洞静态挖掘问题,论文提出了一种基于程序性质图的源代码软件漏洞挖掘方法。首先利用语法解析器解析源代码,依次生成语法分析树、抽象语法树、控制流图、数据流图;然后聚合抽象语法树、控制流图以及数据流图形成程序性质图,并定义程序性质图的基本遍历方式;最后,根据多种源代码漏洞的描述,在组合程序性质图遍历方式的基础上挖掘漏洞。实验结果表明,该方法能有效的检测各种类型的源代码漏洞。针对缓冲区溢出漏洞挖掘精度问题,论文提出了一种基于机器学习的缓冲区溢出漏洞挖掘方法。该方法首先总结了7类缓冲区溢出漏洞静态特征,分别为sink类型、缓冲区位置、容器、索引/地址/长度复杂度、边界检测、循环/条件/函数调用深度以及是否输入可控;然后,通过扩展的程序性质图检测缓冲区溢出漏洞的各类性质并将其向量化;然后利用有监督机器学习算法在已标记的训练集上训练分类器;最后利用此分类器在新的源代码程序中挖掘缓冲区溢出漏洞。实验结果表明,相对于其他静态分析工具,该方法能在较低误报的情况下挖掘漏洞。针对模糊测试导向问题,论文提出了一种基于细粒度变异的导向模糊测试方法。该方法首先利用导向模糊测试收集测试用例;然后利用时间递归神经网络训练出一个模型,用于判断对靠近目标区域起关键作用的字段,同时收集每个字段的权重;最后,通过上述模型判断当前测试用例的关键字段,并利用关键字段权重进行细粒度的变异生成测试用例。实验结果表明,相对于导向模糊测试以及普通的模糊测试,该方法能更有效的导向目标区域并发现漏洞。针对符号执行循环程序时出现的路径爆炸问题,论文提出了一种结合静态程序分析的高效符号执行技术。首先,该技术通过静态程序分析方法,从程序的控制流图中计算出循环程序的不变式;然后,对程序进行插桩,用循环不变式代替循环形成新的控制流图;最后,在新的控制流图上进行符号执行。对比实验表明,该方法比单纯的符号执行以及对循环进行定长展开的符号执行发现更多的漏洞,并且耗费的时间更少。(本文来源于《国防科技大学》期刊2017-11-01)

黄琦[2](2016)在《基于混合符号执行和遗传算法的源代码漏洞挖掘技术研究》一文中研究指出在互联网给人们带来这么多的便捷的同时,也伴随着各种病毒、网络攻击等安全问题。根据相关安全部门统计数据显示,75%的黑客攻击发生在应用层。黑客攻击主要手段是利用系统的各种漏洞进行渗透,据NIST的统计数据显示92%的漏洞出现在应用层而不是网络层。为了能够让人们能够安全放心的使用互联网,维护网络应用软件的安全就成为网络安全中的核心问题。漏洞挖掘技术是解决应用软件安全的核心技术,根据测试对象的不同,可分为面向源代码的漏洞挖掘技术和二进制码的漏洞挖掘技术。近年来针对软件漏洞挖掘技术的研究已取得显着进展,但由于涉及到动态追踪、符号执行、路径约束收集和求解等多方面技术,仍然存在不少缺陷问题,主要包括:路径爆炸问题,由于在符号执行过程中,针对代码执行路径,会生成相应路径的约束条件,如果软件较大或存在大量循环操作,可能导致路径约束非常大,甚至呈现爆炸式增长;约束求解问题。在符号执行过程中,会生成大量约束条件,当符号数量较大时,或者存在非线性约束条件时,求解器将无法求解;测试效率问题,在符号执行过程中,需要动态监控程序指令执行过程,引入符号值并生成符号约束条件和求解,当软件较大时,指令数和符号数都非常大,测试效率比较低。针对网络应用软件安全问题及漏洞挖掘中的非线性约束求解问题,本文做了基于混合符号执行和遗传算法的源代码漏洞挖掘技术研究,主要工作如下:1.概述了混合符号执行的关键技术、系统框架及其在软件安全自动化测试中的应用,介绍了软件安全测试工具KLEE中的符号执行技术,介绍了KLEE的实现、LLVM框架、KLEE内存模型及KLEE中约束求解器。2.针对KLEE中求解器无法对非线性约束条件进行求解的问题,对传统的遗传算法进行了改进。从编码方式、适应度函数及牛顿迭代终止条件叁方面对遗传算法进行了改进,提高了对非线性约束条件求解的精确度和收敛速率。3.引入改进的遗传算法,实现了KLEE中STP求解器与改进的遗传算法并行求解非线性约束条件。设计了遗传算法求解模块,对遗传算法求解模块接口进行了实现,实现了KLEE中并行求解模块、KQuery抽象解析层,最终利用KLEE调用并行求解模块生成测试用例。4.针对改进后的KLEE在求解非线性约束条件这一问题上的可行性,在Linux系统下的LLVM框架上进行了实验验证。搭建了LLVM框架,并在LLVM框架上利用KLEE对含非线性约束条件的程序进行测试,利用基于遗传算法和混合符号执行改进后的KLEE调用并行求解模块对非线性约束条件进行求解,得出覆盖路径并自动生成测试用例,并将结果与KLEE测试的结果进行对比。实验结果表明,改进后的KLEE能够求解原KLEE无法求解的非线性约束条件,并且生成能够覆盖非线性约束条件所在路径的测试用例,有效的提高了测试覆盖路径及测试效率。最后利用改进后的KLEE实现了在内存泄漏检测中的应用。(本文来源于《电子科技大学》期刊2016-06-04)

张海龙[3](2013)在《基于缺陷信息的源代码特征挖掘研究》一文中研究指出静态测试一般分为静态缺陷检测和人工审查分析两个阶段。在实际的测试过程中报告的大量缺陷往往导致人工审查阶段费时费力,甚至还会导致软件开发人员和测试人员拒绝使用静态代码分析工具。同时,大多数静态检测工具只能检测没有关联的单个缺陷,没有充分利用不同缺陷之间的联系,间接导致其报告缺陷数量过多,增加了测试的成本。本论文总结造成人工分析量巨大原因主要是静态检测工具报告了大量重复的相似真实缺陷和误报。根据DTS定义的缺陷模式,本论文归纳了12类相似代码结构,同时通过对Klocwork和DTS的缺陷检测能力测试验证了误报的普遍性。在总结了目前基于缺陷模式的静态检测所遇到的问题和瓶颈后,本论文进而提出了一种自动化的缺陷代码特征挖掘的方法,能够从大量的缺陷报告中找到相关联缺陷的模式特征。利用这些模式可以辅助减少人工缺陷排查的工作量,还可以指导新缺陷模式的设计和添加。(本文来源于《北京邮电大学》期刊2013-12-29)

时志伟,李小军[4](2011)在《基于信息流分析的源代码漏洞挖掘技术研究》一文中研究指出为弥补软件漏洞挖掘领域的不足,文章介绍了一种基于源代码信息流分析的静态漏洞挖掘方法,通过对源代码中函数的数据输入点进行信息流分析,观察其流向,在敏感函数调用点进行分析判断,最终确定是否存在漏洞。(本文来源于《信息网络安全》期刊2011年11期)

孟美芝[5](2010)在《面向源代码挖掘的聚类算法研究》一文中研究指出源代码数据文本具有数据量大、多为离散属性等特点,要想对源代码数据进行挖掘并考虑执行效率,必须采用快速、高效的方法。应用最广泛的k-means算法虽然简明、实用,但它没有对样本特征进行优化,其有效性很大程度上取决于数据点的分布情况。现有的KFCM聚类算法具有快速、高效的特点,但它不能对源代码文本数据直接进行聚类。为了解决上述问题,本研究提出了一种基于TF-IDF方法的KFCM算法对源代码数据进行聚类分析;同时采用遗传算法对KFCM算法进行优化,得到一种SGAKFCM算法,该算法解决了KFCM只能求解局部极小值的问题。最后将KFCM算法和SGAKFCM算法应用于源代码挖掘,实验结果证明KFCM和SGAKFCM算法非常适用于大量数据的处理,不仅聚类效果好,而且效率高。主要研究内容如下:(1)基于TF-IDF方法的KFCM算法。本研究通过采用处理文本数据的TF-IDF方法,将源代码文件转化成数值型数据,克服了KFCM算法不能直接处理源代码数据的缺陷。(2)采用SGAKFCM算法对处理后的数据进行聚类,解决KFCM算法的局部收敛问题。以Eclipse、Matlab平台为工具,编程实现KFCM和SGAKFCM聚类算法,并以开源数据挖掘软件WEKA的源代码为测试对象,分别用FCM、KFCM、SGAKFCM算法对其进行聚类分析;最后比较叁种算法的聚类结果。实验结果证明KFCM算法在对具有离散属性的软件工程数据的应用上,不仅具有很好的聚类效果,而且具有很高的执行效率。实验结果表明基于TF-IDF方法的KFCM算法适合用于源代码挖掘的研究。本文的创新点主要包括:采用TF-IDF方法对源代码数据进行处理,实现其向量化表示;采用遗传算法对KFCM算法进行优化,解决其局部收敛问题。(本文来源于《西北农林科技大学》期刊2010-10-01)

孟美芝,张阳[6](2010)在《将KFCM算法应用于源代码挖掘的研究》一文中研究指出为解决软件工程数据量大、属性多且多为离散型数据的特点,提高软件工程数据的挖掘效率,寻求更快速、高效的聚类算法,提出了将基于核函数的模糊聚类算法应用于源代码挖掘;同时采用TF-IDF方法对离散型文本数据进行处理,解决了核模糊聚类算法不能对文本数据直接进行聚类的问题。将遗传算法与KFCM算法相结合,克服了KFCM只能求解局部极小值的问题。实验结果表明,改进的KFCM算法对软件工程数据的挖掘有很好的聚类效果,且有较高的效率。(本文来源于《计算机工程与设计》期刊2010年10期)

楚燕婷,王丽琼[7](2009)在《基于源代码挖掘的软件质量改进方法研究》一文中研究指出代码搜索引擎(code search engines,CSE)的产生和互联网上日益增加的开源代码工程,使得软件开发人员在软件开发的过程中可以大量的重用已有的源代码。然而大部分开发人员使用CSEs只是简单完成相关代码搜索。该文给出了一种通用的范型挖掘过程模型,能够充分利用CSEs,通过挖掘源代码范型保证重用代码的质量,并详细的说明了该范型挖掘过程模型在叁个方面辅助软件质量改进。(本文来源于《电脑知识与技术》期刊2009年34期)

张跃华,刘莹,张玲玲,石勇[8](2009)在《源代码挖掘在可信软件研究中的应用》一文中研究指出软件代码中经常包含隐藏的编程规则,有些很明显,有些却很晦涩和复杂。大部分程序员往往不会将这些规则系统地整理,这导致后来的程序员可能因为不了解这些规则而犯错,进而将bug带入程序中。而且,即使程序员了解这些规则,也可能由于种种人为的原因没有遵循它们。本文针对上述情况提出一个模型可以系统地挖掘出代码中隐藏的编程规则,而不需要使用者对代码本身有太多的了解。同时,模型还能够根据提取的规则,找出代码中相应的bug,并依据可能性加以排序。实验证明,该模型能很好地处理大型程序,并能挖掘出程序隐藏的规则和违反规则的bug。(本文来源于《第四届(2009)中国管理学年会——管理科学与工程分会场论文集》期刊2009-11-14)

刘阳阳[9](2009)在《源代码挖掘聚类算法研究》一文中研究指出软件工程数据具有数据量大、多为离散属性等特点,要想对软件工程数据进行挖掘并考虑执行效率,必须采用快速、高效的方法。聚类分析是数据挖掘的重要组成部分,近年来在该领域的研究取得了长足的发展。对软件工程数据进行聚类分析,是数据挖掘应用的一个重要方面。聚类算法多种多样,针对软件工程数据的特点,如何选择合适的聚类算法是值得探讨的。K-means算法虽然聚类速度快,但该算法存在如聚类个数很难提前确定、对脏数据敏感等缺陷,聚类效果不佳;DBSCAN算法聚类效果好,对脏数据不敏感,但聚类时间呈指数增长,不适合对大型数据库的处理。CURD聚类算法有着快速、高效的特点,但其不能直接对具有离散属性的数据进行聚类。本文对CURD算法进行改进,使其能够聚类具有离散属性的数据,并将其应用于源代码挖掘。通过与K-means和DBSCAN算法聚类结果的比较,证明了改进的算法非常适用于大型数据库的处理,不仅聚类效果好,而且效率高。主要研究内容如下:(1)通过改进CURD算法,提出了NCURD(Nominal-CURD)算法。NCURD算法将K-mode算法在处理具有离散属性的数据的技术引入到CURD算法中,从而能够对具有离散属性的数据进行挖掘。实验证明,该算法在源代码挖掘中克服了K-means算法聚类效果不佳和DBSCAN聚类时间成指数增长的缺陷,有着很好的聚类效果。同时,还拥有和K-means相似的线性时间复杂度,非常适合对大型数据库的处理。(2)以Eclipse平台为工具,利用JAVA语言编程实现NCURD聚类算法,并以开源数据挖掘软件WEKA的源代码为测试对象,首先对源代码元素进行抽取,分别获得类、方法、类成员信息,分别将其存入数据库;然后,分别用K-means、DBSCAN、NCURD算法对其进行聚类分析;最后比较叁种算法的聚类结果。实验结果证明改进的CURD算法在对具有离散属性的软件工程数据挖掘中,不仅具有很好的聚类效果,而且具有很高的执行效率。(本文来源于《西北农林科技大学》期刊2009-05-01)

源代码挖掘论文开题报告

(1)论文研究背景及目的

此处内容要求:

首先简单简介论文所研究问题的基本概念和背景,再而简单明了地指出论文所要研究解决的具体问题,并提出你的论文准备的观点或解决方法。

写法范例:

在互联网给人们带来这么多的便捷的同时,也伴随着各种病毒、网络攻击等安全问题。根据相关安全部门统计数据显示,75%的黑客攻击发生在应用层。黑客攻击主要手段是利用系统的各种漏洞进行渗透,据NIST的统计数据显示92%的漏洞出现在应用层而不是网络层。为了能够让人们能够安全放心的使用互联网,维护网络应用软件的安全就成为网络安全中的核心问题。漏洞挖掘技术是解决应用软件安全的核心技术,根据测试对象的不同,可分为面向源代码的漏洞挖掘技术和二进制码的漏洞挖掘技术。近年来针对软件漏洞挖掘技术的研究已取得显着进展,但由于涉及到动态追踪、符号执行、路径约束收集和求解等多方面技术,仍然存在不少缺陷问题,主要包括:路径爆炸问题,由于在符号执行过程中,针对代码执行路径,会生成相应路径的约束条件,如果软件较大或存在大量循环操作,可能导致路径约束非常大,甚至呈现爆炸式增长;约束求解问题。在符号执行过程中,会生成大量约束条件,当符号数量较大时,或者存在非线性约束条件时,求解器将无法求解;测试效率问题,在符号执行过程中,需要动态监控程序指令执行过程,引入符号值并生成符号约束条件和求解,当软件较大时,指令数和符号数都非常大,测试效率比较低。针对网络应用软件安全问题及漏洞挖掘中的非线性约束求解问题,本文做了基于混合符号执行和遗传算法的源代码漏洞挖掘技术研究,主要工作如下:1.概述了混合符号执行的关键技术、系统框架及其在软件安全自动化测试中的应用,介绍了软件安全测试工具KLEE中的符号执行技术,介绍了KLEE的实现、LLVM框架、KLEE内存模型及KLEE中约束求解器。2.针对KLEE中求解器无法对非线性约束条件进行求解的问题,对传统的遗传算法进行了改进。从编码方式、适应度函数及牛顿迭代终止条件叁方面对遗传算法进行了改进,提高了对非线性约束条件求解的精确度和收敛速率。3.引入改进的遗传算法,实现了KLEE中STP求解器与改进的遗传算法并行求解非线性约束条件。设计了遗传算法求解模块,对遗传算法求解模块接口进行了实现,实现了KLEE中并行求解模块、KQuery抽象解析层,最终利用KLEE调用并行求解模块生成测试用例。4.针对改进后的KLEE在求解非线性约束条件这一问题上的可行性,在Linux系统下的LLVM框架上进行了实验验证。搭建了LLVM框架,并在LLVM框架上利用KLEE对含非线性约束条件的程序进行测试,利用基于遗传算法和混合符号执行改进后的KLEE调用并行求解模块对非线性约束条件进行求解,得出覆盖路径并自动生成测试用例,并将结果与KLEE测试的结果进行对比。实验结果表明,改进后的KLEE能够求解原KLEE无法求解的非线性约束条件,并且生成能够覆盖非线性约束条件所在路径的测试用例,有效的提高了测试覆盖路径及测试效率。最后利用改进后的KLEE实现了在内存泄漏检测中的应用。

(2)本文研究方法

调查法:该方法是有目的、有系统的搜集有关研究对象的具体信息。

观察法:用自己的感官和辅助工具直接观察研究对象从而得到有关信息。

实验法:通过主支变革、控制研究对象来发现与确认事物间的因果关系。

文献研究法:通过调查文献来获得资料,从而全面的、正确的了解掌握研究方法。

实证研究法:依据现有的科学理论和实践的需要提出设计。

定性分析法:对研究对象进行“质”的方面的研究,这个方法需要计算的数据较少。

定量分析法:通过具体的数字,使人们对研究对象的认识进一步精确化。

跨学科研究法:运用多学科的理论、方法和成果从整体上对某一课题进行研究。

功能分析法:这是社会科学用来分析社会现象的一种方法,从某一功能出发研究多个方面的影响。

模拟法:通过创设一个与原型相似的模型来间接研究原型某种特性的一种形容方法。

源代码挖掘论文参考文献

[1].孟庆坤.源代码软件漏洞自动挖掘关键技术研究[D].国防科技大学.2017

[2].黄琦.基于混合符号执行和遗传算法的源代码漏洞挖掘技术研究[D].电子科技大学.2016

[3].张海龙.基于缺陷信息的源代码特征挖掘研究[D].北京邮电大学.2013

[4].时志伟,李小军.基于信息流分析的源代码漏洞挖掘技术研究[J].信息网络安全.2011

[5].孟美芝.面向源代码挖掘的聚类算法研究[D].西北农林科技大学.2010

[6].孟美芝,张阳.将KFCM算法应用于源代码挖掘的研究[J].计算机工程与设计.2010

[7].楚燕婷,王丽琼.基于源代码挖掘的软件质量改进方法研究[J].电脑知识与技术.2009

[8].张跃华,刘莹,张玲玲,石勇.源代码挖掘在可信软件研究中的应用[C].第四届(2009)中国管理学年会——管理科学与工程分会场论文集.2009

[9].刘阳阳.源代码挖掘聚类算法研究[D].西北农林科技大学.2009

标签:;  ;  ;  ;  

源代码挖掘论文-孟庆坤
下载Doc文档

猜你喜欢