的應用的客戶機設備的角色。服務器1208起運行應用可與之交互的服務的服務器的作用。代理服務機制1206可模擬將在實際執行環境中產生的消息交換。代理服務機制1206還模擬單獨攻擊功能724的操作。
[0103]在操作中,客戶機側測試者功能1210首先啟動客戶機應用(應用ε) 1212,表示根據某一指南構造的非惡意應用。這可(或可不)需要與正被測試的相應服務器應用(應用s) 1214的交互。服務器側測試者功能1216可對應于與測試有關的API等,這些API允許客戶機應用(應用c) 1212與服務器應用(應用s) 1214交互。客戶機應用(應用c) 1212還可經SDK功能(未示出)與ID提供者1218交互。在模擬了客戶機應用(應用1212的操作之后,客戶機側測試者功能1210可像(圖7的)惡意客戶機應用(壞應用ε)那樣表現。
[0104]圖13是描述圖4的應用開發環境406的操作的一個方式的過程1302。在框1304中,應用開發環境406接收與某一 SDK相關聯的測試套件。在框1306中,應用開發環境406建立測試環境,諸如圖12中所示的配置。在框1308中,應用開發環境406例如通過一次分析一個弱點來對測試套件中指定的每個弱點模式運行測試。在框1310中,應用開發環境406基于框1310的結果標識應用中的任何缺陷。在框1312中,應用開發者可選擇修改該應用以解決框1310中標識出的缺點。
[0105]D.代表性計算功能
[0106]圖14闡述了可以被用來實現上文所描述的功能的任何方面的說明性計算功能1400。例如,圖14中所示類型的計算功能1400可被用于實現圖2中所示的任何客戶機設備或任何服務器的任何方面。圖14中所示類型的計算功能1400還可被用于實現圖4的SDK開發環境404的任何方面(諸如分析模塊412)以及應用開發環境406的任何方面(諸如測試工具424)。在一種情況下,計算功能1400可對應于包括一個或多個處理設備的任何類型的計算設備。在所有情形中,計算功能1400表示一個或多個物理且有形的處理機制。
[0107]計算功能1400可包括諸如RAM 1402和ROM 1404之類的易失性和非易失性存儲器,以及一個或多個處理設備1406 (例如,一個或多個CPU,和/或一個或多個GPU等等)。計算功能1400還可任選地包括諸如硬盤模塊、光盤模塊等等之類的各種介質設備1408。當處理設備1406執行由存儲器(例如,RAM 1402、ROM 1404或其他)維護的指令時,計算功能1400可以執行上文所標識的各種操作。
[0108]更一般地,指令和其它信息可以被存儲在任何計算機可讀介質1410上,計算機可讀介質包括但不限于靜態存儲器存儲設備、磁存儲設備、光存儲設備等。術語計算機可讀介質還涵蓋多個存儲設備。在多種情況下,計算機可讀介質1410表示某種形式的物理和有形的實體。術語計算機可讀介質還包括傳播信號,例如經由物理管道和/或空氣或其他無線介質等來傳送或接收的。然而,特定術語“計算可讀存儲介質”和“計算機可讀介質設備”明確地排除傳播信號本身,但是包括所有其他形式的計算機可讀介質。
[0109]計算功能1400還包括用于(通過輸入設備1414)接收各種輸入,以及用于(通過輸出設備)提供各種輸出的輸入/輸出模塊1412。例不性的輸入設備包括鍵盤設備、鼠標輸入設備、觸摸屏輸入設備、姿勢輸入設備、語音識別機制、平板或墻壁投影輸入機制等。一種特定輸出機制可包括呈現設備1416及相關聯的圖形用戶界面(GUI) 1418。計算功能1400還可以包括用于通過一個或多個通信管道1422與其他設備交換數據的一個或多個網絡接口 1420。一條或多條通信總線1424將上述組件通信地耦合在一起。
[0110]通信管道(一個或多個)1422可以以任何方式來實現,例如,通過局域網、廣域網(例如,因特網)等等,或其任何組合。通信管道(一個或多個)1422可包括可由任何協議或協議的組合管理的硬連線的鏈路、無線鏈路、路由器、網關功能、名稱服務器等等的任何組合。
[0111]作為替代或除此之外,前述各節中所述的任何功能可至少部分地由一個或多個硬件邏輯組件來執行。作為示例而非限制,計算功能可使用以下的一個或多個來實現:現場可編程門陣列(FPGA);專用集成電路(ASIC);專用標準產品(ASSP);片上系統(S0C);復雜可編程邏輯器件(CPLD)等等。
[0112]最后,說明書在例示性挑戰或問題的上下文中描述了各種概念。這種闡述方式不構成其他人以此處所指定的方式理解和/或明確表達這些挑戰或問題的承認。此外,所要求保護的主題也不僅限于解決提到的挑戰/問題中的任意或全部的實現。
[0113]盡管用結構特征和/或方法動作專用的語言描述了本主題,但可以理解,所附權利要求書中定義的主題不必限于上述具體特征或動作。相反,上述具體特征和動作是作為實現權利要求的示例形式公開的。
【主權項】
1.一種由至少一個計算機設備實現的軟件開發環境,包括: 分析模塊,所述分析模塊被配置成分析軟件產品連同描述應用對該軟件產品的推薦用法的文檔資料,以提供結果, 所述結果指示出是否存在所述文檔資料中未被明確表述的至少一個假設,但是對聲稱的目標的滿足取決于知曉所述至少一個假設;以及 測試套件產生模塊,所述測試套件產生模塊被配置成生成包括至少一個弱點模式的測試套件, 每個弱點模式對應于基于所述分析模塊提供的結果標識出的一相關聯的假設,以及每個弱點模式對應于一測試,一旦所述應用基于所述文檔資料被構建,該測試就能被執行以標識該相關聯的假設是否已被所述應用違反。2.一種用于分析軟件產品的方法,包括: 提供軟件廣品; 提供描述應用對該軟件產品的推薦用法的文檔資料,以便實現聲稱的目標; 提供至少表示以下內容的模型:所述軟件產品、所述文檔資料、以及所述軟件產品被預期在其中被所述應用使用的系統環境; 使用至少一個計算機設備來分析所述模型以提供結果;以及 輸出所述結果, 所述結果指示出是否存在所述文檔資料中未被明確表述的至少一個假設,但是對所述聲稱的目標的滿足取決于知曉所述至少一個假設。3.如權利要求2所述的方法,其特征在于,所述聲稱的目標是與認證和授權中的一個或多個有關的安全性相關目標。4.如權利要求2所述的方法,其特征在于, 所述模型被表達為抽象模塊的集合以及具體模塊的集合, 每個抽象t旲塊具有還未被確定的構造,以及 每個具體模塊具有已被確定的構造。5.如權利要求2所述的方法,其特征在于,所述分析包括靜態地分析所述模型以確定聲明的斷言是否被滿足。6.如權利要求2所述的方法,其特征在于,所述分析包括非確定性地調用與一測試用具相關聯的功能集合。7.如權利要求6所述的方法,其特征在于,進一步包括每當一惡意實體調用一功能并獲得安全性敏感項目時,將所述安全性敏感項目存儲在知識池中。8.如權利要求2所述的方法,其特征在于,進一步包括生成包括至少一個弱點模式的測試套件, 每個弱點模式對應于由所述分析的結果指示出的一相關聯的假設,以及每個弱點模式對應于一測試,一旦所述應用基于所述文檔資料被構建,該測試就能被執行以標識該相關聯的假設是否已被所述應用違反。9.一種用于存儲計算機可讀指令的計算機可讀存儲介質,所述計算機可讀指令在由一個或多個處理設備執行時提供一種分析模塊,所述計算機可讀指令包括: 模型,所述模型表示: 軟件產品; 描述非惡意應用對所述軟件產品的推薦用法的文檔資料,以便實現安全性目標; 所述非惡意應用; 系統環境,所述軟件產品被預期要在所述系統環境中被所述非惡意應用使用; 表示對所述非惡意應用的威脅的至少一個惡意實體;以及 與所述安全性目標有關的一組斷言;以及 被配置成分析所述模型以提供結果的邏輯, 所述結果指示出是否存在所述文檔資料中未被明確表述的至少一個假設,但是對所述安全性目標的滿足取決于知曉所述至少一個假設。10.如權利要求9所述的計算機可讀存儲介質,其特征在于,被配置成分析的所述邏輯進一步包括: 知識池;以及 被配置成在所述至少一個惡意實體調用一功能并獲得安全性敏感項目時將所述安全性敏感項目存儲在所述知識池中的邏輯。
【專利摘要】本文描述了一種用于標識與SDK及其伴隨的文檔資料(如開發者指南)相關聯的隱含假設的框架。隱含假設是在文檔資料中未被明確表述但在構建應用時在輔助應用開發者方面有用的信息。該框架還描述了一種基于標識出的隱含假設標識一個或多個弱點模式的系統性方法。應用開發者可對正被開發的應用運行測試,以確保它不具有匹配某一弱點模式的任何缺陷。
【IPC分類】G06F9/44
【公開號】CN105264491
【申請號】CN201480012437
【發明人】R·王, Y·周, S·陳, S·卡迪爾, Y·格爾維奇
【申請人】微軟技術許可有限責任公司
【公開日】2016年1月20日
【申請日】2014年3月4日
【公告號】EP2965196A2, US9372785, US20140258986, WO2014137957A2