Ontology-based services for software vulnerability detection: a survey

综述:基于本体的软件漏洞检测服务

一、摘要

  本体作为一种概念化的正式规范,被广泛应用于软件工程中,用以管理软件的开发、维护和安全问题。近些年,一些有关软件漏洞检测的本体被提出来并且取得了不错的效果。一些方案可以做到比静态分析工具检测更多的错误,另一些甚至可以做到基于本体来推测未知 的错误。

  本文主要回顾了现有的那些基于本体的漏洞检测技术服务,描述了它们的主要思想和设计原则,并为进一步的研究提供背景知识。

 

二、相关工作

  本文展示了现有的关于基于本体的源代码漏洞检测服务的工作,讨论了当前漏洞检测技术的一些关键方面和挑战。然后介绍了现有的本体服务的基本设计原则.

 

三、调查结论

  1. 源代码本体提取信息的方式存在显著差异,有些可以静态分析,但是没有给出具体的方法,而且大多数没有考虑bug检测。

  2. 有一些基于本体的静态分析能够发现更多的bug,但是要付出计算能力和可扩展性.

  3. 本体还可以通过监控和获取软件运行时信息来动态使用。

  4. 漏洞本体在链接已知的bug和软件组件方面是准确的。基于结构和描述,他们还可以应用本体嵌入来预测隐藏的漏洞。

  5. 本体还有着许多以前的研究没有考虑到的优点,如机器学习和嵌入。

 

四、漏洞检测技术

  根据是否需要执行程序,有两大类漏洞检测技术:静态和动态分析。

  常用的静态分析方法是将源代码转换为中间表示或者模型,如抽象语法树、控制流图、程序依赖图等。

  静态分析精度较低,容易出现假阳性或者假阴性;同时系统调用或者第三方库函数等外部代码一般不能在本地进行分析;再者,程序的输入、路径和状态一般有无限多,在计算能力和时间有限的情况下,计算所有状态不是明智的手段;求解约束性问题需要大量的计算能力,这个对静态分析有很大的限制。

  动态分析的误报率很低,准确度高,常用的动态分析有污染分析、协同执行和模糊化。

  当然动态分析也存在一些问题。比如安全人员没有参与软件开发阶段,导致有效的测试输入缺乏,无法实现高覆盖率,深度不足以触及隐藏的漏洞。动态分析经常与其他技术相结合,但是其他技术也会相应带来一些挑战。

 

五、调查内容

  本文调查了进行了四类研究:源代码本体、基于本体的静态分析、基于本体的动态分析、漏洞本体。我们主要介绍漏洞本体。

  Wang等人提出的漏洞管理本体(OVM)【1】捕捉了软件供应商、程序、漏洞、后果、对策和其他一些概念之间的关系。

   Algahtani 【2】引入了一个本体,将软件api和漏洞联系起来。该研究目标是跟踪漏洞,并在API包含漏洞时通知开发人员。该本体模型采用多层结构,包括漏洞本体、软件构建本体、系统概念和一些通用领域知识。

  Du等人【3】提出了一个知识图来跟踪漏洞和软件组件之间的联系。他们分别为GitHub项目、Maven存储库和CVE数据库提出了本体。然后,他们通过本体匹配方法优化了GitHub项目与Maven存储库之间的链接,以及CVE信息与Maven存储库之间的链接。CVE与Maven库的匹配准确率高达99.88%。

  Han 等人【4】在2018年提出了针对CWE漏洞的知识图谱DeepWeak。然后,他们提出了一种知识图谱嵌入方法,结合漏洞的文本和结构信息,将漏洞及其关系嵌入到一个低维向量中。此外,这种嵌入是一种机器学习技术,可以学习人类难以发现的关系和结果。通过验证其漏洞本体的不同时间戳,显示出其本体中潜在漏洞的预测能力。

 

六、参考文献

【1】JuAW,GuoM(2009)Ovm:anontologyforvulnerabilitymanagement. In: Workshop on cyber security and information intelligence research: cyber security and information intelligence challenges and strategies.

【2】Alqahtani SS, Eghan EE, Rilling J (2017) Recovering semantic traceability links between apis and security vulnerabilities: an ontological modeling approach. In: IEEE international conference on software testing

【3】Du D, Ren X, Wu Y , Chen J, Ye W, Sun J, Xi X, Gao Q, Zhang S (2018) Refining traceability links between vulnerability and software component inavulnerability knowledgegraph.In:Mikkonen T,KlammaR,HernándezJ(eds)Webengineering.Springer,Cham,pp 33–49

【4】Han Z, Li X, Liu H, Xing Z, Feng Z (2018) Deepweak: reasoning common software weaknesses via knowledge graph embedding.In: IEEE international conference on software analysis

posted @ 2021-10-31 20:05  chaosliang  阅读(193)  评论(0)    收藏  举报