第八章 協議逆向分析的應用

8.1 概述

自動化的協議逆向方法提高了獲得未知協議規範的準確率和效率。

在實際工作中獲得協議規範不是逆向分析的最終目的,而是進行下一步工作的基礎。

協議逆向技術廣泛應用於無線網絡對抗、惡意軟件分析、軟件安全漏洞挖掘、協議重用、網絡管理等領域。

大多數情況下,這些應用利用協議逆向分析得到的協議規範(協議格式和協議狀態機)作爲系統設計、實現的基本依據,而沒有與逆向分析系統進行有機結合。理想情況下,協議逆向得到的協議規範應直接作爲這些應用的輸入。

將逆向分析系統與fuzzing測試相結合。首先利用逆向分析系統對目標軟件的通信協議進行逆向分析,得到包含協議格式和狀態機信息的協議規範描述模型,進而作爲fuzzing測試系統的輸入對目標軟件進行fuzzing測試。

8.2 fuzzing測試技術

fuzzing測試技術又稱爲模糊測試技術,它通過向被測系統注入大量非預期的輸入來發現潛在的漏洞,是目前應用最廣泛的漏洞挖掘技術。

fuzzing步驟:

1)輸入識別與分析:分析輸入數據的格式特徵,爲後續生成測試用例奠定基礎;

2)構造測試用例

3)執行測試用例

4)異常監控

5)異常分析

測試用例的構造方法:

基於生成的技術:已知輸入數據的具體構成規則,根據該規則生成測試數據

基於變異的技術:在對輸入數據規範有所瞭解的前提下,針對樣本數據中某些域進行變化,從而產生新的變化。、

fuzzing技術分爲三類:白盒fuzzing技術、基於反饋的fuzzing技術、基於模型的fuzzing技術、基於模型的fuzzing技術是指依據被測程序輸入數據的先驗知識(如文件、協議的RFC文檔、軟件開發文檔)建立測試用例的生成模型,進而指導測試用例產生和執行的測試方法。

Protos、SPIKE、Peach、Sulley

8.3 基於模型的fuzzing技術面臨的問題

fuzzing技術的目標是構造半有效的測試用例,所謂的“半有效”是指測試用例既能通過被測軟件的有效性驗證,又能觸發軟件處理異常。

主要表現在兩個方面:數據格式的描述和測試用例的生成。

基於塊的描述模型

樹結構描述模型

基於上下文無關文法的描述模型

8.3.2 測試用例的生成

1)模型冗餘導致測試用例冗餘

2)測試對象與測試邏輯混合定義,人工編寫腳本工作複雜

3)單純的基於類型的變異策略導致測試用例針對性不強,測試效率偏低

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章