摘 要:安全性測試能夠發(fā)現(xiàn)嵌入式軟件中包含的漏洞及運行安全風險,受到了更多的關(guān)注?;诖?,本文分析了嵌入式軟件安全性分析的重要性,著重闡述了軟件的交叉式測試、結(jié)構(gòu)化測試、安全性測試的環(huán)境制定、軟件功能性安全測試以及漏洞性安全測試這些軟件安全性測試環(huán)節(jié)。
關(guān)鍵詞:嵌入式軟件;安全性分析;測試方法
引言:嵌入式軟件主要包含嵌入式的微小處理器及外部設備等,對其進行安全性測試是計算機軟件安全性分析的重要環(huán)節(jié),需要相關(guān)人員重點關(guān)注。在嵌入式軟件的安全性測試中,不僅要完成軟件功能性安全需求的驗證,還要對嵌入式軟件中的漏洞展開挖掘與安全管理,確保嵌入式軟件安全測試的全面性。安全性測試能夠發(fā)現(xiàn)嵌入式軟件中包含的漏洞及運行安全風險,對避免安全性問題的發(fā)生有重要意義,從而受到了更多的關(guān)注。
一、嵌入式軟件安全性分析的重要性
當軟件的運行不具備引發(fā)系統(tǒng)事故的能力時,就能夠判定該軟件具有安全性。具體來說,作為系統(tǒng)的重要組成部分,具有安全性的軟件不會對人們的財產(chǎn)安全以及環(huán)境產(chǎn)生威脅。就現(xiàn)階段嵌入式軟件的應用與發(fā)展情況來看,其已經(jīng)被廣泛應用于多個領域,包括航空航天領域、汽車服務行業(yè)等等,為人們的生產(chǎn)與生活提供了更為便利的手段,但是,由于其自身具有一定的復雜性,發(fā)生問題的概率相對較高,會對人們的財產(chǎn)甚至是生命安全都造成一定的威脅。例如,在2010年,日本豐田公司由于軟件問題而發(fā)出了相關(guān)產(chǎn)品的召回決策,導致該公司損失了約20億美元,不僅使公司產(chǎn)生了較大的經(jīng)濟損失,還降低了公司的社會效益。由此能夠看出,對嵌入式軟件進行安全性分析有著極為重要的意義,需要重點關(guān)注。
二、嵌入式軟件的安全性測試
(一)測試前的準備工作
在對嵌入式軟件展開安全性測試時,需要測試前期進行一系列的準備工作。在進行安全性分析時,相關(guān)人員需要注意的是,由于C/C++類型的機器代碼普遍由處理器直接執(zhí)行,所以當使用托管代碼完成程序的編寫時,需要將關(guān)注的重點放在被復用的本機代碼方面。這主要是由于本機代碼通常是在虛擬機之外完成的,有著最高的風險。
同時,要對測試中需要使用的平臺系統(tǒng)進行確定。例如,當對iReader嵌入式軟件進行分析時,由于其屬于多種文件格式的閱讀器,所以可以應用AnddroidShell對需要的文件完成導入,并使用FileFuzz實現(xiàn)安全性測試。
(二)軟件的交叉式測試
在對嵌入式軟件展開交叉式測試時,首先需要相關(guān)人員在宿主機的環(huán)境下完成測試比例的編寫,并將生成的測試腳本轉(zhuǎn)換為測試命令[1]。在這樣的條件下,測試腳本能夠被下載到測試目標機中,并保持運行狀況良好。
第二,利用測試代理,能夠確保測試代碼在測試機中順利執(zhí)行。一般來說,由于目標機的資源較少,所以測試工具大多運行于被測試機器中。而在測試執(zhí)行后采集到的數(shù)據(jù)也不會在目標機中完成分析。此時,為了確保測試結(jié)果能夠得到有效分析,必須要在目標機端口測試代理商完成相關(guān)測試數(shù)據(jù)的傳遞,將其傳輸至宿主機中完成數(shù)據(jù)分析。當測試代理接收到測試命令后,就會依照指令要求完成嵌入式軟件的多項測試,軟件生成的測試數(shù)據(jù)經(jīng)由測試代理發(fā)送到宿主機中,為后續(xù)分析提供完整、準確的數(shù)據(jù)支持。
(三)結(jié)構(gòu)化測試
為了確保嵌入式軟件測試的有效性,筆者使用了結(jié)構(gòu)化測試方法。一般來說,嵌入式軟件結(jié)構(gòu)化測試可以分成兩個部分:第一,應用基礎設施、生命周期、基本技術(shù)或組織等元素構(gòu)成嵌入式軟件測試的任意項目基礎。第二,利用特殊的方式,完成特定嵌入式軟件或系統(tǒng)的特殊測試。通過上述兩個部分的結(jié)合,生成了更適合特定嵌入式軟件的測試方法,實現(xiàn)了基礎項目以及特殊功能的共同測試,確保的測試結(jié)果的全面性。
(四)安全性測試的環(huán)境制定
嵌入式軟件常用的安全性測試方式主要有兩種,包括軟件單元測試和軟件集成測試,完成了軟件開發(fā)生命周期測試[2]。在軟件的單元測試中,主要利用了嵌入式軟件的基本單位檢測,確保了輸入的有效性。并結(jié)合軟件的內(nèi)部邏輯實現(xiàn)了縱深防御,最大程度的避免了不良操作以及惡意行為對測試造成影響。在軟件集成測試中,主要使用了缺陷認證的方式完成。具體來說,就是將測試放置于實際目標機的環(huán)境中展開,保障了漏洞入侵點優(yōu)化的效果。
(五)軟件功能性安全測試
在軟件安全需求分析的基礎上,能夠?qū)崿F(xiàn)軟件的功能性安全測試。在軟件的設計階段,為了更好的保障軟件自身的安全,一般會結(jié)合實際的安全需求,完成系統(tǒng)安全防護方法的增加與設計,包括數(shù)據(jù)加密、傳輸加密、權(quán)限管理、數(shù)據(jù)備份與恢復等。還要對測試用例展開設計,結(jié)合嵌入式軟件其他功能測試相似的方法實現(xiàn)驗證。其中,黑盒測試法是最為常用的一種驗證方式。
(六)軟件的漏洞性安全測試
在嵌入式軟件的漏洞性安全測試中,需要相關(guān)人員站在攻擊者的角度完成軟件安全測試,盡可能更多的找出軟件的漏洞。嵌入式軟件的漏洞性安全測試流程如下:選擇安全標準與安全規(guī)則;分析環(huán)境平臺的安全性;分析程序?qū)崿F(xiàn)語言的安全性,要對被測試軟件進行威脅建模,同時利用FileFuzz技術(shù)挖掘未知漏洞;搭建測試平臺,利用靜態(tài)分析技術(shù)完成已知漏洞的挖掘,同時利用FileFuzz技術(shù)再次挖掘未知漏洞;驗證嵌入式軟件漏洞分級及可行性驗證。
總結(jié):綜上所述,對嵌入式軟件展開安全性測試有著極為重要的意義,需要相關(guān)人員重點關(guān)注。通過測試前的準備、軟件的交叉式測試、結(jié)構(gòu)化測試、安全性測試的環(huán)境制定、軟件功能性安全測試以及漏洞性安全測試,驗證了嵌入式軟件的安全性,同時也提升了軟件的運行安全。
參考文獻:
[1]郭福洲.面向安全性分析的嵌入式軟件測試方法研究[J].電子世界,2019(01):48+50.
[2]齊迪.面向安全性分析的嵌入式軟件測試方法研究[J].信息與電腦(理論版),2018(07):92-93.
作者簡介:
吳育宏(1985-)男,漢,廣東省廣州市人,現(xiàn)供職于珠海格力電器股份有限公司,初級工程師,本科學歷,研究方向:集成電路,嵌入式開發(fā).