從而,存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中的 指令就產(chǎn)生出包括實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的指令 的制造品(article of manufacture) 〇
[0021] 計(jì)算機(jī)程序指令還可以被裝載到計(jì)算機(jī)、其他可編程數(shù)據(jù)處理設(shè)備或其他裝置 上,使得計(jì)算機(jī)、其他可編程設(shè)備或其他裝置上執(zhí)行一系列的操作步驟,來產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn) 的過程,以便在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖和/或框圖 塊或多個(gè)塊中所說明的功能/行為的過程。
[0022] 現(xiàn)在參考圖1,圖1是根據(jù)本發(fā)明實(shí)施例構(gòu)成和實(shí)施的用于測(cè)試計(jì)算機(jī)軟件應(yīng)用 的系統(tǒng)的簡(jiǎn)化的概念圖。在圖1的系統(tǒng)中,示出了計(jì)算機(jī)102托管的計(jì)算機(jī)軟件應(yīng)用100, 其中計(jì)算機(jī)軟件應(yīng)用程序100可以被設(shè)計(jì)為經(jīng)由計(jì)算機(jī)網(wǎng)絡(luò)被訪問。例如,計(jì)算機(jī)軟件應(yīng) 用100可以是包括超文本標(biāo)記語言(HTML)編碼的網(wǎng)頁的"網(wǎng)絡(luò)"應(yīng)用,使用計(jì)算機(jī)102作為 網(wǎng)絡(luò)應(yīng)用服務(wù)器??捎稍u(píng)估器104評(píng)估計(jì)算機(jī)軟件應(yīng)用100,來識(shí)別由計(jì)算機(jī)軟件應(yīng)用100 使用的數(shù)據(jù)檢查軟件,比如通過采用傳統(tǒng)的"玻璃盒子"測(cè)試技術(shù),其中用識(shí)別這種數(shù)據(jù)檢 查軟件的軟件指令裝備計(jì)算機(jī)軟件應(yīng)用100。例如,數(shù)據(jù)檢查軟件可以是"消毒劑",其通過 使用戶提供的輸入服從變換標(biāo)準(zhǔn),認(rèn)可該輸入用于由計(jì)算機(jī)軟件100進(jìn)一步處理,通常其 中輸入字符串被映射到用于由計(jì)算機(jī)軟件應(yīng)用100進(jìn)一步處理的輸出字符串??蛇x地,數(shù) 據(jù)檢查軟件可以是"驗(yàn)證器",其通過使用戶提供的輸入服從驗(yàn)證標(biāo)準(zhǔn),認(rèn)可該輸入用于由 計(jì)算機(jī)軟件100進(jìn)一步處理,通常其中輸入字符串被映射到布爾值,其表明輸入是否可被 計(jì)算機(jī)軟件應(yīng)用100進(jìn)一步處理。這種數(shù)據(jù)檢查軟件的一些例子包括:框架配置文件,其中 以聲明的方式定義輸入?yún)?shù)的定制驗(yàn)證器。例如,在美國(guó)加州洛杉磯Apache軟件基金會(huì)的 作為商品出售的Apache Struts 2?中,用戶可在配置文件中,指定一對(duì)于指定的參數(shù)一要 與用戶提供的輸入匹配的正則表達(dá)式;作為商品出售的已知包含消毒劑和/或驗(yàn)證器的安 全庫;具有消毒劑或驗(yàn)證器的特性的方法,比如接受字符串作為輸入并返回字符串作為輸 出的、或接受字符串作為輸入并返回布爾值的、或是接收來自多個(gè)源的請(qǐng)求的數(shù)據(jù)流瓶頸 的靜態(tài)方法;正則表達(dá)式庫,比如Java語言的java. util, regex包(Java和所有基于Java 的商標(biāo)和標(biāo)識(shí)是Oracle和/或其子公司的商標(biāo)或注冊(cè)商標(biāo))。
[0023] 評(píng)估器104可以為在計(jì)算機(jī)108的有效載荷測(cè)試儀106提供由計(jì)算機(jī)軟件應(yīng)用 100使用的數(shù)據(jù)檢查軟件的描述,可選擇地將數(shù)據(jù)檢查軟件本身的副本提供給有效載荷測(cè) 試儀106。有效載荷測(cè)試儀106可被配置為配置計(jì)算機(jī)108以執(zhí)行由計(jì)算機(jī)軟件應(yīng)用100 使用的數(shù)據(jù)檢查軟件的副本110。通過向數(shù)據(jù)檢查軟件副本110提供測(cè)試數(shù)據(jù)有效載荷的 副本用于處理,有效載荷檢測(cè)儀106可處理一個(gè)或多個(gè)測(cè)試數(shù)據(jù)有效載荷的副本。所述測(cè) 試數(shù)據(jù)有效載荷可被儲(chǔ)存在在計(jì)算機(jī)108的預(yù)定義的測(cè)試數(shù)據(jù)有效載荷庫112中,所述測(cè) 試數(shù)據(jù)有效載荷可被配置為檢測(cè)一個(gè)或多個(gè)已知的安全漏洞,比如SQL注入,跨站點(diǎn)腳本, 以及命令注入,比如其中每個(gè)測(cè)試數(shù)據(jù)有效載荷包括被設(shè)計(jì)為利用所述安全漏洞的惡意有 效載荷。有效載荷測(cè)試儀106可被配置為確定由數(shù)據(jù)檢查軟件副本110處理的每個(gè)測(cè)試數(shù) 據(jù)有效載荷副本是否被數(shù)據(jù)檢查軟件副本110認(rèn)可用于進(jìn)一步處理。因?yàn)闄z測(cè)數(shù)據(jù)有效載 荷副本可能在由數(shù)據(jù)檢查軟件處理期間經(jīng)受變換,有效載荷測(cè)試儀106也可被配置為認(rèn)可 任何測(cè)試數(shù)據(jù)有效載荷副本,其中有效載荷測(cè)試儀106確定在由數(shù)據(jù)檢查軟件副本110處 理后,測(cè)試數(shù)據(jù)有效載荷副本保持被配置來測(cè)試其相關(guān)安全漏洞,比如確定所處理的測(cè)試 數(shù)據(jù)有效載荷副本充分保留其惡意特性。因此,例如,如果數(shù)據(jù)檢查軟件是驗(yàn)證器,則有效 載荷測(cè)試儀106確定由數(shù)據(jù)檢查軟件副本110處理的測(cè)試數(shù)據(jù)有效載荷副本是否可被數(shù)據(jù) 檢查軟件確定為可接受用于進(jìn)一步處理。同樣,如果數(shù)據(jù)檢查軟件是消毒劑,則有效載荷測(cè) 試儀106可確定由數(shù)據(jù)檢查軟件副本110處理的測(cè)試數(shù)據(jù)有效載荷副本的變換版本是否能 夠測(cè)試與測(cè)試數(shù)據(jù)有效載荷相關(guān)的安全漏洞。
[0024] 對(duì)于任何在被數(shù)據(jù)檢查軟件副本110處理后,被如上文所描述的那樣認(rèn)可用于進(jìn) 一步處理的測(cè)試數(shù)據(jù)有效載荷副本,在計(jì)算機(jī)108的應(yīng)用測(cè)試儀114可被配置為經(jīng)由計(jì)算 機(jī)網(wǎng)絡(luò)116向在計(jì)算機(jī)102的計(jì)算機(jī)軟件應(yīng)用100發(fā)送測(cè)試數(shù)據(jù)有效載荷副本用于處理。 相反地,如上文所描述的,任何在被數(shù)據(jù)檢查軟件副本110處理后,不被認(rèn)可用于進(jìn)一步處 理的測(cè)試數(shù)據(jù)有效載荷副本,應(yīng)用測(cè)試儀114不會(huì)經(jīng)由計(jì)算機(jī)網(wǎng)絡(luò)116向在計(jì)算機(jī)102的 計(jì)算機(jī)軟件應(yīng)用100發(fā)送測(cè)試數(shù)據(jù)有效載荷副本用于處理。以這種方式,應(yīng)用測(cè)試儀114 不要經(jīng)由計(jì)算機(jī)網(wǎng)絡(luò)116向計(jì)算機(jī)軟件應(yīng)用110簡(jiǎn)單地發(fā)送在庫112中的所有可能的測(cè)試 數(shù)據(jù)有效載荷以便測(cè)試所有可能的安全漏洞,以及應(yīng)用測(cè)試儀114不要經(jīng)由網(wǎng)絡(luò)116向計(jì) 算機(jī)軟件應(yīng)用110發(fā)送任意縮減的測(cè)試數(shù)據(jù)有效載荷集,應(yīng)用測(cè)試儀114可以僅向計(jì)算機(jī) 軟件110發(fā)送具有最大機(jī)會(huì)暴露安全漏洞的那些測(cè)試數(shù)據(jù)有效載荷。
[0025] 圖1所示的任何元素可以根據(jù)傳統(tǒng)技術(shù),在計(jì)算機(jī)硬件中和/或包含于非暫時(shí)性 的計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)軟件中實(shí)施。
[0026] 現(xiàn)在參考圖2,圖2是根據(jù)本發(fā)明實(shí)施例實(shí)施的圖1的系統(tǒng)的示例操作方法的簡(jiǎn)化 的流程圖。在圖2的方法中,由在第一計(jì)算機(jī)的計(jì)算機(jī)軟件應(yīng)用使用的數(shù)據(jù)檢查軟件可被 識(shí)別(步驟200)。第二計(jì)算機(jī)可被配置為執(zhí)行所識(shí)別的數(shù)據(jù)檢查軟件副本(步驟202)。存 儲(chǔ)在第二計(jì)算機(jī)的一個(gè)或多個(gè)測(cè)試數(shù)據(jù)有效載荷副本可被提供給在第二計(jì)算機(jī)的所識(shí)別 的數(shù)據(jù)檢查軟件副本用于處理(步驟204),其中測(cè)試數(shù)據(jù)有效載荷可被配置以便測(cè)試一個(gè) 或多個(gè)已知的安全漏洞。如果所處理的測(cè)試數(shù)據(jù)有效載荷副本被認(rèn)可用于進(jìn)一步處理(步 驟206),則測(cè)試數(shù)據(jù)有效載荷副本可經(jīng)由計(jì)算機(jī)網(wǎng)絡(luò)被發(fā)送到在第一計(jì)算機(jī)的計(jì)算機(jī)軟件 應(yīng)用用于處理(步驟208),否則測(cè)試數(shù)據(jù)有效載荷副本可以不被經(jīng)由計(jì)算機(jī)網(wǎng)絡(luò)發(fā)送到在 第一計(jì)算機(jī)的計(jì)算機(jī)軟件應(yīng)用用于處理(步驟208)。
[0027] 圖1的系統(tǒng)和圖2的方法可在如下例子的上下文中被說明,其中評(píng)估器104使用 IBM AppScan實(shí)施(AppScan是國(guó)際商業(yè)機(jī)器公司的注冊(cè)商標(biāo))。計(jì)算機(jī)102托管的計(jì)算機(jī) 軟件應(yīng)用100可被裝備(比如在計(jì)算機(jī)102),以識(shí)別用于檢測(cè)的消毒劑和驗(yàn)證器(如同由 評(píng)估器104所做的)。評(píng)估器104向有效載荷測(cè)試儀106報(bào)告所識(shí)別的消毒劑和驗(yàn)證器, 有效載荷測(cè)試儀106可使用從紐約阿芒克的IBM公司市售得到的IBM AppScan公司版本實(shí) 施。有效載荷測(cè)試儀106可配置計(jì)算機(jī)108來執(zhí)行所識(shí)別的消毒劑和驗(yàn)證器的副本。有效 載荷測(cè)試儀106向在計(jì)算機(jī)108上執(zhí)行的所識(shí)別的消毒劑副本提供如下測(cè)試數(shù)據(jù)有效載荷 副本<SCscriptRIPT>alert('XSS4')〈/SCscriptRIPT>,所識(shí)別的消毒劑副本例如是如下的 消毒劑:
[0029] 其將測(cè)試數(shù)據(jù)有效載荷副本轉(zhuǎn)變?yōu)?lt;SCRIPT>alert (' XSS4')〈/SCRIPT〉·
[0030] 測(cè)試數(shù)據(jù)有效載荷可被配置為測(cè)試跨站點(diǎn)腳本(XSS)漏洞。有效載荷測(cè)試儀106 確定,在被所述消毒劑副本處理后,所述變換保持被配置為測(cè)試所述安全漏洞,于是應(yīng)用測(cè) 試儀114可經(jīng)由計(jì)算機(jī)網(wǎng)絡(luò)116向在計(jì)算機(jī)102的計(jì)算機(jī)軟件應(yīng)用100發(fā)送測(cè)試數(shù)據(jù)有效 載荷副本用于處理。
[0031] 識(shí)別的驗(yàn)證器副本提供如下測(cè)試數(shù)據(jù)有效載荷副本:〈SCRIPT>alert (' XSS4')〈/ SCRIPT〉。所述測(cè)試數(shù)據(jù)有效載荷可類似地被配置為測(cè)試跨站點(diǎn)腳本(XSS)漏洞。有效載 荷測(cè)試儀106可能確定,在由驗(yàn)證器副本處理后,測(cè)試數(shù)據(jù)有效載荷副本不能被用于測(cè)試 安全漏洞,這是由于所述驗(yàn)證器將測(cè)試數(shù)據(jù)有效載荷副本映射到"假"布爾值,在該驗(yàn)證器 上下文中,這表明測(cè)試數(shù)據(jù)有效載荷不能用于進(jìn)一步處理。因此應(yīng)用測(cè)試儀114可能不會(huì) 經(jīng)由計(jì)算機(jī)網(wǎng)絡(luò)116向在計(jì)算機(jī)102的計(jì)算機(jī)軟件應(yīng)用100發(fā)送測(cè)試數(shù)據(jù)有效載荷副本用 于處理。
[0032] 現(xiàn)在參考圖3,框圖300說明了計(jì)算系統(tǒng)的示例性硬件實(shí)現(xiàn),如本發(fā)明實(shí)施例請(qǐng)求 的那樣,本發(fā)明的一個(gè)或多個(gè)組件/方法可根據(jù)圖3實(shí)現(xiàn)(例如,在圖1-2的上下文所描述 的組件/方法)。
[0033] 如圖所示,用于控制對(duì)至少一個(gè)資源