本發(fā)明涉及的是一種計(jì)算機(jī)系統(tǒng)的安全性測(cè)評(píng)裝置與方法,具體地說(shuō)是一種具有時(shí)序控制的多隊(duì)列事件注入裝置和方法。
背景技術(shù):
隨著計(jì)算機(jī)以及網(wǎng)絡(luò)技術(shù)的發(fā)展,計(jì)算機(jī)系統(tǒng)的安全性越來(lái)越受到人們的重視,因此,測(cè)試與評(píng)估計(jì)算機(jī)系統(tǒng)的安全性成為系統(tǒng)研發(fā)過(guò)程中一個(gè)重要的環(huán)節(jié)。通過(guò)對(duì)測(cè)試數(shù)據(jù)的統(tǒng)計(jì)可以得出系統(tǒng)面臨一些故障時(shí)的反應(yīng)速度和解決方案,從而發(fā)現(xiàn)系統(tǒng)的瓶頸,便于系統(tǒng)的維護(hù)和進(jìn)一步設(shè)計(jì)。由于計(jì)算機(jī)系統(tǒng)執(zhí)行任務(wù)過(guò)程中出現(xiàn)故障的小概率性,決定了其不可能通過(guò)長(zhǎng)時(shí)間等待的方式來(lái)獲取計(jì)算機(jī)系統(tǒng)在面臨故障情況下的反應(yīng)以及應(yīng)對(duì)措施,因此,人為地使系統(tǒng)發(fā)生故障,并觀測(cè)系統(tǒng)在發(fā)生故障時(shí)的反應(yīng)十分必要。
申請(qǐng)?zhí)枮?01410125856.1的專利文件中,公開(kāi)了“一種基于組合測(cè)試集的分布式事件注入裝置”,提出了基于組合測(cè)試集的分布式事件注入方式,引入壓力負(fù)載,可實(shí)現(xiàn)更具針對(duì)性,更加靈活、高效的事件注入,但沒(méi)有考慮分層注入和時(shí)序控制。申請(qǐng)?zhí)枮?00620020624.0的專利文件中,公開(kāi)了一種“基于事件注入的計(jì)算機(jī)網(wǎng)絡(luò)可信性評(píng)測(cè)裝置”,是以事件注入技術(shù)為基礎(chǔ),針對(duì)不同級(jí)別容錯(cuò)機(jī)制,向目標(biāo)系統(tǒng)注入各種網(wǎng)絡(luò)事件,主要關(guān)心網(wǎng)絡(luò)安全方面的問(wèn)題。但是該發(fā)明主要適用于注入單一的網(wǎng)絡(luò)事件,事件注入不夠高效。申請(qǐng)?zhí)枮?01410216140.2的專利文件中,公開(kāi)了“一種基于多級(jí)反饋隊(duì)列的事件注入引擎的任務(wù)調(diào)度方法”,其好處是可以更加合理的實(shí)現(xiàn)批量型事件注入的任務(wù)調(diào)度,但是,該發(fā)明需要為批量型事件中的每個(gè)事件均設(shè)置事件控制塊,增加了系統(tǒng)負(fù)擔(dān)。
現(xiàn)有公開(kāi)文獻(xiàn)主要涉及基于事件注入的可信性、可靠性、安全性等問(wèn)題,均是先提出事件模型或評(píng)測(cè)模型,針對(duì)不同目標(biāo)系統(tǒng)選擇相應(yīng)事件類型,最終評(píng)測(cè)目標(biāo)系統(tǒng)或軟件的相關(guān)指標(biāo)。例如文章“基于事件注入的安全性評(píng)測(cè)方法的設(shè)計(jì)與實(shí)現(xiàn)”基于事件注入,僅選取了網(wǎng)絡(luò)攻擊事件來(lái)驗(yàn)證計(jì)算機(jī)系統(tǒng)的安全性,攻擊事件單一,不具有廣泛性(顏國(guó)平,吳智博,周達(dá)民,第十三屆全國(guó)容錯(cuò)計(jì)算學(xué)術(shù)會(huì)議,2009年7月20日,http://d.wanfangdata.com.cn/Conference/7240182)。
綜上所述,現(xiàn)階段事件注入研究存在系統(tǒng)測(cè)評(píng)的效率較低、開(kāi)銷較大以及注入事件單一化并且存在延時(shí)等問(wèn)題,不能夠完全滿足系統(tǒng)全面測(cè)評(píng)的要求。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種效率高、開(kāi)銷小,能實(shí)現(xiàn)對(duì)事件注入過(guò)程的時(shí)序控制的具有時(shí)序控制的多隊(duì)列事件注入裝置。本發(fā)明的目的還在于提供一種具有時(shí)序控制的多隊(duì)列事件注入方法。
本發(fā)明的具有時(shí)序控制的多隊(duì)列事件注入裝置包括總控制器、事件庫(kù)、事件選擇器、事件注入器、監(jiān)視器以及數(shù)據(jù)分析器六個(gè)模塊,還包括事件注入的后備隊(duì)列和就緒隊(duì)列;
總控制器用來(lái)協(xié)調(diào)各個(gè)模塊之間的關(guān)系,以及控制各模塊的控制流和數(shù)據(jù)流;
事件選擇器在事件庫(kù)中選擇事件類型,并與參數(shù)產(chǎn)生具體的事件例,存放到后備隊(duì)列;
事件庫(kù)是各類故障事件以及計(jì)算機(jī)服務(wù)功能下降行為的總和;所述事件庫(kù)是依據(jù)與系統(tǒng)相關(guān)性最高的三個(gè)角度構(gòu)建的事件庫(kù),包括寄存器、內(nèi)存和I/O;
事件注入器將就緒隊(duì)列中的事件例注入到待測(cè)試目標(biāo)系統(tǒng)中;
監(jiān)視器監(jiān)控被注入系統(tǒng)的實(shí)時(shí)反應(yīng);
數(shù)據(jù)分析器收集被注入系統(tǒng)的實(shí)時(shí)反饋信息,并生成系統(tǒng)日志,為系統(tǒng)的可用性測(cè)評(píng)提供數(shù)據(jù)參考。
本發(fā)明的具有時(shí)序控制的多隊(duì)列事件注入裝置還可以包括:
1、事件注入器內(nèi)嵌計(jì)時(shí)器,所述計(jì)時(shí)器設(shè)定事件注入的時(shí)間間隔。
2、所述被注入系統(tǒng)的實(shí)時(shí)反應(yīng)包括內(nèi)存占用率和CPU占用率。
3、所述數(shù)據(jù)分析器分為兩個(gè)功能模塊,分別是功能測(cè)試模塊和性能測(cè)試模塊;所述功能測(cè)試模塊用于定性評(píng)定事件注入成功、事件注入失敗和系統(tǒng)的有效性;所述性能測(cè)試模塊用于測(cè)試事件潛伏期、檢測(cè)延遲時(shí)間、事件注入成功率和可恢復(fù)性事件覆蓋率。
本發(fā)明的具有時(shí)序控制的多隊(duì)列事件注入方法包括如下步驟:
步驟一,總控制器向事件選擇器發(fā)送指令,由事件選擇器在事件庫(kù)中對(duì)事件類型進(jìn)行篩選,其中事件類型包括寄存器事件、內(nèi)存事件、I/O事件;
步驟二,事件選擇器將篩選好的事件與參數(shù)結(jié)合,生成具體的事件例,將具體的事件例存放到后備隊(duì)列;
步驟三,總控制器根據(jù)系統(tǒng)需要按照時(shí)序控制方法(TC-method)將后備隊(duì)列中的事件存放到就緒隊(duì)列;
步驟四,在總控制器的控制下,事件注入器將就緒隊(duì)列中的事件例注入到待測(cè)試目標(biāo)系統(tǒng)中;
步驟五,當(dāng)事件注入到待測(cè)試目標(biāo)系統(tǒng)后,由監(jiān)視器監(jiān)測(cè)待測(cè)試目標(biāo)系統(tǒng)發(fā)生故障時(shí)的反應(yīng),包括系統(tǒng)故障的預(yù)測(cè)性和容錯(cuò)的有效性;
步驟六,待監(jiān)視器完成監(jiān)測(cè)信息,數(shù)據(jù)分析器收集事件注入結(jié)果,并進(jìn)行統(tǒng)計(jì)分析。
所述時(shí)序控制方法(TC-method)具體包括:
1)初始化注入就緒隊(duì)列
在計(jì)時(shí)器開(kāi)始計(jì)時(shí)之前,首先構(gòu)建就緒隊(duì)列,就緒隊(duì)列選取于后備隊(duì)列;
2)執(zhí)行注入
在構(gòu)建完成就緒隊(duì)列后,執(zhí)行注入,注入的事件為后備隊(duì)列中的事件例;
3)計(jì)時(shí)器計(jì)時(shí)
在步驟2)開(kāi)始的同時(shí),計(jì)時(shí)器開(kāi)始計(jì)時(shí),同時(shí)設(shè)置超時(shí)等待策略,使單次事件注入時(shí)間不得超過(guò)最大的門限值T,T>0;計(jì)時(shí)器不僅設(shè)置單次的最大等待時(shí)間,同時(shí)通過(guò)設(shè)定注入時(shí)間,使注入時(shí)間間隔以均勻分布的概率圖來(lái)實(shí)現(xiàn);
4)檢測(cè)注入結(jié)果
執(zhí)行注入之后,開(kāi)始每隔時(shí)間t,檢測(cè)事件注入結(jié)果,0<t<T,判斷單次事件注入是否成功,其中T=kt,k=1,2,3…;
5)判斷注入時(shí)間
在單次過(guò)程中,一旦檢測(cè)到事件注入時(shí)間t超過(guò)了最大門限值T,不管注入是否成功,都停止本次試驗(yàn)。
所述構(gòu)建就緒隊(duì)列的方式為分層構(gòu)建,具體方法為:在生成就緒隊(duì)列過(guò)程中,單一選取一種后背隊(duì)列作為就緒隊(duì)列,當(dāng)選取寄存器事件后備隊(duì)列作為就緒隊(duì)列時(shí),關(guān)閉對(duì)內(nèi)存事件以及I/O事件的選擇;當(dāng)選取內(nèi)存事件后備隊(duì)列作為就緒隊(duì)列時(shí),關(guān)閉對(duì)寄存器事件以及I/O事件的選擇;當(dāng)選取I/O事件后備隊(duì)列作為就緒隊(duì)列時(shí),關(guān)閉對(duì)寄存器事件以及內(nèi)存事件的選擇。
所述構(gòu)建就緒隊(duì)列的方式為組合構(gòu)建,具體方法為:在生成就緒隊(duì)列的過(guò)程中,以循環(huán)組合的方式對(duì)后備隊(duì)列中的事件例進(jìn)行接通,使得就緒隊(duì)列中的事件例種類不是單一的事件類型。
本發(fā)明提出了一種具有時(shí)序控制的多隊(duì)列事件注入裝置和方法,該模型擬從與進(jìn)程相關(guān)性最高的三個(gè)角度,即寄存器、內(nèi)存和I/O,分別對(duì)事件注入系統(tǒng)進(jìn)行設(shè)計(jì),在事件注入模型中引入計(jì)時(shí)器機(jī)制,并設(shè)置超時(shí)等待應(yīng)對(duì)策略,從而實(shí)現(xiàn)對(duì)事件注入過(guò)程的時(shí)序控制。同時(shí),在構(gòu)建就緒隊(duì)列過(guò)程中采用排隊(duì)機(jī)制,可以實(shí)現(xiàn)分層注入和組合注入的功能。
本發(fā)明的有益效果體現(xiàn)在:
1、本發(fā)明擬從與進(jìn)程相關(guān)性最高的三個(gè)角度,即寄存器、內(nèi)存和I/O分別對(duì)事件注入系統(tǒng)進(jìn)行設(shè)計(jì),提高事件注入的易處理性和覆蓋率。
2、在構(gòu)建就緒隊(duì)列過(guò)程中采用排隊(duì)機(jī)制,可以實(shí)現(xiàn)目標(biāo)系統(tǒng)的分層屬性測(cè)試。
3、在事件注入模型中引入計(jì)時(shí)器機(jī)制,并設(shè)置超時(shí)等待策略,從而實(shí)現(xiàn)對(duì)事件注入過(guò)程的時(shí)序控制。
附圖說(shuō)明
圖1是具有時(shí)序控制的多隊(duì)列事件注入裝置的模型圖。
圖2是具有時(shí)序控制的多隊(duì)列事件注入裝置的模塊結(jié)構(gòu)圖。
圖3是具有時(shí)序控制的多隊(duì)列事件注入方法的流程圖。
具體實(shí)施方式
下面結(jié)合附圖距離對(duì)本發(fā)明做進(jìn)行詳細(xì)說(shuō)明。
圖1展示了一種具有時(shí)序控制的多隊(duì)列事件注入裝置的模型圖。該裝置包括總控制器、事件庫(kù)、事件選擇器、事件注入器、監(jiān)視器以及數(shù)據(jù)分析器,事件注入后備隊(duì)列和就緒隊(duì)列。
事件庫(kù)是各類故障以及引起計(jì)算機(jī)服務(wù)功能下降行為的總和,本事件庫(kù)的設(shè)計(jì)從與系統(tǒng)進(jìn)程相關(guān)性最高的三個(gè)角度(即寄存器、內(nèi)存和I/O)來(lái)構(gòu)建。事件選擇器的功能是在事件庫(kù)中選擇事件類型,并結(jié)合參數(shù)產(chǎn)生具體的事件例,如寄存器事件注入,需要選擇相關(guān)的寄存器類型事件,結(jié)合參數(shù)形成寄存器事件例,并將篩選結(jié)果(分層構(gòu)建和組合構(gòu)建)存放于相應(yīng)的寄存器事件后備隊(duì)列中。事件注入器內(nèi)嵌的計(jì)時(shí)器設(shè)定門限值T(T>0),根據(jù)系統(tǒng)需要,事件注入器將后備隊(duì)列中的事件有選擇的存入到就緒隊(duì)列中,這里可以選擇分層構(gòu)建注入事件和組合構(gòu)建注入事件,例如選擇分層構(gòu)建可有以下幾種情況:
(1)當(dāng)選取寄存器事件后備隊(duì)列作為就緒隊(duì)列時(shí),關(guān)閉對(duì)內(nèi)存事件以及I/O事件的選擇;
(2)當(dāng)選取內(nèi)存事件后備隊(duì)列作為就緒隊(duì)列時(shí),關(guān)閉對(duì)寄存器事件以及I/O事件的選擇;
(3)當(dāng)選取I/O事件后備隊(duì)列作為就緒隊(duì)列時(shí),關(guān)閉對(duì)寄存器事件以及內(nèi)存事件的選擇。
之后將就緒隊(duì)列中的事件注入到目標(biāo)系統(tǒng)中,注入的時(shí)間間隔服從均勻分布,且時(shí)間間隔由內(nèi)嵌計(jì)時(shí)器設(shè)定。
監(jiān)視器的主要功能是監(jiān)控被注入系統(tǒng)的實(shí)時(shí)反應(yīng),如被注入系統(tǒng)的內(nèi)存占用率及CPU占用率等。數(shù)據(jù)分析器的主要功能是收集被注入系統(tǒng)的實(shí)時(shí)反饋信息,并生成系統(tǒng)日志,為系統(tǒng)的可用性測(cè)評(píng)提供數(shù)據(jù)參考??偪刂破魇悄P偷暮诵?,用來(lái)協(xié)調(diào)各器件之間的關(guān)系,以及控制各模塊的控制流和數(shù)據(jù)流。
圖2展示了事件注入的具體模塊結(jié)構(gòu)。本發(fā)明設(shè)計(jì)的事件注入按照注入位置的不同,劃分為寄存器事件注入模塊、內(nèi)存事件注入模塊和I/O事件注入模塊。寄存器事件注入模塊實(shí)現(xiàn)的主要功能是修改當(dāng)前進(jìn)程在寄存器中的映像,模擬寄存器的SEU(Single Event Upset)現(xiàn)象。內(nèi)存事件注入模塊包括內(nèi)存泄露事件注入子模塊、內(nèi)存改寫事件注入子模塊和棧溢出事件注入子模塊。內(nèi)存泄露事件注入模塊的主要功能是模擬目標(biāo)機(jī)中的內(nèi)存過(guò)載事件;內(nèi)存改寫事件注入模塊的主要功能是模擬內(nèi)存的SEU現(xiàn)象;棧溢出事件注入模塊的主要功能是模擬并行MPI程序棧溢出事件。I/O事件注入模塊包括讀指針偏移子模塊和寫指針偏移子模塊。讀寫指針偏移事件注入的主要功能是模擬進(jìn)程I/O過(guò)程中的錯(cuò)誤。
結(jié)合圖1和圖2,具有時(shí)序控制的多隊(duì)列事件注入裝置具體為:
(1)總控制器:模型的核心,用來(lái)協(xié)調(diào)各個(gè)器件之間的關(guān)系,以及控制各模塊的控制流和數(shù)據(jù)流;
(2)事件選擇器:主要功能是在事件庫(kù)中選擇事件類型,并與參數(shù)產(chǎn)生具體的事件例,存放到后備隊(duì)列;
(3)事件庫(kù):是各類故障事件以及計(jì)算機(jī)服務(wù)功能下降行為的總和,本事件庫(kù)依據(jù)與系統(tǒng)相關(guān)性最高的三個(gè)角度構(gòu)建事件庫(kù),即寄存器、內(nèi)存和I/O;
(4)事件注入器:將就緒隊(duì)列中的事件例注入到待測(cè)試目標(biāo)系統(tǒng)中,內(nèi)嵌計(jì)時(shí)器,該計(jì)時(shí)器設(shè)定事件注入的時(shí)間間隔;
(5)監(jiān)視器:監(jiān)控被注入系統(tǒng)的實(shí)時(shí)反應(yīng),如被注入系統(tǒng)的內(nèi)存占用率和CPU占用率等;
(6)數(shù)據(jù)分析器:收集被注入系統(tǒng)的實(shí)時(shí)反饋信息,并生成系統(tǒng)日志,為系統(tǒng)的可用性測(cè)評(píng)提供數(shù)據(jù)參考。數(shù)據(jù)分析器可分為兩個(gè)功能模塊,分別是功能測(cè)試模塊和性能測(cè)試模塊。其中,功能測(cè)試模塊可以定性的評(píng)定為事件注入成功、事件注入失敗和系統(tǒng)的有效性等;性能測(cè)試模塊包括事件潛伏期、檢測(cè)延遲時(shí)間、事件注入成功率和可恢復(fù)性事件覆蓋率等。
圖3主要展示了本發(fā)明的流程。具體步驟如下:
(1)首先總控制器向事件選擇器發(fā)送指令,由事件選擇器在事件庫(kù)中對(duì)事件類型進(jìn)行篩選(篩選方法為抽樣法),其中事件類型包括寄存器事件、內(nèi)存事件、I/O事件;
(2)事件選擇器將篩選好的事件與參數(shù)結(jié)合,生成具體的事件例,將具體的事件例存放到后備隊(duì)列;
(3)總控制器根據(jù)系統(tǒng)需要按照時(shí)序控制方法(TC-method)將后備隊(duì)列中的事件存放到就緒隊(duì)列;
(4)在總控制器的控制下,事件注入器將就緒隊(duì)列中的事件例注入到待測(cè)試目標(biāo)系統(tǒng)中;
(5)當(dāng)事件注入到待測(cè)試目標(biāo)系統(tǒng)后,由監(jiān)視器監(jiān)測(cè)待測(cè)試目標(biāo)系統(tǒng)發(fā)生故障時(shí)的反應(yīng),包括系統(tǒng)故障的預(yù)測(cè)性和容錯(cuò)的有效性;
(6)待監(jiān)視器完成監(jiān)測(cè)信息,數(shù)據(jù)分析器收集事件注入結(jié)果,并對(duì)其進(jìn)行統(tǒng)計(jì)分析。
在事件注入的過(guò)程中,有兩個(gè)考慮的主要因素,一是注入時(shí)間問(wèn)題,另一個(gè)是注入的空間問(wèn)題。本發(fā)明設(shè)計(jì)的計(jì)時(shí)器,意在控制注入時(shí)間間隔,使得注入時(shí)間變量X服從均勻分布。上述一種具有時(shí)序控制的多隊(duì)列事件注入裝置和方法的實(shí)現(xiàn)步驟(3)中時(shí)序控制方法(TC-method)具體如下:
1)初始化注入就緒隊(duì)列。在計(jì)時(shí)器開(kāi)始計(jì)時(shí)之前,首先構(gòu)建就緒隊(duì)列,就緒隊(duì)列選取于后備隊(duì)列。其中構(gòu)建就緒隊(duì)列有以下兩種方式:
a)分層構(gòu)建。
分層構(gòu)建是指,在生成就緒隊(duì)列過(guò)程中,單一選取一種后背隊(duì)列作為就緒隊(duì)列。當(dāng)選取寄存器事件后備隊(duì)列作為就緒隊(duì)列時(shí),關(guān)閉對(duì)內(nèi)存事件以及I/O事件的選擇;當(dāng)選取內(nèi)存事件后備隊(duì)列作為就緒隊(duì)列時(shí),關(guān)閉對(duì)寄存器事件以及I/O事件的選擇;當(dāng)選取I/O事件后備隊(duì)列作為就緒隊(duì)列時(shí),關(guān)閉對(duì)寄存器事件以及內(nèi)存事件的選擇。
b)組合構(gòu)建。
組合構(gòu)建是指,在生成就緒隊(duì)列的過(guò)程中,以循環(huán)組合的方式對(duì)后備隊(duì)列中的事件例進(jìn)行接通,使得就緒隊(duì)列中的事件例種類不是單一的事件類型。組合構(gòu)建方式生成的就緒隊(duì)列更加貼近于真實(shí)環(huán)境中系統(tǒng)面臨的故障,因?yàn)楝F(xiàn)實(shí)應(yīng)用環(huán)境中,被測(cè)試計(jì)算機(jī)不可能僅存在一種類型的故障,這種測(cè)試方式角度更加全面,所得的測(cè)試結(jié)果也更有說(shuō)服力。
2)執(zhí)行注入。在構(gòu)建完成就緒隊(duì)列后,執(zhí)行注入,注入的事件為后備隊(duì)列中的事件例。
3)計(jì)時(shí)器計(jì)時(shí)。在步驟2)開(kāi)始的同時(shí),計(jì)時(shí)器開(kāi)始計(jì)時(shí)。同時(shí)設(shè)置超時(shí)等待策略,使得單次事件注入時(shí)間不得超過(guò)最大的門限值T(T的值根據(jù)具體的實(shí)驗(yàn)環(huán)境設(shè)定,T>0)。計(jì)時(shí)器不僅可以設(shè)置單次實(shí)驗(yàn)的最大等待時(shí)間,同時(shí)通過(guò)設(shè)定注入時(shí)間,可以使注入時(shí)間間隔以均勻分布的概率圖來(lái)實(shí)現(xiàn)。
4)檢測(cè)注入結(jié)果。執(zhí)行注入之后,系統(tǒng)開(kāi)始每隔時(shí)間t(0<t<T)檢測(cè)事件注入結(jié)果,判斷單次事件注入是否成功,其中T=kt(k=1,2,3…)。
5)判斷注入時(shí)間。在單次實(shí)驗(yàn)的過(guò)程中,一旦檢測(cè)到事件注入時(shí)間t超過(guò)了最大門限值T,不管注入是否成功,都停止本次試驗(yàn)。