專利名稱:一種對(duì)協(xié)議實(shí)現(xiàn)進(jìn)行安全測(cè)試的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息安全(Information Security)技術(shù)領(lǐng)域,特別涉及一種對(duì)協(xié)議實(shí)現(xiàn)進(jìn)行安全測(cè)試的方法及裝置。
背景技術(shù):
計(jì)算機(jī)信息安全技術(shù)是一門由密碼應(yīng)用技術(shù)、信息安全技術(shù)、數(shù)據(jù)災(zāi)難與數(shù)據(jù)恢復(fù)技術(shù)、操作系統(tǒng)維護(hù)技術(shù)等組成的計(jì)算機(jī)綜合應(yīng)用學(xué)科。其中,信息安全技術(shù)主要用于防止系統(tǒng)漏洞、防止外部黑客入侵、防御病毒破壞和對(duì)可疑訪問(wèn)進(jìn)行有效控制等。隨著互聯(lián)網(wǎng)(Internet)的發(fā)展,各種計(jì)算機(jī)系統(tǒng)中都迫切需要加強(qiáng)其信息安全技術(shù)。以信息通信技術(shù)(ICT, Information Communication Technology)系統(tǒng)為例。ICT作為一種向客戶提供的服務(wù),是信息技術(shù)(IT, Information Technology)與通信技術(shù)(CT,Communication Technology)的結(jié)合和交融,通信業(yè)、電子信息產(chǎn)業(yè)、互聯(lián)網(wǎng)、傳媒業(yè)都將融合在ICT的范圍內(nèi),進(jìn)而能為客戶提供一站式的ICT整體服務(wù),包括集成服務(wù)、外包服務(wù)、專業(yè)服務(wù)、知識(shí)服務(wù)以及軟件開(kāi)發(fā)服務(wù)等。但是,隨著ICT系統(tǒng)的發(fā)展,保護(hù)ICT系統(tǒng)的基礎(chǔ)結(jié)構(gòu)的要求也在顯著提高。比如不同項(xiàng)目利益相關(guān)者(如合資企業(yè)、聯(lián)盟伙伴、外包服務(wù))之間連接性的提高、智能裝置的連接性的提高、外部連接性的增強(qiáng)、快速增長(zhǎng)的網(wǎng)絡(luò)入侵事件以及出現(xiàn)更多的智能黑客和惡意軟件等情況,都導(dǎo)致了 ICT系統(tǒng)的基礎(chǔ)結(jié)構(gòu)遭受攻擊以及威脅的可能性的顯著提高。因此,就非常有必要加強(qiáng)ICT系統(tǒng)的信息安全技術(shù),以針對(duì)安全漏洞和/或自發(fā)故障來(lái)保證ICT系統(tǒng)的基礎(chǔ)結(jié)構(gòu)的通信安全。在信息安全技術(shù)中,很重要的一個(gè)課題就是對(duì)協(xié)議實(shí)現(xiàn)所基于的協(xié)議進(jìn)行安全測(cè)試。現(xiàn)存的幾種協(xié)議安全測(cè)試方法包括形式化驗(yàn)證(Informal Verification)、白盒(ffhite-box)測(cè)試和黑盒(Black_box)測(cè)試等等。其中,由于形式化驗(yàn)證和白盒測(cè)試需要作為待測(cè)實(shí)現(xiàn)(IUT, Implementation Under Test)的計(jì)算機(jī)程序的源代碼(Source Code),因此,此種方法可適用的場(chǎng)景非常有限;而另一方面,黑盒測(cè)試基于協(xié)議的外部描述,即協(xié)議規(guī)范(Specifications),其實(shí)現(xiàn)并不需要計(jì)算機(jī)程序的源代碼,進(jìn)而黑盒測(cè)試的實(shí)現(xiàn)可以與協(xié)議實(shí)現(xiàn)的計(jì)算機(jī)程序開(kāi)發(fā)相互獨(dú)立,其測(cè)試結(jié)果可以應(yīng)用于協(xié)議規(guī)范的所有實(shí)現(xiàn)情況,因此,黑盒測(cè)試可以廣泛應(yīng)用于各種場(chǎng)景下的安全測(cè)試。但是,黑盒測(cè)試的實(shí)現(xiàn)成本非常高,也非常耗時(shí),且難以優(yōu)化和改進(jìn)。因此,目前在信息安全技術(shù)領(lǐng)域中,亟待開(kāi)發(fā)一種協(xié)議安全測(cè)試技術(shù),其不需要協(xié)議實(shí)現(xiàn)的計(jì)算機(jī)程序的源代碼,并且具有較高的執(zhí)行效率以及較低的實(shí)現(xiàn)成本。
發(fā)明內(nèi)容
為解決上述技術(shù)問(wèn)題,本發(fā)明實(shí)施例提出了一種對(duì)協(xié)議實(shí)現(xiàn)進(jìn)行安全測(cè)試方法及裝置,其不需要待測(cè)的協(xié)議實(shí)現(xiàn)的計(jì)算機(jī)程序的源代碼即能實(shí)現(xiàn)協(xié)議的安全測(cè)試,且具有較高的執(zhí)行效率以及較低的實(shí)現(xiàn)成本。本發(fā)明實(shí)施例提出了一種對(duì)協(xié)議實(shí)現(xiàn)進(jìn)行安全測(cè)試的方法,該方法包括
將協(xié)議實(shí)現(xiàn)所基于的協(xié)議規(guī)范映射為第一協(xié)議狀態(tài)模型;向所述第一協(xié)議狀態(tài)模型引入非法狀態(tài)以形成第二協(xié)議狀態(tài)模型;其中,所述非法狀態(tài)與所述協(xié)議實(shí)現(xiàn)出現(xiàn)的安全故障相對(duì)應(yīng);利用斷言來(lái)表征所述第一協(xié)議狀態(tài)模型和/或第二協(xié)議狀態(tài)模型的測(cè)試目的;對(duì)所述第二協(xié)議狀態(tài)模型執(zhí)行變異操作,從而生成變異的協(xié)議狀態(tài)模型;根據(jù)所述斷言對(duì)所述變異的協(xié)議狀態(tài)模型執(zhí)行模型檢測(cè),以生成至少一個(gè)測(cè)試套件,以及利用所述一個(gè)或多個(gè)測(cè)試套件對(duì)所述協(xié)議實(shí)現(xiàn)進(jìn)行模糊測(cè)試,以檢測(cè)所述協(xié)議實(shí)現(xiàn)中是否存在與所述測(cè)試套件對(duì)應(yīng)的安全漏洞。本發(fā)明實(shí)施例還提出了一種對(duì)協(xié)議實(shí)現(xiàn)進(jìn)行安全測(cè)試的裝置,該裝置包括第一映射模塊,用于將協(xié)議實(shí)現(xiàn)所基于的協(xié)議規(guī)范映射為第一協(xié)議狀態(tài)模型;非法狀態(tài)模塊,用于向所述第一映射模塊得到的所述第一協(xié)議狀態(tài)模型引入非法狀態(tài)以形成第二協(xié)議狀態(tài)模型;其中,所述非法狀態(tài)對(duì)應(yīng)于所述協(xié)議實(shí)現(xiàn)出現(xiàn)的安全故障;斷言模塊,用于利用斷言來(lái)表征來(lái)自所述非法狀態(tài)模塊的所述第二協(xié)議狀態(tài)模型和/或來(lái)自所述第一映射模塊的所述第一協(xié)議狀態(tài)模型的測(cè)試目的;變異模塊,用于對(duì)來(lái)自所述非法狀態(tài)模塊的所述第二協(xié)議狀態(tài)模型執(zhí)行變異操作,從而生成變異的協(xié)議狀態(tài)模型;檢測(cè)模塊,用于利用所述斷言模塊得到的斷言對(duì)所述變異模塊生成的所述變異的協(xié)議狀態(tài)模型執(zhí)行模型檢測(cè),以生成一個(gè)或多個(gè)測(cè)試套件,所述一個(gè)或多個(gè)測(cè)試套件由所述變異的協(xié)議狀態(tài)模型中違反所述斷言的一個(gè)或多個(gè)反例映射得到;及,測(cè)試模塊,用于利用所述檢測(cè)模塊得到的一個(gè)或多個(gè)測(cè)試套件對(duì)所述協(xié)議實(shí)現(xiàn)進(jìn)行模糊測(cè)試,以檢測(cè)所述協(xié)議實(shí)現(xiàn)中是否存在與所述一個(gè)或多個(gè)測(cè)試套件對(duì)應(yīng)的安全漏洞。采用本發(fā)明實(shí)施例提供的方法及裝置能夠以較高的執(zhí)行效率以及較低的實(shí)現(xiàn)成本實(shí)現(xiàn)協(xié)議安全測(cè)試,且無(wú)需待測(cè)的協(xié)議實(shí)現(xiàn)的源代碼。
下面將通過(guò)參照附圖詳細(xì)描述本發(fā)明的示例性實(shí)施例,使本領(lǐng)域的普通技術(shù)人員更清楚本發(fā)明的上述及其它特征和優(yōu)點(diǎn),附圖中圖1為依據(jù)本發(fā)明實(shí)施例的方法流程示意圖;圖2為本發(fā)明方法一具體實(shí)例的實(shí)現(xiàn)流程示意圖;圖3為圖2所示實(shí)例中的初始協(xié)議狀態(tài)模型示意圖;圖4為圖3所示初始協(xié)議狀態(tài)模型中引入了非法狀態(tài)之后的示意圖;圖5為對(duì)圖3所示初始協(xié)議狀態(tài)模型進(jìn)行變異操作之后所得到的變異的協(xié)議狀態(tài)模型示意圖;及,圖6為依據(jù)本發(fā)明實(shí)施例的裝置組成結(jié)構(gòu)示意圖。
具體實(shí)施方式
以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用于解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明實(shí)施例提出了一種對(duì)協(xié)議實(shí)現(xiàn)(Protocol Implementation)進(jìn)行安全測(cè)試的方法。當(dāng)對(duì)一協(xié)議實(shí)現(xiàn)進(jìn)行測(cè)試時(shí),該方法的處理流程如圖I所示包括如下步驟步驟101 :將此協(xié)議實(shí)現(xiàn)所基于的協(xié)議規(guī)范映射為第一協(xié)議狀態(tài)模型(也可稱為初始協(xié)議狀態(tài)模型)。步驟102 向此第一協(xié)議狀態(tài)模型引入非法狀態(tài)以形成第二協(xié)議狀態(tài)模型。步驟103 :利用斷言來(lái)表征此第二協(xié)議狀態(tài)模型和/或第一協(xié)議狀態(tài)模型的測(cè)試目的。步驟104 :對(duì)此第二協(xié)議狀態(tài)模型執(zhí)行變異操作(mutation operation),從而生成變異的協(xié)議狀態(tài)模型。步驟105 :對(duì)此變異的協(xié)議狀態(tài)模型執(zhí)行模型檢測(cè),以生成至少一個(gè)測(cè)試套件。步驟106 :利用此測(cè)試套件對(duì)此協(xié)議實(shí)現(xiàn)進(jìn)行模糊測(cè)試,以檢測(cè)此協(xié)議實(shí)現(xiàn)中是否存在該測(cè)試套件對(duì)應(yīng)的安全漏洞。在本實(shí)施例中,步驟104通過(guò)對(duì)第二協(xié)議狀態(tài)模型執(zhí)行變異操作可以向該協(xié)議狀態(tài)模型注入安全故障。在本實(shí)施例中,步驟105通過(guò)對(duì)第二協(xié)議狀態(tài)模型執(zhí)行變異操作,可以獲得此變異的協(xié)議狀態(tài)模型中違反上述斷言的一個(gè)或多個(gè)反例,并將此一個(gè)或多個(gè)反例被映射為一個(gè)或多個(gè)測(cè)試套件。其中,反例與測(cè)試套件之間的映射關(guān)系可以為一對(duì)一,多對(duì)一,一對(duì)多或者多對(duì)多的。優(yōu)選的,一個(gè)反例映射為一個(gè)測(cè)試套件。協(xié)議實(shí)現(xiàn)的開(kāi)發(fā)可能基于某種協(xié)議規(guī)范,尤其是涉及多個(gè)分布式的計(jì)算實(shí)體之間的連接、通信和數(shù)據(jù)傳輸?shù)膮f(xié)議實(shí)現(xiàn),它們所實(shí)現(xiàn)的功能要符合特定協(xié)議的標(biāo)準(zhǔn)化規(guī)定。一個(gè)協(xié)議規(guī)范描述了協(xié)議實(shí)現(xiàn)所能實(shí)現(xiàn)的各種功能行為和通信的句法/語(yǔ)義,其中,同一功能行為可以具體實(shí)現(xiàn)為源代碼不同的各種協(xié)議實(shí)現(xiàn),也就是說(shuō)協(xié)議規(guī)范并不規(guī)定具體實(shí)現(xiàn)中協(xié)議實(shí)現(xiàn)的源代碼,因此協(xié)議規(guī)范可以作為黑盒測(cè)試的參考。本發(fā)明實(shí)施例向協(xié)議安全測(cè)試領(lǐng)域引入了基于模型的形式化方法,以識(shí)別基于各種協(xié)議的IUT中的安全漏洞,其關(guān)注于黑盒測(cè)試且依賴于協(xié)議規(guī)范描述的功能行為和通信的語(yǔ)義/句法,而不需要了解IUT的源代碼和詳細(xì)的內(nèi)部結(jié)構(gòu)同時(shí)利用了模糊測(cè)試、變異分析和模型測(cè)試的優(yōu)點(diǎn),互相彌補(bǔ)它們的缺點(diǎn),并以形式化方法來(lái)實(shí)施IUT的協(xié)議安全測(cè)試。因此,很容易實(shí)施,實(shí)現(xiàn)成本較低,且能以較高效率自動(dòng)化的檢測(cè)IUT中潛在的安全漏洞。以下對(duì)上述各個(gè)步驟的具體實(shí)現(xiàn)加以詳細(xì)說(shuō)明。一、關(guān)于步驟101在本發(fā)明實(shí)施例中,協(xié)議狀態(tài)模型可以為有限狀態(tài)機(jī)(FSM,F(xiàn)inite StateMachine)(也稱為有限自動(dòng)機(jī)),如參數(shù)化的擴(kuò)展有限狀態(tài)機(jī)(PEFSM,ParameterizedExtended Finite State Machine),此協(xié)議狀態(tài)模型也可以為其它類型的模型,比如輸入/輸出標(biāo)號(hào)轉(zhuǎn)移系統(tǒng)(I0LTS, Input Output Label TransitionSystem)。本發(fā)明實(shí)施例對(duì)于協(xié)議狀態(tài)模型的具體類型并不限定,任何可以描述協(xié)議狀態(tài)及其轉(zhuǎn)移的模型均屬上述協(xié)議狀態(tài)模型的范疇。假定將協(xié)議規(guī)范映射為PEFSM。此PEFSM包括六元組(6-tuples),可表示為(S,S0, Σ, Γ,δ,λ)。這里,S代表PEFSM的狀態(tài)集合(即協(xié)議規(guī)范所規(guī)定的所有狀態(tài)的集合)S代表協(xié)議的初始狀態(tài);對(duì)于所有狀態(tài)都由向量P來(lái)代表包括缺省初始值在內(nèi)的內(nèi)部變量的有限集合,Σ代表輸入報(bào)文集合,每一輸入報(bào)文Zjfc(Vifc)包含其字段的向量(即參數(shù)向量)1 ; Γ代表輸出報(bào)文集合,每一輸出報(bào)文%(Vt)包含其字段的向量(即參數(shù)向量δ SX Σ—S代表轉(zhuǎn)移函數(shù),其定義了收到一輸入報(bào)文(£Σ)之后所要轉(zhuǎn)移到的目標(biāo)狀態(tài);及,λ SX Σ— Γ代表輸出函數(shù),其定義了收到一輸入報(bào)文之后的輸出報(bào)文乂(&0 (εΓ)。在一個(gè)PEFSM中,一次轉(zhuǎn)移t包括一組監(jiān)視條件(可表達(dá)為“ifstatement”)和一個(gè)動(dòng)作Zjfc(Vifc)5Ojfc(Wifc)),此動(dòng)作為針對(duì)變量向量和輸入/輸出參數(shù)的操作。如果監(jiān)視條件都被滿足,就可以執(zhí)行此轉(zhuǎn)移,并且此動(dòng)作也已基于當(dāng)前變量向量的值和輸入?yún)?shù)而被執(zhí)行,進(jìn)而使PEFSM從當(dāng)前狀態(tài)轉(zhuǎn)移到下一個(gè)狀態(tài)。根據(jù)協(xié)議規(guī)范中的定義,可以確定IUT可能存在的狀態(tài)、各個(gè)狀態(tài)之間的轉(zhuǎn)移、以及相應(yīng)的輸入報(bào)文和輸出報(bào)文,然后根據(jù)所確定的這些狀態(tài)、轉(zhuǎn)移及輸入報(bào)文和輸出報(bào)文,通過(guò)上述方法,可以將IUT所基于的協(xié)議規(guī)范形式化為相應(yīng)的PEFSM。二、關(guān)于步驟102在本發(fā)明實(shí)施例中,可以向協(xié)議狀態(tài)模型弓I入一個(gè)或多個(gè)非法狀態(tài),此非法狀態(tài)也可被稱為故障狀態(tài)或“蟲洞(wormhole) ”,此非法狀態(tài)對(duì)應(yīng)于IUT出現(xiàn)的安全故障(包括系統(tǒng)性故障或協(xié)議規(guī)范中未定義的狀態(tài))。由于,協(xié)議規(guī)范中不包括使IUT處于意外的錯(cuò)誤狀態(tài)的安全故障的定義,通過(guò)引入額外的非法狀態(tài)可以將安全故障組件引入?yún)f(xié)議狀態(tài)模型,以實(shí)現(xiàn)安全測(cè)試。本實(shí)施例中,非法狀態(tài)可以僅為單一的非法狀態(tài),也可以為多個(gè)非法狀態(tài)。其中,當(dāng)僅引入單一的非法狀態(tài)時(shí),此單一的非法狀態(tài)針對(duì)所有類型的安全故障;當(dāng)引入多個(gè)非法狀態(tài)時(shí),每一非法狀態(tài)針對(duì)特定類型的安全故障,此時(shí),需要了解特定類型的安全故障的詳細(xì)信息。三、關(guān)于步驟103在本發(fā)明實(shí)施例中,IUT可能出現(xiàn)的安全故障也可稱為需要被覆蓋的安全要求,這些安全故障可被定義為時(shí)序邏輯的斷言(Predicate),即利用時(shí)序邏輯的斷言來(lái)表征協(xié)議安全模型的測(cè)試目的。這里,時(shí)序邏輯可以為線性時(shí)序邏輯(LTL,Linear Temporal Logic)或者計(jì)算樹(shù)邏輯(CTL,Computation Tree Logic)等等,本發(fā)明實(shí)施例對(duì)所采用的具體的時(shí)序邏輯不做限定。具體的,將安全故障定義為時(shí)序邏輯的斷言的方法可以包括如下幾項(xiàng)中的任一者或任意組合I)基于給定的測(cè)試目的來(lái)定義斷言;2)根據(jù)安全測(cè)試領(lǐng)域的知識(shí)來(lái)定義斷言;及,3)從初始協(xié)議狀態(tài)模型(即步驟101得到的第一協(xié)議狀態(tài)模型)中反射出斷言;比如針對(duì)協(xié)議狀態(tài)模型中的每一次轉(zhuǎn)移,相應(yīng)生成LTL斷言或CTL斷言。在進(jìn)行安全測(cè)試時(shí),IUT可能出現(xiàn)的安全故障可能有一個(gè)或多個(gè)(通常有多個(gè)),則根據(jù)這些安全故障而得到的斷言就可以有一個(gè)或多個(gè)。本領(lǐng)域技術(shù)人員可以知道,斷言是一種邏輯判斷,由原子命題或復(fù)合命題通過(guò)邏輯算子(如與、或、非)連接而成,其處理結(jié)果代表所要判斷的條件為真(true)或假(false),比如一斷言可以為一單參函數(shù),此函數(shù)帶有一整型參數(shù),argument,如果此參數(shù)為正數(shù)(positive),則此函數(shù)的返回值為真。四、關(guān)于步驟104
在本發(fā)明實(shí)施例中,步驟104與前述的步驟103可以并行執(zhí)行,不必區(qū)分這兩個(gè)步驟的執(zhí)行先后順序。具體的,可利用變異算子(mutation operator)來(lái)對(duì)協(xié)議狀態(tài)模型執(zhí)行變異操作,這里,所利用的變異算子可以包括操作數(shù)引用算子(Operand Reference Operator)、表達(dá)否定算子(Expression Negation Operator)和變量否定算子(VariableNegationOperator)等算子中的任一者或任意組合。本發(fā)明實(shí)施例并不限定具體采用何種變異算子,只要是能應(yīng)用于安全測(cè)試的變異算子都屬本發(fā)明實(shí)施例所述的變異算子范疇。其中,操作數(shù)引用算子用于將一次轉(zhuǎn)移、一個(gè)監(jiān)視條件或一個(gè)動(dòng)作改變?yōu)槠渌?;表達(dá)否定算子用于否定一次轉(zhuǎn)移、一個(gè)監(jiān)視條件或一個(gè)動(dòng)作;及,變量否定算子用于將一個(gè)變量的值由合法值修改為非法值。這里,所謂合法值指的是在協(xié)議規(guī)范所規(guī)定的取值范圍之內(nèi)的值,而所謂非法值為不在協(xié)議規(guī)范所規(guī)定的取值范圍之內(nèi)的值。優(yōu)選的,針對(duì)協(xié)議狀態(tài)模型中的每一個(gè)轉(zhuǎn)移以及每一個(gè)(涉及到模型內(nèi)部變量的)邏輯運(yùn)算都要利用變異算子來(lái)執(zhí)行變異操作,從而更全面的檢測(cè)安全漏洞。其中,針對(duì)一個(gè)轉(zhuǎn)移所執(zhí)行的變異操作包括對(duì)此轉(zhuǎn)移本身的變異操作、和/或?qū)Υ宿D(zhuǎn)移對(duì)應(yīng)的輸入/輸出報(bào)文的字段的變異操作、和/或?qū)εc此轉(zhuǎn)移相關(guān)的內(nèi)部變量的變異操作等等。這里,可利用操作數(shù)引用算子或表達(dá)否定算子來(lái)對(duì)一個(gè)轉(zhuǎn)移本身執(zhí)行變異操作,可利用變量否定算子對(duì)輸入/輸出報(bào)文的字段和邏輯運(yùn)算中的變量執(zhí)行變異操作。這樣,每當(dāng)利用一個(gè)變異算子執(zhí)行了一次變異操作,就能生成一個(gè)與初始協(xié)議狀態(tài)模型(即步驟101映射得到的第一協(xié)議狀態(tài)模型)不同的變異的協(xié)議狀態(tài)模型,這些變異的協(xié)議狀態(tài)模型將在后續(xù)步驟中用于執(zhí)行模型檢測(cè)。五、關(guān)于步驟105具體的,要利用步驟103得到的斷言來(lái)對(duì)步驟104得到的每一個(gè)變異的協(xié)議狀態(tài)模型進(jìn)行模型檢測(cè)。其中,將上述斷言和變異的協(xié)議狀態(tài)模型作為模型檢測(cè)器的輸入,由此模型檢測(cè)器進(jìn)行模型檢測(cè)并生成一個(gè)或多個(gè)反例(counterexample)。這里,反例就是指違反上述斷言的測(cè)試用例,其可以以轉(zhuǎn)移路徑的形式從模型檢測(cè)器輸出,所謂轉(zhuǎn)移路徑指的是從協(xié)議狀態(tài)模型的初始狀態(tài)到一個(gè)出現(xiàn)斷言被違背的狀態(tài)之間的一個(gè)或多個(gè)轉(zhuǎn)移構(gòu)成的路徑。在本發(fā)明實(shí)施例中,所使用的模型檢測(cè)器可以基于(但不限于)新符號(hào)模型驗(yàn)證器(NuSMV, NewSymbolic Model Verifier)、簡(jiǎn)單 Promela (—種邏輯語(yǔ)言)解釋器(SPIN,Simple Promela Interpreter)、符號(hào)分析實(shí)驗(yàn)室(SAL, SymbolicAnalysis Laboratory)等語(yǔ)言,并且其采用的模型檢測(cè)方法可以為但不限于顯式模型檢測(cè)(explicit modelchecking)、符號(hào)化模型檢測(cè)(symbolic model checking)或有界模型檢測(cè)(bounded modelchecking)等等。在將變異的協(xié)議狀態(tài)模型輸入模型檢測(cè)器之前,如果模型檢測(cè)器不能識(shí)別此協(xié)議狀態(tài)模型的表示方法,可使用NuSMV或協(xié)議原語(yǔ)言(PR0MELA,Protocol MetaLanguage)等語(yǔ)言將此變異的協(xié)議狀態(tài)模型翻譯為標(biāo)號(hào)遷移系統(tǒng)(Labelled TransitionSystem),以供模型檢測(cè)器處理。
經(jīng)過(guò)模型檢測(cè)而生成的一個(gè)或多個(gè)反例可以被映射為一個(gè)或多個(gè)測(cè)試套件(testing suite),以進(jìn)行后續(xù)的模糊測(cè)試。優(yōu)選的,每一個(gè)反例都被映射為一個(gè)測(cè)試套件。具體的,如前面所述,依據(jù)變異的協(xié)議狀態(tài)模型,一個(gè)反例對(duì)應(yīng)一個(gè)轉(zhuǎn)移路徑,此轉(zhuǎn)移路徑上存在一系列的輸入報(bào)文/輸出報(bào)文。因此,可以將此反例映射到一測(cè)試套件,在此測(cè)試套件中,此反例可以表示為一報(bào)文序列,此報(bào)文序列包括按順序排列的可在此反例所對(duì)應(yīng)的轉(zhuǎn)移路徑上存在的所有的輸入報(bào)文和相應(yīng)的輸出報(bào)文。也就是說(shuō),測(cè)試套件中包括一系列用于激發(fā)IUT的輸入報(bào)文和作為IUT的預(yù)期響應(yīng)的相應(yīng)的輸出報(bào)文。進(jìn)一步的,在本步驟中,模型檢測(cè)器可使用上述被違反的斷言來(lái)識(shí)別在模糊測(cè)試中應(yīng)被填入模糊數(shù)據(jù)的輸入報(bào)文的字段,并可進(jìn)一步獲取這些要被填入模糊數(shù)據(jù)的報(bào)文字段的取值范圍、合法值和沖突值。對(duì)于與步驟104中得到的經(jīng)過(guò)變異操作的轉(zhuǎn)移相對(duì)應(yīng)的任一報(bào)文,其中被模型檢測(cè)器識(shí)別到的要被填入模糊數(shù)據(jù)的字段可以被標(biāo)記為“fuzzing”。進(jìn)一步的,還可以利用所獲取的這些報(bào)文字段的取值范圍、合法值和沖突值來(lái)減少要模糊測(cè)試中要被測(cè)試的缺陷值的數(shù)據(jù)量,即對(duì)所識(shí)別到的應(yīng)被填入模糊數(shù)據(jù)的報(bào)文字段進(jìn)行優(yōu)化處理,以去除其中冗余的報(bào)文字段。這里,本發(fā)明實(shí)施例可采用現(xiàn)有技術(shù)中的各種方法來(lái)對(duì)這些報(bào)文字段進(jìn)行優(yōu)化處理,本文不再詳述。進(jìn)一步的,為了提高測(cè)試效率,還可以對(duì)步驟104中生成的測(cè)試套件進(jìn)行優(yōu)化處理,以去除其中冗余的測(cè)試套件(即去除冗余的反例)。比如可在執(zhí)行模型檢測(cè)之前執(zhí)行斷言化簡(jiǎn)處理,此時(shí),可以分析斷言的作用范圍及其安全/邏輯的含義,根據(jù)分析結(jié)果刪除可被其它斷言涵蓋的冗余的斷言;或者,可在執(zhí)行模型檢測(cè)時(shí)刪除冗余的測(cè)試套件,如如果某一短的反例(即測(cè)試路徑)為一長(zhǎng)的反例的前綴,則此短的反例就為冗余的,需要?jiǎng)h除此短的反例所映射為的測(cè)試套件。這里,本發(fā)明實(shí)施例可以采用現(xiàn)有技術(shù)中的各種方法來(lái)對(duì)測(cè)試套件進(jìn)行優(yōu)化處理,在此就不再一一詳述。六、關(guān)于步驟106具體的,利用測(cè)試套件來(lái)對(duì)IUT進(jìn)行模糊測(cè)試的方法可以包括I)向IUT依次發(fā)送測(cè)試套件中的一個(gè)或多個(gè)測(cè)試報(bào)文。這里,所謂測(cè)試報(bào)文就是指前述的測(cè)試套件對(duì)應(yīng)的輸入報(bào)文;及,2)接收來(lái)自IUT的各個(gè)響應(yīng)報(bào)文;每收到一個(gè)響應(yīng)報(bào)文即檢查此響應(yīng)報(bào)文是否與測(cè)試套件中相應(yīng)的期望的輸出報(bào)文是否一致;如果檢查出某響應(yīng)報(bào)文與期望的輸出報(bào)文不一致或者IUT處于非正常狀態(tài),則可判斷IUT存在相應(yīng)的安全漏洞。其中,如果在步驟104中模型檢測(cè)器使用上述被違反的斷言來(lái)識(shí)別在模糊測(cè)試中應(yīng)被填入模糊數(shù)據(jù)的輸入報(bào)文的字段,則本步驟中,在發(fā)送測(cè)試報(bào)文之前,進(jìn)一步向所識(shí)別到的輸入報(bào)文的字段中注入模糊數(shù)據(jù)。假定模型檢測(cè)器將所識(shí)別到的要被填入模糊數(shù)據(jù)的字段標(biāo)識(shí)為“fuzzing”,則本步驟中,如果一測(cè)試報(bào)文中的字段被標(biāo)記為“fuzzing”,則說(shuō)明此測(cè)試報(bào)文需要被注入模糊數(shù)據(jù),此時(shí),可以對(duì)此測(cè)試報(bào)文中被標(biāo)記為“fuzzing”的字段進(jìn)行變異處理(即注入模糊數(shù)據(jù)),以生成用于模糊測(cè)試的變異報(bào)文。這里,對(duì)此種字段進(jìn)行的變異處理可以包括使用違反對(duì)應(yīng)斷言的測(cè)試實(shí)例來(lái)替代原來(lái)的字段、或者將違反對(duì)應(yīng)斷言的測(cè)試實(shí)例注入此字段、或者刪除此字段,所述違反對(duì)應(yīng)斷言的測(cè)試實(shí)例可以為不屬合法取值范圍之內(nèi)的非法值或沖突值、隨機(jī)生成的值、預(yù)定義的值或以其它方式生成的值。當(dāng)上述被注入模糊數(shù)據(jù)的測(cè)試報(bào)文被發(fā)往IUT之后,可以通過(guò)發(fā)送探測(cè)報(bào)文或手動(dòng)檢查等方式來(lái)檢查IUT的狀態(tài)。如果IUT處于非正常狀態(tài),如出現(xiàn)系統(tǒng)性故障、未知的狀態(tài)、宕機(jī)、程序崩潰、或者對(duì)測(cè)試套件中一輸入報(bào)文不再響應(yīng)等等,則可發(fā)現(xiàn)安全漏洞并且當(dāng)前的測(cè)試套件(其被注入了違反對(duì)應(yīng)斷言的測(cè)試實(shí)例)就可被作為用于發(fā)現(xiàn)安全漏洞的濫用腳本(misusing script)。在本發(fā)明實(shí)施例中,上述步驟104至步驟106可采用如下兩種方式來(lái)執(zhí)行
I、批處理方式(Bach mode),即先批量生成所有的測(cè)試套件,再執(zhí)行模糊測(cè)試。具體的,重復(fù)執(zhí)行步驟104至步驟105,直到針對(duì)所有變異的協(xié)議狀態(tài)模型的測(cè)試套件都已生成,然后執(zhí)行步驟106以針對(duì)所生成的所有測(cè)試套件逐個(gè)進(jìn)行模糊測(cè)試。這里,利用一個(gè)變異算子針對(duì)協(xié)議狀態(tài)模型中一個(gè)轉(zhuǎn)移進(jìn)行變異操作將生成一個(gè)變異的協(xié)議狀態(tài)模型,當(dāng)所有變異算子和轉(zhuǎn)移的組合都被已被用來(lái)生成變異的協(xié)議狀態(tài)模型,則可確定以生成了所有變異的協(xié)議狀態(tài)模型。2、交互方式(Interactive mode),即測(cè)試套件的生成(步驟104的變異分析和步驟105的模型檢測(cè))和步驟106的模糊測(cè)試交錯(cuò)進(jìn)行。具體的,每當(dāng)在步驟104中通過(guò)執(zhí)行變異操作而得到了一個(gè)變異的協(xié)議狀態(tài)模型、且在步驟105中對(duì)此變異的協(xié)議狀態(tài)模型進(jìn)行模型檢測(cè)而生成了一個(gè)或多個(gè)反例時(shí),在步驟106中使用每一個(gè)反例所映射到的測(cè)試套件來(lái)進(jìn)行模糊測(cè)試。本領(lǐng)域技術(shù)人員可以知道協(xié)議安全測(cè)試是為了檢測(cè)在向IUT輸入?yún)f(xié)議規(guī)范未定義的輸入報(bào)文時(shí)IUT的不可預(yù)測(cè)的行為。在另一方面,協(xié)議一致性測(cè)試為了確定IUT是否為符合其協(xié)議規(guī)范的規(guī)定的技術(shù),協(xié)議一致性測(cè)試的主要目的是為了驗(yàn)證協(xié)議規(guī)范所規(guī)定的功能/行為是否已經(jīng)被IUT正確的實(shí)現(xiàn),這樣,在模糊測(cè)試中,當(dāng)給出協(xié)議規(guī)范所定義的輸入報(bào)文時(shí),IUT應(yīng)反饋協(xié)議規(guī)范所定義的正確輸出報(bào)文。因此,協(xié)議一致性測(cè)試關(guān)注于協(xié)議規(guī)范所定義的輸入報(bào)文。進(jìn)一步的,在執(zhí)行上述步驟101至步驟106來(lái)完成對(duì)IUT的協(xié)議安全測(cè)試的基礎(chǔ)之上,還可對(duì)IUT執(zhí)行協(xié)議一致性測(cè)試,此協(xié)議一致性測(cè)試可以集成為協(xié)議安全測(cè)試的一部分,此協(xié)議一致性測(cè)試,包括對(duì)上述斷言執(zhí)行變異操作,以生成變異的斷言;利用此變異的斷言對(duì)第一協(xié)議狀態(tài)模型執(zhí)行模型檢測(cè),以生成用于一致性測(cè)試的一個(gè)或多個(gè)測(cè)試套件;及,利用所述用于一致性測(cè)試的一個(gè)或多個(gè)測(cè)試套件對(duì)協(xié)議實(shí)現(xiàn)進(jìn)行一致性測(cè)試以發(fā)現(xiàn)其中與協(xié)議規(guī)范不一致的漏洞。具體的,在協(xié)議一致性測(cè)試中,可利用步驟101中得到的初始協(xié)議狀態(tài)模型,并對(duì)步驟103中得到的一個(gè)或多個(gè)斷言進(jìn)行變異操作,然后通過(guò)模型檢測(cè)以得到測(cè)試套件,然后利用該測(cè)試套件可對(duì)對(duì)IUT進(jìn)行一致性測(cè)試以發(fā)現(xiàn)IUT中與協(xié)議規(guī)范不一致的漏洞。其中,與前述步驟104的變異操作不同的是,協(xié)議一致性測(cè)試中的變異操作是針對(duì)步驟103中得到的每一斷言而執(zhí)行的而不是針對(duì)協(xié)議狀態(tài)模型;而與前述步驟105的模型檢測(cè)不同的是,協(xié)議一致性測(cè)試中的模型檢測(cè)是利用變異的斷言針對(duì)初始協(xié)議狀態(tài)模型執(zhí)行的而不是針對(duì)變異的協(xié)議狀態(tài)模型執(zhí)行的。在上述本發(fā)明實(shí)施例中,協(xié)議規(guī)范被形式化為一協(xié)議狀態(tài)模型,其可被稱為形式化規(guī)范S ;以此形式化規(guī)范S為基礎(chǔ)可以自動(dòng)生成用于模糊測(cè)試的測(cè)試套件,此測(cè)試套件也可稱為測(cè)試路徑集T,其中,一測(cè)試路徑為一個(gè)有缺陷的輸入報(bào)文和相應(yīng)的期望的輸出報(bào)文的序列,此有缺陷的輸入報(bào)文指的是其字段被注入模糊數(shù)據(jù)(也稱為缺陷數(shù)據(jù))的輸入報(bào)文;此測(cè)試路徑集T將被輸入IUT,再由IUT響應(yīng)輸出報(bào)文,通過(guò)將這些輸出報(bào)文將與測(cè)試路徑集T中的期望的輸出報(bào)文進(jìn)行比較來(lái)檢測(cè)IUT中是否存在與測(cè)試路徑集T相對(duì)應(yīng)的安全漏洞。這種方法也能夠?yàn)镮UT提供在給定的形式化規(guī)范模型和故障情況下的故障覆蓋率。本發(fā)明實(shí) 施例提供了一種基于模型的形式化協(xié)議安全測(cè)試方法,通過(guò)引入變異分析和模型檢測(cè)技術(shù)到模糊測(cè)試來(lái)檢測(cè)由各種協(xié)議的IUT的未知缺陷而引發(fā)的安全漏洞。以下為依據(jù)此協(xié)議安全測(cè)試方法的本發(fā)明一具體實(shí)例。圖2為本發(fā)明實(shí)施例所提供的協(xié)議安全測(cè)試方法一具體實(shí)例的實(shí)現(xiàn)流程示意圖,包括如下步驟步驟201 :將IUT所基于的協(xié)議規(guī)范映射為第一 PEFSM(也稱為初始PEFSM)。具體的,為了使用戶可以較容易的將協(xié)議規(guī)范轉(zhuǎn)換為相應(yīng)的PEFSM,可以采用圖形化的用戶界面(UI)(比如狀態(tài)和遷移圖等)和基于可擴(kuò)展標(biāo)記語(yǔ)言(XML)的狀態(tài)遷移語(yǔ)言(如狀態(tài)圖的可擴(kuò)展標(biāo)記語(yǔ)言(SCXML,State ChartXML)等)來(lái)描述協(xié)議的各個(gè)狀態(tài)、相應(yīng)的轉(zhuǎn)移和輸入/輸出報(bào)文。圖3示出了本實(shí)例中的初始PEFSM示意圖。如圖3所示,s0, si, s2為原始的協(xié)議狀態(tài),s0為初始狀態(tài),狀態(tài)之間的轉(zhuǎn)移被標(biāo)記為ik/0k,其中,ik代表包含字段向量&的輸入報(bào)文,并觸發(fā)此轉(zhuǎn)移,Ok代表包含字段向量的輸出報(bào)文,之后,此PEFSM將轉(zhuǎn)移到新的狀態(tài)。并且,在向量&中有一個(gè)TYPE域,其代表輸入報(bào)文的類型。這里,ik,0彡k彡4,TYPE=tk,比如對(duì)于輸入報(bào)文iQ,其TYPE域的值為tQ。步驟202 :向步驟201得到的初始PEFSM引入非法狀態(tài)以形成第二 PEFSM,從而向初始PEFSM引入與安全故障相關(guān)的組件。在本實(shí)例中,將非法狀態(tài)弓I入到初始PEFSM的方法為I)向初始PEFSM中加入一個(gè)非法狀態(tài)(也稱為“蟲洞”狀態(tài))來(lái)模型化未知的IUT的系統(tǒng)性故障和明顯未在協(xié)議規(guī)范中定義的未定義狀態(tài);并且,針對(duì)此非法狀態(tài),所有的內(nèi)部變量P和輸入報(bào)文的字段都將被設(shè)置為故障值(即不屬協(xié)議規(guī)范所定義的合法取值范圍的值)。例如假定內(nèi)部變量Vi的合法取值范圍為O 16,則此內(nèi)部變量在非法狀態(tài)中的值將被設(shè)為小于O或者大于16 ;再舉一例輸入報(bào)文ik的TYPE字段將被設(shè)為?, 矣4,O彡k彡4。2)此非法狀態(tài)具有一個(gè)外出的轉(zhuǎn)移,此外出的轉(zhuǎn)移可以被標(biāo)記為“重置(reset) ”,并且指向PEFSM中的初始狀態(tài)S0。此被標(biāo)記為“reset”的轉(zhuǎn)移代表復(fù)位操作,此復(fù)位操作將重啟IUT并能使相應(yīng)的PEFSM從系統(tǒng)性故障或未定義狀態(tài)恢復(fù)到初始狀態(tài)S。。由于,非法狀態(tài)并不屬于協(xié)議規(guī)范的原始定義內(nèi)容,因此,并沒(méi)有進(jìn)入非法狀態(tài)的轉(zhuǎn)移,即不能從初始PEFSM中的合法狀態(tài)轉(zhuǎn)移到此非法狀態(tài)。使用上述方法向初始PEFSM引入非法狀態(tài)之后得到的第二 PEFSM如圖4所示。在圖4中,一個(gè)額外的非法狀態(tài)被引入到圖3所示的初始PEFSM中,此非法狀態(tài)僅具有一個(gè)向初始狀態(tài)Stl的轉(zhuǎn)移,此轉(zhuǎn)移被標(biāo)記為“reset”,并且沒(méi)有任何初始PEFSM中的合法狀態(tài)能轉(zhuǎn)移到此非法狀態(tài)。步驟203 :根據(jù)此IUT可能出現(xiàn)的故障,利用斷言來(lái)表征初始PEFSM和/或第二PEFSM的測(cè)試目的。在本實(shí)例中,計(jì)算樹(shù)邏輯(CTL)或線性時(shí)序邏輯(LTL)被用做斷言,該斷言用于根據(jù)不同安全測(cè)試要求來(lái)表征具體的測(cè)試目的,以下舉出幾種利用CTL斷言來(lái)表征測(cè)試目的的例子。I)根據(jù)協(xié)議的諸如身份驗(yàn)證(authentication)、授權(quán)(authorization)等安全要求,可以定義相應(yīng)的測(cè)試目的。比如根據(jù)協(xié)議規(guī)范定義Sl為身份驗(yàn)證狀態(tài),^為初始狀態(tài),此協(xié)議的函數(shù)可以僅僅在驗(yàn)證合法之后提供,則此測(cè)試目標(biāo)可以被定義為如下斷言AXs0 = S1這里,A表示“總是(always) ”,X代表下一個(gè)(Next),此時(shí),AXs0 = S1代表在PEFSM中,S0的下一狀態(tài)必須總是為Siq2)根據(jù)安全測(cè)試的領(lǐng)域知識(shí),也可以定義通用的安全測(cè)試目的。比如假定額外的“蟲洞(wormhole) ”狀態(tài)(即非法狀態(tài))被引入到初始PEFSM中來(lái)代表系統(tǒng)性故障或未定義狀態(tài),則對(duì)于一個(gè)正確的IUT而言,初始PEFSM中的各個(gè)狀態(tài)將不會(huì)轉(zhuǎn)移到此“蟲洞”狀態(tài);此時(shí),令SiR表初始PEFSM中的各個(gè)狀態(tài),其中,i = 0,1,…,則以下斷言可以被用做一個(gè)通用的測(cè)試目的! AG(sj wormhole)這里,A代表“總是(always)”,G代表“全局的(globally) ”,布爾符號(hào)!代表否定,則! AG(Si-Wormhole)聲明了 任意狀態(tài)Si將全局的且總是不存在向“蟲洞”狀態(tài)的轉(zhuǎn)移。3)為了涵蓋初始PEFSM中各個(gè)狀態(tài)中的潛在缺陷,進(jìn)一步的可以自動(dòng)從初始PEFSM中反射出CTL斷言以作為測(cè)試目的。以下舉出幾種從初始PEFSM中反射出CTL斷言的方法實(shí)例,但本發(fā)明實(shí)施例中從初始PEFSM中反射出斷言的方法并不限于此。a.對(duì)于初始PEFSM中的每一對(duì)狀態(tài)Si和Sj (不包括非法狀態(tài)),如果它們之間沒(méi)有轉(zhuǎn)移,則反射出兩個(gè)斷言! AG (Si — S』)和! AG (Sj — Si)以上兩個(gè)斷言明確聲明了在狀態(tài)Si和Sj之間無(wú)任何轉(zhuǎn)移存在。b.對(duì)于初始PEFSM中的轉(zhuǎn)移Si — Sj,如果在初始PEFSM中沒(méi)有轉(zhuǎn)移Sj — Si存在,則反射出一個(gè)斷言! AG(Sj^Si)以上斷言明確聲明了在初始PEFSM中不存在轉(zhuǎn)移Si — Sj的反向轉(zhuǎn)移Sj — Si。c.對(duì)于初始PEFSM中的轉(zhuǎn)移Si — S」,可以反射出一個(gè)斷言AG (Si ^ Sj)以上斷言明確聲明了初始PEFSM中存在一個(gè)合法轉(zhuǎn)移Si — Sj。d.除了上述針對(duì)狀態(tài)和轉(zhuǎn)移的斷言,也可以生成針對(duì)內(nèi)部變量P、輸入報(bào)文的字段k以及動(dòng)作Zjfc(Vifc),Oifc Ot))的斷言。例如輸入報(bào)文ik(0彡k彡4)的TYPE字段的合法值為WWt4,其它取值即為非法值,則以下斷言可以被用作測(cè)試目的 AG (ik. TYPE = t0 V h V t2 V t3 V t4)以上斷言聲明了任意輸入報(bào)文ik的值將全局的且總是為V t2、&和t4中的任一個(gè)。這里,僅以兩個(gè)運(yùn)算符AX和AG為例,在實(shí)際應(yīng)用中,其它時(shí)序邏輯運(yùn)算符AF、AU、EX、EF、EG和EU也可被用來(lái)定義作為測(cè)試目的的斷言;其中,F(xiàn)代表“未來(lái)(future) ”,U代表“直到(until) ”,E代表“存在(exist) ”步驟204 :通過(guò)對(duì)引入了非法狀態(tài)的第二 PEFSM執(zhí)行變異操作來(lái)向此第二 PEFSM注入安全故障,從而生成變異的PEFSM。在本實(shí)例中,使用三個(gè)變異算子來(lái)執(zhí)行變異操作操作數(shù)引用算子(OperandReference Operator)、表達(dá)否定算子(Expression Negation Operator)和變量否定算子(Variable Negation Operator)。其中,操作數(shù)引用算子和表達(dá)否定算子是針對(duì)轉(zhuǎn)移的,變量否定算子是針對(duì)內(nèi)部變量和輸入/輸出報(bào)文字段的針對(duì)轉(zhuǎn)移Si — Sj所執(zhí)行的變異操作可以包括如下幾種I)使用操作數(shù)引用算子對(duì)此轉(zhuǎn)移Si — Sj執(zhí)行變異操作,產(chǎn)生變異的轉(zhuǎn)移Sk — Sj (k 關(guān) i)或者轉(zhuǎn)移 Si — sk(k 關(guān) j)。2)使用表達(dá)否定算子對(duì)此轉(zhuǎn)移Si — Sj執(zhí)行變異操作,將把此轉(zhuǎn)移Si — Sj從初始PEFSM中刪除。3)使用變量否定算子對(duì)此轉(zhuǎn)移Si — Sj的內(nèi)部變量或輸入報(bào)文的字段執(zhí)行變異操作,將把此內(nèi)部變量或輸入報(bào)文的字段的值由合法值改為非法值。這樣,針對(duì)第二 PEFSM中的每一個(gè)轉(zhuǎn)移Si — ,將使用操作數(shù)引用算子、表達(dá)否定算子和變量否定算子來(lái)對(duì)此轉(zhuǎn)移及其內(nèi)部變量和輸入/輸出報(bào)文的字段執(zhí)行變異操作,其中,每使用一個(gè)變異算子(操作數(shù)引用算子、表達(dá)否定算子或變量否定算子)執(zhí)行了一次變異操作將產(chǎn)生一個(gè)變異的PEFSM,此變異的PEFSM中僅包括一個(gè)安全故障且與初始PEFSM不同。例如如果使用操作引用算子對(duì)圖4所示的PEFSM中的轉(zhuǎn)移S2 — Stl(此轉(zhuǎn)移為圖3所示的初始PEFSM中的轉(zhuǎn)移)執(zhí)行變異操作,以使此轉(zhuǎn)移S2 — S0被變異為轉(zhuǎn)移S2 —
則圖4所示第二 PEFSM將被變異為如下圖5所示的變異的PEFSM。步驟205 :對(duì)此變異的PEFSM執(zhí)行模型檢測(cè),以生成此變異的PEFSM中違反步驟203中生成的斷言的一個(gè)或多個(gè)反例,此一個(gè)或多個(gè)反例被映射為用于進(jìn)行模糊測(cè)試的測(cè)試套件。在本實(shí)例中,采用NuSMV模型檢測(cè)器作為產(chǎn)生模糊測(cè)試的測(cè)試套件的模型引擎,上述步驟205具體包括I)步驟204得到的變異的PEFSM通過(guò)NuSMV語(yǔ)言被翻譯成NuSMV模型,NuSMV賦值約束(NuSMVASSIGN constraint)被用來(lái)表征PEFSM中的狀態(tài)轉(zhuǎn)移。本實(shí)例中的一個(gè)變異的PEFSM可被翻譯成如下的NuSMV模型MODULE mainVARstate {s0, S1, S2, wormhole};input {I0, I1, I2, I3, I4, reset};TYPE ·.{to, ti, 2, U, t}output {null O0, O1, O2, O3, O4};ASSIGNinit (state) = S0 ;
next (state)=casestate = s0&input = I0 s0 ;state = s0&input = I1 IS1 ;state = S1Mnput = I2 s2 ;state = s2&input = I3 s2 ;state = s2&input = I4 wormhole ;state = wormhole s0 ;I : state ;esac ;init (output) := null ;next (output)=caseinput = I0 00 ;input = I1 -O1 ;input = I2 02 ;input = I3 03 ;input = I4 04 ;input = reset null ;I null ;esac ;init (input) = {I0 I1I ;next (input)=casestate = s0&input = {I。,I1I ;state = s0&input = I1 J1 ;state = s^input = I2 :{I3,I4I ;state = s2&input = I3 :{I3,I4I ;state = s2&input = I4 -.reset ;state = wormhole&input = reset {I。,I1I ;I null ;esac ;init (TYPE) := null ;next (TYPE)=casestate = s0&input = I0 t0 ;state = s0&input = I1 It1 ;state = S1Mnput = I2 t2 ;state = s2&input = I3 t3 ;
state = s2&input = I4 t4 ;state = wormhole : t;
I null ;esac ;2) NuSMV模型檢測(cè)器對(duì)步驟204生成的變異的PEFSM和步驟203生成的用于表征測(cè)試目的的斷言執(zhí)行模型檢測(cè),以發(fā)現(xiàn)變異的PEFSM中的違反斷言的測(cè)試用例(也稱為反例)。比如=NuSMV模型檢測(cè)器發(fā)現(xiàn)變異的PEFSM違反斷言! AG (Si — wormhole)和AG (ik.TYPE = t0 V ti V t2 V t3 V t4),則生成相應(yīng)的反例。3)將所得到的反例映射為用于模糊測(cè)試的測(cè)試套件。具體的,由于所生成的反例對(duì)應(yīng)一個(gè)轉(zhuǎn)移路徑,所以在本實(shí)例中反例被表示為在此轉(zhuǎn)移路徑上存在的輸入/輸出報(bào)文的標(biāo)記,這里,將這些標(biāo)記映射為相應(yīng)的輸入/輸出報(bào)文,這些輸入/輸出報(bào)文構(gòu)成測(cè)試套件中的一個(gè)報(bào)文序列。其中,將來(lái)自于經(jīng)過(guò)變異操作的轉(zhuǎn)移的輸入報(bào)文的所有字段標(biāo)記為“fuzzing” ;如果被違反的斷言可以更準(zhǔn)確的識(shí)別輸入報(bào)文的哪些字段與此斷言違反相關(guān),則這些字段將被標(biāo)記為“fuzzing”;如果反例和/或變異的PEFSM可以給出造成斷言違反的非法值,則模糊測(cè)試可以直接使用這些非法值來(lái)進(jìn)行測(cè)試,即在模糊測(cè)試中在相應(yīng)的輸入報(bào)文的字段填入此非法值。進(jìn)一步的,為了改善效率,可在執(zhí)行模型檢測(cè)之前和/或執(zhí)行模型檢測(cè)之后對(duì)測(cè)試套件執(zhí)行優(yōu)化處理,以消除其中冗余的測(cè)試套件。步驟206 :利用步驟205得到的測(cè)試套件對(duì)IUT進(jìn)行模糊測(cè)試,以檢測(cè)此IUT中是否存在對(duì)應(yīng)的安全漏洞。具體的,針對(duì)一個(gè)測(cè)試套件,協(xié)議安全測(cè)試將按如下方式執(zhí)行I)針對(duì)輸入報(bào)文中被標(biāo)記為“fuzzing”的字段,將預(yù)定義的測(cè)試值或步驟205中所述造成斷言違反的非法值注入此輸入報(bào)文的字段來(lái)構(gòu)成一個(gè)用于模糊測(cè)試的變異報(bào)文。2)依次發(fā)送測(cè)試套件中的每一個(gè)輸入報(bào)文到IUT。3)接收來(lái)自IUT的響應(yīng)報(bào)文,每收到一個(gè)響應(yīng)報(bào)文,即將此響應(yīng)報(bào)文與測(cè)試套件中相應(yīng)的期望的輸出報(bào)文做比較,檢查此響應(yīng)報(bào)文是否與測(cè)試套件中相應(yīng)的輸出報(bào)文是否一致,如果檢查出此響應(yīng)報(bào)文與此期望的輸出報(bào)文不一致,則可判斷IUT出現(xiàn)了相應(yīng)的安
全故障。4)在上述測(cè)試報(bào)文發(fā)送和比較結(jié)束之后,發(fā)送正常的探測(cè)報(bào)文至IUT以檢查IUT是否處于系統(tǒng)性故障或未定義的狀態(tài)。如果發(fā)現(xiàn)IUT非正常,則可發(fā)現(xiàn)安全漏洞,并且當(dāng)前的被注入了特定測(cè)試實(shí)例的測(cè)試套件就為可被作為用于用來(lái)發(fā)現(xiàn)安全漏洞的濫用腳本。在本實(shí)例中,步驟204至206采用交互方式執(zhí)行,即每當(dāng)在步驟204中通過(guò)執(zhí)行變異操作而得到了一個(gè)變異的協(xié)議狀態(tài)模型、且在步驟205中對(duì)此變異的協(xié)議狀態(tài)模型進(jìn)行模型檢測(cè)可生成一個(gè)測(cè)試套件,則在步驟206中使用此測(cè)試套件,通過(guò)向其中指定報(bào)文的指定字段注入不同的非法值來(lái)進(jìn)行模糊測(cè)試。因此,當(dāng)利用當(dāng)前測(cè)試套件執(zhí)行完模糊測(cè)試之后,將返回步驟204來(lái)生成下一測(cè)試套件并執(zhí)行模糊測(cè)試,此過(guò)程將重復(fù)執(zhí)行直到所有可能的測(cè)試套件均已生成并已被測(cè)試過(guò)?;谏鲜鰠f(xié)議安全測(cè)試方法,本發(fā)明實(shí)施例還提出了一種對(duì)協(xié)議實(shí)現(xiàn)進(jìn)行安全測(cè)試裝置。如圖6所示,該裝置包括
第一映射模塊601,用于將協(xié)議實(shí)現(xiàn)所基于的協(xié)議規(guī)范映射為第一協(xié)議狀態(tài)模型;非法狀態(tài)模塊602,用于向第一映射模塊601得到第一協(xié)議狀態(tài)模型引入非法狀態(tài)以形成第二協(xié)議狀態(tài)模型 ;在此第二協(xié)議狀態(tài)模型中,此非法狀態(tài)對(duì)應(yīng)于協(xié)議實(shí)現(xiàn)出現(xiàn)的安全故障;斷言模塊603,用于利用斷言來(lái)表征來(lái)自非法狀態(tài)模塊602的第二協(xié)議狀態(tài)模型和/或來(lái)自第一映射模塊601的第一協(xié)議狀態(tài)模型的測(cè)試目的;變異模塊604,用于對(duì)來(lái)自非法狀態(tài)模塊602的第二協(xié)議狀態(tài)模型執(zhí)行變異操作,從而生成變異的協(xié)議狀態(tài)模型;檢測(cè)模塊605,用于利用斷言模塊603得到的斷言對(duì)變異模塊604生成的變異的協(xié)議狀態(tài)模型執(zhí)行模型檢測(cè),以生成至少一個(gè)測(cè)試套件;及,測(cè)試模塊606,用于利用檢測(cè)模塊605得到的至少一個(gè)測(cè)試套件對(duì)此協(xié)議實(shí)現(xiàn)進(jìn)行模糊測(cè)試,以檢測(cè)此協(xié)議實(shí)現(xiàn)中是否存在與所述測(cè)試套件對(duì)應(yīng)的安全漏洞。本實(shí)施例中,檢測(cè)模塊605具體用于通過(guò)模型檢測(cè),將變異的協(xié)議狀態(tài)模型中違反上述斷言的一個(gè)或多個(gè)反例映射為至少一個(gè)測(cè)試套件。具體的,映射時(shí),反例與測(cè)試套件可以是一對(duì)一、一對(duì)多、多對(duì)一或者多對(duì)多的對(duì)應(yīng)關(guān)系。優(yōu)選的,檢測(cè)模塊605將一個(gè)反例映射為一個(gè)測(cè)試套件,且且該一個(gè)反例對(duì)應(yīng)所述變異的協(xié)議狀態(tài)模型中的一條轉(zhuǎn)移路徑,該轉(zhuǎn)移路徑由一個(gè)或多個(gè)轉(zhuǎn)移構(gòu)成,且該轉(zhuǎn)移路徑上存在一個(gè)或多個(gè)輸入報(bào)文及其對(duì)應(yīng)的一個(gè)或多個(gè)輸出報(bào)文,該一個(gè)反例映射為的測(cè)試套件包括該轉(zhuǎn)移路徑上存在的所述一個(gè)或多個(gè)輸入報(bào)文及其對(duì)應(yīng)的一個(gè)或多個(gè)輸出報(bào)文。優(yōu)選的,為了全面覆蓋安全漏洞,檢測(cè)模塊605將每一個(gè)反例都映射為一個(gè)測(cè)試套件。進(jìn)一步,該裝置還可以包括優(yōu)化模塊607,用于對(duì)上述測(cè)試套件進(jìn)行優(yōu)化,以去除冗余的測(cè)試套件,從而可以提高模糊測(cè)試的效率。具體的,第一映射模塊601具體用于采用形式化的方法將所述協(xié)議實(shí)現(xiàn)所基于的協(xié)議規(guī)范映射為所述第一協(xié)議狀態(tài)模型。具體的,第一映射模塊601具體用于采用形式化的方法將所述協(xié)議實(shí)現(xiàn)所基于的協(xié)議規(guī)范映射為PEFSM或者I0LTS。本實(shí)施例中,斷言模塊603例如可以包括以下子模塊之一或其任意組合第一斷言子模塊,用于基于給定的測(cè)試目的定義斷言;第二斷言子模塊,用于根據(jù)安全測(cè)試領(lǐng)域的知識(shí)定義斷言;以及,第三斷言子模塊,用于從所述第一協(xié)議狀態(tài)模型中反射出斷言。本實(shí)施例中,變異模塊604具體用于利用變異算子對(duì)第二協(xié)議狀態(tài)模型中的至少一個(gè)轉(zhuǎn)移和/或至少一個(gè)邏輯運(yùn)算執(zhí)行變異操作。具體的,變異模塊604例如包括以下子模塊之一或其任意組合第一變異子模塊,用于對(duì)所述第二協(xié)議狀態(tài)模型中的至少一個(gè)轉(zhuǎn)移的本身執(zhí)行變異操作;第二變異子模塊,用于對(duì)所述第二協(xié)議狀態(tài)模型中的至少一個(gè)轉(zhuǎn)移對(duì)應(yīng)的輸入報(bào)文和/或輸出報(bào)文的字段執(zhí)行變異操作;第三變異子模塊,用于對(duì)所述第二協(xié)議狀態(tài)模型中的至少一個(gè)轉(zhuǎn)移相關(guān)的內(nèi)部變量執(zhí)行變異操作;第四變異子模塊,用于對(duì)所述第二協(xié)議狀態(tài)模型中的至少一個(gè)邏輯運(yùn)算中的內(nèi)部變量執(zhí)行變異操作。本實(shí)施例中,測(cè)試模塊606例如包括發(fā)送子模塊,用于向所述協(xié)議實(shí)現(xiàn)依次發(fā)送該測(cè)試套件中的輸入報(bào)文;接收子模塊,用于接收來(lái)自所述協(xié)議實(shí)現(xiàn)的響應(yīng)報(bào)文;第一判斷子模塊,用于在所收到的任一響應(yīng)報(bào)文與該測(cè)試套件中對(duì)應(yīng)的輸出報(bào)文不一致時(shí),確定所述協(xié)議實(shí)現(xiàn)存在與該輸入報(bào)文對(duì)應(yīng)的安全漏洞。本實(shí)例中,測(cè)試模塊606例如可以包括上述發(fā)送子模塊、接收子模塊以及第二判斷子模塊,該第二判斷子模塊用于在所述協(xié)議實(shí)現(xiàn)處于非正常狀態(tài)時(shí)確定所述協(xié)議實(shí)現(xiàn)存在與該輸入報(bào)文對(duì)應(yīng)的安全漏洞。本實(shí)施例中,測(cè)試模塊606例如還可以包括上述發(fā)送子模塊、接收子模塊、第一判斷子模塊和第二判斷子模塊。本實(shí)施例中,該裝置進(jìn)一步還可以包括報(bào)文輸入模塊。該報(bào)文輸入模塊包括確定子模塊,用于利用被違反的斷言確定應(yīng)向所述測(cè)試套件中注入模糊數(shù)據(jù)的輸入報(bào)文的字段;以及注入子模塊,用于向確定的輸入報(bào)文的字段中注入模糊數(shù)據(jù)。具體的,變異模塊604、檢測(cè)模塊605和測(cè)試模塊606之間的可采用兩種工作方式一、批處理方式當(dāng)變異模塊604已生成所有的變異的協(xié)議狀態(tài)模型并且檢測(cè)模塊605已通過(guò)執(zhí)行模型檢測(cè)而得到針對(duì)所有的變異的協(xié)議狀態(tài)模塊的所有測(cè)試套件后,測(cè)試模塊606再以批處理的方式利用所有測(cè)試套件進(jìn)行模糊測(cè)試。二、交互處理方式每當(dāng)變異模塊604生成一個(gè)變異的協(xié)議狀態(tài)模塊并且檢測(cè)模塊605對(duì)此變異的協(xié)議狀態(tài)模型執(zhí)行模型檢測(cè)而得到針對(duì)此變異的協(xié)議狀態(tài)模型的一個(gè)或多個(gè)測(cè)試套件,測(cè)試模塊606即利用針對(duì)此變異的協(xié)議狀態(tài)模型的一個(gè)或多個(gè)測(cè)試套件進(jìn)行模糊測(cè)試??蛇x的,斷言模塊603在得到表征測(cè)試目的的斷言之后,可進(jìn)一步優(yōu)化這些斷言,以去除其中冗余的斷目??蛇x的,上述裝置還可對(duì)協(xié)議實(shí)現(xiàn)進(jìn)行協(xié)議一致性測(cè)試。此時(shí),變異模塊604可進(jìn)一步對(duì)斷言模塊603得到的斷言執(zhí)行變異操作,以生成變異的斷言;檢測(cè)模塊605可進(jìn)一步利用變異模塊604生成的變異的斷言對(duì)第一映射模塊601得到的第一協(xié)議狀態(tài)模型執(zhí)行模型檢測(cè),以得到用于一致性測(cè)試的一個(gè)或多個(gè)測(cè)試套件;及,測(cè)試模塊606可進(jìn)一步利用檢測(cè)模塊605得到的用于一致性測(cè)試的一個(gè)或多個(gè)測(cè)試套件對(duì)此協(xié)議實(shí)現(xiàn)進(jìn)行一致性測(cè)試以發(fā)現(xiàn)其中與協(xié)議規(guī)范不一致的漏洞。本實(shí)施例提供的裝置可以執(zhí)行上述方法實(shí)施例中所提供的方法實(shí)施例。因此,上述各個(gè)模塊實(shí)現(xiàn)其功能的具體方法在前述各個(gè)實(shí)施例中均已詳述,這里不再重復(fù)。此外,上述協(xié)議安全測(cè)試裝置可以實(shí)現(xiàn)為硬件設(shè)備,也可以以軟件的方式實(shí)現(xiàn)為虛擬裝置,該虛擬裝置可運(yùn)行在一計(jì)算機(jī)設(shè)備中以實(shí)現(xiàn)協(xié)議安全測(cè)試。在本發(fā)明實(shí)施例中,基于協(xié)議規(guī)范的形式化方法在協(xié)議安全測(cè)試中起著重要的作用,協(xié)議規(guī)范可被用來(lái)指導(dǎo)用于自動(dòng)檢查IUT的安全故障的反例的自動(dòng)生成,因此,能顯著減 輕利用反例的協(xié)議安全測(cè)試的工作量,進(jìn)而能顯著提高協(xié)議安全測(cè)試的效率,并且本發(fā)明實(shí)施例所提出的技術(shù)方案易于實(shí)現(xiàn)且與協(xié)議的具體實(shí)現(xiàn)相互獨(dú)立,具有較強(qiáng)的可實(shí)施性。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種對(duì)協(xié)議實(shí)現(xiàn)進(jìn)行安全測(cè)試的方法,所述方法包括 將協(xié)議實(shí)現(xiàn)所基于的協(xié)議規(guī)范映射為第一協(xié)議狀態(tài)模型; 向所述第一協(xié)議狀態(tài)模型引入非法狀態(tài)以形成第二協(xié)議狀態(tài)模型;其中,所述非法狀態(tài)與所述協(xié)議實(shí)現(xiàn)出現(xiàn)的安全故障相對(duì)應(yīng); 利用斷言來(lái)表征所述第一協(xié)議狀態(tài)模型和/或第二協(xié)議狀態(tài)模型的測(cè)試目的; 對(duì)所述第二協(xié)議狀態(tài)模型執(zhí)行變異操作,從而生成變異的協(xié)議狀態(tài)模型; 根據(jù)所述斷言對(duì)所述變異的協(xié)議狀態(tài)模型執(zhí)行模型檢測(cè),以生成至少一個(gè)測(cè)試套件;以及, 利用所述測(cè)試套件對(duì)所述協(xié)議實(shí)現(xiàn)進(jìn)行模糊測(cè)試,以檢測(cè)所述協(xié)議實(shí)現(xiàn)中是否存在與所述測(cè)試套件對(duì)應(yīng)的安全漏洞。
2.根據(jù)權(quán)利要求I所述的方法,其中,所述將協(xié)議實(shí)現(xiàn)所基于的協(xié)議規(guī)范映射為第一協(xié)議狀態(tài)模型,包括 采用形式化的方法將所述協(xié)議實(shí)現(xiàn)所基于的協(xié)議規(guī)范映射為所述第一協(xié)議狀態(tài)模型。
3.根據(jù)權(quán)利要求2所述的方法,其中,所述第一協(xié)議狀態(tài)模型為參數(shù)化的擴(kuò)展有限狀態(tài)機(jī)PEFSM或者輸入/輸出標(biāo)號(hào)轉(zhuǎn)移系統(tǒng)IOLTS。
4.根據(jù)權(quán)利要求I所述的方法,其中,所述利用斷言來(lái)表征的所述第一協(xié)議狀態(tài)模型和/或所述第二協(xié)議狀態(tài)模型的測(cè)試目的,包括 基于給定的測(cè)試目的定義斷言;和/或, 根據(jù)安全測(cè)試領(lǐng)域的知識(shí)定義斷言;和/或, 從所述第一協(xié)議狀態(tài)模型中反射出斷言。
5.根據(jù)權(quán)利要求I所述的方法,其中,所述對(duì)所述第二協(xié)議狀態(tài)模型執(zhí)行變異操作,包括 利用變異算子對(duì)所述第二協(xié)議狀態(tài)模型中的至少一個(gè)轉(zhuǎn)移和/或至少一個(gè)邏輯運(yùn)算執(zhí)行變異操作。
6.根據(jù)權(quán)利要求5所述的方法,其中, 所述利用變異算子對(duì)所述第二協(xié)議狀態(tài)模型中的至少一個(gè)轉(zhuǎn)移執(zhí)行變異操作,包括以下之一或其任意組合對(duì)所述至少一個(gè)轉(zhuǎn)移本身執(zhí)行變異操作,對(duì)所述至少一個(gè)轉(zhuǎn)移對(duì)應(yīng)的輸入報(bào)文和/或輸出報(bào)文的字段執(zhí)行變異操作,對(duì)與所述至少一個(gè)轉(zhuǎn)移相關(guān)的內(nèi)部變量執(zhí)行變異操作;和/或, 所述利用變異算子對(duì)所述第二協(xié)議狀態(tài)模型中的至少一個(gè)邏輯運(yùn)算執(zhí)行變異操作,包括對(duì)所述一個(gè)邏輯運(yùn)算中的內(nèi)部變量執(zhí)行變異操作。
7.根據(jù)權(quán)利要求I至6中任一項(xiàng)所述的方法,其中,所述根據(jù)所述斷言對(duì)所述變異的協(xié)議狀態(tài)模型執(zhí)行模型檢測(cè),包括 將所述變異的協(xié)議狀態(tài)模型中違反所述斷言的一個(gè)或多個(gè)反例映射為所述至少一個(gè)測(cè)試套件。
8.根據(jù)權(quán)利要求7所述的方法,其中, 所述一個(gè)或多個(gè)反例中的每一個(gè)反例被映射為一個(gè)測(cè)試套件;所述一個(gè)或者多個(gè)反例中的一個(gè)反例對(duì)應(yīng)所述變異的協(xié)議狀態(tài)模型中的一條轉(zhuǎn)移路徑,該轉(zhuǎn)移路徑由一個(gè)或多個(gè)轉(zhuǎn)移構(gòu)成,且該轉(zhuǎn)移路徑上存在一個(gè)或多個(gè)輸入報(bào)文及其對(duì)應(yīng)的一個(gè)或多個(gè)輸出報(bào)文,該一個(gè)反例映射為的測(cè)試套件包括該轉(zhuǎn)移路徑上存在的所述一個(gè)或多個(gè)輸入報(bào)文及其對(duì)應(yīng)的一個(gè)或多個(gè)輸出報(bào)文;以及, 所述利用所述測(cè)試套件對(duì)所述協(xié)議實(shí)現(xiàn)進(jìn)行模糊測(cè)試,包括針對(duì)每一測(cè)試套件,執(zhí)行如下處理 向所述協(xié)議實(shí)現(xiàn)依次發(fā)送該測(cè)試套件中的輸入報(bào)文;及, 接收來(lái)自所述協(xié)議實(shí)現(xiàn)的響應(yīng)報(bào)文,如果所收到的任一響應(yīng)報(bào)文與該測(cè)試套件中對(duì)應(yīng)的輸出報(bào)文不一致,或者,如果所述協(xié)議實(shí)現(xiàn)處于非正常狀態(tài),則確定所述協(xié)議實(shí)現(xiàn)存在與該輸入報(bào)文對(duì)應(yīng)的安全漏洞。
9.根據(jù)權(quán)利要求8所述的方法,其中,在所述向所述協(xié)議實(shí)現(xiàn)依次發(fā)送該測(cè)試套件中的輸入報(bào)文之前,所述方法進(jìn)一步包括 利用被違反的斷言確定應(yīng)向所述測(cè)試套件中注入模糊數(shù)據(jù)的輸入報(bào)文的字段; 向確定的輸入報(bào)文的字段中注入模糊數(shù)據(jù)。
10.根據(jù)權(quán)利要求I至6中任一項(xiàng)所述的方法,在所述利用所述測(cè)試套件對(duì)所述協(xié)議實(shí)現(xiàn)進(jìn)行模糊測(cè)試之前,所述方法進(jìn)一步包括對(duì)所述測(cè)試套件進(jìn)行優(yōu)化處理,以去除冗余的測(cè)試套件。
11.一種對(duì)協(xié)議實(shí)現(xiàn)進(jìn)行安全測(cè)試的裝置,所述裝置包括 第一映射模塊,用于將協(xié)議實(shí)現(xiàn)所基于的協(xié)議規(guī)范映射為第一協(xié)議狀態(tài)模型; 非法狀態(tài)模塊,用于向所述第一映射模塊得到的所述第一協(xié)議狀態(tài)模型引入非法狀態(tài)以形成第二協(xié)議狀態(tài)模型;其中,所述非法狀態(tài)對(duì)應(yīng)于所述協(xié)議實(shí)現(xiàn)出現(xiàn)的安全故障; 斷言模塊,用于利用斷言來(lái)表征來(lái)自所述非法狀態(tài)模塊的所述第二協(xié)議狀態(tài)模型和/或來(lái)自所述第一映射模塊的所述第一協(xié)議狀態(tài)模型的測(cè)試目的; 變異模塊,用于對(duì)來(lái)自所述非法狀態(tài)模塊的所述第二協(xié)議狀態(tài)模型執(zhí)行變異操作,從而生成變異的協(xié)議狀態(tài)模型; 檢測(cè)模塊,用于利用所述斷言模塊得到的斷言對(duì)所述變異模塊生成的所述變異的協(xié)議狀態(tài)模型執(zhí)行模型檢測(cè),以生成至少一個(gè)測(cè)試套件;及, 測(cè)試模塊,用于利用所述檢測(cè)模塊得到的所述測(cè)試套件對(duì)所述協(xié)議實(shí)現(xiàn)進(jìn)行模糊測(cè)試,以檢測(cè)所述協(xié)議實(shí)現(xiàn)中是否存在與所述測(cè)試套件對(duì)應(yīng)的安全漏洞。
12.根據(jù)權(quán)利要求11所述的裝置,其中,所述第一映射模塊,具體用于采用形式化的方法將所述協(xié)議實(shí)現(xiàn)所基于的協(xié)議規(guī)范映射為第一協(xié)議狀態(tài)模型,且所述第一協(xié)議狀態(tài)模型為參數(shù)化的擴(kuò)展有限狀態(tài)機(jī)PEFSM或者輸入/輸出標(biāo)號(hào)轉(zhuǎn)移系統(tǒng)IOLTS。
13.根據(jù)權(quán)利要求11所述的裝置,其中,所述斷言模塊包括以下子模塊之一或其任意組合 第一斷言子模塊,用于基于給定的測(cè)試目的定義斷言;第二斷言子模塊,用于根據(jù)安全測(cè)試領(lǐng)域的知識(shí)定義斷言;以及,第三斷言子模塊,用于從所述第一協(xié)議狀態(tài)模型中反射出斷言。
14.根據(jù)權(quán)利要求11所述的裝置,其中,所述變異模塊包括以下子模塊之一或其任意組合 第一變異子模塊,用于對(duì)所述第二協(xié)議狀態(tài)模型中的至少一個(gè)轉(zhuǎn)移的本身執(zhí)行變異操作;第二變異子模塊,用于對(duì)所述第二協(xié)議狀態(tài)模型中的至少一個(gè)轉(zhuǎn)移對(duì)應(yīng)的輸入報(bào)文和/或輸出報(bào)文的字段執(zhí)行變異操作; 第三變異子模塊,用于對(duì)所述第二協(xié)議狀態(tài)模型中的至少一個(gè)轉(zhuǎn)移相關(guān)的內(nèi)部變量執(zhí)行變異操作; 第四變異子模塊,用于對(duì)所述第二協(xié)議狀態(tài)模型中的至少一個(gè)邏輯運(yùn)算中的內(nèi)部變量執(zhí)行變異操作。
15.根據(jù)權(quán)利要求11所述的裝置,其中,所述檢測(cè)模塊,具體用于將所述變異的協(xié)議狀態(tài)模型中違反所述斷言的一個(gè)或者多個(gè)反例映射為所述至少一個(gè)測(cè)試套件,其中一個(gè)反例被映射為一個(gè)測(cè)試套件,且該一個(gè)反例對(duì)應(yīng)所述變異的協(xié)議狀態(tài)模型中的一條轉(zhuǎn)移路徑,該轉(zhuǎn)移路徑由一個(gè)或多個(gè)轉(zhuǎn)移構(gòu)成,且該轉(zhuǎn)移路徑上存在一個(gè)或多個(gè)輸入報(bào)文及其對(duì)應(yīng)的一個(gè)或多個(gè)輸出報(bào)文,該一個(gè)反例映射為的測(cè)試套件包括該轉(zhuǎn)移路徑上存在的所述一個(gè)或多個(gè)輸入報(bào)文及其對(duì)應(yīng)的一個(gè)或多個(gè)輸出報(bào)文。
16.根據(jù)權(quán)利要求11至15中任一項(xiàng)所述的裝置,其中,所述裝置進(jìn)一步包括 所述優(yōu)化模塊,用于對(duì)所述測(cè)試套件進(jìn)行優(yōu)化,以去除冗余的測(cè)試套件。
全文摘要
本發(fā)明實(shí)施例提供了一種對(duì)協(xié)議實(shí)現(xiàn)進(jìn)行安全測(cè)試的方法,該方法包括將協(xié)議實(shí)現(xiàn)所基于的協(xié)議規(guī)范映射為第一協(xié)議狀態(tài)模型;向第一協(xié)議狀態(tài)模型引入與安全故障相對(duì)應(yīng)的非法狀態(tài)以形成第二協(xié)議狀態(tài)模型;利用斷言來(lái)表征第一協(xié)議狀態(tài)模型和/或第二協(xié)議狀態(tài)模型的測(cè)試目的;對(duì)第二協(xié)議狀態(tài)模型執(zhí)行變異操作從而生成變異的協(xié)議狀態(tài)模型;根據(jù)斷言對(duì)變異的協(xié)議狀態(tài)模型執(zhí)行模型檢測(cè),以生成由變異的協(xié)議狀態(tài)模型中違反斷言的反例映射得到的測(cè)試套件;及,利用測(cè)試套件對(duì)協(xié)議實(shí)現(xiàn)進(jìn)行模糊測(cè)試,以檢測(cè)協(xié)議實(shí)現(xiàn)中存在的安全漏洞。本發(fā)明實(shí)施例還提供了一種相應(yīng)的測(cè)試裝置。采用本發(fā)明實(shí)施例能以高效及低成本實(shí)現(xiàn)協(xié)議安全測(cè)試。
文檔編號(hào)H04L12/26GK102624574SQ201110030260
公開(kāi)日2012年8月1日 申請(qǐng)日期2011年1月27日 優(yōu)先權(quán)日2011年1月27日
發(fā)明者唐文, 隋愛(ài)芬 申請(qǐng)人:西門子公司