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