◆蘇生平 李楠芳 楊莉莉 趙 蕾
(1.國網(wǎng)青海省電力公司 青海 810008; 2.國網(wǎng)青海省電力公司電力科學(xué)研究院 青海 810008;3.國網(wǎng)青海省電力公司信息通信公司 青海 810008)
軟件安全漏洞挖掘的操作流程及運(yùn)用
◆蘇生平1李楠芳2楊莉莉3趙 蕾2
(1.國網(wǎng)青海省電力公司 青海 810008; 2.國網(wǎng)青海省電力公司電力科學(xué)研究院 青海 810008;3.國網(wǎng)青海省電力公司信息通信公司 青海 810008)
在軟件領(lǐng)域漏洞是無法避免的問題,再加上近年來黑客技術(shù)水平的逐漸提升,導(dǎo)致數(shù)據(jù)與信息被破壞的情況所處可見,因此有必要深入的來對(duì)軟件安全漏洞挖掘的操作流程、運(yùn)用以及未來發(fā)展趨勢進(jìn)行分析。
軟件;漏洞;挖掘
通過對(duì)漏洞攻擊的過程進(jìn)行研究與剖析后,得知首先需要執(zhí)行的是漏洞挖掘,然后在此基礎(chǔ)上進(jìn)行漏洞分析與漏洞利用,能夠看出漏洞挖掘所處地位是最為重要的,同時(shí)對(duì)于網(wǎng)絡(luò)的攻防所體現(xiàn)的價(jià)值也是非常大的。漏洞挖掘技術(shù)就是指通過一系列的技術(shù)與工具的運(yùn)用,來對(duì)存在的、潛在的漏洞進(jìn)行挖掘。在漏洞挖掘技術(shù)實(shí)際運(yùn)用的過程中,主要運(yùn)用到的技術(shù)有基于目標(biāo)代碼漏洞挖掘技術(shù)與基于源代碼漏洞挖掘技術(shù)。具體來說,前者主要是通過對(duì)目標(biāo)碼的分析后來實(shí)現(xiàn)相應(yīng)的操作,其中涉及到的內(nèi)容有文件格式、編譯器以及指令系統(tǒng)等,因此該技術(shù)在具體操作的過程中難度是非常大的。首先需要對(duì)二進(jìn)制目標(biāo)代碼進(jìn)行分析,并通過關(guān)聯(lián)分析的方式來降低代碼的復(fù)雜性,在此基礎(chǔ)上來判斷軟件系統(tǒng)存在著漏洞;后者則是對(duì)公布的源代碼來對(duì)不安全的內(nèi)容進(jìn)行掃描,進(jìn)而對(duì)軟件所存在的漏洞進(jìn)行挖掘,具有代表性的便是靜態(tài)分析技術(shù)。
眾所周知,任何一種軟件安全漏洞挖掘的檢測方法都不是完美的,因此想要最大限度的發(fā)揮出漏洞挖掘工作的作用與價(jià)值,因此在具體操作的過程中應(yīng)該根據(jù)不同階段制定出針對(duì)性的檢測方法,在此基礎(chǔ)上來構(gòu)建出針對(duì)性的方法。總的來說,在軟件安全漏洞挖掘的過程中,其操作流程包含以下幾步:
第一,來對(duì)軟件進(jìn)行初始化操作,其核心目標(biāo)是劃分軟件類型。由于非開源軟件與開源軟件所采用的靜態(tài)分析方法是不同的,因此需要對(duì)類型進(jìn)行確定;
第二,執(zhí)行反匯編操作。在對(duì)需要分析的軟件進(jìn)行載入后,借助于反匯編操作來對(duì)二進(jìn)制代碼進(jìn)行相應(yīng)的操作,并對(duì)代碼中的數(shù)據(jù)類型與指令類型進(jìn)行劃分后,來進(jìn)行下一步的操作;
第三,過程抽象。對(duì)能夠識(shí)別的指令執(zhí)行后,便能夠?qū)Ρ硎具^程或者函數(shù)進(jìn)行劃分;
第四,掃描特征模式。在執(zhí)行此操作的過程中,需要根據(jù)非開源軟件與開源軟件分析來制定出不同的策略。針對(duì)于非開源軟件的靜態(tài)分析來說,可以運(yùn)用自下而上的方式來檢查函數(shù),在此基礎(chǔ)上便能夠得到漏洞的驗(yàn)證代碼;而針對(duì)于開源軟件的靜態(tài)分析來說,在掃描的過程中便能夠?qū)⒉糠致┒礄z查出來,同時(shí)還可借助于編譯技術(shù)來對(duì)漏洞進(jìn)行確定;
第五,來對(duì)漏洞特性的驗(yàn)證。此過程的根本目標(biāo)是來對(duì)漏洞特征庫與軟件的實(shí)際情況進(jìn)行對(duì)比,進(jìn)而能夠判斷軟件中是否存在惡意行為;
第六,將錯(cuò)誤環(huán)境注入。在具體操作過程中需要構(gòu)造錯(cuò)誤環(huán)境數(shù)據(jù),其根本目標(biāo)是來對(duì)軟件運(yùn)行過程中產(chǎn)生干擾;
第七,執(zhí)行動(dòng)態(tài)檢測。此階段重點(diǎn)的工作是分析軟件中的特定函數(shù)序列與所有函數(shù)序列,并估算軟件可能存在的漏洞,以便于進(jìn)行深層次的分析;
第八,評(píng)估檢測。根據(jù)第七步所得到的動(dòng)態(tài)檢測報(bào)告,來對(duì)系統(tǒng)可能存在的漏洞進(jìn)行提出,同時(shí)分析其他疑似漏洞;
第九,執(zhí)行下一輪動(dòng)態(tài)及靜態(tài)檢測環(huán)節(jié)。
在對(duì)當(dāng)前軟件安全漏洞挖掘技術(shù)的發(fā)展?fàn)顩r進(jìn)行研究與分析后,得知是由位置漏洞補(bǔ)救與已知漏洞檢測兩種方式所構(gòu)成的。具體來說,已知漏洞檢測方式主要被運(yùn)用在存在漏洞但是并沒有發(fā)現(xiàn)的情況,運(yùn)用到技術(shù)有安全掃描、手工分析、動(dòng)態(tài)檢測、靜態(tài)分析等。在這幾種典型的技術(shù)中,由于手工分析不但需要分析人員擁有較高的軟件漏洞知識(shí)水平,同時(shí)還需深入的掌握軟件的功能與結(jié)構(gòu),最重要的是還會(huì)消耗大量的時(shí)間與精力,因此本文主要對(duì)動(dòng)態(tài)檢測與靜態(tài)分析技術(shù)的運(yùn)用進(jìn)行分析。
在軟件安全漏洞挖掘的過程中,動(dòng)態(tài)檢測代表的是在軟件動(dòng)態(tài)運(yùn)行的過程中來檢測漏洞。為了能夠滿足動(dòng)態(tài)檢測的要求,除了需要保障軟件編譯為可執(zhí)行程序,更重要的是在對(duì)漏洞檢測的過程中需要提供針對(duì)性的輸入。總之,動(dòng)態(tài)檢測技術(shù)在對(duì)軟件運(yùn)行階段所需的運(yùn)行狀況與運(yùn)行數(shù)據(jù)檢測的過程中,需要運(yùn)用到軟件的資源監(jiān)視接口與調(diào)式接口。在動(dòng)態(tài)檢測技術(shù)領(lǐng)域中,環(huán)境錯(cuò)誤注入法與數(shù)據(jù)流分析法是較為常見的,并且所運(yùn)用的范圍是較為廣泛的的。其中,環(huán)境環(huán)境錯(cuò)誤注入法的操作原理是人為的來對(duì)錯(cuò)誤環(huán)境進(jìn)行制造,并且讓軟件運(yùn)行在此環(huán)境當(dāng)中,來對(duì)漏洞進(jìn)行檢驗(yàn)。通常情況下,程序員在編程階段會(huì)假設(shè)軟件能夠在此環(huán)境中正常的運(yùn)行,當(dāng)假設(shè)成立的情況下意味著能夠在系統(tǒng)中運(yùn)行,反之則無法運(yùn)行。需要注意的是,軟件運(yùn)行的環(huán)境并不是能夠單方面決定的,會(huì)受到眾多主體的影響,例如用戶惡意行為等等。對(duì)此,檢測人員在對(duì)軟件的健壯性進(jìn)行檢查與判斷的過程中,會(huì)根據(jù)錯(cuò)誤環(huán)境下對(duì)軟件所產(chǎn)生的影響程度進(jìn)行評(píng)判。除此之外,此方法對(duì)于軟件的容錯(cuò)性、可靠性的判斷都是非常有效的。而針對(duì)于數(shù)據(jù)流分析法來說,核心原理是跟蹤返回值、參數(shù)以及序列等,在將相關(guān)信息對(duì)比與分析后,來對(duì)軟件是否存在漏洞來進(jìn)行判斷。
顧名思義,靜態(tài)分析方法在執(zhí)行的過程中軟件無需處于運(yùn)行狀況,同時(shí)無需對(duì)相關(guān)數(shù)據(jù)與信息輸入后便能夠?qū)λ嬖诘穆┒催M(jìn)行檢測,發(fā)現(xiàn)軟件所面臨的問題。需注意的是,靜態(tài)分析方法雖然是較為簡單的,但是在實(shí)際運(yùn)用的過程中會(huì)面臨著一定的問題。此方法在運(yùn)用的過程中,首先需要構(gòu)建軟件的狀態(tài)模型,并分析軟件怎樣能夠?qū)崿F(xiàn)轉(zhuǎn)換狀態(tài)。由于軟件的狀態(tài)空間是較大的,因此無法全面的、客觀的來對(duì)所存在的狀態(tài)考慮到。對(duì)此,為了能夠?qū)崿F(xiàn)軟件漏洞分析準(zhǔn)確性的提升,那么必然會(huì)對(duì)部分分析精度產(chǎn)生影響。具體來說,當(dāng)軟件的近似假設(shè)越多的情況下,那么也更加容易誤報(bào)。同時(shí),不合理的分析工具也會(huì)導(dǎo)致軟件出現(xiàn)安全漏洞,這對(duì)于軟件來說是非常不利的。
總的來說,軟件安全漏洞挖掘技術(shù)在未來具有較為廣闊的發(fā)展空間,其發(fā)展方向主要涉及以下幾個(gè)方面:
其一,提升知識(shí)獲取自動(dòng)化程度。在具體漏洞挖掘的過程中,漏洞測試階段在程序狀態(tài)轉(zhuǎn)換、輸入數(shù)據(jù)格式方面所消耗的時(shí)間與精力是非常多的。對(duì)此,在未來發(fā)展的進(jìn)程中為了能夠?qū)崿F(xiàn)測試效率的提升,那么必然會(huì)提升知識(shí)獲取自動(dòng)化程度。
其二,測試平臺(tái)將擁有更強(qiáng)的通用性與可擴(kuò)展性。在軟件安全漏洞挖掘技術(shù)發(fā)展的進(jìn)程中,由于需要測試的軟件對(duì)象是逐漸增多的,而為了能夠?qū)崿F(xiàn)漏洞挖掘效果的提升,那么必然需要提升可擴(kuò)展性與通用性。總的來說,測試平臺(tái)所具備的特征包含:可以對(duì)多模塊間自動(dòng)化協(xié)調(diào)運(yùn)行;具備可操作跟蹤調(diào)試功能;能夠產(chǎn)生有效的畸形測試數(shù)據(jù)。
其三,多維測試用例生成技術(shù)將得到普及。現(xiàn)階段,能夠看出對(duì)軟件漏洞的測試用例技術(shù)絕大多數(shù)都是一維的,因此在安全漏洞檢測的過程中可能存在著一定的缺陷。而在未來合理的運(yùn)用多維測試用例生成技術(shù),不但會(huì)實(shí)現(xiàn)漏洞測試范圍的延伸,同時(shí)在檢測效率方面也會(huì)得到提升。
其四,測試效果評(píng)估范圍更廣。當(dāng)前的測試效果評(píng)估存在著較大的局限,在未來將會(huì)從測試數(shù)據(jù)有效性、程序狀態(tài)的覆蓋率等方面入手,以實(shí)現(xiàn)軟件安全漏洞挖掘技術(shù)的完善。
通過全文的分析,得知軟件安全漏洞挖掘技術(shù)的作用是非常大的,能夠及時(shí)的、準(zhǔn)確的來對(duì)軟件的漏洞進(jìn)行挖掘,這對(duì)于保障軟件的更好運(yùn)行是非常重要的。而在未來發(fā)展的進(jìn)程中,還應(yīng)該通過多種渠道來實(shí)現(xiàn)軟件安全漏洞挖掘技術(shù)水平的提升,以保障軟件中數(shù)據(jù)與信息的安全。
[1]陳震.網(wǎng)絡(luò)計(jì)算機(jī)安全隱患及漏洞挖掘技術(shù)分析[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2015.
[2]楊莎瀅.論軟件安全漏洞挖掘技術(shù)[J].信息安全與技術(shù),2013.
[3]陳穎聰,陳廣清,陳智明,萬能.面向智能電網(wǎng)SDN的二進(jìn)制代碼分析漏洞掃描方法研究[J].信息網(wǎng)絡(luò)安全,2016.