利用計(jì)算機(jī)網(wǎng)絡(luò)為測(cè)試計(jì)算機(jī)軟件應(yīng)用優(yōu)化測(cè)試數(shù)據(jù)有效載荷的選擇的制作方法
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明總體上涉及計(jì)算機(jī)軟件測(cè)試。
【背景技術(shù)】
[0002] 動(dòng)態(tài)分析工具經(jīng)常被計(jì)算機(jī)軟件開(kāi)發(fā)人員用來(lái)測(cè)試計(jì)算機(jī)軟件應(yīng)用,通常的做法 是,首先,探索計(jì)算機(jī)軟件應(yīng)用來(lái)發(fā)現(xiàn)它的接口,包括通過(guò)其可向應(yīng)用提供數(shù)據(jù)的那些接 口;然后,與應(yīng)用的接口交互,并監(jiān)視應(yīng)用對(duì)這樣的交互的響應(yīng)。在一種動(dòng)態(tài)分析中,通過(guò)向 應(yīng)用提供帶有已知的惡意屬性的測(cè)試數(shù)據(jù),然后觀察應(yīng)用的行為,測(cè)試計(jì)算機(jī)軟件應(yīng)用的 安全漏洞。例如,通過(guò)采用在一臺(tái)計(jì)算機(jī)上運(yùn)行的"黑盒測(cè)試儀",所述"黑盒測(cè)試儀"經(jīng)由 計(jì)算機(jī)網(wǎng)絡(luò)向另一計(jì)算機(jī)托管的網(wǎng)絡(luò)應(yīng)用發(fā)送HTTP請(qǐng)求,動(dòng)態(tài)分析可被用于測(cè)試通過(guò)計(jì) 算機(jī)網(wǎng)絡(luò)(比如因特網(wǎng))訪問(wèn)的網(wǎng)絡(luò)應(yīng)用。所述HTTP請(qǐng)求配置有從測(cè)試數(shù)據(jù)有效載荷庫(kù) 抽取的惡意測(cè)試數(shù)據(jù)有效載荷,該惡意測(cè)試數(shù)據(jù)有效載荷被設(shè)計(jì)用來(lái)測(cè)試比如SQL注入、 跨站點(diǎn)腳本、以及命令注入的安全漏洞。
[0003] "黑盒測(cè)試儀"可以向計(jì)算機(jī)軟件應(yīng)用發(fā)送所有可能的測(cè)試數(shù)據(jù)有效載荷以便測(cè) 試所有可能的安全漏洞。然而,由于經(jīng)由計(jì)算機(jī)網(wǎng)絡(luò)發(fā)送許多HTTP請(qǐng)求在時(shí)間和寬帶方面 的成本高,經(jīng)由計(jì)算機(jī)網(wǎng)絡(luò)測(cè)試網(wǎng)絡(luò)應(yīng)用的商業(yè)黑盒測(cè)試儀通常對(duì)每個(gè)被測(cè)試的HTTP參 數(shù)僅發(fā)送幾十個(gè)測(cè)試有效載荷以便控制這種成本。不幸的是,這往往意味著一些安全漏洞 被漏測(cè)。
【發(fā)明內(nèi)容】
[0004] 根據(jù)第一方面,提供了用于測(cè)試計(jì)算機(jī)軟件應(yīng)用的方法,所述方法包括配置第一 計(jì)算機(jī)以便執(zhí)行由在第二計(jì)算機(jī)的計(jì)算機(jī)軟件應(yīng)用使用的數(shù)據(jù)檢查軟件的副本,使用在所 述第一計(jì)算機(jī)的所述數(shù)據(jù)檢查軟件處理測(cè)試數(shù)據(jù)有效載荷的第一副本,其中所述測(cè)試數(shù)據(jù) 有效載荷被配置為測(cè)試相關(guān)安全漏洞,確定所述測(cè)試數(shù)據(jù)有效載荷的所述第一副本被在所 述第一計(jì)算機(jī)的數(shù)據(jù)檢查軟件認(rèn)可用于進(jìn)一步處理,并經(jīng)由計(jì)算機(jī)網(wǎng)絡(luò)向在所述第二計(jì)算 機(jī)的所述計(jì)算機(jī)軟件應(yīng)用發(fā)送所述測(cè)試數(shù)據(jù)有效載荷的第二副本用于處理威脅(threat)。
[0005] 優(yōu)選地,所述方法進(jìn)一步包括識(shí)別由所述計(jì)算機(jī)軟件應(yīng)用使用的所述數(shù)據(jù)檢查 軟件。更優(yōu)選地,所述識(shí)別包括確定所述數(shù)據(jù)檢查軟件是消毒劑(sanitizer)和驗(yàn)證器 (validator)中的任意一個(gè)。更優(yōu)選地,所述方法進(jìn)一步包括裝備所述計(jì)算機(jī)軟件應(yīng)用以便 執(zhí)行所述識(shí)別。
[0006] 優(yōu)選地,所述測(cè)試數(shù)據(jù)有效載荷被儲(chǔ)存在所述第一計(jì)算機(jī)。更優(yōu)選地,所述測(cè)試數(shù) 據(jù)有效載荷包括被設(shè)計(jì)為利用所述安全漏洞的惡意有效載荷。更優(yōu)選地,所述確定包括確 定所述測(cè)試數(shù)據(jù)有效載荷的所述第一副本被配置為在被所述第一計(jì)算機(jī)的所述數(shù)據(jù)檢查 軟件處理后測(cè)試其相關(guān)安全漏洞。更優(yōu)選地,執(zhí)行所述配置、處理、確定和發(fā)送,其中所述計(jì) 算機(jī)軟件應(yīng)用包括網(wǎng)絡(luò)應(yīng)用。
[0007] 根據(jù)第二方面,提供了用于測(cè)試計(jì)算機(jī)軟件應(yīng)用的系統(tǒng),所述系統(tǒng)包括:可配置 的有效載荷測(cè)試儀,配置第一計(jì)算機(jī)執(zhí)行由在第二計(jì)算機(jī)的計(jì)算機(jī)軟件應(yīng)用使用的數(shù)據(jù)檢 查軟件副本,使用在所述第一計(jì)算機(jī)的所述數(shù)據(jù)檢查軟件處理測(cè)試數(shù)據(jù)有效載荷的第一副 本,其中所述測(cè)試數(shù)據(jù)有效載荷可配置為測(cè)試相關(guān)的安全漏洞,并確定所述測(cè)試數(shù)據(jù)有效 載荷的所述第一副本被在所述第一計(jì)算機(jī)的所述數(shù)據(jù)檢查軟件認(rèn)可用于進(jìn)一步處理;以及 應(yīng)用測(cè)試儀,可配置為利用計(jì)算機(jī)網(wǎng)絡(luò)向在所述第二計(jì)算機(jī)的所述計(jì)算機(jī)軟件應(yīng)用發(fā)送所 述測(cè)試數(shù)據(jù)有效載荷的第二副本用于處理威脅。
[0008] 根據(jù)第三方面,提供了用于測(cè)試計(jì)算機(jī)軟件應(yīng)用的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī) 程序產(chǎn)品包括:非暫時(shí)的、計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)和包含于所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中的計(jì) 算機(jī)可讀程序代碼,其中所述計(jì)算機(jī)可讀程序代碼是可配置的,其配置第一計(jì)算機(jī)以便執(zhí) 行由在第二計(jì)算機(jī)的計(jì)算機(jī)軟件應(yīng)用使用的數(shù)據(jù)檢查軟件副本,使用在所述第一計(jì)算機(jī)的 所述數(shù)據(jù)檢查軟件處理測(cè)試數(shù)據(jù)有效載荷的第一副本,其中所述測(cè)試數(shù)據(jù)有效載荷被配置 為測(cè)試相關(guān)安全漏洞,確定所述測(cè)試數(shù)據(jù)有效載荷的所述第一副本被在所述第一計(jì)算機(jī)的 所述數(shù)據(jù)檢查軟件認(rèn)可用于進(jìn)一步處理,以及利用計(jì)算機(jī)網(wǎng)絡(luò)向在所述第二計(jì)算機(jī)的所述 計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用發(fā)送所述測(cè)試數(shù)據(jù)有效載荷的第二副本用于處理威脅。
【附圖說(shuō)明】
[0009] 現(xiàn)在將僅通過(guò)示例的方式,參考如下附圖來(lái)描述本發(fā)明的優(yōu)選實(shí)施例:
[0010] 圖1是根據(jù)本發(fā)明實(shí)施例構(gòu)成和實(shí)施的用于測(cè)試計(jì)算機(jī)軟件應(yīng)用的系統(tǒng)的簡(jiǎn)化 的概念圖;
[0011] 圖2是根據(jù)本發(fā)明實(shí)施例實(shí)施的圖1的系統(tǒng)的示例性操作方法的簡(jiǎn)化的流程圖; 以及
[0012] 圖3是根據(jù)本發(fā)明實(shí)施例構(gòu)成和實(shí)施的計(jì)算系統(tǒng)的示例性硬件實(shí)現(xiàn)的簡(jiǎn)化的框 圖。
【具體實(shí)施方式】
[0013] 現(xiàn)在在一個(gè)或多個(gè)實(shí)施例的上下文內(nèi)描述本發(fā)明,盡管所述描述旨在作為整體說(shuō) 明本發(fā)明,并不意圖被解釋為將本發(fā)明限制到所示實(shí)施例。可以理解,雖然這里沒(méi)有具體示 出,然而對(duì)于本領(lǐng)域技術(shù)人員來(lái)說(shuō)可以想到的不同的修改,都在本發(fā)明的保護(hù)范圍內(nèi)。
[0014] 所屬技術(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ī)可讀的程序代碼。
[0015] 可以采用一個(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ī)盤(pán)、硬盤(pán)、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可擦式可編程只讀存儲(chǔ)器 (EPROM或閃存)、光纖、便攜式緊湊盤(pán)只讀存儲(chǔ)器(⑶-ROM)、光數(shù)據(jù)存儲(chǔ)器件、磁數(shù)據(jù)存儲(chǔ) 器件、或者上述的任意合適的組合。在本文件中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是任何包含或存 儲(chǔ)程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
[0016] 計(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é)合使用的程序。
[0017] 計(jì)算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括一一但不限 于一一無(wú)線、有線、光纜、RF等等,或者上述的任意合適的組合。
[0018] 可以以一種或多種程序設(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)連接)。
[0019] 下面將參照根據(jù)本發(fā)明實(shí)施例所要求保護(hù)的方法、裝置(系統(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)作的裝置。
[0020] 也可以把這些計(jì)算機(jī)程序指令存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中,這些指令使得計(jì)算機(jī)、 其它可編程數(shù)據(jù)處理裝置、或其他設(shè)備以特定方式工作,