Sci论文 - 至繁归于至简,Sci论文网。 设为首页|加入收藏
当前位置:首页 > 理工论文 > 正文

基于缺陷知识库的三维CAD源代码智能检测技术论文

发布时间:2023-09-27 15:12:02 文章来源:SCI论文网 我要评论














SCI论文(www.lunwensci.com)  

  摘要:针对三维CAD软件代码成分复杂、逻辑复杂、支撑数据少等特点及问题,提出了面向三维CAD软件的基于缺陷知识库的源代码智能检测技术。首先,提出面向三维CAD软件的代码大数据知识库构建方法,基于开源代码仓库上的三维CAD软件共同开发的特点,将新旧版本的代码爬取进代码知识库形成相同代码位置不同的代码段,汇总形成差异代码文件。其次,差异代码文件一方面在后续三维CAD软件代码检测中发现复用了开源三维CAD软件的旧代码段时可以向开发人员提供修正推荐,另一方面新旧代码都被爬取到代码知识库中后有利于对三维CAD软件的自主研发率的检测。再次,通过流水线的方式有机组合不同粒度和不同分析层次,充分利用不同分析方法的优点,既能够加速代码匹配过程,提高匹配速度,同时能够高精度匹配经过修改的文件,提高三维CAD软件的代码检测的匹配精度。最后,攻克了由多层三维CAD软件代码特征提取技术和代码特征、漏洞相似对齐技术为主组成的三维CAD软件成分分析技术,实现了三维CAD软件的同源漏洞检测,由此可发现源代码中的逻辑问题、内存泄漏、注入攻击潜在缺陷及安全风险,并能进行代码开源率的检测。

  关键词:三维CAD软件;源代码检测;缺陷知识库;智能检测

  Abstract:Aiming at the characteristics and problems of 3D CAD software,such as complex components,complex logic,and less supporting data,a source code intelligent detection technology based on a defect knowledge database is proposed for 3D CAD software.Firstly,a code big data knowledge database modeling method for 3D CAD software is proposed.Based on the characteristics of 3D CAD software co-development on the open source code warehouse,the old and new versions of the code are introduced into the code knowledge database to form the same code location of different code segments,which are summarized to form different code files.Secondly,when the old code segments of open source 3D CAD software are reused in subsequent 3D CAD software code detection,the differential code file can provide correction recommendations to developers;on the other hand,the old and new codes are imported into the code knowledge base,which is conducive to the detection of the independent research and development rate of 3D CAD software.Thirdly,different granularity and different analysis levels are organically combined through the pipeline.The advantages of different analysis methods are fully utilized,which can not only accelerate the code-matching process and improve the matching speed,but also match modified files with high precision,and improve the matching accuracy of three-dimensional CAD software code detection.Finally,the component analysis technology of 3D CAD software is presented,which is mainly composed of multi-layer 3D CAD software code feature extraction technology,code feature,and vulnerability similarity alignment technology.The homologous vulnerability detection of 3D CAD software is realized,so that logic problems,memory leaks,potential defects of injection attacks,and security risks can be found in the source code.And the proposed technology can detect open source code rate.

  Key words:3D CAD software;source code detection;defect knowledge database;intelligent detection

  0引言

  代码是一切软件的核心,“代码即武器”,在数字化经济和数字化系统中,利用代码漏洞成为了一种攻击手段。三维CAD软件树立在计算机技术和电子技术基础之上,普遍运用到机械、飞机、汽车、船只、服装、电子等范畴。其中,三维CAD软件在机械类规划中的运用是最广泛的,是机械构造规划的一把利器,它能够优化机械构造之间的配合,进一步整个机械产品的技艺含量和质量,是一个国度工业现代化程度的重要标志之一。目前国产三维CAD软件的开发存在混源的情况,为实现三维CAD软件真实国产化、确实突破卡脖子问题,需有效理清三维CAD软件的组成成分和代码漏洞、在后续技术研究中可加入基于三维CAD软件迭代版本的所有代码所形成的缺陷知识库方面相关内容。

  在源代码智能检测技术软件化应用方面,国内的研发企业的代码安全检测均使用国外工具,例如:Coveri⁃ty、Klocwork、C++Test、QAC、Fortify、Checkmarx等,但这些国外工具随之而来也导致众多问题,例如误报率高、无法适应国产化操作系统、无法进行千万级代码行的检测等。同时随着IT/OT技术的深度融合,软件漏洞、APT攻击等新型安全威胁层出不穷,给软件安全带来巨大的挑战。

  本文提出了基于缺陷知识库的源代码智能检测技术。针对三维CAD软件代码成分复杂、逻辑复杂、支撑数据少等特点及问题,提出构建面向三维CAD软件的包括代码大数据库和漏洞信息库的缺陷知识库,以及由多层三维CAD软件代码特征提取技术和代码特征、漏洞相似对齐技术为主组成的三维CAD软件成分分析技术,实现了三维CAD软件的同源漏洞检测,由此可发现源代码中的逻辑问题、内存泄漏、注入攻击潜在缺陷及安全风险,并能进行代码开源率的检测。

  1源代码智能检测技术国内外发展现状

  目前国外的源代码智能检测技术发展较为成熟,已形成多款成熟商用的代码检测工具,主要包括美国的BlackDuck[1]和瑞典的FossID[2],它们在国内的市场占有率也较高。三维CAD软件同样面临开源许可证冲突的问题,特别在向国外推广国产三维CAD软件时,尤其需要注意代码开源许可证的检测,目前三维CAD软件仍以国外三维CAD软件为主流,国外用户对国产三维CAD软件存在不信任的问题比较突出。但国外检测技术和工具的主要问题在于,检测依托的海量代码库主要在美国等海外国家存放,由此如果需要代码级精确匹配检测,则需要将企业全部开发的代码上传到互联网,安全性得不到保障。此外,国外的开源数据检测主要进行的是第三方库的已知漏洞检测,对于未知漏洞缺陷并不能检测,但这也是国内很多企业迫切需要的功能。国内软件成分分析技术的发展起步较晚,在代码库构建及代码相似检测等关键技术的研究上与国外尚存在一定的差距,缺乏成熟的代码分析相关工具,如棱镜七彩是国内一款开源数据检测分析工具,但目前来说无法检测二进制代码同源问题[3]。

  哥廷根大学的Yamaguchi等[4-5]通过引入漏洞外推的概念来辅助发现漏洞的方法,在基于已知安全漏洞中观察到的编程模式来识别未知的漏洞。该方法利用一些漏洞作为外推的种子,发现了10个零日漏洞。该方法的局限性在于其分析对象(抽象语法树)和分析模型(词袋模型)都过于简单,无法表示和发现具有复杂结构的漏洞。后续的类似方法在分析对象或分析模型上有所改进,如2012年比利时鲁汶大学的Hovsepyan等[6]实验了5种分类算法,发现基于随机森林实现的分类模型表现最好,但仅限于单一项目内,而跨项目的漏洞预测结果准确度太低,不可以接受。2014年Scandariato等[7]采用N-gram模型替代简单的词袋模型,为了处理N-gram模型高维度导致的效率问题,又结合了统计特征选择方法。2014年Yamaguchi等[8]在代码表示层面做了改进,提出了代码属性图(CPG)的概念。因为程序的抽象语法树(AST),控制流图(CFG),程序依赖图(PDG)分别从不同的维度体现了程序的一部分特性,而漏洞只有通过联合考虑代码的结构、控制流和依赖性才能被充分发现。

  软件成分分析的另一个思路是基于代码克隆的检测方法。韩国首尔大学Seulbae Kim等[9]在2017年提出了相似哈希方法的检测方法,将有漏洞的代码特征自动提出,用于后续发现其他类似或未知漏洞。这种基于代码克隆的漏洞检测方法相比上述基于漏洞结构的方法,检测效率和规模大大提升,可以用14 h完成10亿行代码的检测,但精度较差。但是上述技术和方法,虽然能够显著提高通过成分分析发现漏洞的能力,但目前尚无成熟落地的工具。

  源代码智能检测技术作为整个工具的基础,专业化程度高,难度较大,需要对编程语言原理、编译技术有较深的理解,且在国内发展较晚,因此相关专业人才储备少。另一方面,国内软件分析产品产业化程度低,很多研究停留在理论阶段,缺乏实践和验证。因此源代码分析工具在很长一段时间处于被国外公司垄断的状态,如美国Microsoft公司-SemmleQL[10]、美国Synopsys公司-Blackduck和瑞典FossID公司-FossID等。

  2面向三维CAD软件的缺陷知识库构建

  缺陷知识库的构建包括了代码大数据知识库和漏洞信息库的构建。

  2.1面向三维CAD软件的代码大数据知识库构建

  在CAD产业的发展历史上,经历了从早期的五大公司,到现在的四大谱系并存的局面。目前在主流开源代码托管库如Github上保存一定量的CAD软件相关项目源代码。要准确识别三维CAD软件的自研率即检测出哪些代码是复用的,以及检出代码中已知的漏洞,需要持续爬取项目的源代码以形成对三维CAD软件有一定针对性的代码库。因为开源三维CAD软件共同开发的特点,三维CAD软件所有的历史版本代码均托管在开源代码库中,在三维CAD源代码爬取时按照爬取所有版本的代码策略形成针对三维CAD软件带修正信息的代码库。

  源代码智能检测技术的基础在于支撑检测的大规模代码库,基于多级代码相似检测技术可有效筛选出被测三维CAD软件中的复用代码,所以决定检出率的重要因素之一即是尽可能扩充代码库,因目前开源三维CAD软件相对于开源通用软件数量较少,针对三维CAD软件的代码大数据库可以从开源网站、第三方服务、安全平台、自建的本地库等来源获取源代码及相关代码指纹,如图1所示。

\

  源代码采集后经过哈希计算等处理后形成代码指纹,从而构建代码指纹库。对于已下载的项目代码文件,需分析其中的文件,根据文件名后缀,分别提取其中的源代码,字节码、二进制文件。然后对于不同类型的代码文件,提取不同的特征作为指纹,并录入到数据库中,此处对从各类型代码所提取的特征值进行举例。构建大规模代码特征库所提取的所有特征,系统将采用多层次、多粒度、多维度的特征提取方法,对代码的特征进行全方位的表达。

  在将软件代码项目信息爬取后入库的同时,把所有源代码打包下载到库中后利用代码语法结构树[11]进行指纹计算。代码文件转化成语法树的形式,可以有效保留代码中旬法结构信息。但是当比较两棵语法树是否相似时,需要逐个比较两棵语法树及其子树中的每一个结点。例如代码段“for(i=0;i<50;i++)Goback()”的语法树如图2所示。

\

  目前针对语法树的解决办法主要有直接散列法和特征向量法。由于直接散列法对树的形态敏感但对树结点的内容不敏感,而语法树中的结点包含有代码的句法结构信息,不能被忽略。特征向量法用一个多维向量表示语法树中每个结点的结构信息,每一维都表示源代码的某个基本成分在该代码片段中出现的次数。以语法树的关键结点类型作为特征来表示源代码。首先统计每个结点自身各个类型关键结点出现的次数,作为初始的特征向量,然后再后序遍历语法树,用子结点特征值求和的方法得到每个结点最终的特征向量。以图3所示的语法树为例,假设所选择的关键结点类型有7种:变量、常量、赋值、循环、调用、双目运算、单目运算。按上述方法求每个结点的特征向量,如图4所示。

\

  利用特征向量法得到的是用固定维数特征向量表示的各语法树结点信息,若想要得到各代码段的相似度,仍需逐个计算结点的特征向量间的相似度。其中每个向量值就是代码的指纹值的构成部分,后续经过哈希计算后形成代码模块、文件、项目等多层级的归一指纹值然后构建形成指纹库,从而支撑代码相似性检测的速度。

  2.2面向三维CAD软件的漏洞信息库构建

  基于缺陷知识库的源代码智能检测技术不仅需要检测出复用代码,同时需要检测出代码中漏洞,所以在源代码智能检测技术同样需要构建漏洞信息库,并且需要将代码和漏洞对应关系建立出来。目前漏洞信息主要来源为网络公开的漏洞库,已知漏洞库包括CVE/NVD、CNVD、CNNVD等,但其中最主要的是CVE漏洞库,这些漏洞库均会定期更新相关代码漏洞模式。如CVE编委从一些讨论组、软件开发商发布的技术文件和一些个人或公司提供的资料中找到存在的安全问题,然后会给这种安全问题分配一个CVE候补名称,即CAN名称,相关的信息也会按照CVE条目的格式写成一个CAN条目(CVE Candidate Entry)。如果经过CVE编委讨论并投票通过,CAN条目就成为正式的CVE条目,及正式的CVE收录的漏洞信息条目,该类条目都会直接链接到产生该漏洞的项目代码托管库,可以直接获取有缺陷漏洞的“模板代码”。基于代码对齐即代码相似性检测向开发人员推荐相关已知漏洞模式,如是前述新旧版本三维CAD软件代码中旧版本的代码被检测出有已知漏洞,则可以进一步推荐给用户新的修改模板。

  爬取的漏洞信息形成json文件统一入库保存,可支撑用于代码漏洞对齐,主要抓取漏洞对应软件名称和软件开发商的名称,基于搜索引擎获取软件对应的代码,后续在代码克隆检测时当检测出被测代码与漏洞参考代码类似时,可以判定被测代码存在同源漏洞的几率较大。3三维CAD软件代码成分分析技术如前述三维CAD软件代码复杂度较高,核心代码和外围代码的编程语言种类众多,涉及到的代码模块存在紧耦合的情况,同时三维CAD软件的代码量也较为庞大,因此需要结合多种源代码采集技术,流水线逐级筛选技术以及有效的反混淆技术,才能够在获得更高的检测精度的同时保证检测速度。基于已构建的大规模代码库三维CAD软件代码成分分析技术主要需要解决以下方面内容:(1)软件特征提取策略;(2)漏洞与项目的映射策略;(3)大规模数据的管理策略。

  上述的3个部分技术内容贯穿了三维CAD软件的成分分析到获取代码漏洞及代码复用率的实现过程,主要包括文件遍历、指纹计算、指纹入库、指纹比对、漏洞对齐等,如图5所示。

\

  成分分析将提供软件系统的成分分类及溯源机制,同时将作为漏洞分析、对比分析、许可证分析等其他分析工作的逻辑基础。其主要逻辑是利用在三维CAD软件中提取的特征在大规模针对三维CAD软件的代码特征库中进行检索,采用软件搜索并行处理技术,得到软件内部所引用的第三方组件信息。

  而从CVD、CNVD、CNNVD及项目私有漏洞库所采集的漏洞数据,因相关描述形式的多样性,无法直接应用到漏洞应用之中。所以要进行漏洞对齐工作,提取其中的项目名称、版本、修复情况、漏洞类型等关键信息,规范化漏洞数据,从而为漏洞相关的分析工作奠定基础。该模块将综合漏洞原始信息和搜索引擎检索结果,采用自然语言处理、低频特征提取等技术方法,完成相关的工作。

  最后三维CAD软件成分分析工具的检测效果,对于数据规模和数据质量均有着较高的要求,所以此处增加数据监控模块,用于辅助运维人员实时监测代码及漏洞数据的下载、增长和更新情况,从而能够对于硬件崩溃、网络异常等情况能够作出及时地响应。

  3.1多层三维CAD软件代码特征提取

  针对三维CAD软件代码量级大、逻辑复杂程度高和成分复杂等特点,软件的特征提取策略采用多层代码特征提取技术对软件代码进行特征值提取。

  为支持函数级、类级、文件级、包级和项目级等多级别的精确匹配和相似匹配,需要实现分级提取特征值,如图6所示是代码多层特征分级提取技术的架构图。其中为支持模糊匹配,需要对代码仓库中的代码在每个级别都进行文本摘要,生成特征值,存储为各个级别的特征值库。而为支持精确相似匹配,若是非代码文件,则在文件级别做模糊哈希并建库,若是代码文件,则需要拆分为函数,在函数级别进行相似匹配,较高级别的相似匹配结果由低一级别的相似匹配结果汇总得到,其中二进制代码文件反汇编后直接细分为函数块。

\

  其中函数是代码相似匹配算法的逻辑单元,对函数进行变换,转化为代码的中间表示,进而提取特征值或特征向量,并建立索引库。为了更准确地进行代码的相似匹配,可在词法层、语法层和语义层等3个层次对代码进行分析,提取特征。具体而言,在这3个层次上,源代码的中间表示可以是符号(序列或袋)、抽象语法树(AST)和程序依赖图(PDG),二进制代码的中间表示可以是汇编指令序列、控制流图(CFG)和值依赖图(VDG)。

  如果在特征匹配中没有得到精确的匹配,则进入流水线的下一步。而二进制代码没有类级,非面向对象语言也没有类级。对于非代码文件,利用模糊哈希等手段在文件级别实现相似性检测。对于代码文件,则在函数级别进行相似性检测,即在代码的相似性匹配算法中,函数是逻辑单元。在函数级别的相似性检测过程中,根据语言选择不同的解析器,得到多种代码中间表示,进而在词法、语法和语义等多个层次实现代码近似性检测。在这一过程中,往往会利用索引等技术首先得到特征值相似的备选结果,需要进一步验证得到最终的匹配结果。

  在函数级别的相似性检测完成之后,需要按照从函数级别到项目级别的顺序,逐一汇总。具体地,根据某级别相似性匹配的结果和上一级精确匹配的结果,判定上一级的相似性。特别地,要判定两个包、两个项目、项目和包之间的引用关系,需要先判定所包含文件的相似性,然后再根据如下特征进行分析:文件名数目、相同文件名数目、相似文件名数目、内容相同文件数目、内容相似文件数目等。这里的特征区分代码文件和非代码文件,分别统计。

  3.2三维CAD软件代码特征相似匹配

  在综合考虑到三维CAD软件规模大、复杂度高的特点,而传统克隆检测方法在大规模代码数据上低效率、扩展性差的缺陷[12],以及传统哈希方法无法记录相似不相同代码差异信息的劣势,解决途径之一就是将源代码文件降维为一个特定的指纹,并设计针对相似匹配

  的特殊索引结构,最终通过汉明距离快速匹配相似的克隆对。

  将源代码文件降维为一个特定的指纹,实质上是定义了一个f维的空间,在这个空间中,每一个源代码文件的特征被映射为一个向量。将代码的所有特征向量结合各自的权重进行加权求和,得到的向量则可以表征这个源代码的特点信息。考虑到大规模数据的特点,将这个和向量做进一步的压缩转化,最终得到一个64位二进制签名值,即该源代码文件的指纹值。

  基于相似哈希的代码特征构建技术主要分为3个阶段:预处理阶段、指纹索引阶段、相似匹配阶段。预处理阶段对代码进行特征的筛选和提取[13],指纹索引阶段根据特定的索引策略将指纹存入相似哈希指纹库中便于快速匹配,相似匹配阶段对待测工程文件进行一系列处理后查询出溯源检测的结果。

  3.3三维CAD软件代码漏洞相似对齐

  当前网络公开的安全漏洞以及其涉及的软件相关信息的资源量非常庞大,但是数据残缺不全,表示方式不统一,因此将公开的漏洞信息映射到开源或者二进制项目并进行安全修复推荐是一个挑战。在完成代码克隆检测的基础上对齐出漏洞,主要分为以下几个步骤(图7):(1)自动化抓取主流安全网站的漏洞信息,同步至漏洞数据库;(2)自动化提取相关软件信息,并建立一个流行的软件信息数据库,其中包含了大量经常出现安全漏洞的软件版本,项目地址等相关信息[14];

\

  (3)自动化抓取搜索引擎的搜索结果并更新现有数据在对齐过程中能够建立一个有效的,准确的公开漏洞信息数据库,能够实时监测当前主流安全网站发布的信息并进行实时更新,从而将现有的公开漏洞资源应用至软件检测领域。而公开安全漏洞所涉及的软件信息具有不规则、不完整的特性,通过使用搜索引擎推荐的方式,将相关的软件信息对齐至软件仓库或者二进制下载链接,并实现自动化对齐,能够更准确地获得指定软件的相关漏洞信息,并根据漏洞信息进行安全评测和修复推荐,有效地降低了单纯的项目名称字符串匹配所带来的误漏报,提高了对齐结果的准确性[15]。

  4三维CAD软件源代码智能检测应用验证

  4.1应用测试

  此次应用检测选取了几款通用的三维CAD软件源代码,依据本技术研究最终成果对代码进行测试。

  4.1.1测试用例及其代码地址

  选取的CAD组件测试用例及其代码地址为:

  (1)https://github.com/BRL-CAD/brlcad

  (2)https://github.com/LibreCAD/LibreCAD

  (3)https://github.com/FreeCAD/FreeCAD

  (4)https://github.com/Open-Cascade-SAS/OCCT

  4.1.2检测内容

  (1)成分分析:识别三维CAD软件软件中包含的组件,并给出组件版本、来源、组件的更新情况是否存在操作风险,给出排除当前版本代码的软件开源率。

  (2)已知漏洞识别:识别软件中引用的第三方组件中的已知CVE漏洞,并给出漏洞严重程度等评分信息。

  (3)许可证分析:分析第三方组件中使用的许可证及侵权风险信息。

  4.1.3测试环境

  (1)CPU:Intel(R)Core(TM)i7-10750 CPU 2.60 GHz。

  (2)内存:32 GB。

  (3)操作系统:Win10企业版。

  (4)编译器:Visual Studio 2010。

  4.1.4检测方法

  (1)基于缺陷知识库的源代码智能检测技术。基于面向三维CAD构建缺陷知识库进行软件代码的成分分析获取代码自研率和进行同源漏洞检测获取代码中含有的已公开漏洞缺陷。

  (2)某商用漏洞检测工具[16]。基于标准编码规范对代码中的缺陷进行检测。其主要技术模块(路线)分为4个部分:①规则集加载器,负责将xML文本形式的规则描述以及负责检测规则的类加载到内存,其实现主要依赖xML文件的信息交互;②静态分析器,缺陷检测依赖的源码静态信息来源于工具前端分析器;③缺陷定位器,其主要功能是根据用户所选择的规则,对源代码中符合这些规则的缺陷进行定位;④检测结果信息库,信息库就是用来保存代码审查结果信息,将一次代码审查的信息结果进行保存,以便能够在代码审查的后续步骤中对结果进行分析,同时也是为了能够将结果进行汇总输出。

  该工具主要基于标准编码规则结合XML文件和抽象语法树给出编码规则的树状图,即参考树,然后再计算出被测代码文件的树图,通过传统哈希计算得出被测代码与编码规则的相似度,当相似度越高表明被测代码越符合标准编码形式,存在缺陷的几率较高,当相似度较低时则表明被测代码偏离编码规则存在漏洞缺陷的概率较大,然后将该段代码对齐已知漏洞得出软件的安全现状[17]。

  4.2检测结果对比分析

  基于相同三维CAD软件项目代码使用基于缺陷知识库的源代码智能检测技术与漏洞检测工具的检测结果对比情况如表1~4所示。

\

  基于缺陷知识库的源代码智能检测技术与漏洞检测工具在检测结果存在差异的原因分析有以下几方面。

  (1)基于缺陷知识库的源代码智能检测技术采用了面向三维CAD软件的缺陷知识库的构建,主要大规模爬取已有的软件代码,由此基于一种编码规则在知识库中收录了多种形式的类似代码,一方面能检测代码重复率,另一方面可以检测出更多属于类似代码中的漏洞缺陷[18]。从测试结果对比中可看到使用基于缺陷知识库的源代码智能检测技术可以检测出被测代码的开源率,同时保证漏洞检测率。

  (2)基于缺陷知识库的源代码智能检测技术采用了多维三维CAD软件特征提取,获取函数、类、文件、包、项目的特征值,然后多层指纹依照检测需求归一化构成支撑代码相似检测中所需的指纹,而商用工具采取的是基于XML自然语言描述结合抽象语法树的树状图计算特征值,只能获取到函数以及类的特征值,当树状图涉及到文件时树状图过大指纹难以计算。从测试比对结果中的检测出的组件数量可以看到,智能检测技术比商用工具检测出的组件数多,因为智能检测可形成在代码相似性检测中进行多层次的克隆检测,从而通过类似的项目代码区分出不同模块组件,而检测工具只能通过代码文件数量简单区分组件。

  (3)基于缺陷知识库的源代码智能检测技术采用了相似哈希特征匹配计算的方法支撑代码相似性和漏洞对齐,在海量的数据集中,寻找与被测代码指纹相近的指纹值的过程是非常耗时的,因此需要索引优化方法,通过分段索引的即以小段特征值来进行哈希计算完成较模糊的代码相似性检测[19-20],后续小段相似性较高的时候再用传统哈希计算当前索引指向的所有代码的海明距离,从而获取整体代码的相似度,而商用工具只使用了传统哈希,计算量无疑是比较大的,所以从测试比对结果中可以看到智能检测的测试时间要更短。

  5结束语

  本文针对三维CAD软件代码成分复杂、逻辑复杂、支撑数据少等特点及问题,提出了构建面向三维CAD软件的包括代码大数据库和漏洞信息库的缺陷知识库,以及由多层三维CAD软件代码特征提取技术和代码特征、漏洞相似对齐技术为主组成的三维CAD软件成分分析技术,实现了三维CAD软件的同源漏洞检测,由此可发现源代码中的逻辑问题、内存泄漏、注入攻击潜在缺陷及安全风险,并能进行代码开源率的检测。

  参考文献:

  [1]Black Duck Company.Introduction of black duck[EB/OL].https://www.blackducksoftware.com/.

  [2]Fossid Company.Introduction of fossid SAST software[EB/OL].https://fossid.com/.

  [3]SuZhou Qicailengjing Company.Introduction of SCA[EB/OL].https://www.7-0cai.com/.

  [4]Yamaguchi,Fabian,Felix Lindner.Vulnerability extrapolation:assisted discovery of vulnerabilities using machine learning[C]//Proceedings of the 5th USENIX conference on Offensive technol⁃ogies,USENIX Association,2011.

  [5]Yamaguchi,Fabian,Markus Lottmann.Generalized vulner-abili⁃ty extrapolation using abstract syntax trees[C]//Proceedings of the 28th Annual Computer Security Applications Conference,ACM,2012.

  [6]Hovsepyan A,Scandariato R,Joosen W,et al.Software vulnera⁃bility prediction using text analysis techniques[C]//Proceedings of the 4th international workshop on Security measurements and metrics,ACM,2012.

  [7]Scandariato R,Walden J,Hovsepyan A,et al.Predicting vulner⁃able software components via text mining[J].IEEE Transactions on Software Engineering,2014,40(10):993-1006.

  [8]Yamaguchi,Fabian.Modeling and discovering vulnerabilities with code property graphs[C]//IEEE Symposium on Security and Privacy.IEEE,2014.

  [9]Kim,Seulbae,Seunghoon Woo.VUDDY:A Scalable Approach for Vulnerable Code Clone Discovery[C]//IEEE Symposium on Security and Privacy(SP)2017:595-614.

  [10]Semmle Company.Introduction of a code analysis platform for finding zero-days and automating variant analysis[EB/OL].https://semmle.com/.

  [11]李晓南,范明钰,王光卫.基于静态检测工具的源代码安全缺陷检测研究[J].计算机应用研究,2011,28(8):2997-2998.

  [12]Saha R K,Roy C K,Schneider K A.Understanding the evolu⁃tion of type-3 clones:an exploratory study[C]//2013 10th Work⁃ing Conference on Mining Software Repositories(MSR).

  [13]Salton G,McGill M J.Introduction to modern information re⁃trieval[M].McGraw-Hill,1983.

  [14]夏之阳,易平,杨涛.基于神经网络与代码相似性的静态漏洞检测[J].计算机工程,2019,45(12):141-146.

  [15]方磊,魏强,武泽慧,等.基于神经网络的二进制函数相似性检测技术[J].计算机科学,2021,48(10):286-293.

  [16]Beijing Keyware Company.Introduction of Eagleeye[EB/OL].http://www.keyware.com.cn/eagleeye.

  [17]古可,刘超,金茂忠.C++代码缺陷自动检测工具的研究与实现[J].计算机应用研究,2009,26(5):1628-1631.

  [18]Manku GS,Jain A,Das Sarma A.Detecting near-duplicates for web crawling[C]//Proceedings of the 16th international conference on World Wide Web,2007:141-150.

  [19]Indyk Piotr,Motwani Rajeev,Raghavan Prabhakar.Locality-preserving hashing in multidimensional spaces[C]//Proceedings of the twenty-ninth annual ACM symposium on Theory of com⁃puting.STOC′97:618-625.

  [20]常建明,张庆辉.一种面向缺陷定位的代码知识库构建方法[J].中国高新科技,2019,55(19):36-38.

关注SCI论文创作发表,寻求SCI论文修改润色、SCI论文代发表等服务支撑,请锁定SCI论文网!


文章出自SCI论文网转载请注明出处:https://www.lunwensci.com/ligonglunwen/63951.html

发表评论

Sci论文网 - Sci论文发表 - Sci论文修改润色 - Sci论文期刊 - Sci论文代发
Copyright © Sci论文网 版权所有 | SCI论文网手机版 | 鄂ICP备2022005580号-2 | 网站地图xml | 百度地图xml