檢測(cè)web應(yīng)用中的安全漏洞的制作方法
【專利摘要】本發(fā)明公開(kāi)涉及檢測(cè)web應(yīng)用中的安全漏洞。檢測(cè)安全漏洞的方法包括:在web應(yīng)用執(zhí)行期間與web應(yīng)用交互以識(shí)別由web應(yīng)用暴露的網(wǎng)頁(yè);靜態(tài)分析網(wǎng)頁(yè)以識(shí)別網(wǎng)頁(yè)中受客戶機(jī)端驗(yàn)證措施約束并且要發(fā)送到web應(yīng)用的參數(shù);鑒于由客戶機(jī)端驗(yàn)證措施給予參數(shù)的約束來(lái)確定要應(yīng)用到參數(shù)的服務(wù)器端驗(yàn)證措施;靜態(tài)分析web應(yīng)用以識(shí)別web應(yīng)用中要把參數(shù)輸入到web應(yīng)用中的位置;在安全敏感操作中使用參數(shù)之前確定參數(shù)是否受服務(wù)器端驗(yàn)證措施的約束;及把參數(shù)識(shí)別為安全漏洞。
【專利說(shuō)明】檢測(cè)web應(yīng)用中的安全漏洞
【背景技術(shù)】
[0001]如果不能在處理用戶輸入和在安全敏感操作中使用它們之前正確地驗(yàn)證用戶輸 入,那么基于互聯(lián)網(wǎng)的計(jì)算機(jī)軟件應(yīng)用,或者說(shuō)“web”應(yīng)用,可能容易受到惡意攻擊。一種常 用手段是通過(guò)在用戶與之交互的web應(yīng)用接口處約束用戶輸入來(lái)執(zhí)行這種驗(yàn)證。因此,例 如,呈現(xiàn)給用戶的基于HTML的網(wǎng)頁(yè)可以包括只能經(jīng)具有預(yù)定義值的有限集合以供用戶選 擇的下拉框填充的參數(shù)、及不讓用戶直接修改的隱式參數(shù),然后這些參數(shù)轉(zhuǎn)發(fā)到底層的web 應(yīng)用。
【發(fā)明內(nèi)容】
[0002]實(shí)施例提供了 web應(yīng)用中安全漏洞的檢測(cè)。在一種實(shí)施例中,一種方法包括在web 應(yīng)用執(zhí)行期間與所述web應(yīng)用交互以識(shí)別由所述web應(yīng)用暴露的網(wǎng)頁(yè);及靜態(tài)分析所述網(wǎng) 頁(yè)以識(shí)別所述網(wǎng)頁(yè)中受客戶機(jī)端驗(yàn)證措施約束并且要發(fā)送到所述web應(yīng)用的參數(shù)。所述方 法還包括鑒于由客戶機(jī)端驗(yàn)證措施給予參數(shù)的約束來(lái)確定要應(yīng)用到所述參數(shù)的服務(wù)器端 驗(yàn)證措施;及靜態(tài)分析所述web應(yīng)用以識(shí)別所述web應(yīng)用中要把所述參數(shù)輸入到所述web 應(yīng)用中的位置。所述方法還包括在安全敏感操作中使用所述參數(shù)之前確定所述參數(shù)是否受 服務(wù)器端驗(yàn)證措施的約束;及在安全敏感操作中使用所述參數(shù)之前在所述參數(shù)不受服務(wù)器 端驗(yàn)證措施約束的情況下把所述參數(shù)識(shí)別為安全漏洞。
【專利附圖】
【附圖說(shuō)明】
[0003]根據(jù)以下具體描述并結(jié)合附圖,實(shí)施例將得到更加完全的理解和認(rèn)可,其中:
[0004]圖1是根據(jù)本發(fā)明一種實(shí)施例構(gòu)造并操作的、用于檢測(cè)采用客戶機(jī)端驗(yàn)證的web 應(yīng)用中的安全漏洞的系統(tǒng)的簡(jiǎn)化概念性圖示;
[0005]圖2是根據(jù)本發(fā)明一種實(shí)施例操作的圖1系統(tǒng)操作的示例性方法的簡(jiǎn)化流程圖圖 示;及
[0006]圖3是根據(jù)本發(fā)明一種實(shí)施例構(gòu)造并操作的計(jì)算系統(tǒng)的示例性硬件實(shí)現(xiàn)的簡(jiǎn)化 框圖圖示。
【具體實(shí)施方式】
[0007]現(xiàn)在在一種或多種實(shí)施例的背景下描述本發(fā)明,雖然本描述是要從整體上說(shuō)明本 發(fā)明,而不是要把本發(fā)明限定到所示出的實(shí)施例。應(yīng)當(dāng)認(rèn)識(shí)到,雖然沒(méi)有在這里具體示出, 但是各種修改都是本領(lǐng)域技術(shù)人員可以想到的,而且仍然在本發(fā)明的真正主旨與范圍內(nèi)。
[0008]所屬【技術(shù)領(lǐng)域】的技術(shù)人員知道,本發(fā)明的各個(gè)方面可以實(shí)現(xiàn)為系統(tǒng)、方法或計(jì)算 機(jī)程序產(chǎn)品。因此,本發(fā)明的各個(gè)方面可以具體實(shí)現(xiàn)為以下形式,即:完全的硬件實(shí)施方式、 完全的軟件實(shí)施方式(包括固件、駐留軟件、微代碼等),或硬件和軟件方面結(jié)合的實(shí)施方 式,這里可以統(tǒng)稱為“電路”、“模塊”或“系統(tǒng)”。此外,在一些實(shí)施例中,本發(fā)明的各個(gè)方面 還可以實(shí)現(xiàn)為在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)程序產(chǎn)品的形式,該計(jì)算機(jī)可讀介質(zhì)中包含計(jì)算機(jī)可讀的程序代碼。
[0009]可以采用一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)的任意組合。計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀信號(hào)介質(zhì)或者計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)例如可以是一但不限于——電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個(gè)或多個(gè)導(dǎo)線的電連接、便攜式計(jì)算機(jī)盤、硬盤、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可擦式可編程只讀存儲(chǔ)器 (EPR0M或閃存)、光纖、便攜式緊湊盤只讀存儲(chǔ)器(CD-ROM)、光數(shù)據(jù)存儲(chǔ)器件、磁數(shù)據(jù)存儲(chǔ)器件、或者上述的任意合適的組合。在本文件中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是任何包含或存儲(chǔ)程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
[0010]計(jì)算機(jī)可讀的信號(hào)介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號(hào), 其中承載了計(jì)算機(jī)可讀的程序代碼。這種傳播的數(shù)據(jù)信號(hào)可以采用多種形式,包括一但不限于一電磁信號(hào)、光信號(hào)或上述的任意合適的組合。計(jì)算機(jī)可讀的信號(hào)介質(zhì)還可以是計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)以外的任何計(jì)算機(jī)可讀介質(zhì),該計(jì)算機(jī)可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。
[0011]計(jì)算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括一但不限于一無(wú)線、有線、光纜、RF等等,或者上述的任意合適的組合。
[0012]可以以一種或多種程序設(shè)計(jì)語(yǔ)言的任意組合來(lái)編寫(xiě)用于執(zhí)行本發(fā)明操作的計(jì)算機(jī)程序代碼,所述程序設(shè)計(jì)語(yǔ)言包括面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言一諸如Java、Smalltalk、C++ 等,還包括常規(guī)的過(guò)程式程序設(shè)計(jì)語(yǔ)言一諸如“C”語(yǔ)言或類似的程序設(shè)計(jì)語(yǔ)言。程序代碼可以完全地在用戶計(jì)算機(jī)上執(zhí)行、部分地在用戶計(jì)算機(jī)上執(zhí)行、作為一個(gè)獨(dú)立的軟件包執(zhí)行、 部分在用戶計(jì)算機(jī)上部分在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。 在涉及遠(yuǎn)程計(jì)算機(jī)的情形中,遠(yuǎn)程計(jì)算機(jī)可以通過(guò)任意種類的網(wǎng)絡(luò)一包括局域網(wǎng)(LAN) 或廣域網(wǎng)(WAN)—連接到用戶計(jì)算機(jī),或者,可以連接到外部計(jì)算機(jī)(例如利用因特網(wǎng)服務(wù)提供商來(lái)通過(guò)因特網(wǎng)連接)。
[0013]下面將參照根據(jù)本發(fā)明實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖和 /或框圖描述本發(fā)明。應(yīng)當(dāng)理解,流程圖和/或框圖的每個(gè)方框以及流程圖和/或框圖中各方框的組合,都可以由計(jì)算機(jī)程序指令實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可以提供給通用計(jì)算機(jī)、專用計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,使得這些計(jì)算機(jī)程序指令在通過(guò)計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行時(shí),產(chǎn)生了實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的裝置。
[0014]也可以把這些計(jì)算`機(jī)程序指令存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中,這些指令使得計(jì)算機(jī)、 其它可編程數(shù)據(jù)處理裝置、或其他設(shè)備以特定方式工作,從而,存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中的指令就產(chǎn)生出包括實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的指令的制造品(article of manufacture)?
[0015]所述計(jì)算機(jī)程序指令還可以加載到計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置或者其它設(shè)備上,使得一系列操作步驟在計(jì)算機(jī)、其它可編程裝置或者其它設(shè)備上執(zhí)行,以產(chǎn)生一種計(jì)算機(jī)實(shí)現(xiàn)的過(guò)程,使得在所述計(jì)算機(jī)或者其它可編程裝置上執(zhí)行的指令提供用于實(shí)現(xiàn)在所述流程圖和/或框圖的一個(gè)或多個(gè)方框中所指定的功能/動(dòng)作的過(guò)程。
[0016]現(xiàn)在參考圖1,其是根據(jù)一種實(shí)施例構(gòu)造并操作的、用于檢測(cè)采用客戶機(jī)端驗(yàn)證的web應(yīng)用中的安全漏洞的系統(tǒng)的簡(jiǎn)化概念性圖示。在圖1的系統(tǒng)中,在一種實(shí)施例中,黑盒 測(cè)試器100,諸如可以從位于紐約Armonk的國(guó)際商用機(jī)器公司商業(yè)獲得的IBM Rational AppScan?,被配置成在web應(yīng)用102執(zhí)行過(guò)程中根據(jù)常規(guī)的黑盒測(cè)試技術(shù)與web應(yīng)用102 交互,以便識(shí)別由web應(yīng)用102暴露的任何靜態(tài)或動(dòng)態(tài)生成的網(wǎng)頁(yè)。Web應(yīng)用102可以是可 以由計(jì)算機(jī)服務(wù)器104托管并且由一個(gè)或多個(gè)客戶計(jì)算機(jī)106經(jīng)計(jì)算機(jī)網(wǎng)絡(luò)108,諸如互聯(lián) 網(wǎng),訪問(wèn)的任何基于計(jì)算機(jī)的軟件應(yīng)用。
[0017]在一種實(shí)施例中,約束管理器110被配置成靜態(tài)地分析黑盒測(cè)試器100識(shí)別出的 網(wǎng)頁(yè),以便識(shí)別該網(wǎng)頁(yè)中受一個(gè)或多個(gè)預(yù)定義客戶機(jī)端驗(yàn)證措施112約束并且要發(fā)送到位 于服務(wù)器104處的web應(yīng)用102的參數(shù)。這種客戶機(jī)端驗(yàn)證措施112可以例如包括:
[0018]-其中參數(shù)是隱式參數(shù);
[0019]-其中參數(shù)是通過(guò)從預(yù)定義值的列表中進(jìn)行選擇,諸如經(jīng)下拉框,來(lái)給其分配值的 參數(shù);及
[0020]-其中參數(shù)是為其執(zhí)行客戶機(jī)端測(cè)試以便確定其值是否遵循正則表達(dá)式的參數(shù)。
[0021]在一種實(shí)施例中,約束管理器110可以鑒于由客戶機(jī)端驗(yàn)證措施112給予參數(shù)的 約束而確定應(yīng)當(dāng)應(yīng)用到給定參數(shù)的一個(gè)或多個(gè)服務(wù)器端驗(yàn)證措施114。這種服務(wù)器端驗(yàn)證 措施114可以例如包括:
[0022]-當(dāng)參數(shù)是隱式參數(shù)時(shí),web應(yīng)用102檢查其值與客戶機(jī)端提供的其它參數(shù)的 值之間的相關(guān)性。例如,如果網(wǎng)頁(yè)中的候選參數(shù)是稱為“isAdmin”的布爾隱式字段,它是 當(dāng)用戶輸入用戶名與密碼時(shí)由網(wǎng)頁(yè)中的JavaScript?代碼設(shè)置的,則客戶機(jī)端的約束是 “isAdmin”與輸入的用戶名與密碼相關(guān);
[0023]-當(dāng)參數(shù)是通過(guò)從預(yù)定義值的列表中進(jìn)行選擇,諸如經(jīng)下拉框,來(lái)為其分配值的參 數(shù)時(shí),web應(yīng)用102檢查該值是屬于固定的值集合還是預(yù)定義的值范圍 '及
[0024]-當(dāng)參數(shù)是為其執(zhí)行客戶機(jī)端測(cè)試以確定其值是否遵循正則表達(dá)式的參數(shù)時(shí),web 應(yīng)用102執(zhí)行相同的測(cè)試。
[0025]在一種實(shí)施例中,約束管理器110可以把識(shí)別出的參數(shù)與它們適用的服務(wù)器端驗(yàn) 證措施114 一起存儲(chǔ)在參數(shù)約束數(shù)據(jù)存儲(chǔ)116中。
[0026]在一種實(shí)施例中,靜態(tài)分析器118可以被配置成靜態(tài)地分析web應(yīng)用102,諸如通 過(guò)建立web應(yīng)用102的控制流模型和數(shù)據(jù)流模型,來(lái)識(shí)別web應(yīng)用102中網(wǎng)頁(yè)參數(shù)要輸入 到web應(yīng)用102中的位置。對(duì)于這樣識(shí)別出的任何給定參數(shù),靜態(tài)分析器118都詢問(wèn)約束 管理器110,或者作為替代直接訪問(wèn)參數(shù)約束116,以便確定哪些約束應(yīng)當(dāng)對(duì)參數(shù)應(yīng)用,而 且這些約束是否要在參數(shù)用于安全敏感操作之前由web應(yīng)用102對(duì)參數(shù)應(yīng)用。在參數(shù)用于 安全敏感操作之前,靜態(tài)分析器118把在web應(yīng)用102中不受適用的服務(wù)器端驗(yàn)證措施114 約束的任何參數(shù)識(shí)別為安全漏洞。靜態(tài)分析器118把關(guān)于識(shí)別出的web應(yīng)用102的安全漏 洞的報(bào)告提供給諸如黑盒測(cè)試器100或靜態(tài)分析器118的操作人員。
[0027]現(xiàn)在參考圖2,其是根據(jù)一種實(shí)施例操作的圖1的系統(tǒng)操作的示例性方法的簡(jiǎn)化 流程圖圖示。在圖2的方法中,在一種實(shí)施例中,web應(yīng)用的黑盒測(cè)試可以在其執(zhí)行過(guò)程中 執(zhí)行,以便識(shí)別由該web應(yīng)用暴露的任何靜態(tài)或動(dòng)態(tài)生成的網(wǎng)頁(yè)(方框200)。系統(tǒng)靜態(tài)分析 所識(shí)別出的網(wǎng)頁(yè),以便識(shí)別網(wǎng)頁(yè)中由一個(gè)或多個(gè)預(yù)定義客戶機(jī)端驗(yàn)證措施約束并且要發(fā)送 到所述web應(yīng)用的參數(shù)(方框202)。鑒于由客戶機(jī)端驗(yàn)證措施給予參數(shù)的約束,系統(tǒng)確定應(yīng)當(dāng)應(yīng)用到給定參數(shù)的一個(gè)或多個(gè)服務(wù)器端驗(yàn)證措施(方框204)。系統(tǒng)對(duì)web應(yīng)用執(zhí)行靜態(tài) 分析,以便識(shí)別該web應(yīng)用中網(wǎng)頁(yè)參數(shù)要輸入到該web應(yīng)用中的位置(方框206)。如果在 參數(shù)用于安全敏感操作之前該參數(shù)在web應(yīng)用中不受適用的服務(wù)器端驗(yàn)證措施約束(方框 208),則系統(tǒng)把該參數(shù)識(shí)別為安全漏洞并且報(bào)告(方框210)。
[0028]圖1的系統(tǒng)和圖2的方法可以在以下例子的背景下展示,其中在web應(yīng)用102執(zhí) 行過(guò)程中黑盒測(cè)試器100與其交互,并且為其呈現(xiàn)具有登錄表單的網(wǎng)頁(yè)。在一種實(shí)施例中, 約束管理器110分析該網(wǎng)頁(yè),確定登錄表單包括指示用戶是否是管理員的隱式標(biāo)志,并且 確定該隱式標(biāo)志應(yīng)當(dāng)與由來(lái)自該用戶的其它參數(shù)所持有的值相關(guān)。在一種實(shí)施例中,靜態(tài) 分析器118發(fā)現(xiàn)web應(yīng)用102中形式如下的有關(guān)調(diào)用集合:
[0029]<y>=<x>.getParameter (’ admin’),
[0030]其中<x>和<y>分別是用于其靜態(tài)類型為HttpServletRequest和Boolean的變 量標(biāo)識(shí)符的占位符。然后,靜態(tài)分析器118檢查<y>的值是否直接或間接地用于控制執(zhí)行 流,而不需要web應(yīng)用102首先檢查這個(gè)值是否與由來(lái)自該用戶的其它參數(shù)所持有的值相 關(guān)。如果可以從“getParameter”語(yǔ)句到達(dá)的安全敏感操作僅僅是由對(duì)<y>的測(cè)試控制的, 那么,因?yàn)闆](méi)有發(fā)現(xiàn)充分約束該隱式標(biāo)志的服務(wù)器端驗(yàn)證措施,所以靜態(tài)分析器118把該 隱式標(biāo)志報(bào)告為安全漏洞,這是因?yàn)樵谠撾[式標(biāo)志被發(fā)送到web應(yīng)用102之前對(duì)其進(jìn)行簡(jiǎn) 單操縱可能就足以把一個(gè)普通用戶變成管理員,這有可能讓該普通用戶對(duì)應(yīng)用具有絕對(duì)的 控制。
[0031]現(xiàn)在參考圖3,框圖300說(shuō)明了根據(jù)一種實(shí)施例的可以利用其實(shí)現(xiàn)一種或多種組 件/方法(例如,在圖1-2背景下描述的組件/方法)的計(jì)算系統(tǒng)的示例性硬件實(shí)現(xiàn)。
[0032]如圖所示,用于控制對(duì)至少一個(gè)資源的訪問(wèn)的技術(shù)可以根據(jù)經(jīng)計(jì)算機(jī)總線318或 備用連接布置耦合的處理器310、存儲(chǔ)器312、I/O設(shè)備314和網(wǎng)絡(luò)接口 316來(lái)實(shí)現(xiàn)。
[0033]應(yīng)當(dāng)認(rèn)識(shí)到,如本文所使用的,術(shù)語(yǔ)“處理器”是要包括任何處理設(shè)備,諸如例如包 括CPU (中央處理單元)的處理設(shè)備,和/或其它處理電路。還應(yīng)當(dāng)理解,術(shù)語(yǔ)“處理器”可 以指多于一個(gè)處理設(shè)備而且與一個(gè)處理設(shè)備關(guān)聯(lián)的各種元件可以由其它處理設(shè)備共享。
[0034]如本文所使用的,術(shù)語(yǔ)“存儲(chǔ)器”是要包括與處理器或CPU關(guān)聯(lián)的處理器,諸如例 如RAM、ROM、固定存儲(chǔ)器設(shè)備(例如,硬驅(qū))、可拆卸存儲(chǔ)器設(shè)備(例如,磁盤)、閃存存儲(chǔ)器等。 這種存儲(chǔ)器可以被認(rèn)為是計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。
[0035]此外,如本文所使用的,短語(yǔ)“輸入/輸出設(shè)備”或“ I/O設(shè)備”是要包括例如用于 把數(shù)據(jù)輸入處理單元的一個(gè)或多個(gè)輸入設(shè)備(例如,鍵盤、鼠標(biāo)、掃描儀等),和/或用于呈現(xiàn) 與處理單元關(guān)聯(lián)的結(jié)果的一個(gè)或多個(gè)輸出設(shè)備(例如,揚(yáng)聲器、顯示器、打印機(jī)等)。
[0036]附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個(gè)實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程 序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個(gè)方框可以 代表一個(gè)模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個(gè)或多個(gè) 用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實(shí)現(xiàn)中,方框中所 標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個(gè)連續(xù)的方框?qū)嶋H上可以 基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的 是,框圖和/或流程圖中的每個(gè)方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行 規(guī)定的功能或動(dòng)作的專用的基于硬件的系統(tǒng)來(lái)實(shí)現(xiàn),或者可以用專用硬件與計(jì)算機(jī)指令的組合來(lái)實(shí)現(xiàn)。
[0037]將認(rèn)識(shí)到,本文所描述的任何元素都可以實(shí)現(xiàn)為包含在計(jì)算機(jī)可讀介質(zhì)中的計(jì)算 機(jī)程序產(chǎn)品,諸如以存儲(chǔ)在磁性或光學(xué)存儲(chǔ)介質(zhì)上或者嵌入在計(jì)算機(jī)硬件中的計(jì)算機(jī)程序 指令的形式,而且可以由計(jì)算機(jī)(未示出)執(zhí)行或以別的方式進(jìn)行訪問(wèn)。
[0038]盡管本文的方法與裝置可能已經(jīng)或者可能還沒(méi)有參考具體的計(jì)算機(jī)硬件或軟件 進(jìn)行描述,但是應(yīng)當(dāng)認(rèn)識(shí)到,本文所述的方法與裝置可以很容易地利用常規(guī)技術(shù)以計(jì)算機(jī) 硬件或軟件實(shí)現(xiàn)。
[0039]盡管已經(jīng)參考一種或多種具體實(shí)施例描述了本發(fā)明,但是這種描述是為了從整體 上說(shuō)明本發(fā)明而不是要把本發(fā)明限定到所示出的實(shí)施例。應(yīng)當(dāng)認(rèn)識(shí)到,雖然沒(méi)有在這里具 體示出,但是各種變化都是本領(lǐng)域技術(shù)人員可以想到的,而且仍然在本發(fā)明的真正主旨與 范圍內(nèi)。
【權(quán)利要求】
1.一種方法,包括:在web應(yīng)用執(zhí)行期間與所述web應(yīng)用交互以識(shí)別由所述web應(yīng)用暴露的網(wǎng)頁(yè);靜態(tài)分析所述網(wǎng)頁(yè)以識(shí)別所述網(wǎng)頁(yè)中受客戶機(jī)端驗(yàn)證措施約束并且要發(fā)送到所述web 應(yīng)用的參數(shù);鑒于由客戶機(jī)端驗(yàn)證措施給予參數(shù)的約束來(lái)確定要應(yīng)用到所述參數(shù)的服務(wù)器端驗(yàn)證措施;靜態(tài)分析所述web應(yīng)用以識(shí)別所述web應(yīng)用中要把所述參數(shù)輸入到所述web應(yīng)用中的位置;在安全敏感操作中使用所述參數(shù)之前確定所述參數(shù)是否受服務(wù)器端驗(yàn)證措施的約束;及在安全敏感操作中使用所述參數(shù)之前在所述參數(shù)不受服務(wù)器端驗(yàn)證措施約束的情況下把所述參數(shù)識(shí)別為安全漏洞。
2.如權(quán)利要求1所述的方法,進(jìn)一步包括:識(shí)別網(wǎng)頁(yè)中的參數(shù),其中所述參數(shù)是隱式參數(shù)。
3.如權(quán)利要求1所述的方法,進(jìn)一步包括:識(shí)別網(wǎng)頁(yè)中的參數(shù),其中所述參數(shù)是通過(guò)從預(yù)定義值的列表中進(jìn)行選擇來(lái)給其分配值的參數(shù)。
4.如權(quán)利要求1所述的方法,進(jìn)一步包括: 識(shí)別網(wǎng)頁(yè)中的參數(shù),其中所述參數(shù)是要為其執(zhí)行客戶機(jī)端測(cè)試以確定參數(shù)的值是否遵循正則表達(dá)式的參數(shù)。
5.如權(quán)利要求1所述的方法,進(jìn)一步包括:建立所述web應(yīng)用的控制流模型與數(shù)據(jù)流模型。
6.如權(quán)利要求1所述的方法,其中所述參數(shù)是隱式參數(shù),所述web應(yīng)用檢查所述參數(shù)的值與客戶機(jī)提供的至少一個(gè)其它參數(shù)的值之間的相關(guān)性。
7.如權(quán)利要求1所述的方法,其中所述參數(shù)是通過(guò)從預(yù)定義值的列表中進(jìn)行選擇來(lái)給其分配值的參數(shù),并且其中所述web應(yīng)用檢查所述值是屬于固定的值集合還是預(yù)定義的值范圍。
8.如權(quán)利要求1所述的方法,其中所述參數(shù)是要為其執(zhí)行客戶機(jī)端測(cè)試以確定參數(shù)的值是否遵循正則表達(dá)式的參數(shù)。
9.一種系統(tǒng),包括:黑盒測(cè)試器,被配置成在web應(yīng)用執(zhí)行期間與所述web應(yīng)用交互以識(shí)別由所述web應(yīng)用暴露的網(wǎng)頁(yè);約束管理器,被配置成:靜態(tài)分析所述網(wǎng)頁(yè)以識(shí)別所述網(wǎng)頁(yè)中受客戶機(jī)端驗(yàn)證措施約束并且要發(fā)送到所述web 應(yīng)用的參數(shù);及鑒于由客戶機(jī)端驗(yàn)證措施給予參數(shù)的約束來(lái)確定要應(yīng)用到所述參數(shù)的服務(wù)器端驗(yàn)證措施;靜態(tài)分析器,被配置成:靜態(tài)分析所述web應(yīng)用以識(shí)別所述web應(yīng)用中要把所述參數(shù)輸入到所述web應(yīng)用中的位置;在安全敏感操作中使用所述參數(shù)之前確定所述參數(shù)是否受服務(wù)器端驗(yàn)證措施的約束;及在安全敏感操作中使用所述參數(shù)之前在所述參數(shù)不受服務(wù)器端驗(yàn)證措施約束的情況下把所述參數(shù)識(shí)別為安全漏洞。
10.如權(quán)利要求9所述的系統(tǒng),其中所述參數(shù)是隱式參數(shù)。
11.如權(quán)利要求9所述的系統(tǒng),其中所述參數(shù)是通過(guò)從預(yù)定義值的列表中進(jìn)行選擇來(lái)給其分配值的參數(shù)。
12.如權(quán)利要求9所述的系統(tǒng),其中所述參數(shù)是要為其執(zhí)行客戶機(jī)端測(cè)試以確定參數(shù)的值是否遵循正則表達(dá)式的參數(shù)。
13.如權(quán)利要求9所述的系統(tǒng),其中所述靜態(tài)分析器進(jìn)一步被配置成通過(guò)建立所述web 應(yīng)用的控制流模型與數(shù)據(jù)流模型來(lái)靜態(tài)地分析web應(yīng)用。
14.如權(quán)利要求9所述的系統(tǒng),其中所述參數(shù)是隱式參數(shù),并且其中所述web應(yīng)用檢查所述參數(shù)的值與客戶機(jī)提供的至少一個(gè)其它參數(shù)的值之間的相關(guān)性。
15.如權(quán)利要求9所述的系統(tǒng),其中所述參數(shù)是通過(guò)從預(yù)定義值的列表中進(jìn)行選擇來(lái)給其分配值的參數(shù),并且其中所述web應(yīng)用檢查所述值是屬于固定的值集合還是預(yù)定義的值范圍。
16.如權(quán)利要求9所述的系統(tǒng),其中所述參數(shù)是要為其執(zhí)行客戶機(jī)端測(cè)試以確定參數(shù)的值是否遵循正則表達(dá)式的參數(shù)。
17.一種計(jì)算機(jī)程序產(chǎn)品,包括:計(jì)算機(jī)可讀存儲(chǔ)介質(zhì);及包含在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中的計(jì)算機(jī)可讀程序代碼,其中計(jì)算機(jī)可讀程序代碼被配置成:在web應(yīng)用執(zhí)行期間與所述web應(yīng)用交互以識(shí)別由所述web應(yīng)用暴露的網(wǎng)頁(yè);靜態(tài)分析所述網(wǎng)頁(yè)以識(shí)別所述網(wǎng)頁(yè)中受客戶機(jī)端驗(yàn)證措施約束并且要發(fā)送到所述web 應(yīng)用的參數(shù);鑒于由客戶機(jī)端驗(yàn)證措施給予參數(shù)的約束來(lái)確定要應(yīng)用到所述參數(shù)的服務(wù)器端驗(yàn)證措施;靜態(tài)分析所述web應(yīng)用以識(shí)別所述web應(yīng)用中要把所述參數(shù)輸入到所述web應(yīng)用中的位置;在安全敏感操作中使用所述參數(shù)之前確定所述參數(shù)是否受服務(wù)器端驗(yàn)證措施的約束;及在安全敏感操作中使用所述參數(shù)之前在所述參數(shù)不受服務(wù)器端驗(yàn)證措施約束的情況下把所述參數(shù)識(shí)別為安全漏洞。
18.如權(quán)利要求17所述的計(jì)算機(jī)程序產(chǎn)品,其中計(jì)算機(jī)可讀程序代碼進(jìn)一步被配置成識(shí)別網(wǎng)頁(yè)中的參數(shù),其中所述參數(shù)是隱式參數(shù)。
19.如權(quán)利要求17所述的計(jì)算機(jī)程序產(chǎn)品,其中計(jì)算機(jī)可讀程序代碼進(jìn)一步被配置成識(shí)別網(wǎng)頁(yè)中的參數(shù),并且其中所述參數(shù)是通過(guò)從預(yù)定義值的列表中進(jìn)行選擇來(lái)給其分配值的參數(shù)。
20.如權(quán)利要求17所述的計(jì)算機(jī)程序產(chǎn)品,其中計(jì)算機(jī)可讀程序代碼進(jìn)一步被配置成識(shí)別網(wǎng)頁(yè)中的參數(shù),并且其中所述參數(shù)是要為其執(zhí)行客戶機(jī)端測(cè)試以確定參數(shù)的值是否遵循正則表達(dá)式的參數(shù)。
21.如權(quán)利要求17所述的計(jì)算機(jī)程序產(chǎn)品,其中計(jì)算機(jī)可讀程序代碼進(jìn)一步被配置成建立所述web應(yīng)用的控制流模型與數(shù)據(jù)流模型。
22.如權(quán)利要求17所述的計(jì)算機(jī)程序產(chǎn)品,其中計(jì)算機(jī)可讀程序代碼進(jìn)一步被配置成確定,并且其中所述參數(shù)是隱式參數(shù),所述web應(yīng)用檢查所述參數(shù)的值與客戶機(jī)提供的至少一個(gè)其它參數(shù)的值之間的相關(guān)性。
23.如權(quán)利要求17所述的計(jì)算機(jī)程序產(chǎn)品,其中計(jì)算機(jī)可讀程序代碼進(jìn)一步被配置成確定,其中所述參數(shù)是通過(guò)從預(yù)定義值的列表中進(jìn)行選擇來(lái)給其分配值的參數(shù),并且其中所述web應(yīng)用檢查所述值是屬于固定的值集合還是預(yù)定義的值范圍。
24.如權(quán)利要求17所述的計(jì)算機(jī)程序產(chǎn)品,其中計(jì)算機(jī)可讀程序代碼進(jìn)一步被配置成確定,并且其中所述參數(shù)是要為其執(zhí)行客戶機(jī)端測(cè)試以確定參數(shù)的值是否遵循正則表達(dá)式的參數(shù)。
【文檔編號(hào)】H04L9/32GK103563293SQ201280026257
【公開(kāi)日】2014年2月5日 申請(qǐng)日期:2012年6月26日 優(yōu)先權(quán)日:2011年6月30日
【發(fā)明者】M·匹斯托愛(ài), O·塞伽爾, O·特立普 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司