網絡服務接口分析的製作方法
2023-06-07 13:12:51 3
網絡服務接口分析的製作方法
【專利摘要】在一個實現方式中,服務接口分析系統基於與網絡服務相關聯的多個統一資源標識符定義多個服務模板,並且生成來自多個服務模板的每個服務模板的至少一個效用度量。
【專利說明】網絡服務接口分析
【背景技術】
[0001]安全性測試用於針對脆弱性(vulnerability)或攻擊向量(attack vector)而評定諸如web (網絡)應用之類的網絡服務。在安全性測試的一種方法中,安全性測試應用(或掃描器(scanner))識別網絡服務的服務接口(例如,統一資源標識符(URI),諸如應用在其處接受輸入的統一資源定位符(URL))。網絡服務的服務接口有時被稱作網絡服務的攻擊面。
[0002]掃描器通過分析與網絡服務有關的網頁以識別引用網絡服務的URI (諸如包括網絡服務的主機標識符的URI)來識別網絡服務的服務接口。在一些實現方式中,掃描器還向網絡服務提供超文本傳輸協議(HTTP)請求並且評估來自網絡服務的HTTP響應以確定網絡服務是否在這些URI處對請求進行響應以及響應於這樣的請求而返回的數據的特性。
[0003]掃描器然後基於諸如導向網絡服務在其處接受輸入的URI的HTTP請求之類的服務接口而執行攻擊。這些請求特別地被精心製作成(例如具有參數或數據有效載荷以)測試攻擊向量,諸如,例如,存儲器緩衝器溢出、結構化查詢語言(SQL)注入、特權提升和任意代碼執行。此外,掃描器可以通過評估來自網絡服務的HTTP響應來診斷存在或不存在脆弱性。
【專利附圖】
【附圖說明】
[0004]圖1是根據實現方式的包括網絡服務的環境的圖示。
[0005]圖2是根據實現方式的服務接口分析過程的流程圖。
[0006]圖3是根據另一個實現方式的服務接口分析系統的示意性框圖。
[0007]圖4是根據另一個實現方式的服務接口分析過程的流程圖。
[0008]圖5是根據實現方式的服務接口分析系統的數據流圖。
[0009]圖6是根據實現方式的在計算系統處主控(host)的服務接口分析系統的示意性框圖。
【具體實施方式】
[0010]一些掃描器通過首先解釋(interpret)網絡服務的服務接口的識別出的URI並且使那些URI的參數改變成包括攻擊數據集(例如旨在測試網絡服務處的攻擊向量的數據集)來執行網絡服務的安全性測試。然後將具有改變的URI的諸如HTTP請求之類的請求(還稱為服務請求或資源請求)提供給網絡服務以執行網絡服務的安全性測試。
[0011]一些網絡服務的服務接口適用於這樣的安全性測試。例如,服務接口可以基於以下形式的 URI:http://www.service, com/directory/file?parameterl=valuel¶meter2=value20 該 URI 包括主機標識符「www.service, com」,到文件的路徑「/directory/file」,以及查詢串「parameterl=valueI¶meter2=value2」。典型地,查詢串被轉發到路徑識別的文件並且被其處理。因此,查詢串定義到網絡服務或服務接口的輸入。這裡,網絡服務接受「valuel」作為名為「namel」的輸入參數以及「value2」作為名為「name2」的輸入參數。
[0012]掃描器可以相對簡單地識別這樣的服務接口,因為定義這樣的服務接口的URI符合模式。更具體地,資源(這裡,文件)被來自網絡服務的主機標識符的路徑所識別,查詢串由問號字符(「? 」)識別,每個參數名稱/值對通過與字符(「&」)與其它參數名稱/值對分開,並且任何參數名稱/值對的參數名稱和值通過等號字符(「 = 」)分開。通過根據該模式解釋URI,掃描器可以識別可以被改變以執行網絡服務的安全性測試的值。
[0013]然而,其它網絡服務的服務接口並不適用於這樣的安全性測試。例如,一些網絡服務顯露或定義表述性狀態轉移(REST)服務接口。符合REST (或顯露這樣的服務接口的網絡服務)的原則的服務接口通常稱作「REST的(RESTful)」。REST不是協議,而是架構或接口式樣。許多REST的服務接口的一個共同特點是用於這樣的服務接口的URI包括作為URI路徑的元素而不是例如作為URI內的查詢串的參數(或輸入參數的值)。
[0014]例如,與來自上文的URI 7]\ 例(http://www.service, com/directory/file?namel=valueI&name2=value2)形成對照,REST的服務接口可以基於以下形式中的任一種的URI:
http://www.service, com/directory/file/valuel/value2,
http://www.service, com/valuel/directory/file/value2,
http://www.service.com/value2/directory/file/valuel,或者
http://www.service.com/valuel/value2/file.html。
[0015]這樣的接口對於掃描器而言難以識別,因為這樣的URI具有類似於靜態URI的形式。也就是說,在沒有服務接口的單獨描述的情況下,URI http://www.service, com/valuel/value2/file.html可以解釋成是指在由www.service, com識別的主機處的具有路徑「/valUel/valUe2/」的目錄中的題為「file, html」的靜態網頁,而不是作為包括兩個參數(即 「 value I 」 和 「 value2 」)的 URI。
[0016]此外,這樣的URI不符合掃描器從其可以識別可以被改變以執行網絡服務的安全性測試的參數(或輸入參數值)的清楚模式。結果,掃描器通常不能在沒有來自具有將在其上執行安全性測試的網絡服務的服務接口的理解的測試工程師的輔助的情況下利用這樣的服務接口有效地執行網絡服務的安全性測試。
[0017]本文所論述的實現方式不依賴於網絡服務的服務接口的描述而識別可以被改變以執行網絡服務的安全性測試的URI內的參數。例如,本文所論述的實現方式基於針對網絡服務的服務接口的URI組而識別URI內的這樣的參數。作為更特定的示例,服務接口分析系統可以基於通過爬行(crawl) —組網頁而識別出的URI來定義服務模板組(例如其中識別出包括或者可以包括參數的URI的元素的URI或其部分)。此外,服務接口分析系統可以基於該服務模板的屬性而生成針對每個服務模板的一個或多個效用度量(measure)。服務接口分析系統然後可以基於針對每個服務模板的一個或多個效用度量將啟發法(例如表徵或分類的規則)應用於服務模板以識別由於不太可能正確地識別包括參數的URI的元素而應當被丟棄的服務模板。剩餘的服務模板(即未被丟棄的那些)可以用於執行網絡服務的安全性測試。
[0018]圖1是根據實現方式的包括網絡服務的環境的圖示。圖1中所示的環境被邏輯地而非物理地圖示。例如,圖1中圖示的環境的組件可以包括多個物理組件或單個物理組件。作為特定示例,計算系統110可以是單個計算機伺服器、計算機伺服器的外殼或機架、在計算機伺服器或計算機伺服器組處主控的虛擬機組、或負載平衡器和計算機伺服器集群。
[0019]客戶端140是諸如web或網際網路瀏覽器或在計算系統(諸如臺式計算機、筆記本或膝上型計算機、平板設備或智慧型電話)處主控的其它應用之類的應用。客戶端140通過使用URI請求那些資源來訪問網絡服務120處的資源。
[0020]通信鏈路130包括定義計算系統110、客戶端140和/或其它設備或服務之間的通信路徑的設備、服務或其組合。例如,通信鏈路130可以包括線纜(例如,雙絞線纜、同軸線纜或光纖線纜)、無線鏈路(例如,射頻鏈路、光學鏈路或聲波鏈路)或者傳輸或支持信號傳輸的任何其它連接器或系統中的一個或多個。通信鏈路130可以包括諸如內聯網、網際網路、其它電信網絡或其組合之類的通信網絡。此外,通信鏈路130可以包括代理、路由器、交換機、網關、橋接器、負載平衡器和類似的通信設備。此外,圖1中圖示的連接和通信路徑(例如,在通信鏈路130和客戶端140和計算系統110之間)是邏輯性的並且不一定反映物理連接。
[0021]計算系統100主控網絡服務120。網絡服務120是資源經由其可以被訪問的諸如web應用之類的應用。資源121-128是數據或數據的集合。例如,資源121可以是關係資料庫內的表,並且資源121、123和124可以是關係資料庫內的記錄。資源125可以是,例如,圖像的容器(或集合),資源126可以是資源125內的容器,資源127可以是資源126內的圖像,並且資源128可以是該資源125內的圖像。
[0022]網絡服務120定義資源121-128經由其可以例如被客戶端140訪問的服務接口。換言之,網絡服務120定義識別資源121-128的URI的結構。URI是識別資源的符號組。因此,服務接口定義在網絡服務120處如何解釋URI以識別資源。
[0023]URI 190是URI的示例。URI 190包括各種片段(或部分或元素)。在圖1中圖示的示例中,URI 190的片段由斜線字符(「/」)劃界或分開。更具體地,URI 190包括五個片段:模式「HTTP」,其描述數據要如何被傳送;主機標識符,其識別網絡服務120 ;以及作為URI的主體或路徑的部分的三個片段。在其中網絡服務120定義REST的服務接口的示例中,例如,作為URI的路徑的部分的三個片段可以每一個包括被網絡服務120用於識別資源的參數。也就是說,網絡服務120將這些片段的內容解釋為參數或輸入參數值。
[0024]參數是諸如在URI (或諸如包括URI的HTTP請求之類的請求)內作為輸入提供給網絡服務的符號、字符或數字之類的數據。參數或參數組可以識別資源、識別關於資源要執行的操作、表示用於相對於資源被執行的操作的數據(例如用於更新資源的數據)、表示與資源有關的元數據或者表示與資源有關的其它數據。
[0025]作為特定示例,網絡服務120可以提供與圖書有關的信息。在該示例中,資源121可以是關係資料庫內的表,所述關係資料庫包括諸如唯一圖書標識符(例如國際標準圖書編號(ISBN))、標題、作者、出版日期、頁數和其它信息之類的關於圖書的信息。也就是說,資源122、123、124中的每一個和資源121內的其它資源是與特定圖書有關的信息集合。此外,在該示例中,資源125可以包括圖書封面的圖像。對於該示例更具體地,資源126可以是針對特定圖書的不同圖書封面的圖像的集合(資源127可以是那些圖像之一),並且資源128是圖書封面的圖像。包括PARAMETER1 (參數I)的片段可以被網絡服務120用於確定是否請求關於圖書或圖書封面的信息。如果PARAMETER1具有值「data」,關於圖書的信息被請求並且包括PARAMETER2 (參數2)的片段可以被網絡服務120用於識別所期望的圖書的唯一圖書標識符,並且包括PARAMETER3 (參數3)的片段可以被網絡服務120用於識別針對該所期望的圖書的資源中的信息的特定類型或欄位。如果PARAMETER1具有值「cover」,圖書封面被請求並且包括PARAMETER2的片段可以被網絡服務120用於通過使用所期望的圖書的唯一圖書標識符來識別請求針對其的圖書封面圖像的圖書,並且包括PARAMETER3的片段可以被網絡服務120用於識別所請求的圖像的格式(例如,位圖圖像、JPEG圖像、PNG圖像、GIF圖像或某個其它圖像格式)。
[0026]因此,如果客戶端140通過向網絡服務120提供URI http://www.service, com/data/29132464/titIe來請求網絡服務120處的資源,網絡服務120將用由29132464唯一識別的圖書的標題向客戶端140提供響應。類似地,如果客戶端140通過向網絡服務120提供URI http://www.service, com/data/36007380/title 來請求網絡服務 120 處的資源,網絡服務120將用由36007380唯一識別的圖書的標題向客戶端140提供響應。然而,如果客戶端 140通過向網絡服務 120提供URI http://www.service, com/cover/29132464/JPEG來請求網絡服務120處的資源,網絡服務120將用以JPEG格式的針對由29132464唯一識別的圖書的圖書封面的圖像向客戶端140提供響應。此外,如果客戶端140通過向網絡服務 120 提供 URI http: //www.service, com/cover/36007380/PNG 來請求網絡服務 120 處的資源,網絡服務120將用以PNG格式的針對由36007380唯一識別的圖書的圖書封面的圖像向客戶端140提供響應。
[0027]掃描器可以通過,例如,爬行連結到網絡服務120的網頁(或經由網絡服務120可訪問的資源121-128)和/或監視去往計算系統110的通信(例如網絡業務)來獲取包括網絡服務120的主機標識符的URI大組(在該示例中,www.service, com)。這些URI將具有形式http://www.service.com/cover/〈唯一圖書標識符 >/〈圖像格式 > 或形式http://www.service, com/data//〈信息欄位 >。本文論述的實現方式分析這些URI以生成描述這些URI的哪些片段包括可以被改變以執行網絡服務120的安全性測試的參數的服務模板。
[0028]作為示例,圖2是根據實現方式的服務接口分析過程的流程圖。過程200可以在諸如在計算系統處主控的服務接口分析系統之類的服務接口分析系統處實現。基於URI組在塊210處定義服務模板組。服務模板描述針對用於網絡服務的服務接口的URI的結構。作為示例,服務模板可以是包括與包括參數的其它URI的片段對應的服務模板的部分(或片段)處的一個或多個佔位標識符的URI (或其部分)。換言之,服務模板中的佔位標識符是對於URI中的參數的代替。因此,服務模板通過描述網絡服務經由其接受輸入的URI和那些URI的哪些片段可以包括參數來描述服務接口(或其部分)。在其它實現方式中,服務模板可以以除了 URI或字符串之外的格式來描述,諸如使用諸如可擴展標記語言(XML)之類的標記語言。
[0029]作為特定示例,參考以上關於圖1論述的示例,網絡服務可以顯露基於以下形式的URI的服務接口:http://www.service.com/cover//〈圖像格式 > 或形式http://www.service, com/data//〈信息欄位 >。該服務接口可以通過例如兩個服務模板來描述:http://www.service, com/cover/*/*或形式http://www.service, com/data/*/*,其中星號字符(「*」)是佔位標識符。換言之,服務模板http://www.service, com/cover/*/*描述網絡服務經由其接受輸入的URI的結構。通過用各種值(例如字母數字字符或其它符號串)取代佔位標識符(這裡,星號字符),諸如攻擊數據集之類的數據可以被提供作為對網絡服務的輸入。
[0030]在該示例中,URI可以按如下從服務模板http://www.service, com/cover/*/*生成或基於所述服務模板生成。第一星號字符可以用作為唯一圖書標識符的要被輸入到網絡服務的值「SQL ATTACK」取代,並且第二星號字符可以用作為圖像格式的要被輸入到網絡服務的值「SHELL CODE」取代。更具體地,在該示例中所生成的URI將是http://www.service,com/cover/ SQL ATTACK / SHELL CODE。
[0031]作為另一個示例,服務模板可以由XML文檔內的XML元素描述。例如,服務模板http://www.service, com/cover/氺/氺可以表述為:
【權利要求】
1.一種處理器可讀介質,包括表示指令的代碼,所述指令當在處理器處執行時使處理器: 基於與網絡服務相關聯的多個統一資源標識符而定義多個服務模板; 生成來自多個服務模板的每個服務模板的至少一個效用度量;以及 基於服務模板的至少一個效用度量而丟棄來自多個服務模板的所述服務模板。
2.權利要求1的處理器可讀介質,還包括表示指令的代碼,所述指令當在處理器處執行時使處理器: 獲取數據存儲裝置處的多個統一資源標識符。
3.權利要求1的處理器可讀介質,還包括表示指令的代碼,所述指令當在處理器處執行時使處理器: 向網絡服務提供多個請求;以及 基於來自網絡服務的多個響應而定義多個統一資源標識符。
4.權利要求1的處理器可讀介質,其中所述至少一個效用度量包括覆蓋度量、特異性度量、度度量或其組合中的至少一個。
5.權利要求1的處理器可讀介質,還包括表示指令的代碼,所述指令當在處理器處執行時使處理器: 識別來自多個統一資源標識符的每個統一資源標識符內的網絡服務的主機標識符和多個片段; 針對來自多個統一資源標識符的每個統一資源標識符,通過用至少一個佔位標識符取代來自該統一資源標識符內的多個片段的一個或多個片段來生成服務模板組, 通過來自針對來自多個統一資源標識符的每個統一資源標識符的服務模板組的唯一服務模板而定義多個服務模板。
6.權利要求1的處理器可讀介質,還包括表示指令的代碼,所述指令當在處理器處執行時使處理器: 確定服務模板的至少一個效用度量不滿足針對至少一個效用度量的預定閾值。
7.一種服務接口分析系統,包括: 解析模塊,其識別來自多個統一資源標識符的每個統一資源標識符內的多個片段; 服務模板生成器模塊,其用至少一個佔位標識符取代來自每個統一資源標識符內的多個片段的一個或多個片段以定義針對該統一資源標識符的至少一個服務模板;以及 測量模塊,其向針對每個統一資源標識符的至少一個服務模板分配至少一個效用度量。
8.權利要求7的系統,還包括: 過濾模塊,其基於分配到針對來自多個統一資源標識符的統一資源標識符的至少一個服務模板的至少一個效用度量而丟棄針對來自多個統一資源標識符的所述統一資源標識符的來自至少一個服務模板的服務模板。
9.權利要求7的系統,其中分配到針對每個統一資源標識符的至少一個服務模板的至少一個效用度量包括覆蓋度量、特異性度量、度度量或其組合中的至少一個。
10.權利要求7的系統,其中分配到針對每個統一資源標識符的至少一個服務模板的至少一個效用度量包括覆蓋度量、特異性度量、度度量或其組合中的至少兩個。
11.權利要求7的系統,還包括: 捕獲模塊,其基於與網絡服務的通信而識別多個統一資源標識符。
12.權利要求7的系統,還包括: 分析模塊,其向網絡服務提供多個請求,所述請求基於針對來自多個統一資源標識符的統一資源標識符的來自至少一個服務模板的多個服務模板,每個請求包括攻擊數據集。
13.一種服務接口分析方法,包括: 獲取存儲器處的多個統一資源標識符; 針對來自多個統一資源標識符的每個統一資源標識符, 識別該統一資源標識符內的多個片段,以及 用至少一個佔位標識符取代來自該統一資源標識符內的多個片段的一個或多個片段以定義針對該統一資源標識符的服務模板組; 聚合針對每個統一資源標識符的服務模板組以定義多個服務模板;以及 向來自多個服務模板的每個服務模板分配效用度量。
14.權利要求13的方法,其中分配到每個服務模板的效用度量包括覆蓋度量、特異性度量、度度量或其組合中的至少一個。
15.權利要求13的方法,還包括: 基於分配到服務模板的效用度量而丟棄來自多個服務模板的所述服務模板。
【文檔編號】H04L29/06GK104137506SQ201280070943
【公開日】2014年11月5日 申請日期:2012年2月29日 優先權日:2012年2月29日
【發明者】Z.梅澤, K.門德列夫, O.舍扎夫 申請人:惠普發展公司,有限責任合夥企業