信息流降級器中缺陷和不兼容問題的自動檢測的制作方法
【專利摘要】本發(fā)明公開涉及信息流降級器中缺陷和不兼容問題的自動檢測。涉及目標(biāo)部署環(huán)境評估應(yīng)用代碼中降級器代碼的機(jī)制。識別應(yīng)用代碼中的降級器代碼?;谳敵龃?,識別降級器代碼響應(yīng)于接收輸入串而輸出的輸出串。檢索一個或多個非法串模式集合。該一個或多個非法串模式集合中的每一個與相應(yīng)的部署環(huán)境相關(guān)聯(lián)。非法串模式是降級器為安全起見而在信息流中識別的串模式。基于該一個或多個非法串模式集合以及輸出串,做出關(guān)于降級器代碼是否與目標(biāo)部署環(huán)境相兼容的確定。生成指示確定結(jié)果的輸出。
【專利說明】信息流降級器中缺陷和不兼容問題的自動檢測
【技術(shù)領(lǐng)域】
[0001]本申請一般而言涉及改進(jìn)的數(shù)據(jù)處理裝置和方法,更具體地涉及在信息流降級器中缺陷和不兼容問題的自動檢測機(jī)制,其中信息流降級器也稱作安全降級器或簡單地稱作降級器。
【背景技術(shù)】
[0002]信息流安全性原則確立了在程序中不允許信息的“非法流動”。如果流動允許不可信信息在可信的計(jì)算中使用(完整性違犯(integrity violation))或者它允許私密信息完全地或者部分地暴露給非授權(quán)用戶(保密性違犯(confidentiality violation)),那么流動就是非法的。通過簡單地申明不應(yīng)該存在任何從“高”到“低”的信息流,完整性和保密性可以被看作是雙重問題,其中“高”在完整性中意指“不可信的”且在保密性中意指的“私密的”,而“低”在完整性中意指“可信的”且在保密性中意指“公開的”。
[0003]信息可以用信息流標(biāo)簽來標(biāo)記。通常地,信息流標(biāo)簽形成部分排序的集合或點(diǎn)陣(lattice)。如果信息流安全性被嚴(yán)格執(zhí)行并且沒有非法信息流被允許,那么大部分程序?qū)⒉还ぷ鳌槌蔀椤靶畔⒘靼踩?,程序?qū)⒈仨毐弧胺謪^(qū)”使得用某個標(biāo)簽“X”標(biāo)記的信息僅能流動到已用高于或等于“X”的標(biāo)簽標(biāo)記的程序點(diǎn)。
[0004]具有這些限制的程序是不太可能有用的。例如,從完整性角度來看,Web應(yīng)用應(yīng)該會接受來自潛在不可信用戶的輸入并且在可信的計(jì)算中使用那些輸入。例如,網(wǎng)上銀行程序接受用戶的帳號和密碼(潛在地不可信的或惡意的信息)作為輸入,并把它們傳遞給后端數(shù)據(jù)庫系統(tǒng),在那里它們被使用在可信任的設(shè)置中。在另一個例子中,網(wǎng)上書店接受客戶的用戶號和密碼以及客戶想購買的書名(所有潛在地不可信的或惡意的信息)作為輸入,并且用它們完成交易,等等。
[0005]從保密性的角度來看,Web應(yīng)用經(jīng)常發(fā)布基于私密信息計(jì)算出的數(shù)據(jù)并且因此,它們應(yīng)該同樣被看作是私密的。例如,銀行應(yīng)用會向出納員暴露任何用戶的社會安全號的最后四位,并且網(wǎng)上書店會向店員暴露任何客戶的信用卡號的最后四位數(shù)字等。已知所有這些程序都展示了允許“高”信息流向“低”程序點(diǎn)的流動,如果簡單地強(qiáng)制實(shí)行信息流安全,那么所有這些程序?qū)痪芙^。為了允許這些程序工作,“高”信息能夠被“降級”并且變的足夠“低”以便在“低”程序點(diǎn)中被使用。
[0006]降級在完整性中自身翻譯為“認(rèn)可”并且在保密性中翻譯為“解密”。例如,一旦程序已經(jīng)驗(yàn)證用戶提供給Web應(yīng)用的輸入是正確格式的串,那么程序就可以認(rèn)可現(xiàn)在變得足夠可信的輸入在可信的計(jì)算中被使用。類似地,一旦程序已經(jīng)驗(yàn)證從私密中提取的信息不足以暴露私密本身,那么程序就可以解密提取的信息,其中提取的信息現(xiàn)在可以變得足夠公開來暴露給公共接收者。
[0007]程序可以實(shí)現(xiàn)多種不同類型的降級器。也就是說,用這些降級器是因?yàn)槌绦虿粦?yīng)該接受到“低”函數(shù)的任何“高”輸入,除非該“高”輸入之前已經(jīng)被降級。特定降級器為“低”函數(shù)集合的特定的特殊子集運(yùn)行并且因此,程序會被要求實(shí)現(xiàn)多種不同類型的降級器。[0008]例如,接受串形式輸入的完整性“低”函數(shù)把該串連接成結(jié)構(gòu)化查詢語言(SQL)查詢,并且然后把它提交給數(shù)據(jù)庫。在這里例子中,該函數(shù)將要求它的輸入不包含分號和撇號,因?yàn)檫@樣的字符會被數(shù)據(jù)庫解釋為SQL命令。因此,任何給該“低”函數(shù)的輸入應(yīng)該經(jīng)過消毒(即,通過刪除/替換非法輸入的可疑部分對非法輸入進(jìn)行轉(zhuǎn)換)或認(rèn)可來確保那里沒有這種非法字符。只有當(dāng)可信的消毒器已經(jīng)驗(yàn)證這種非法字符不存在,最初不可信的串才被接受可以在SQL查詢中使用。
[0009]但是,如果“低”函數(shù)不負(fù)責(zé)執(zhí)行SQL查詢,而是負(fù)責(zé)把其串輸入值級聯(lián)成超文本標(biāo)記語言(HTML)代碼,那么不同的消毒就是必要的。這里的問題不再是防止SQL注入,而是防止被稱作跨站腳本執(zhí)行(XSS)的攻擊。在這種情況下,消毒函數(shù)必須檢查不存在特殊的JavaScript (Java和所有基于Java的商標(biāo)和標(biāo)記都是Oracle和/或其附屬公司的商標(biāo)或注冊商標(biāo))標(biāo)簽,諸如〈script〉和〈/scripts〉。
[0010]降級器經(jīng)常可以從庫中得到,并且基于相應(yīng)的“低”函數(shù)的規(guī)范被分類。但是,Web應(yīng)用經(jīng)常實(shí)現(xiàn)它們自己的降級函數(shù)。這使得Web應(yīng)用的安全性靜態(tài)分析非常復(fù)雜。實(shí)際上,對信息流安全性的靜態(tài)分析應(yīng)該接收降級函數(shù)的簽名以及把降級函數(shù)映射到相應(yīng)“低”函數(shù)的規(guī)則作為輸入。在這一點(diǎn)上,除非“低”函數(shù)的輸入已經(jīng)被正確地降級了,否則在沒有任何通向“低”函數(shù)的路徑的情況下,靜態(tài)分析可以驗(yàn)證到“低”函數(shù)的輸入是否始終經(jīng)過正確的降級。不幸的是,當(dāng)Web應(yīng)用實(shí)現(xiàn)它們自己的降級器時,檢測那些降級器并把它們以用于信息流安全性的靜態(tài)分析可以隨后解釋它們的方式歸類是非常困難的。
[0011]Web應(yīng)用由于它們提供了用戶輸入并且通常地可由大量的用戶訪問,所以特別容易受到安全攻擊。據(jù)網(wǎng)絡(luò)應(yīng)用安全聯(lián)盟(WASC)所稱,在2008年發(fā)現(xiàn)并修復(fù)了大約有10萬個安全性漏洞,其中52,587個是緊急的或嚴(yán)重的。這說明保護(hù)Web應(yīng)用以防止惡意輸入的重要性。這種保護(hù)通常地使用以上前面描述的認(rèn)可/降級器機(jī)制實(shí)現(xiàn),這種機(jī)制或者對用戶的輸入消毒(即通過刪除/替換輸入的可疑部分來轉(zhuǎn)換輸入),或者對用戶的輸入驗(yàn)證(即如果判斷用戶的輸入是非法的那么就拒絕該用戶輸入)。
[0012]消毒器和驗(yàn)證器可以被認(rèn)作對攻擊的最后的(并且最特定于應(yīng)用的)防御線。這些機(jī)制通常包含精細(xì)的推理,其應(yīng)在各種各樣的上下文中對合法和非法輸入進(jìn)行區(qū)分。而且,這些機(jī)制本身是安全專家和應(yīng)用程序開發(fā)人員之間的接口。正確地寫它們并不是標(biāo)準(zhǔn)的編碼任務(wù),因?yàn)樾枰獙Π踩{(以已知安全攻擊的長目錄的形式)有深入了解。關(guān)于如何創(chuàng)建消毒和驗(yàn)證機(jī)制的最佳實(shí)踐,準(zhǔn)則和指導(dǎo)方針通常可以在安全文檔中找到。具有挑戰(zhàn)性的是檢查Web應(yīng)用的代碼是否遵循了這些準(zhǔn)則。目前還沒有自動化的機(jī)制來執(zhí)行這項(xiàng)檢查。
[0013]此外,由于降級器通常地是由軟件工程師編寫的,他們的專長在于開發(fā)軟件而不是了解他們的設(shè)計(jì)和工程選擇的安全含義,所以由于不正確輸入降級導(dǎo)致的攻擊數(shù)量高得驚人。最常見的,涉及刪除非法字符或字符序列的某些極端的情況在降級器的實(shí)現(xiàn)中被排除在外或者錯誤地解決。但是,也存在其中正確的降級對服務(wù)器端組件的具體實(shí)現(xiàn)敏感的情況。例如,防止SQL注入(SQLi)攻擊的降級器應(yīng)該對每種類型的數(shù)據(jù)庫服務(wù)器應(yīng)用不同的轉(zhuǎn)換,因?yàn)檫@些數(shù)據(jù)庫服務(wù)器在解析SQL命令時使用不同的元字符,例如,MS SQL server把兩個連字符(一)解釋為注釋的開始,而另一臺數(shù)據(jù)庫服務(wù)器可能會把井號(#)解釋為注釋的開始。[0014]攻擊者可以容易地以及有效地識別出其中通過采用模糊技術(shù)將不正確的消毒應(yīng)用到應(yīng)用的實(shí)例。這使得事情變得更糟,因?yàn)樵诠粽叩贸龀绦虻谋Wo(hù)層已被破壞的結(jié)論的同時,攻擊者同時地得知在代碼中的安全性敏感區(qū)域中使用了哪些輸入,這使得攻擊的隨后步驟更容易。這樣,當(dāng)確定降級器是否與它想要保護(hù)的系統(tǒng)兼容時,就會出現(xiàn)另外的挑戰(zhàn)。
【發(fā)明內(nèi)容】
[0015]在一個說明性的實(shí)施例中,提供了在數(shù)據(jù)處理系統(tǒng)中關(guān)于目標(biāo)部署環(huán)境評估應(yīng)用代碼中的降級器代碼的方法。該方法包括通過數(shù)據(jù)處理系統(tǒng)的應(yīng)用分析機(jī)制在應(yīng)用代碼中識別降級器代碼。降級器代碼是應(yīng)用代碼中代碼的一部分,其對應(yīng)用代碼的信息流操作以確保在降級器代碼的輸出中輸入到降級器代碼的信息的機(jī)密性。此方法還包括基于輸入串,通過應(yīng)用分析機(jī)制生成降級器代碼響應(yīng)于接收輸入串而輸出的輸出串。此方法也包括從與數(shù)據(jù)處理系統(tǒng)相關(guān)聯(lián)的存儲系統(tǒng)中檢索一個或多個非法串模式集合。一個或多個非法串模式集合中的每一個都與相應(yīng)的部署環(huán)境相關(guān)聯(lián)。非法串模式是為安全起見降級器在信息流中識別的串模式。此外,該方法包括,基于該一個或多個非法串模式集合以及輸出串,通過應(yīng)用分析機(jī)制確定降級器代碼是否與目標(biāo)部署環(huán)境相兼容。此外,該方法包括通過應(yīng)用分析機(jī)制生成指示確定的結(jié)果的輸出。
[0016]在其它說明性的實(shí)施例中,提供了包括帶有計(jì)算機(jī)可讀程序的計(jì)算機(jī)可用或可讀介質(zhì)的計(jì)算機(jī)程序產(chǎn)品。當(dāng)在計(jì)算設(shè)備上執(zhí)行時,該計(jì)算機(jī)可讀程序使計(jì)算設(shè)備執(zhí)行以上關(guān)于該方法的說明性實(shí)施例概述的各種操作及其組合。
[0017]在還有另一個說明性實(shí)施例中,提供了一種系統(tǒng)/裝置。該系統(tǒng)/裝置可以包括一個或多個處理器以及耦合到該一個或多個處理器上的存儲器。存儲器可以包含指令,當(dāng)這些指令被該一個或多個處理器執(zhí)行時,使該一個或多個處理器執(zhí)行以上關(guān)于該方法的說明性實(shí)施例概述的各種操作及其組合。
[0018]將描述本發(fā)明的這些和其它特征與優(yōu)點(diǎn),或者根據(jù)以下本發(fā)明示例實(shí)施例的具體描述,這些和其它特征與優(yōu)點(diǎn)將對那些本領(lǐng)域普通技術(shù)人員變得顯而易見。
【專利附圖】
【附圖說明】
[0019]通過結(jié)合附圖參考以下說明性實(shí)施例的具體描述,優(yōu)選實(shí)施例及優(yōu)選使用方式及其優(yōu)點(diǎn)將得到最好的理解,其中:
[0020]圖1繪出了其中可以實(shí)現(xiàn)說明性實(shí)施例各方面的示例分布式數(shù)據(jù)處理系統(tǒng)的圖形表示;
[0021]圖2是其中可以實(shí)現(xiàn)說明性實(shí)施例各方面的示例數(shù)據(jù)處理系統(tǒng)的示例框圖;
[0022]圖3是根據(jù)一個說明性實(shí)施例的應(yīng)用分析機(jī)制的主要操作元件的示例框圖;
[0023]圖4是說明性實(shí)施例的機(jī)制可以利用來產(chǎn)生上下文無關(guān)語法的傳感器的示例圖;
[0024]圖5是說明根據(jù)一個說明性實(shí)施例的靜態(tài)串分析的示例圖;
[0025]圖6是根據(jù)一個說明性實(shí)施例的示例程序的調(diào)用圖;
[0026]圖7是說明性地描述根據(jù)一個說明性實(shí)施例的用于靜態(tài)檢測以及分類信息流降級器的系統(tǒng)和方法的示例框/流程圖;[0027]圖8是概括根據(jù)一個說明性實(shí)施例的自動應(yīng)用分析機(jī)制的示例操作的流程圖;及
[0028]圖9是概括根據(jù)一個說明性實(shí)施例的用于評估降級器的兼容性和強(qiáng)度的示例操作的流程圖。
【具體實(shí)施方式】
[0029]說明性實(shí)施例通過利用信息流降級器的質(zhì)量和一致性的形式分析,提供了用于靜態(tài)實(shí)施Web應(yīng)用安全準(zhǔn)則的機(jī)制。尤其,說明性實(shí)施例提供了自動化的機(jī)制用于檢查在諸如Web應(yīng)用(B卩,可以通過萬維網(wǎng)或因特網(wǎng)訪問的應(yīng)用)的應(yīng)用代碼中的降級器,并且確保應(yīng)用代碼遵循關(guān)于實(shí)現(xiàn)信息流降級器的準(zhǔn)則。基于該檢查,可以生成關(guān)于Web應(yīng)用是否與準(zhǔn)則相符或是否包含安全違犯的輸出。
[0030]說明性實(shí)施例使用串分析機(jī)制。串分析是技術(shù)和機(jī)制的集合,其目的是近似串變量可以假設(shè)的運(yùn)行時的值的集合。美國專利申請12/575,647 ; 12/825, 293 ;和12/627,351描述了串分析技術(shù)對Web應(yīng)用安全問題的示例應(yīng)用。特別地,美國專利申請12/575,647描述了關(guān)于信息流降級器使用串分析進(jìn)行自動檢測的技術(shù)。
[0031]本發(fā)明說明性實(shí)施例的機(jī)制與涉及如何在應(yīng)用代碼中找到諸如消毒器和驗(yàn)證器的降級器的申請12/575,647中的機(jī)制互不相關(guān)地運(yùn)行。作為替代,本發(fā)明說明性實(shí)施例的機(jī)制是針對確定降級器是如何構(gòu)造的以及確定該構(gòu)造是否滿足確立的準(zhǔn)則。該說明性實(shí)施例的機(jī)制脫離降級器的實(shí)現(xiàn)細(xì)節(jié)進(jìn)行抽象并把降級器表示為降級器輸入上的操作序列。這種抽象通過對內(nèi)置串操作以及其它感興趣的指令進(jìn)行建模來完成。例如,可以用一元二階邏輯模型對內(nèi)置串操作建模。然后,結(jié)果產(chǎn)生的串操作的高層抽象表示可以根據(jù)準(zhǔn)則集合來檢查和打分。量化應(yīng)用保護(hù)層,即應(yīng)用的信息流降級器,的質(zhì)量可以作為自動化過程來執(zhí)行。
[0032]根據(jù)確立的準(zhǔn)則評估降級器的自動化機(jī)制可以被用作應(yīng)用開發(fā)人員與安全專家之間重要的橋梁,因?yàn)樵摍C(jī)制允許安全專家驗(yàn)證降級器的代碼實(shí)現(xiàn)并且通過正式的機(jī)制與應(yīng)用開發(fā)人員交流評估。說明性實(shí)施例的自動化機(jī)制還能夠識別那些分?jǐn)?shù)特別低,以至于它們可能會是業(yè)務(wù)邏輯錯誤的原因的降級器,例如,如果降級器的低分?jǐn)?shù)是由于它們消除輸入字符而不是拒絕在業(yè)務(wù)邏輯中導(dǎo)致意外行為的輸入的事實(shí)。
[0033]正如本領(lǐng)域技術(shù)人員將理解的,本發(fā)明可以體現(xiàn)為系統(tǒng)、方法或計(jì)算機(jī)程序產(chǎn)品。相應(yīng)地,本發(fā)明各方面可以采取完全硬件實(shí)施例、完全軟件實(shí)施例(包括固件、駐留軟件、微代碼等)或者結(jié)合硬件與軟件方面的實(shí)施例的形式,所有這些方面會在本文中一般性稱作“電路”,“模塊”或“系統(tǒng)”。而且,本發(fā)明各方面可以采取體現(xiàn)在其上包含計(jì)算機(jī)可用程序代碼的任何一種或多種計(jì)算機(jī)可讀介質(zhì)的計(jì)算機(jī)程序產(chǎn)品的形式。
[0034]可以使用一種或多種計(jì)算機(jī)可讀介質(zhì)的任意組合。計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀信號介質(zhì)或者計(jì)算機(jī)可讀存儲介質(zhì)。計(jì)算機(jī)可讀存儲介質(zhì)可以是例如,但不限于,電、磁、光、電磁、紅外線或者半導(dǎo)體系統(tǒng)、裝置、設(shè)備或者以上所述的任意合適組合。計(jì)算機(jī)可讀存儲介質(zhì)的更具體例子(非窮盡列表)將包括以下:具有一條或多條電線的電連接、便攜式計(jì)算機(jī)磁盤、硬盤、隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、可擦可編程只讀存儲器(EPROM或者閃存)、光纖、便攜式光盤只讀存儲器(CDROM)、光學(xué)存儲設(shè)備、磁性存儲設(shè)備或者以上所述的任意合適組合。在本文檔的背景下,計(jì)算機(jī)可讀存儲介質(zhì)可以是可以包含或者存儲由指令執(zhí)行系統(tǒng)、裝置或設(shè)備使用或者與其聯(lián)合使用的程序的任何有形介質(zhì)。
[0035]計(jì)算機(jī)可讀信號介質(zhì)可以包括其中,例如,在基帶中或者作為載波的一部分,體現(xiàn)計(jì)算機(jī)可讀程序代碼的傳播數(shù)據(jù)信號。這種傳播信號可以采取多種形式中的任何一種,包括但不限于電磁、光或者其任意合適組合。計(jì)算機(jī)可讀信號介質(zhì)可以是非計(jì)算機(jī)可讀存儲介質(zhì)而且可以傳送、傳播或者運(yùn)輸由指令執(zhí)行系統(tǒng)、裝置或設(shè)備使用或者與其聯(lián)合使用的程序的任何計(jì)算機(jī)可讀介質(zhì)。
[0036]體現(xiàn)在計(jì)算機(jī)可讀介質(zhì)上的計(jì)算機(jī)代碼可以利用任何適當(dāng)?shù)慕橘|(zhì)發(fā)送,包括但不限于無線電、有線線路、光纖電纜、射頻(RF)等,或者其任意合適組合。
[0037]用于執(zhí)行本發(fā)明各方面的操作的計(jì)算機(jī)程序代碼可以用一種或多種編程語言的任意組合來寫,其中編程語言包括面向?qū)ο蟮木幊陶Z言,例如Java?、Smalltalk?、C++等,及傳統(tǒng)的過程編程語言,例如“C”編程語言或者類似的編程語言。程序代碼可以完全在用戶的計(jì)算機(jī)上、部分地在用戶的計(jì)算機(jī)上、作為獨(dú)立的軟件包、部分在用戶的計(jì)算機(jī)上而且部分在遠(yuǎn)端計(jì)算機(jī)上或者完全在遠(yuǎn)端計(jì)算機(jī)或服務(wù)器上執(zhí)行。在后一種場景下,遠(yuǎn)端計(jì)算機(jī)可以通過任何類型的網(wǎng)絡(luò)連接到用戶的計(jì)算機(jī),包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN),或者可以連接到外部的計(jì)算機(jī)(例如,通過利用互聯(lián)網(wǎng)服務(wù)提供商的互聯(lián)網(wǎng))。
[0038]以下參考根據(jù)本發(fā)明說明性實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖說明和/或框圖來描述本發(fā)明的各方面。將理解,所述流程圖說明和/或框圖的每一塊及所述流程圖說明和/或框圖中塊的組合可以由計(jì)算機(jī)程序指令來實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可以提供給通用計(jì)算機(jī)、專用計(jì)算機(jī)或者其它可編程數(shù)據(jù)處理裝置的處理器,來產(chǎn)生一種機(jī)器,使得當(dāng)所述指令經(jīng)計(jì)算機(jī)或者其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行時,產(chǎn)生用于實(shí)現(xiàn)在所述流程圖和/或框圖中的一個或多個塊中所指定的功能/動作的裝置。
[0039]這些計(jì)算機(jī)程序指令還可以存儲在計(jì)算機(jī)可讀介質(zhì)中,所述指令可以指示計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置或者其它設(shè)備以特定的方式起作用,使得存儲在計(jì)算機(jī)可讀介質(zhì)中的指令產(chǎn)生一種制造物品,該物品包括實(shí)現(xiàn)在所述流程圖和/或框圖中的一個或多個塊中所指定的功能/動作的指令。
[0040]所述計(jì)算機(jī)程序指令還可以加載到計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置或者其它設(shè)備上,使得一系列操作步驟在計(jì)算機(jī)、其它可編程裝置或者其它設(shè)備上執(zhí)行,產(chǎn)生一種計(jì)算機(jī)實(shí)現(xiàn)的過程,使得在所述計(jì)算機(jī)或者其它可編程裝置上執(zhí)行的指令提供用于實(shí)現(xiàn)在所述流程圖和/或框圖塊中所指定的功能/動作的過程。
[0041]附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或者代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用于實(shí)現(xiàn)規(guī)定邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實(shí)現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個連續(xù)示出的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依賴所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框以及框圖和/或流程圖中方框的組合可以用執(zhí)行規(guī)定的功能或動作的專用的基于硬件的系統(tǒng)來實(shí)現(xiàn),或者可以用專用硬件與計(jì)算機(jī)指令的組合來實(shí)現(xiàn)。
[0042]說明性實(shí)施例可以在包括分布式數(shù)據(jù)處理環(huán)境,單一數(shù)據(jù)處理設(shè)備等的許多不同類型的數(shù)據(jù)處理環(huán)境中使用。為了給說明性實(shí)施例的特定元素以及功能的描述提供上下文,下文提供了圖1和圖2作為可以實(shí)現(xiàn)說明性實(shí)施例各方面的示例環(huán)境。應(yīng)當(dāng)認(rèn)識到,圖1-2僅僅是示例,而不是要聲稱或暗示對其中可以實(shí)現(xiàn)本發(fā)明的實(shí)施例或各方面的環(huán)境作任何限制。在不背離本發(fā)明主旨與范圍的情況下,可以對所述環(huán)境進(jìn)行許多修改。
[0043]現(xiàn)在參考附圖,圖1繪出了其中可以實(shí)現(xiàn)說明性實(shí)施例各方面的示例分布式數(shù)據(jù)處理系統(tǒng)的圖形表示。分布式數(shù)據(jù)處理系統(tǒng)100可以包括可以在其中實(shí)現(xiàn)說明性實(shí)施例各方面的計(jì)算機(jī)網(wǎng)絡(luò)。分布式數(shù)據(jù)處理系統(tǒng)100包含至少一個網(wǎng)絡(luò)102,它是用來在分布式數(shù)據(jù)處理系統(tǒng)100中相互連接的各種設(shè)備與計(jì)算機(jī)之間提供通信鏈接的介質(zhì)。網(wǎng)絡(luò)102可以包括諸如有線,無線通信鏈接或光纖電纜的連接。
[0044]在所繪的示例中,服務(wù)器104和服務(wù)器106與存儲單元108 —起連接到網(wǎng)絡(luò)102。此外,客戶端110、112和114也連接到網(wǎng)絡(luò)102。這些客戶端110、112和114可以是例如個人計(jì)算機(jī),網(wǎng)絡(luò)計(jì)算機(jī)等等。在所繪的示例中,服務(wù)器104給客戶端110、112和114提供諸如啟動文件,操作系統(tǒng)映象文件及應(yīng)用的數(shù)據(jù)。在所繪示例中客戶端110、112和114是服務(wù)器104的客戶端。分布式數(shù)據(jù)處理系統(tǒng)100可以包括額外的服務(wù)器、客戶端以及其它未不出的設(shè)備。
[0045]在所繪示例中,分布式數(shù)據(jù)處理系統(tǒng)100是因特網(wǎng),用網(wǎng)絡(luò)102表示使用傳輸控制協(xié)議/網(wǎng)絡(luò)協(xié)議(TCP/IP)協(xié)議包來相互通信的世界范圍內(nèi)網(wǎng)絡(luò)與網(wǎng)關(guān)的集合。在該因特網(wǎng)的中心是主節(jié)點(diǎn)或主機(jī)計(jì)算機(jī)之間高速數(shù)據(jù)通信線路的骨干,其中主節(jié)點(diǎn)或宿主計(jì)算機(jī)包含成千上萬商業(yè)的、政府的、教育的以及其它路由數(shù)據(jù)與消息的計(jì)算機(jī)系統(tǒng)。當(dāng)然,分布式數(shù)據(jù)處理系統(tǒng)100也可以實(shí)現(xiàn)為包含多種不同類型的網(wǎng)絡(luò),諸如例如,內(nèi)部網(wǎng)、局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)等等。如上所述,圖1是以示例為目的,而不是作為對本發(fā)明的不同實(shí)施例的結(jié)構(gòu)限制,并且因此,圖1中所示的特定元素不應(yīng)當(dāng)被認(rèn)為是要限制關(guān)于本發(fā)明可以在其中實(shí)現(xiàn)說明性實(shí)施例的環(huán)境。
[0046]現(xiàn)在參考圖2,其示出了可以在其中實(shí)現(xiàn)說明性實(shí)施例各方面的示例數(shù)據(jù)處理系統(tǒng)的框圖。數(shù)據(jù)處理系統(tǒng)200是諸如圖1中的客戶端110的計(jì)算機(jī)的示例,其中實(shí)現(xiàn)本發(fā)明說明性實(shí)施例的過程的計(jì)算機(jī)可用代碼或指令可以位于其中。
[0047]在所繪示例中,數(shù)據(jù)處理系統(tǒng)200采用集線器架構(gòu),包括北橋接器和存儲控制器集線器(NB/MCH) 202以及南橋接器和輸入/輸出(I/O)控制器集線器(SB/ICH) 204。處理單元206、主存儲器208以及圖形處理器210連接到NB/MCH202。圖形處理器210可以通過加速圖形端口(AGP)連接到NB/MCH202。
[0048]在所繪示例中,局域網(wǎng)(LAN)適配器212連接到SB/ICH204。音頻適配器216、鍵盤與鼠標(biāo)適配器220、調(diào)制解調(diào)器222、只讀存儲器(ROM) 224、硬盤驅(qū)動器(HDD) 226、⑶-ROM驅(qū)動器230、通用串行總線(USB)端口與其它通信端口 232以及PCI/PCIe設(shè)備234通過總線238和總線240連接到SB/ICH204。PCI/PCIe設(shè)備可以包括,例如,用于筆記本計(jì)算機(jī)的以太網(wǎng)適配器、附加(add-1n)卡和PC卡。PCI使用卡總線控制器,而PCIe不用。R0M224可以是例如基本輸入輸出系統(tǒng)(BIOS)的閃存。
[0049]HDD226 和 CD-ROM 驅(qū)動器 230 通過總線 240 連接到 SB/ICH204。HDD226 和 CD-ROM驅(qū)動器230可以使用例如集成驅(qū)動電路(IDE)或串行先進(jìn)技術(shù)附件(SATA)接口。超級輸入/輸出(SIO)設(shè)備236可以連接到SB/ICH204。[0050]處理單元206上運(yùn)行操作系統(tǒng)。在圖2的數(shù)據(jù)處理系統(tǒng)200中該操作系統(tǒng)協(xié)調(diào)并提供對各種組件的控制。作為客戶端,操作系統(tǒng)可以是市場上可買到的諸如Microsoft? Windows? 7 (Microsoft 和 Windows 是 Microsoft 公司在美國、其它國
家或這兩者的商標(biāo))的操作系統(tǒng)。諸如Java?編程系統(tǒng)的面向?qū)ο蟮木幊滔到y(tǒng)可以和操作系統(tǒng)一道運(yùn)行,并且提供從在數(shù)據(jù)處理系統(tǒng)200上運(yùn)行的Java?程序或應(yīng)用到操作系統(tǒng)的調(diào)用(Java是Oracal和/或其附屬公司在美國、其它國家或這兩者的商標(biāo))。
[0051]作為服務(wù)器,數(shù)據(jù)處理系統(tǒng)200可以是,例如,運(yùn)行高級交互執(zhí)行(AIX )操作
系統(tǒng)或LINUX?操作系統(tǒng)的IBM? eServer? System P?計(jì)算機(jī)系統(tǒng)(IBM、eServer、
System p和AIX是國際商用機(jī)器公司在美國、其它國家或這兩者的商標(biāo),而LINUX是LinusTorvalds在美國、其它國家或這兩者的商標(biāo))。數(shù)據(jù)處理系統(tǒng)200可以是在處理單元206中包含多個處理器的對稱多處理器(SMP)系統(tǒng)。作為替換地,可以采用單處理器系統(tǒng)。
[0052]用于該操作系統(tǒng)、面向?qū)ο缶幊滔到y(tǒng)以及應(yīng)用或程序的指令位于諸如HDD226的存儲設(shè)備上,并且可以被加載到主存儲器208以供處理單元206執(zhí)行。用于本發(fā)明說明性實(shí)施例的過程可以通過處理單元206使用計(jì)算機(jī)可用程序代碼來執(zhí)行,其中計(jì)算機(jī)可用程序代碼可以位于存儲器中,例如,諸如主存儲器208、R0M224或一個或多個外圍設(shè)備226與230 中。
[0053]諸如圖2中所示的總線238或總線240的總線系統(tǒng)可以包含一條或多條總線。當(dāng)然,總線系統(tǒng)可以使用任何類型的通信架構(gòu)或體系結(jié)構(gòu)來實(shí)現(xiàn),其中通信架構(gòu)或體系結(jié)構(gòu)在加入到架構(gòu)或體系結(jié)構(gòu)的不同組件或設(shè)備之間提供數(shù)據(jù)傳輸。諸如圖2中的調(diào)制解調(diào)器222或網(wǎng)絡(luò)適配器212的通信單元可以包含一個或多個用來發(fā)送和接收數(shù)據(jù)的設(shè)備。存儲器可以是例如主存儲器208、R0M224或諸如圖2中NB/MCH202中找到的高速緩存。
[0054]那些本領(lǐng)域普通技術(shù)人員將會理解在圖1-2中的硬件根據(jù)實(shí)現(xiàn)是可以不同的。諸如閃存、等效的非易失存儲器或光盤驅(qū)動器等的其它內(nèi)部的硬件或外圍設(shè)備,可以被用來加入或代替圖1-2中所繪的硬件。同樣,在不背離本發(fā)明主旨和范圍的情況下,除前面提到的SMP系統(tǒng)以外,說明性實(shí)施例的過程也可以應(yīng)用到多處理器數(shù)據(jù)處理系統(tǒng)中。
[0055]而且,數(shù)據(jù)處理系統(tǒng)200可以采取許多不同的數(shù)據(jù)處理系統(tǒng)的任何形式,其中不同的數(shù)據(jù)處理系統(tǒng)包括客戶端計(jì)算設(shè)備、服務(wù)器端計(jì)算設(shè)備、平板電腦、筆記本計(jì)算機(jī)、電話或其它通信設(shè)備、個人數(shù)字助理(PDA),等等。例如,在一些說明性示例中,數(shù)據(jù)處理系統(tǒng)200可以是便攜式計(jì)算設(shè)備,該便攜式計(jì)算設(shè)備配置有閃存存儲器來提供用于存儲操作系統(tǒng)文件或/和用戶產(chǎn)生的數(shù)據(jù)的非易失性存儲器。本質(zhì)上,數(shù)據(jù)處理系統(tǒng)200可以是任何已知的或?qū)黹_發(fā)的數(shù)據(jù)處理系統(tǒng)而沒有體系結(jié)構(gòu)的限制。
[0056]圖1和2中計(jì)算設(shè)備的一個或多個可以被用來實(shí)現(xiàn)說明性實(shí)施例的各方面。例如,諸如圖1中服務(wù)器104的服務(wù)器端計(jì)算設(shè)備可以用來實(shí)現(xiàn)Web應(yīng)用,該應(yīng)用可以由諸如客戶端110、112和114的一個或多個客戶端計(jì)算設(shè)備訪問。在部署Web應(yīng)用之前,或者在通過服務(wù)器104實(shí)現(xiàn)Web應(yīng)用之后,該說明性實(shí)施例的機(jī)制可以被采用來執(zhí)行Web應(yīng)用的分析以確定由Web應(yīng)用實(shí)現(xiàn)的或與Web應(yīng)用一起實(shí)現(xiàn)的降級器是否遵守安全準(zhǔn)則。用于執(zhí)行Web應(yīng)用分析的機(jī)制可以在服務(wù)器端計(jì)算設(shè)備上實(shí)現(xiàn),例如,諸如Web應(yīng)用將要部署在其中或已經(jīng)在其上實(shí)現(xiàn)的服務(wù)器104、客戶端計(jì)算設(shè)備110、112或114、另外的計(jì)算設(shè)備、多個計(jì)算設(shè)備,等等。
[0057]圖3是根據(jù)一個說明性實(shí)施例的應(yīng)用分析機(jī)制的主要操作元素的示例框圖。圖3中所示的元素可以用軟件、硬件或軟硬件的任何組合來實(shí)現(xiàn)。在一個說明性實(shí)施例中,圖3中的元素以軟件指令實(shí)現(xiàn),其中該軟件指令通過一個或多個計(jì)算設(shè)備的一個或多個處理器執(zhí)行。
[0058]如圖3所示,應(yīng)用分析機(jī)制300包含控制器310、輸入/輸出接口 320、降級器檢測引擎330、降級器抽象引擎340、降級器評估引擎350、安全準(zhǔn)則引擎360、降級器缺陷/不兼容檢測引擎370和合法/非法串模式數(shù)據(jù)庫380。降級器缺陷/不兼容檢測引擎370可以進(jìn)一步地對環(huán)境上下文規(guī)范390操作,其中環(huán)境上下文規(guī)范390可以與應(yīng)用分析機(jī)制300一起存儲或者可以作為到應(yīng)用分析機(jī)制300的輸入從外部源提供。對元素310-390中的任何一個同樣也是如此,因?yàn)?,不是如圖3中所繪的單一機(jī)制,而是這些元素中任何一個可以分布在多個計(jì)算設(shè)備上,而且因此,任何一個在某種程度上對應(yīng)用分析機(jī)制300可以是“外部的”,但與包含應(yīng)用分析機(jī)制300的其它元素結(jié)合起來時仍然工作。
[0059]控制器310控制應(yīng)用分析機(jī)制300的總體操作并且編排其它元素320-390中每一個的操作和使用。輸入/輸出接口 320操作來接收輸入,諸如用于分析的Web應(yīng)用代碼、用于配置應(yīng)用分析機(jī)制300操作的用戶輸入(如果有的話),等等。輸入/輸出接口 320操作來進(jìn)一步產(chǎn)生用于向開發(fā)人員、安全人員或者其他用戶提供通知的輸出,來通知他們Web應(yīng)用的降級器是否滿足確立的安全準(zhǔn)則,而且如果不滿足的話,會存在什么違犯。而且,基于由降級器缺陷/不兼容檢測引擎370執(zhí)行的分析,輸入/輸出接口 320可以操作來進(jìn)一步產(chǎn)生用于向開發(fā)人員、安全人員或者其它用戶提供通知的輸出,來通知他們降級器和降級器想要保護(hù)的環(huán)境之間的任何缺陷和/或不兼容,如下文將要更具體描述的。
[0060]降級器檢測引擎330分析應(yīng)用代碼來檢測應(yīng)用代碼中降級器代碼會在哪里出現(xiàn)。在一個說明性實(shí)施例中,降級器檢測引擎330可以使用以諸如美國專利申請12/575,647(下文以‘647申請指代)中所描述的方式的串分析在應(yīng)用代碼中定位降級器代碼。當(dāng)然,在不背離說明性實(shí)施例主旨和范圍的情況下,也可以使用其它已知的,或?qū)黹_發(fā)的用于在應(yīng)用代碼中檢測降級器代碼的機(jī)制。
[0061]為了提供一個如何在應(yīng)用代碼中識別降級器代碼的示例,假定利用了 ‘647申請的串分析。在這樣的串分析中,利用諸如Yasuhiko Minamide, “Static Approximationof Dynamically Generated Web Pages, ”, Proceedings of thel4th InternationalConference on World Wide Web(WWW’ 05),2005中描述的方式的串操作,應(yīng)用代碼首先被轉(zhuǎn)換成上下文無關(guān)語法(CFG)。然后,通過在對應(yīng)于源應(yīng)用代碼中的串操作的CFG上應(yīng)用近似的串操作函數(shù),串操作從上下文無關(guān)語法中刪除來產(chǎn)生產(chǎn)品規(guī)則。這些產(chǎn)品規(guī)則通常地由NOX1...Xn的形式表示,其中N是一個變量,而X1...Xn是變量或者字符并且構(gòu)成上下文無關(guān)語法。接近串操作函數(shù)是把CFG轉(zhuǎn)換成另一個CFG的函數(shù),例如,帶有輸出標(biāo)志的有限狀態(tài)自動機(jī)的轉(zhuǎn)換器。迭代近似串操作的應(yīng)用直到產(chǎn)品規(guī)則中沒有串操作。該結(jié)果是包含產(chǎn)品規(guī)則而沒有串操作的上下文無關(guān)語法。
[0062]也就是說,代碼表現(xiàn)為上下文無關(guān)的語法,其中起始變量對應(yīng)于你感興趣近似的串。例如,假設(shè)該串是在“v=vl.concat (v2); ”中的V。計(jì)算V的抽象值需要知道vl和v2的抽象值,并且,一旦知道vl和v2的值,需要通過對“concat”操作在vl和v2上的效果建模而從語法中刪除“concat”操作。這就是以上申明迭代近似串操作的應(yīng)用直到在產(chǎn)品規(guī)則中沒有更多串操作的含義。
[0063]假定也已知V依賴于vl和v2,所以近似可以考慮vl和v2遞歸地(每個輪換的)作為起始變量。對獲得這些串的抽象值,原來的產(chǎn)品規(guī)則不是必須的(除非如下面進(jìn)一步討論的存在循環(huán)的定義)。一旦執(zhí)行了 vl和v2的該遞歸考慮(recursive consideration),操作返回到用于V的語法,并且應(yīng)用轉(zhuǎn)換器近似“concat”的效果。這生成了簡化的語法,其中“concat”操作不再出現(xiàn),并且實(shí)際上,該規(guī)則簡單地賦一個值給V。處理循環(huán)定義,需要固定點(diǎn)迭代,而不是上述的遞歸,例如,如果級聯(lián)是在循環(huán)中完成:第i次迭代時V的值取決于它在第(1-Ι)次迭代中的值。作為進(jìn)一步示例,考慮下面的Java?程序,其中在用串值“a”初始化后,三次把“a”附加到賦于變量的串上。
[0064]
【權(quán)利要求】
1.一種關(guān)于目標(biāo)部署環(huán)境評估應(yīng)用代碼中的降級器代碼的方法,包括: 通過應(yīng)用分析機(jī)制識別與應(yīng)用代碼相關(guān)聯(lián)的降級器代碼,其中降級器代碼是與應(yīng)用代碼相關(guān)聯(lián)的一部分代碼,所述一部分代碼對應(yīng)用代碼的信息流進(jìn)行操作以確保在降級器代碼的輸出中對降級器代碼的信息輸入的保密性; 基于輸入串,通過應(yīng)用分析機(jī)制生成降級器代碼響應(yīng)于收到輸入串而輸出的輸出串;從存儲系統(tǒng)檢索一個或多個非法串模式集合,其中所述一個或多個非法串模式集合中的每一個與相應(yīng)的部署環(huán)境相關(guān)聯(lián),并且其中非法串模式是降級器為了安全而在信息流中識別的串|吳式; 基于一個或多個非法串模式集合和輸出串,通過應(yīng)用分析機(jī)制確定降級器代碼是否與目標(biāo)部署環(huán)境相兼容;及 通過應(yīng)用分 析機(jī)制產(chǎn)生指示所述確定的結(jié)果的輸出。
2.如權(quán)利要求1所述的方法,其中確定降級器代碼是否與部署環(huán)境相兼容包括: 識別降級器代碼被部署在其中或者將要被部署在其中的目標(biāo)部署環(huán)境;及 基于一個或多個非法串模式集合、輸出串以及目標(biāo)部署環(huán)境的識別,確定降級器代碼是否與部署環(huán)境相兼容。
3.如權(quán)利要求2所述的方法,其中識別目標(biāo)部署環(huán)境包括: 接收目標(biāo)部署環(huán)境的用戶規(guī)范。
4.如權(quán)利要求2或權(quán)利要求3所述的方法,其中識別目標(biāo)部署環(huán)境包括: 基于對由數(shù)據(jù)處理系統(tǒng)維護(hù)的配置信息的分析,自動地確定目標(biāo)部署環(huán)境。
5.如任一在前權(quán)利要求所述的方法,其中確定降級器代碼是否與目標(biāo)部署環(huán)境相兼容包括: 比較降級器代碼的輸出串和一個或多個非法串模式集合;及 識別匹配降級器代碼的輸出串的、與一個或多個非法串模式集合相關(guān)聯(lián)的非法串模式。
6.如權(quán)利要求5所述的方法,其中確定降級器代碼是否與目標(biāo)部署環(huán)境相兼容包括: 識別和與降級器代碼的輸出串匹配的非法串模式相關(guān)聯(lián)的相應(yīng)部署環(huán)境;及 確定相應(yīng)部署環(huán)境是否與目標(biāo)部署環(huán)境匹配,其中,如果相應(yīng)部署環(huán)境與目標(biāo)部署環(huán)境匹配,就確定降級器代碼與目標(biāo)部署環(huán)境相兼容,并且其中,如果相應(yīng)部署環(huán)境與目標(biāo)部署環(huán)境不匹配,就確定降級器代碼與目標(biāo)部署環(huán)境不兼容。
7.如權(quán)利要求5或權(quán)利要求6所述的方法,還包括: 確定與降級器代碼的輸出串匹配的非法串模式的強(qiáng)度; 確定對于目標(biāo)部署環(huán)境是否存在與一個或多個非法串模式集合相關(guān)聯(lián)的較高強(qiáng)度的非法串模式 '及 響應(yīng)于確定存在較高強(qiáng)度的非法串模式,產(chǎn)生關(guān)于如何改善降級器代碼的操作以使得降級器代碼的輸出串將與較高強(qiáng)度的非法串模式匹配的建議。
8.如權(quán)利要求7所述的方法,其中輸出包括發(fā)送到用戶的通知,其中所述通知識別降級器代碼是否與目標(biāo)部署環(huán)境相兼容并且進(jìn)一步識別建議。
9.如任一在前權(quán)利要求所述的方法,還包括: 存儲多個非法串模式,其中與多個非法串模式相關(guān)聯(lián)的每個非法串模式集合與一種類型的降級器代碼相關(guān)聯(lián),并且其中對一個或多個非法串模式集合的檢索是基于在應(yīng)用代碼中識別的降級器代碼的類型執(zhí)行的。
10.一種包括其中存儲了計(jì)算機(jī)可讀程序的計(jì)算機(jī)可讀存儲介質(zhì)的計(jì)算機(jī)程序產(chǎn)品,其中當(dāng)在計(jì)算設(shè)備上執(zhí)行時,計(jì)算機(jī)可讀程序使計(jì)算設(shè)備: 識別與應(yīng)用代碼相關(guān)聯(lián)的降級器代碼,其中降級器代碼是與應(yīng)用代碼相關(guān)聯(lián)的一部分代碼,所述一部分代碼對應(yīng)用代碼的信息流進(jìn)行操作以確保在降級器代碼的輸出中對降級器代碼的信息輸入的保密性; 基于輸入串,生成降級器代碼響應(yīng)于收到輸入串而輸出的輸出串; 檢索一個或多個非法串模式集合,其中所述一個或多個非法串模式集合中的每一個與相應(yīng)的部署環(huán)境相關(guān)聯(lián),并且其中非法串模式是降級器為了安全而在信息流中識別的串模式; 基于一個或多個非法串模式集合和輸出串,通過應(yīng)用分析機(jī)制確定降級器代碼是否與目標(biāo)部署環(huán)境相兼容;及 通過應(yīng)用分析機(jī)制產(chǎn)生指示所述確定的結(jié)果的輸出。
11.如權(quán)利要求10所述的計(jì)算機(jī)程序產(chǎn)品,其中計(jì)算機(jī)可讀程序還通過以下使計(jì)算設(shè)備確定降 級器代碼是否與部署環(huán)境相兼容: 識別降級器代碼被部署在其中或者將要被部署在其中的目標(biāo)部署環(huán)境;及 基于一個或多個非法串模式集合、輸出串以及目標(biāo)部署環(huán)境的識別,確定降級器代碼是否與部署環(huán)境相兼容。
12.如權(quán)利要求11所述的計(jì)算機(jī)程序產(chǎn)品,其中計(jì)算機(jī)可讀程序還使計(jì)算設(shè)備通過接收目標(biāo)部署環(huán)境的用戶規(guī)范來識別目標(biāo)部署環(huán)境。
13.如權(quán)利要求11或權(quán)利要求12所述的計(jì)算機(jī)程序產(chǎn)品,其中計(jì)算機(jī)可讀程序還使計(jì)算設(shè)備通過基于對由數(shù)據(jù)處理系統(tǒng)維護(hù)的配置信息的分析而自動地確定目標(biāo)部署環(huán)境來識別目標(biāo)部署環(huán)境。
14.如權(quán)利要求10至13中任一項(xiàng)所述的計(jì)算機(jī)程序產(chǎn)品,其中計(jì)算機(jī)可讀程序還通過以下使計(jì)算設(shè)備確定降級器代碼是否與目標(biāo)部署環(huán)境相兼容: 比較降級器代碼的輸出串和一個或多個非法串模式集合;及 識別與降級器代碼的輸出串匹配的和一個或多個非法串模式集合相關(guān)聯(lián)的非法串模式。
15.如權(quán)利要求14所述的計(jì)算機(jī)程序產(chǎn)品,其中計(jì)算機(jī)可讀程序還通過以下使計(jì)算設(shè)備確定降級器代碼是否與目標(biāo)部署環(huán)境相兼容: 識別和與降級器代碼的輸出串匹配的非法串模式相關(guān)聯(lián)的相應(yīng)部署環(huán)境;及 確定相應(yīng)部署環(huán)境是否與目標(biāo)部署環(huán)境匹配,其中,如果相應(yīng)部署環(huán)境與目標(biāo)部署環(huán)境匹配,就確定降級器代碼與目標(biāo)部署環(huán)境相兼容,并且其中,如果相應(yīng)部署環(huán)境與目標(biāo)部署環(huán)境不匹配,就確定降級器代碼與目標(biāo)部署環(huán)境不兼容。
16.如權(quán)利要求14或權(quán)利要求15所述的計(jì)算機(jī)程序產(chǎn)品,其中計(jì)算機(jī)可讀程序還使計(jì)算設(shè)備: 確定與降級器代碼的輸出串匹配的非法串模式的強(qiáng)度; 確定對于目標(biāo)部署環(huán)境是否存在與一個或多個非法串模式集合相關(guān)聯(lián)的較高強(qiáng)度的非法串模式?’及 響應(yīng)于確定存在較高強(qiáng)度的非法串模式,產(chǎn)生關(guān)于如何改善降級器代碼的操作以使得降級器代碼的輸出串將與較高強(qiáng)度的非法串模式匹配的建議。
17.如權(quán)利要求16所述的計(jì)算機(jī)程序產(chǎn)品,其中輸出包括發(fā)送到用戶的通知,其中所述通知識別降級器代碼是否與目標(biāo)部署環(huán)境相兼容并且進(jìn)一步識別建議。
18.如權(quán)利要求10至17中任一項(xiàng)所述的計(jì)算機(jī)程序產(chǎn)品,其中計(jì)算設(shè)備存儲多個非法串模式,其中與多個非法串模式相關(guān)聯(lián)的每個非法串模式集合與一種類型的降級器代碼相關(guān)聯(lián),并且其中基于在應(yīng)用代碼中識別的降級器代碼的類型而執(zhí)行對一個或多個非法串模式集合的檢索。
19.如權(quán)利要求10至18中任一項(xiàng)所述的計(jì)算機(jī)程序產(chǎn)品,其中計(jì)算機(jī)可讀程序存儲在計(jì)算設(shè)備中的計(jì)算機(jī)可讀存儲介質(zhì)中,并且其中計(jì)算機(jī)可讀程序是從遠(yuǎn)程數(shù)據(jù)處理系統(tǒng)經(jīng)網(wǎng)絡(luò)下載的。
20.如權(quán)利要求10至19中任一項(xiàng)所述的計(jì)算機(jī)程序產(chǎn)品,其中計(jì)算機(jī)可讀程序存儲在服務(wù)器數(shù)據(jù)處理系統(tǒng)中的計(jì)算機(jī)可讀存儲介質(zhì)中,并且其中計(jì)算機(jī)可讀程序是經(jīng)網(wǎng)絡(luò)下載到計(jì)算設(shè)備上的,其中計(jì)算設(shè)備對服務(wù)器數(shù)據(jù)處理系統(tǒng)來說是遠(yuǎn)程的。
21.一種關(guān)于目標(biāo)部署環(huán)境評估應(yīng)用代碼中的降級器代碼的設(shè)備,包括: 用于通過應(yīng)用分析機(jī)制識別與應(yīng)用代碼相關(guān)聯(lián)的降級器代碼的裝置,其中降級器代碼是與應(yīng)用代碼相關(guān)聯(lián)的一部分代碼,所述一部分代碼對應(yīng)用代碼的信息流進(jìn)行操作以確保在降級器代碼的輸出中對降級器代碼的信息輸入的保密性; 用于基于輸入串,通過應(yīng)用分析機(jī)制生成降級器代碼可操作來響應(yīng)于收到輸入串而輸出的輸出串的裝置; 用于從存儲系統(tǒng)檢索一個或多個非法串模式集合的裝置,其中所述一個或多個非法串模式集合中的每一個與相應(yīng)的部署環(huán)境相關(guān)聯(lián),并且其中非法串模式是降級器可操作來為了安全而在信息流中識別的串模式; 用于基于一個或多個非法串模式集合和輸出串,通過應(yīng)用分析機(jī)制確定降級器代碼是否與目標(biāo)部署環(huán)境相兼容的裝置;及 用于通過應(yīng)用分析機(jī)制產(chǎn)生指示所述確定的結(jié)果的輸出的裝置。
22.如權(quán)利要求21所述的設(shè)備,其中用于確定降級器代碼是否與部署環(huán)境相兼容的裝置還包括: 用于識別降級器代碼被部署在其中或者將要被部署在其中的目標(biāo)部署環(huán)境的裝置;及用于基于一個或多個非法串模式集合、輸出串以及目標(biāo)部署環(huán)境的識別,確定降級器代碼是否與部署環(huán)境相兼容的裝置。
23.如權(quán)利要求22所述的設(shè)備,其中用于識別目標(biāo)部署環(huán)境的裝置還包括: 用于接收目標(biāo)部署環(huán)境的用戶規(guī)范的裝置。
24.如權(quán)利要求22或權(quán)利要求23所述的設(shè)備,其中用于識別目標(biāo)部署環(huán)境的裝置還包括: 用于基于對由數(shù)據(jù)處理系統(tǒng)維護(hù)的配置信息的分析,自動地確定目標(biāo)部署環(huán)境的裝置。
25.如權(quán)利要求21— 24中任一項(xiàng)所述的設(shè)備,其中用于確定降級器代碼是否與目標(biāo)部署環(huán)境相兼容的裝置還包括: 用于比較降級器代碼的輸出串和一個或多個非法串模式集合的裝置;及用于識別與降級器代碼的輸出串匹配的和一個或多個非法串模式集合相關(guān)聯(lián)的非法串模式的裝置。
26.如權(quán)利要求25所述的設(shè)備,其中用于確定降級器代碼是否與目標(biāo)部署環(huán)境相兼容的裝置包括: 用于識別和與降級器代碼的輸出串匹配的非法串模式相關(guān)聯(lián)的相應(yīng)部署環(huán)境的裝置; 用于確定相應(yīng)部署環(huán)境是否與目標(biāo)部署環(huán)境匹配的裝置; 用于響應(yīng)于相應(yīng)部 署環(huán)境與目標(biāo)部署環(huán)境匹配,確定降級器代碼與目標(biāo)部署環(huán)境相兼容的裝置 '及 用于響應(yīng)于相應(yīng)部署環(huán)境與目標(biāo)部署環(huán)境不匹配,確定降級器代碼與目標(biāo)部署環(huán)境不兼容的裝置。
27.如權(quán)利要求25或權(quán)利要求26所述的設(shè)備,還包括: 用于確定與降級器代碼的輸出串匹配的非法串模式的強(qiáng)度的裝置; 用于確定對于目標(biāo)部署環(huán)境是否存在與一個或多個非法串模式集合相關(guān)聯(lián)的較高強(qiáng)度的非法串模式的裝置 '及 用于響應(yīng)于確定存在較高強(qiáng)度的非法串模式,產(chǎn)生關(guān)于如何改善降級器代碼的操作以使得降級器代碼的輸出串將與較高強(qiáng)度的非法串模式匹配的建議的裝置。
28.如權(quán)利要求27所述的設(shè)備,其中輸出包括發(fā)送到用戶的通知,其中所述通知可操作來識別降級器代碼是否與目標(biāo)部署環(huán)境相兼容并且可操作來識別建議。
29.如權(quán)利要求21-28中任一項(xiàng)所述的設(shè)備,還包括: 用于存儲多個非法串模式的裝置,其中與多個非法串模式相關(guān)聯(lián)的每個非法串模式集合與一種類型的降級器代碼相關(guān)聯(lián);及 用于基于在應(yīng)用代碼中識別的降級器代碼的類型對一個或多個非法串模式集合進(jìn)行檢索的裝置。
【文檔編號】G06F9/45GK103842963SQ201280047485
【公開日】2014年6月4日 申請日期:2012年7月27日 優(yōu)先權(quán)日:2011年9月29日
【發(fā)明者】O·特立普, S·D·泰爾赫特, 立石孝彰, M·匹斯托愛 申請人:國際商業(yè)機(jī)器公司