[發明專利]一種基于場景模型的軟件漏洞分析方法有效
| 申請號: | 201210424280.X | 申請日: | 2012-10-31 |
| 公開(公告)號: | CN103020529A | 公開(公告)日: | 2013-04-03 |
| 發明(設計)人: | 鄭亮;劉向東;游春凌;李紅;王斌 | 申請(專利權)人: | 中國航天科工集團第二研究院七○六所 |
| 主分類號: | G06F21/57 | 分類號: | G06F21/57;H04L29/08 |
| 代理公司: | 北京思海天達知識產權代理有限公司 11203 | 代理人: | 樓艮基 |
| 地址: | 100854*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 場景 模型 軟件 漏洞 分析 方法 | ||
1.一種基于場景模型的軟件漏洞分析方法,其特征在于所述場景模型C的數學表達式為:C={P,F,R,λ},其中P表示軟件系統的路徑path集合,F表示軟件系統文件名file集合,R是軟件系統中軟件使用的參數para集合,λ是用于描述場景間的直接調用關系的{P,F,R}->{P,F,R}的映射,所述的一種基于場景的軟件漏洞分析方法是一種面向瀏覽器B/服務器S架構的軟件漏洞分析方法,是在互聯網中的一個基于場景的軟件漏洞分析系統中依次按以下步驟實現的:
步驟(1),構建所述的基于場景的軟件漏洞分析系統,設立軟件靜態分析模塊、場景建模模塊、測試控制模塊、測試數據加載模塊、測試用例庫以及如阿年通信模塊,其中:
軟件靜態分析模塊,對軟件的可執行代碼的語句逐條進行分析,得到:軟件的執行路徑、用以標記軟件的人機接口代碼,與其他軟件交互的數據接口代碼,從中獲?。喊ㄜ浖_發語言、運行平臺、數據庫、組成文件、功能所用技術以及用戶幾口在內的軟件參數信息,
場景建模模塊,從所述軟件靜態分析模塊輸入所屬軟件參數信息按照軟件的組成文件。功能調用參數建立軟件的用戶狀態集合,得到軟件場景模型,
測試控制模塊,根據從所述軟件靜態分析模塊輸入的軟件基本信息從測試用例庫中選擇初始測試用例,同事根據從所述場景建模模塊輸入的軟件場景模型控制軟件加載數據的加載策略,
測試數據加載模塊解析測試用例庫中的測試用例并把測試數據庫判入到所述目標軟件中,同時根基測試數據生成策略對測試數據進行變換的適應具體軟件,
步驟(2),在所述的基于場景的軟件漏洞分析系統中依次按以下步驟對所述的瀏覽器B/服務器S架構的軟件進行漏洞分析;
步驟(2.1),所述軟件靜態分析模塊,按以下步驟掃描軟件代碼,構建目標軟件系統的場景參數集合:
步驟(2.1.1),掃描并分析待分析的目標軟件的代碼,得到并分析可執行文件的后綴名,再按后綴名的異同進行初步的場景劃分,所述可執行文件至少包括:jsp類型文件、asp類型文件、aspx類型文件、php類型文件、pl類型文件,
步驟(2.1.2),對步驟(2.1.1)中進行場景劃分名的各類可執行文件進行遍歷、獲取各類可執行文件的參數變量,建立各類可執行文件的參數列表,
步驟(2.1.3),對于每一類內各可執行文件在所調用的參數數量、參數名稱上的差異,再次進行類內場景劃分,從而構建出以可執行文件名,調用參數列表為標識的軟件系統場景參數集合E:
E={P,F,R,H},其中:所述
Path∈P,file∈F,para∈R,
H是場景的特征char集合,char∈H,
所述場景的特征至少包括:軟件開發語言、運行平臺、數據庫、組成文件、功能調用參數以及用戶接口,
步驟(2.2)所述場景建模模塊對輸入的所述軟件基本信息中的軟件代碼進行分析,建立場景模型C:
遍歷目標軟件系統內的每個可執行文件,對所述每類目標軟件的跳轉指合,調用指合、條用指合進行分析,通過其中對觸發GET協議、POST協議操作的語句進行分析,提取各GET協議、POST協議提交的文件路徑及參數,通過分場景參數集合S中的三元組{P,F,R}進行比對,完全相同的則建立反映二個場景問的調用關系的軟件場景模型C,C={P,F,R,λ},已如上述;
步驟(2.3)所述測試控制模塊運行用戶部署的軟件系統,記錄軟件行為:
步驟(2.3.1),所述軟件靜態分析模塊向所述測試控制模塊輸入目標軟件基本信息,所述場景建模模塊向所述測試控制系統輸入所述目標軟件的軟件場景模型,
步驟(2.3.2),用戶想所述測試控制模塊部署用戶軟件系統,輸入測試奇數,并反問所述用戶軟件系統的各個功能,同事加載瀏覽器調試器監視說書用戶軟件系統運行,
步驟(2.3.3)所述用戶軟件系統內的軟件,根據用戶的每次請求返回如下各種不同的對應結果:
若:超級文本傳輸協議HTTP返回的編碼為200,
則,用戶本次請求導致的場景切換成功,記錄相應的用戶請求文件,參數值以及變化前后的場景,
若:所述HTTP返回的編碼為400、401、403中的任何一種,
則,用戶本次請求導致的場景切換失敗,不記錄,
若:所述HTTP返回的編碼是500,
則,可能已經觸發漏洞,記錄相應的用戶請求文件,參數值以及變化前后的場景,并標記漏洞觸發數據,
步驟(2.3.4)除了切換失敗及成功的場景以外,去除步驟(2.3.3)中具有相同的場景轉化關系和相同參數值的以序列形成表述的場景變化,簡化場景變化序列,用I表示其結果,
步驟(2.3.5)用戶把所有的軟件的功能至少運行使用一次,形成初始測試場景U:
U={S0,E,I},其中:
S0:初始測試場景中的所有場景參數集合,
E:用戶提交的數據資源集合,
I:簡化后的場景變化序數,
步驟(2.4)所述測試數據加載模塊依次按以下步驟按照用戶軟件的特征,選擇初始測試用例;
步驟(2.4.1),從用戶輸入的測試參數中獲取用戶軟件系統開發語言,運行平臺和數據庫類型,
步驟(2.4.2),從步驟(2.3.5)獲取的所述初始測試場景U中的具體參數值中得到參數的類型,其中至少包括整型,字符型以及二進制型中的一種或一種以上,
步驟(2.4.3),按照步驟(2.4.2)中的具體參數從所述測試用例庫中選擇同類的測試用例,針對相應的參數進行數據加載測試,同時加載監視器監視場景變化,
步驟(2.4.4),在步驟(2.4.3)加載測試用例過程中,得到如下不同的結果:
若:所述HTTP返回的編碼是200,
則,用戶本次請求導致的場景切換成功,記錄相應的請求文件,參數值以及變化前后的場景,
若:所述HTTP返回的編碼是400、401、403中的任何一種,
則,用戶本次請求導致的場景切換失敗,不記錄,
若:所述HTTP返回的編碼是500,
則,可能已觸發漏洞,記錄相應的用戶請求文件、參數值以及變化前后的場景,并標記漏洞觸發參數及數據,
步驟(2.4.5),把步驟(2.4.4)產生異常行為及異常場景轉換的數據添加到所述測試用例庫中,并記錄對應的用戶軟件信息,包括:軟件開發語言運行平臺、數據庫的基本信息在場景轉換中減少的參數類型,以及修改的包括常量參數在內的參數類型及對應的參數值,
步驟(2.4.6),所述測試數據加載模塊向所述軟件通信模塊把云發送請求;獲準后,到云基于場景的漏洞分析數據。
2.根據權利要求1所述的一種基于場景模型的軟件漏洞分析方法,其特征在于,在步驟(2.4.5)后,增加下述一個步驟:按以下測試策略調整用戶到入的測試數據集合E,并返回步驟(2.4.1),重新測試,一直到場景切換成功為止;
不按照在目標軟件系統場景模型中的場景轉換類系進行場景功能調用,或者
通過減少調用參數來進行場景功能調用,或者多次隨機修改場景轉換過程中的變量參數。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國航天科工集團第二研究院七○六所,未經中國航天科工集團第二研究院七○六所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210424280.X/1.html,轉載請聲明來源鉆瓜專利網。





