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