一種支持非均衡任務(wù)分配的動態(tài)漏洞挖掘系統(tǒng)和方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種支持非均衡任務(wù)分配的動態(tài)漏洞挖掘系統(tǒng)和方法,屬于軟件工程和信息安全領(lǐng)域。
【背景技術(shù)】
[0002]隨著科學(xué)技術(shù)的快速發(fā)展,信息技術(shù)得到迅速的普及。由此產(chǎn)生的安全問題也越來越受到人們的重視。漏洞則是威脅軟件安全的最重要的因素。檢測漏洞的方法主要有靜態(tài)分析和動態(tài)分析,由于商業(yè)軟件的并不提供源碼,動態(tài)分析就顯得尤其重要了,由此發(fā)展起來了很多的動態(tài)分析框架。
[0003]保障網(wǎng)絡(luò)系統(tǒng)安全的一個重要前提就是,快速全面地挖掘系統(tǒng)中的安全漏洞,消除系統(tǒng)的安全隱患。國內(nèi)外出現(xiàn)大量的專業(yè)漏洞研究組織,如國內(nèi)外病毒防范公司、白帽子組織、軍方研究組織和政治組織等,還有大量的民間研究組織和愛好者。正是借著所有這些同興趣者的共同努力,出現(xiàn)了大量有效的漏洞挖掘技術(shù)和成熟工具。
[0004]現(xiàn)有的漏洞挖掘工具很多,如基于符號執(zhí)行的可疑代碼區(qū)域查找工具、基于約束求解的動態(tài)污點分析工具以及模糊測試工具,這些工具都是漏洞發(fā)現(xiàn)和確認的重要工具。通過分析多種工具間的關(guān)聯(lián)性,對其中間成果進行集成利用,可以形成動態(tài)漏洞挖掘系統(tǒng),提高漏洞挖掘的效率。
[0005]在現(xiàn)實測試過程中,為了能更快的完成測試任務(wù),提升時間效率,我們可以采用分布式系統(tǒng)實現(xiàn)動態(tài)污點分析框架。通過建立C/S模式,服務(wù)器端負責(zé)任務(wù)的分配和管理,客戶端則執(zhí)行相應(yīng)的測試任務(wù),最終將測試結(jié)果反饋給服務(wù)器端。對于每一個客戶端,在收到服務(wù)器端分配的測試用例時,都是單獨啟動線程執(zhí)行整個測試過程,是一種負載均衡分配的分布式系統(tǒng)。但是在現(xiàn)實中,不同的機器擁有不同的性能,我們也需要將這點考慮就去,針對不同性能的機器分配不同的任務(wù),更高效的完成整個測試任務(wù)。
【發(fā)明內(nèi)容】
[0006]本發(fā)明解決的技術(shù)問題:在分布式動態(tài)漏洞挖掘系統(tǒng)中,一般采用的都是均衡式分布式系統(tǒng),即每臺機器分別啟動線程執(zhí)行測試任務(wù),執(zhí)行過程的負載是相同的。但是現(xiàn)實中不同機器性能不同,包括硬件條件,是否包含被測試程序等條件。因此,本發(fā)明提供了一種非均衡任務(wù)分配分布式動態(tài)漏洞挖掘系統(tǒng)和方法,通過將系統(tǒng)劃分成子任務(wù),并設(shè)計非均衡任務(wù)分配策略,更高效的完成整個測試任務(wù)。
[0007]本發(fā)明采用的技術(shù)方案:本發(fā)明中的支持非均衡任務(wù)分配的漏洞挖掘系統(tǒng)中,首先需要將漏洞挖掘系統(tǒng)劃分成多個子任務(wù)模塊,在測試過程中能動態(tài)生成子任務(wù),并放到任務(wù)池中,然后啟動服務(wù)器端和客戶端,實施非均衡任務(wù)分配策略,開始整個測試任務(wù)。月艮務(wù)器端負責(zé)整個任務(wù)的分配和調(diào)度,客戶端則執(zhí)行具體的模塊完成子任務(wù),并反饋結(jié)果,實現(xiàn)非均衡任務(wù)分配的效果。
[0008]具體來說,本發(fā)明采用的技術(shù)方案如下:
[0009]—種支持非均衡任務(wù)分配的動態(tài)漏洞挖掘系統(tǒng),包括任務(wù)池、服務(wù)器端和客戶端;所述任務(wù)池存放動態(tài)漏洞挖掘的若干個子任務(wù),所述服務(wù)器端從任務(wù)池讀取子任務(wù),根據(jù)非均衡任務(wù)分配調(diào)度策略將子任務(wù)分配給合適的客戶端,實現(xiàn)子任務(wù)的分配和調(diào)度;所述客戶端執(zhí)行分配到的子任務(wù),并將執(zhí)行結(jié)果反饋給服務(wù)器端。
[0010]進一步地,所述非均衡任務(wù)分配調(diào)度策略,是指服務(wù)器端根據(jù)子任務(wù)的特點和客戶端機器的性能決定客戶端需要執(zhí)行的子任務(wù),實現(xiàn)子任務(wù)的非均衡分布式分配。
[0011]進一步地,所述服務(wù)器端部署管理模塊,負責(zé)控制和協(xié)調(diào)子任務(wù)的生成和分配調(diào)度過程;所述客戶端部署動態(tài)污點分析模塊、約束求解模塊、用例選擇模塊;所述子任務(wù)是在系統(tǒng)執(zhí)行過程中動態(tài)生成,分別由所述客戶端的各個功能模塊完成子任務(wù)。
[0012]—種采用上述系統(tǒng)的支持非均衡任務(wù)分配的動態(tài)漏洞挖掘方法,其實現(xiàn)步驟如下:
[0013]I)開啟服務(wù)器端,并將客戶端連接到服務(wù)器端;
[0014]2)開始進行動態(tài)漏洞挖掘任務(wù),在運行的過程中動態(tài)生成子任務(wù),存放到任務(wù)池中;
[0015]3)服務(wù)器端從任務(wù)池讀取子任務(wù),根據(jù)非均衡任務(wù)分配調(diào)度策略將子任務(wù)分配給合適的客戶端;
[0016]4)客戶端在收到相應(yīng)的子任務(wù)時,開啟新的線程執(zhí)行子任務(wù),執(zhí)行結(jié)束之后將結(jié)果反饋給服務(wù)器端。
[0017]本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點在于:
[0018](I)將漏洞挖掘系統(tǒng)劃分成子任務(wù)模塊。本發(fā)明在實現(xiàn)非均衡任務(wù)分配分布式系統(tǒng)時,首先需要劃分子任務(wù)模塊,根據(jù)子任務(wù)的特點和客戶端機器的性能決定客戶端需要執(zhí)行的子任務(wù)。通過子任務(wù)的劃分,使得測試任務(wù)可以進行非均衡分布式分配。
[0019](2)制定非均衡任務(wù)分配策略。本發(fā)明根據(jù)實際情況的需要,針對分布式系統(tǒng)運行中的特點,制定并實施非均衡任務(wù)分配策略,實現(xiàn)依據(jù)機器具體性能不同分配相應(yīng)的測試子任務(wù),更高效的完成整個測試任務(wù)。
【附圖說明】
[0020]圖1為本發(fā)明的整體設(shè)計實現(xiàn)圖;
[0021 ]圖2為本發(fā)明的非均衡任務(wù)分配策略算法圖;
[0022]圖3為本發(fā)明的客戶端執(zhí)行分均衡任務(wù)分配流程圖。
【具體實施方式】
[0023]下面結(jié)合說明書附圖,對本發(fā)明的【具體實施方式】做詳細描述。
[0024]圖1為本發(fā)明的整體設(shè)計實現(xiàn)圖。本發(fā)明基于動態(tài)漏洞挖掘系統(tǒng)集成機理和方法,設(shè)計非均衡任務(wù)分配分布式系統(tǒng)。首先將系統(tǒng)劃分成四個功能模塊,包括動態(tài)污點分析模塊、約束求解模塊、用例選擇模塊和管理模塊,然后在分布式系統(tǒng)中部署實施非均衡任務(wù)分配策略。其中,服務(wù)器端部署管理模塊,負責(zé)控制協(xié)調(diào)整個測試過程,主要包括子任務(wù)的生成和分配調(diào)度。在管理模塊中實現(xiàn)非均衡任務(wù)分配策略算法,測試開始后,根據(jù)測試任務(wù)需要,動態(tài)生成子任務(wù)并實現(xiàn)子任務(wù)的調(diào)度,客戶端則需要部署另外三個功能模塊,負責(zé)接收服務(wù)器端分配的子任務(wù),并通過調(diào)用相應(yīng)功能模塊完成任務(wù)。
[0025]上述四個功能模塊的實現(xiàn)機理及特點如下:
[0026](I)動態(tài)污點分析模塊:動態(tài)污點分析模塊的實現(xiàn)是基于動態(tài)二進制插粧技術(shù)實現(xiàn)的,在運行程序的過程中進行插粧操作,輸出輸入數(shù)據(jù)在二進制程序中的傳播軌跡。本發(fā)明中使用valgrind框架實現(xiàn)這一模塊,因此需要運行此模塊的主機中安裝了 valgrind框架和被測試的二進制程序,同時存儲了使用的測試用例。
[0027](2)約束求解模塊:約束求解模塊根據(jù)動態(tài)污點分析模塊得到的輸入數(shù)據(jù)的傳播軌跡,提取相應(yīng)分支點的約束條件集合,進行約束求解操作,從而生成遍歷其他分支路徑的測試用例。因此運行該模塊的主機需要有較好的計算性能。
[0028](3)用例選擇模塊:經(jīng)過約束求解模塊的計算之后,生成很多新的測試用例,通過用例選擇模塊為每一個測試用例打分,得分高的測試用例優(yōu)先執(zhí)行。該模塊的實現(xiàn)也是基于valgrind框架,因此需要相應(yīng)主機安裝valgrind框架和被測試的二進制程序,同時存儲了使用的測試用例。
[0029](4)管理模塊:主要是協(xié)調(diào)各個模塊之間的交互和進行各模塊間輸