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