范巍
【摘要】 軟件脆弱性作為信息安全問題的根源之一,對(duì)信息安全構(gòu)成了嚴(yán)重威脅。當(dāng)前,普遍使用的符號(hào)執(zhí)行技術(shù)受限于運(yùn)算復(fù)雜度和計(jì)算能力,無法實(shí)現(xiàn)大規(guī)模應(yīng)用。為此課題組提出了基于動(dòng)態(tài)符號(hào)執(zhí)行的軟件脆弱性并行檢測(cè)系統(tǒng)。并行調(diào)度是軟件脆弱性并行檢測(cè)系統(tǒng)的關(guān)鍵技術(shù)之一,與系統(tǒng)的檢測(cè)效率緊密相關(guān)。本文提出了基于節(jié)點(diǎn)狀態(tài)的子系統(tǒng)調(diào)度算法和基于路徑廣度優(yōu)先遍歷的任務(wù)調(diào)度算法,分別實(shí)現(xiàn)了并行系統(tǒng)的子系統(tǒng)調(diào)度和任務(wù)調(diào)度。兩個(gè)算法在實(shí)現(xiàn)上簡單易行,并且具有很高的效率。本文對(duì)具體編程的細(xì)節(jié)進(jìn)行了介紹和分析。
【關(guān)鍵詞】 軟件脆弱性分析 符號(hào)執(zhí)行 并行調(diào)度
一、緒論
軟件脆弱性也稱漏洞,是軟件在設(shè)計(jì)與實(shí)現(xiàn)過程中能導(dǎo)致安全事故的缺陷和不足[1]。脆弱性的存在本身并不影響軟件的功能,不會(huì)造成任何安全事故。但是網(wǎng)絡(luò)攻擊者可以利用軟件脆弱性,在未授權(quán)的情況下訪問或破壞計(jì)算機(jī)系統(tǒng),造成嚴(yán)重的安全事故[2] [3]。當(dāng)前,普遍使用的符號(hào)執(zhí)行技術(shù)受限于運(yùn)算復(fù)雜度和計(jì)算能力,無法實(shí)現(xiàn)大規(guī)模應(yīng)用。為此本課題設(shè)計(jì)并實(shí)現(xiàn)了基于動(dòng)態(tài)符號(hào)執(zhí)行的面向軟件脆弱性并行檢測(cè)系統(tǒng)的并行調(diào)度模塊和通信模塊,課題以此為牽引,對(duì)符號(hào)執(zhí)行技術(shù)進(jìn)行了研究,對(duì)基于符號(hào)執(zhí)行技術(shù)的KLEE平臺(tái)的搭建和使用進(jìn)行了詳細(xì)介紹,并對(duì)KLEE的測(cè)試結(jié)果進(jìn)行了詳細(xì)分析。
二、相關(guān)研究
符號(hào)執(zhí)行是指不通過執(zhí)行程序,用符號(hào)作為程序的輸入,將程序進(jìn)行模擬執(zhí)行,從而來進(jìn)行相關(guān)分析的技術(shù)。符號(hào)執(zhí)行可分為靜態(tài)符號(hào)執(zhí)行和動(dòng)態(tài)符號(hào)執(zhí)行。靜態(tài)符號(hào)執(zhí)行包括兩類,分別為過程內(nèi)分析和過程間分析,其中過程間分析又稱為全局分析。過程內(nèi)分析的概念是,在進(jìn)行分析的過程中,只分析單個(gè)過程的代碼。而全局分析的概念是,不僅單個(gè)過程中的代碼進(jìn)行分析,并且將整個(gè)程序的代碼的上下文進(jìn)行敏感分析。其中上下文敏感分析的概念是,在開始對(duì)當(dāng)前函數(shù)進(jìn)行內(nèi)分析時(shí),需要對(duì)當(dāng)前的函數(shù)間調(diào)用信息和環(huán)境信息等進(jìn)行分析和考慮。
三、基于動(dòng)態(tài)符號(hào)執(zhí)行的軟件脆弱性并行檢測(cè)系統(tǒng)
3.1系統(tǒng)總體架構(gòu)
通過前期對(duì)符號(hào)執(zhí)行技術(shù)原理和應(yīng)用的研究,我們對(duì)理解基于動(dòng)態(tài)符號(hào)執(zhí)行的軟件脆弱性并行檢測(cè)系統(tǒng)奠定了基礎(chǔ)?;趧?dòng)態(tài)符號(hào)執(zhí)行的軟件脆弱性并行檢測(cè)系統(tǒng)采用并行技術(shù)進(jìn)行軟件脆弱性檢測(cè),使系統(tǒng)不僅具有高代碼高路徑覆蓋率,同時(shí)大大提升了軟件脆弱性檢測(cè)的效率。
3.2系統(tǒng)功能概述
調(diào)度服務(wù)器:調(diào)度服務(wù)器是系統(tǒng)的中心,數(shù)量為1個(gè),工作于Windows 2003以上環(huán)境,負(fù)責(zé)與各個(gè)子系統(tǒng)通信,向子系統(tǒng)發(fā)布命令,并接收反饋。
總控中心:總控子系統(tǒng)直接與用戶進(jìn)行交互,是系統(tǒng)對(duì)外的接口,用戶的所有操作通過總控中心進(jìn)行實(shí)現(xiàn)。
四、并行調(diào)度模塊設(shè)計(jì)與實(shí)現(xiàn)
4.1算法設(shè)計(jì)思想
基于動(dòng)態(tài)符號(hào)執(zhí)行的軟件脆弱性并行檢測(cè)系統(tǒng)的并行調(diào)度問題是系統(tǒng)研發(fā)過程中的核心問題之一。調(diào)度服務(wù)器如何向三類子系統(tǒng)分配執(zhí)行任務(wù),對(duì)整個(gè)并行系統(tǒng)的執(zhí)行效率影響極大。本章設(shè)計(jì)與實(shí)現(xiàn)的并行調(diào)度模塊主要解決了三類子系統(tǒng)的調(diào)度問題和三類子系統(tǒng)任務(wù)調(diào)度問題。
4.2子系統(tǒng)調(diào)度算法
并行系統(tǒng)共有測(cè)試子系統(tǒng)、分析子系統(tǒng)和求解子系統(tǒng)三類子系統(tǒng),每類子系統(tǒng)的數(shù)量有多個(gè)。當(dāng)任務(wù)到達(dá),調(diào)度Server如何在每類子系統(tǒng)中選擇執(zhí)行任務(wù)的單位,即是子系統(tǒng)調(diào)度算法需要研究的問題。
4.3實(shí)現(xiàn)方案
在實(shí)現(xiàn)子系統(tǒng)調(diào)度和任務(wù)調(diào)度的過程中,需要對(duì)子系統(tǒng)信息、任務(wù)信息和任務(wù)內(nèi)容進(jìn)行存儲(chǔ)。為了解決存儲(chǔ)問題,系統(tǒng)在具體實(shí)現(xiàn)時(shí),使用Hadoop分布式存儲(chǔ)系統(tǒng)對(duì)各個(gè)子系統(tǒng)執(zhí)行的任務(wù)內(nèi)容進(jìn)行存儲(chǔ),系統(tǒng)使用Oracle數(shù)據(jù)庫對(duì)各個(gè)子系統(tǒng)的注冊(cè)信息和狀態(tài)信息以及各個(gè)子系統(tǒng)執(zhí)行的任務(wù)基本信息進(jìn)行存儲(chǔ)。
五、總結(jié)與展望
本文對(duì)項(xiàng)目組基于動(dòng)態(tài)符號(hào)執(zhí)行的面向軟件脆弱性并行檢測(cè)系統(tǒng)進(jìn)行了研究。最后,本文設(shè)計(jì)與實(shí)現(xiàn)了該系統(tǒng)的并行調(diào)度模塊和通信模塊,兩個(gè)模塊在實(shí)現(xiàn)上簡單易行,并且效率很高。本文的下一步工作主要包括以下方面:一是對(duì)動(dòng)態(tài)符號(hào)執(zhí)行工具和軟件脆弱性并行檢測(cè)工具進(jìn)行研究,二是對(duì)任務(wù)調(diào)度的算法進(jìn)行優(yōu)化。
參 考 文 獻(xiàn)
[1] 柳淑玉,孔維廣.軟件安全漏洞挖掘技術(shù)的研究[J].山東紡織經(jīng)濟(jì),2010,(5):107-109.
[2] 華旭峰,劉源.淺析漏洞挖掘技術(shù)[J].商場(chǎng)現(xiàn)代化,2009,(4):19.
[3] 文偉平,吳興麗,蔣建春等.軟件安全漏洞挖掘的研究思路及發(fā)展趨勢(shì)[J].信息網(wǎng)絡(luò)安全,2009,(10):78-80.
[4]鄭亮,劉向東.漏洞挖掘技術(shù)研究[C].全國抗惡劣環(huán)境計(jì)算機(jī)第十八屆學(xué)術(shù)年會(huì)論文集.2008:75-78.