RESTful API接口Fuzz測試關鍵技術研究
發(fā)布時間:2021-03-09 18:39
隨著信息技術的持續(xù)發(fā)展,互聯(lián)網(wǎng)及軟件產(chǎn)品日益向開放、共享的模式發(fā)展。根據(jù)世界銀行的統(tǒng)計,已有100多個國家和超過250個政府,及聯(lián)合國和世界銀行等國際組織,實施“開放數(shù)據(jù)行動計劃”(Open Data Initiative)。通過應用程序接口(Application Programming Interface,API)獲取信息,已日益成為消費者獲取數(shù)據(jù)的重要方式之一。因此,應用產(chǎn)品接口的安全性已日趨重要。接口模糊測試(Fuzz)是接口安全測試的主要手段之一。但在實際使用過程中,應用程序接口Fuzz存在用例規(guī)模過大、用例覆蓋有效性低等問題。本文針對以上問題,結(jié)合SwaggerHub接口開發(fā)實例的接口實現(xiàn),提出并實現(xiàn)了一套RESTful API接口Fuzz系統(tǒng),通過用例自動生成、預篩選等方法,有效提升了應用程序接口模糊測試有效性和測試效率。本文具體工作內(nèi)容如下:首先,提出了一種基于接口定義描述的測試用例自動生成方法。該方法通過分析接口定義描述文件的關鍵特征,構(gòu)建一組接口定義描述與RESTful API資源表述的映射關系,并結(jié)合OpenAPI規(guī)范給出一組實現(xiàn)。由于該方法基于接口定義實現(xiàn),對比...
【文章來源】:東南大學江蘇省 211工程院校 985工程院校 教育部直屬院校
【文章頁數(shù)】:72 頁
【學位級別】:碩士
【部分圖文】:
ProgrammableWeb網(wǎng)站API登記注冊數(shù)量(2005-2018)[4]
誆饈岳此擔?綰喂乖旖涌誆饈雜美?ㄎ撓任?丶?H縞銜乃?觶?:??試通常采用報文逆向解析、報文拼接等方式來實現(xiàn)。以PeachFuzz工具為例,其接口模糊測試用例的生成方法是通過獲取消息請求報文來推測攻擊模式,產(chǎn)生模糊報文。這種方法產(chǎn)生的模糊報文,大多數(shù)會被接口校驗直接過濾,無法到達程序內(nèi)部。這樣的模糊測試效率是比較低的。在OpenAPI規(guī)范中,接OpenAPI接口的定義本身是一個JSON對象,其可以表示為JSON文件或YAML文件。在OpenStack標準中,服務發(fā)布的接口是符合OpenAPI3.0規(guī)范的RESTful接口,接口的一種實現(xiàn)流程如圖3-1所示。由此流程可見,在這個系統(tǒng)中,RESTful接口是由符合OpenAPI3.0規(guī)范的YAML文件定義的。圖3-1微服務接口發(fā)布流程YAML是JSON的超集,它的優(yōu)勢在于,可以方便地支持注釋、換行符分割、多行字符串等,還可以引用文件。所以消息體中的JSON格式參數(shù)可以由YAML定義,而YAML還可以通過注釋的方式來聲明參數(shù)的數(shù)據(jù)類型與邊界值、接口SLA等信息,供外部使用。由于JSON與YAML最終定義的內(nèi)容相同,表示方法類似,僅在語法格式上存在差異,本文后續(xù)章節(jié)均以YAML文件定義的RESTfulAPI接口舉例進行說明。在OpenAPI3.0/Swagger2.0規(guī)范中,對YAML如何定義接口信息給出了明確的要求。ArnaudLauret在其網(wǎng)站[36]對該規(guī)范進行了樹形結(jié)構(gòu)的整理如圖3-2所示。
第三章基于接口定義描述的測試用例生成方法21圖3-2OpenAPIMap以SwaggerHub提供的OpenAPI3.0標準接口開發(fā)實例[37]為例,舉例說明RESTful接口的JSON報文格式與其對應的YAML文件,展示接口定義文件是如何對接口進行描述的:表3-1RESTful接口JSON報文格式及其對應的YAML文件定義字段類型請求報文舉例定義文件代碼片段路徑/petpaths:/pet:方法POSTpost:請求消息報文體{"id":0,"category":{"id":0,"name":"string"},"name":"doggie","photoURIs":["string"],"tags":[{"id":0,"name":"string"}],"status":"available"tags:-petsummary:AddanewpettothestoreoperationId:addPetrequestBody:$ref:"#/components/requestBodies/Pet"
【參考文獻】:
期刊論文
[1]基于微服務架構(gòu)的自動化測試[J]. 張圓冰. 電子技術與軟件工程. 2019(04)
[2]微服務框架的設計與實現(xiàn)[J]. 張晶,黃小鋒,李春陽. 計算機系統(tǒng)應用. 2017(06)
[3]基于瀏覽器測試組件的社交網(wǎng)絡數(shù)據(jù)獲取技術研究[J]. 陳學敏,沙灜. 信息網(wǎng)絡安全. 2015(05)
[4]一種多項式時間的路徑敏感的污點分析方法[J]. 李佳靜,王鐵磊,韋韜,鳳旺森,鄒維. 計算機學報. 2009(09)
[5]網(wǎng)絡安全漏洞研究[J]. 張玉清. 信息網(wǎng)絡安全. 2008(11)
[6]緩沖區(qū)溢出漏洞研究與進展[J]. 李毅超,劉丹,韓宏,盧顯良. 計算機科學. 2008(01)
[7]基于Fuzzing的TFTP漏洞挖掘技術[J]. 劉奇旭,張玉清. 計算機工程. 2007(20)
[8]基于插樁技術的并行程序性能分析方法設計和實現(xiàn)[J]. 馬桂杰,蔣昌俊,劉吟,王忱. 計算機應用研究. 2007(10)
碩士論文
[1]針對ZigBee協(xié)議MAC層安全的綜合檢測算法[D]. 李景.北京郵電大學 2013
[2]基于環(huán)境的模糊測試技術研究[D]. 張美超.中國科學技術大學 2011
[3]基于REST面向資源的企業(yè)信息集成平臺框架[D]. 毛力銳.上海交通大學 2010
[4]基于模糊測試的軟件安全漏洞發(fā)掘技術研究[D]. 黃奕.中國科學技術大學 2010
本文編號:3073290
【文章來源】:東南大學江蘇省 211工程院校 985工程院校 教育部直屬院校
【文章頁數(shù)】:72 頁
【學位級別】:碩士
【部分圖文】:
ProgrammableWeb網(wǎng)站API登記注冊數(shù)量(2005-2018)[4]
誆饈岳此擔?綰喂乖旖涌誆饈雜美?ㄎ撓任?丶?H縞銜乃?觶?:??試通常采用報文逆向解析、報文拼接等方式來實現(xiàn)。以PeachFuzz工具為例,其接口模糊測試用例的生成方法是通過獲取消息請求報文來推測攻擊模式,產(chǎn)生模糊報文。這種方法產(chǎn)生的模糊報文,大多數(shù)會被接口校驗直接過濾,無法到達程序內(nèi)部。這樣的模糊測試效率是比較低的。在OpenAPI規(guī)范中,接OpenAPI接口的定義本身是一個JSON對象,其可以表示為JSON文件或YAML文件。在OpenStack標準中,服務發(fā)布的接口是符合OpenAPI3.0規(guī)范的RESTful接口,接口的一種實現(xiàn)流程如圖3-1所示。由此流程可見,在這個系統(tǒng)中,RESTful接口是由符合OpenAPI3.0規(guī)范的YAML文件定義的。圖3-1微服務接口發(fā)布流程YAML是JSON的超集,它的優(yōu)勢在于,可以方便地支持注釋、換行符分割、多行字符串等,還可以引用文件。所以消息體中的JSON格式參數(shù)可以由YAML定義,而YAML還可以通過注釋的方式來聲明參數(shù)的數(shù)據(jù)類型與邊界值、接口SLA等信息,供外部使用。由于JSON與YAML最終定義的內(nèi)容相同,表示方法類似,僅在語法格式上存在差異,本文后續(xù)章節(jié)均以YAML文件定義的RESTfulAPI接口舉例進行說明。在OpenAPI3.0/Swagger2.0規(guī)范中,對YAML如何定義接口信息給出了明確的要求。ArnaudLauret在其網(wǎng)站[36]對該規(guī)范進行了樹形結(jié)構(gòu)的整理如圖3-2所示。
第三章基于接口定義描述的測試用例生成方法21圖3-2OpenAPIMap以SwaggerHub提供的OpenAPI3.0標準接口開發(fā)實例[37]為例,舉例說明RESTful接口的JSON報文格式與其對應的YAML文件,展示接口定義文件是如何對接口進行描述的:表3-1RESTful接口JSON報文格式及其對應的YAML文件定義字段類型請求報文舉例定義文件代碼片段路徑/petpaths:/pet:方法POSTpost:請求消息報文體{"id":0,"category":{"id":0,"name":"string"},"name":"doggie","photoURIs":["string"],"tags":[{"id":0,"name":"string"}],"status":"available"tags:-petsummary:AddanewpettothestoreoperationId:addPetrequestBody:$ref:"#/components/requestBodies/Pet"
【參考文獻】:
期刊論文
[1]基于微服務架構(gòu)的自動化測試[J]. 張圓冰. 電子技術與軟件工程. 2019(04)
[2]微服務框架的設計與實現(xiàn)[J]. 張晶,黃小鋒,李春陽. 計算機系統(tǒng)應用. 2017(06)
[3]基于瀏覽器測試組件的社交網(wǎng)絡數(shù)據(jù)獲取技術研究[J]. 陳學敏,沙灜. 信息網(wǎng)絡安全. 2015(05)
[4]一種多項式時間的路徑敏感的污點分析方法[J]. 李佳靜,王鐵磊,韋韜,鳳旺森,鄒維. 計算機學報. 2009(09)
[5]網(wǎng)絡安全漏洞研究[J]. 張玉清. 信息網(wǎng)絡安全. 2008(11)
[6]緩沖區(qū)溢出漏洞研究與進展[J]. 李毅超,劉丹,韓宏,盧顯良. 計算機科學. 2008(01)
[7]基于Fuzzing的TFTP漏洞挖掘技術[J]. 劉奇旭,張玉清. 計算機工程. 2007(20)
[8]基于插樁技術的并行程序性能分析方法設計和實現(xiàn)[J]. 馬桂杰,蔣昌俊,劉吟,王忱. 計算機應用研究. 2007(10)
碩士論文
[1]針對ZigBee協(xié)議MAC層安全的綜合檢測算法[D]. 李景.北京郵電大學 2013
[2]基于環(huán)境的模糊測試技術研究[D]. 張美超.中國科學技術大學 2011
[3]基于REST面向資源的企業(yè)信息集成平臺框架[D]. 毛力銳.上海交通大學 2010
[4]基于模糊測試的軟件安全漏洞發(fā)掘技術研究[D]. 黃奕.中國科學技術大學 2010
本文編號:3073290
本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/3073290.html
最近更新
教材專著