混合檢測技術(Hybrid Detection)
針對靜態檢測技術和動態檢測技術所存在的缺陷,近年來出現了混合檢測技術這一概念。從廣泛的意義上來說,它是靜態檢測技術與動態檢測技術在套用中的結合,但是由於混合檢測中的一些技術已形成較為規範檢測方法,所以本文特別分類對其中一些典型代表進行說明。
混合檢測技術是實踐套用的產物,具有自動化程度高,實用性好的特點,各種技術也不可避免的存在一些缺陷。Fuzzing檢測(Fuzzing Detection)誤報率高,漏洞類型覆蓋不全;檢測集(Test Set)性能消耗大;原始碼改寫(Source Code Rewrite)容易引起競爭條件問題,不支持多執行緒技術;堆疊編譯器保護(Compiler Stack Protection)檢測漏洞類型單一;二進制代碼改寫(Binary Rewriting)準確率不高,誤報率較高;標準檢查(Standard Inspection)標準建立複雜,可靠性不高;異常檢查(abnormal Examination)誤報率高,兼容性問題大。
現有大部分軟體安全漏洞檢測方法對軟體漏洞的主要停留在針對某單一特徵或者某單一功能的檢測上。整個軟體系統是一個有機的整體,它的不同代碼段之間、各個功能之間存在種種的依賴的關係,所以針對單一點的檢測方法,由於未考慮其間的以來關係,所以容易造成“漏報”和“誤報”。雖然也出現了一些分析執行路徑與數據流圖結合圖論知識[33]的漏洞檢測方法,但是這些檢測理論主要停留在理論的說明上,在實際套用中也並不能取得特別理想的效果。