77范文网 - 专业文章范例文档资料分享平台

大数据下源代码同源性安全分析探讨

来源:网络收集 时间:2021-05-13 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

陈慧

(山东英才学院信息工程学院,山东 济南 250104)

【摘要】大数据时代的到来,将安全带入了一个全新、复杂和综合的时代,利用大数据进行代码同源性安全分析,人们可以分析大量的潜在安全事件,通过对海量大数据的分析,可以挖掘发现大量新的网站攻击特征、网站漏洞,以及分析同源的特种木马等。

教育期刊网 http://www.jyqkw.com
关键词 大数据;同源性;安全

0 引言

“大数据”作为时下最火热的IT行业的词汇,随之而来的数据仓库、数据安全、数据分析、数据挖掘等围绕大数据的商业价值的利用逐渐成为新的利润焦点[1]。现在数据从绝对量来说正在迅猛增长,每年的增速是50%,数据变化速度也非常快,它们来自于不同的源。大数据技术的战略意义不在于掌握庞大的数据信息,而在于对这些含有意义的数据进行专业化处理。

随着互联网的发展,资源的共享日益增多,人们可以得到的资源也越来越多,十年前,开发人员可以使用免费的操作系统和一些简单的数据库。五年前,他们可以用上“非常不错的免费数据库”和“相当好的”免费web框架。现阶段,大量开源代码中的部分代码成为开发人员抄袭借鉴的资源。出于某些原因,例如知识版权,通常开发人员对所抄袭的代码部分并不加说明,并且会对源代码做一些不影响代码功能的修改,比如修改函数名或者变量名,打乱语句顺序,类型重定义等等。然而,部分开源代码中存在一些安全漏洞,当开发人员使用了有问题的源码,就使得完成后的程序中就自然存在这些安全漏洞。

大数据时代的到来,将安全带入了一个全新、复杂和综合的时代,不安全的那些蛛丝马迹在浩瀚数据的掩护下被利用,使得黑客能精准地发起一次又一次的攻击。黑客的嗅觉是极其灵敏的,反应也极其快速。当一个漏洞被发现,当天就会有攻击产生,当天就会有针对这个漏洞所开发的工具,大范围的攻击很快就会达到一个高峰,留给安全界的反应时间非常短。在安全管理人员在日常维护中,如果能够对所管理软件是否抄袭了其他软件代码进行判断,当漏洞被发现时,就能快速排出所管理的软件是否也包含此漏洞,因此能否发现现有软件中代码是否抄袭就变的十分重要。在这个背景下,软件的同源性鉴别技术的研究变得十分关键。

1 源代码同源性分析

软件的同源性鉴别指将两款软件从源代码到软件功能上进行比较,找出它们是否相同或者相似,作为软件形成基础的程序源代码是进行比较和鉴别的重要依据。软件系统的源代码中存在许多相同或相似的代码片段,这些相同或相似的代码片段被称为克隆代码(clone code),它们具有同源性。针对源代码同源性的检测技术在国内外的研究开展得非常广泛,研究重点当前集中在源代码抄袭检测技术,也就是通常所说的代码克隆检测。常见的源代码同源性检测有文本相似和功能相似两类检测技术,其中文本相似类型的检测,对应于源代码中声明、标识符、文字、变量类型、布局和注释的变化;功能相似类型检测,不考虑程序段之间由于格式或变量名的不同而引起的词法上的区别,而着重于程序段之间的结构和语义上的类似,指的是两个代码段虽然通过不同的句法或变量编程实现,但有着相似的前提或后置条件,而且能实现相同或类似的功能。

检测源代码中含有的克隆代码是20世纪90 年代随着软件维护问题的日益突出而出现和发展的,早期的文献包括1990 年的和1992 年的克隆代码检测工具Dup。90 年代中期以来,特别是2000 年之后,克隆代码检测的相关研究在软件工程领域逐渐兴起。到目前为止,文献中出现了许多不同的同源性代码鉴别技术和思路。这些技术可分成4 大类,分别是基于文本、基于编程风格、基于抽象语法树和基于语义的技术。

1.1 基于文本相似性的鉴别技术

典型的基于文本相似性的鉴别技术有H.T. Jankowitz提出的基于子串匹配的方法,由Brenda S.Baker提出的参数化匹配方法,还有典型的词频统计法用于同源性鉴别。基于文本相似性的同源性鉴别由于采取的文本层次的比较,忽略了源代码本身的语义特征,代码抄袭者很容易利用这一点逃过鉴别,漏检率较高。但是由于文本相似性的检测技术术是基于文本序列和文本组合,其误检率较低。

1.2 基于编程风格的同源性鉴别技术

基于编程风格的同源性鉴别是根据代码编程人员的编写风格判断软件同源性。这种同源性鉴别方法主要分两个阶段进行[2]:首先需要提取文件的主要编码风格特征,然后用三种不同的模块来检测代码以确定被克隆的位置。由于基于编程风格的同源性鉴别需要耗费大量人力,很难自动化,可行性较差。

1.3 抽象语法树的代码同源性鉴别技术

Baxter等人提出了基于抽象语法树的代码同源性鉴别技术。抽象语法树是一种树形存储结构,由程序代码段经过语法分析后生成的,抽象语法树保存有树节点相关信息。基于抽象语法树的同源性检测技术是将代码段的语法结构进行比对分析,通过比较节点的值来判断代码文件是否具有的同源性。基于抽象语法树的技术实现比较复杂,而且理论上也存在软件同源性误检的可能,当前可利用的工具较少。

1.4 基于语义的同源性鉴别技术

基于语义的同源性鉴别技术能够从语义方面判断代码结构,而不受传统代码抄袭形式的影响,具有很高的准确度。对于语义的同源性检测方法主要是基于程序依赖图(PDG-based)的方法,它将源代码变换为图形化的 PDG,使用子图的同构性来检测相似的过程和代码段。对于语句交换顺序、语句替换、函数功能相似等引起的代码克隆,使用语义检测,会取得较好的检测效果。

这些鉴别技术分别对于不同类型的同源性鉴别有效,经测试[3],以Dup、CCFinder、DupLoc等为代表的基于字符串匹配的工具软件,以CloneDr 、Deckard等为代表的基于抽象语法树匹配方法的工具软件、以CLAN、Kontogiannis、Mayrand、Dagenais、Merlo和Davey等为代表的基于度量匹配的工具软件,对于文本相似的同源性检测有较好的检测效果。基于程序依赖图的工具软件Duplix、Komondoor、GPLAG和Gabel等,对功能相似克隆中语句交换顺序的语义克隆有较好的检测效果,防剽窃工具GPLAG对语句替换克隆有一定的效果。

2 大数据安全分析

代码同源性研究依赖于大数据进行分析时应该重视相关关系,而不是因果关系。大数据具有的特征可以归纳为4个“V”[4](规模巨大Volume,模态多样Variety,真伪难辨Veracity,速度极快Velocity),这四个层面分别是:第一,数据体总量巨大。大数据的起始计量单位至少是P(1000个T)、E(100万个T)或Z(10亿个T);第二,数据类型繁多。比如,网络日志、视频、图片、地理位置信息等等;第三,价值密度低,商业价值高;第四,处理速度快。最后这一点也是和传统的数据挖掘技术有着本质的不同。

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说英语论文大数据下源代码同源性安全分析探讨在线全文阅读。

大数据下源代码同源性安全分析探讨.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/lunwen/yingyu/1228207.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: