1. 程式人生 > 其它 >Ontology-based services for software vulnerability detection: a survey

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 intelligenceresearch: cyber security and information intelligence challengesand strategies.

【2】Alqahtani SS, Eghan EE, Rilling J (2017) Recovering semantictraceability links between apis and security vulnerabilities: an ontological modeling approach. In: IEEE international conference onsoftware 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:MikkonenT,KlammaR,HernándezJ(eds)Webengineering.Springer,Cham,pp 33–49

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