999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

面向安全性分析的嵌入式軟件測試方法研究

2016-04-12 00:00:00林永峰陳亮
現代電子技術 2016年13期

摘 要: 在軟件開發的整個周期內,軟件測試對項目的正常運行起著關鍵作用,計算機軟件安全性測試是軟件測試的一部分,但又有其特別的測試技術和測試方法。嵌入式軟件的安全性測試可以分為功能性安全測試和漏洞性安全測試,功能性安全測試通常與普通的功能性測試一起進行,其測試技術和測試方法也基本相同。在此重點挖掘一些嵌入式軟件安全測試的共性部分,主要研究安全測試在軟件開發周期中的各種方法策略和技術。并借鑒一般應用軟件安全測試的管理規范,結合嵌入式軟件的具體特點分析改進,試圖形成針對嵌入式軟件較為通用的、工程化的安全測試解決方案。

關鍵詞: 嵌入式軟件測試; 漏洞挖掘; 安全性測試; 測試策略

中圖分類號: TN919?34; TM417 文獻標識碼: A 文章編號: 1004?373X(2016)13?0080?04

Abstract: Software testing in the whole period of software development plays an important role to ensure the normal operation of the project. The computer software security testing is a part of software testing, but has special testing technology and tes?ting method. The security testing of the embedded software is composed of functional security testing and vulnerability security testing. The functional security testing is often carried on with normal functional testing, and its testing techniques and testing methods are basic the same. The common part of the embedded software security testing is mined emphatically. Various strategies and techniques of security testing in software development period are mainly studied. Referring to the management practices of the general application software security testing, and in combination with the specific characteristics of the embedded software, the universal and engineering security testing solution for the embedded software attempts to form through the analysis and improvement.

Keywords: embedded software testing; vulnerability mining; security testing; test strategy

0 引 言

計算機軟件安全性測試是嵌入式軟件測試的重要組成部分,它的作用是至關重要的。嵌入式軟件安全性測試不僅要對安全需求中的功能性安全需求進行驗證,還要從嵌入式軟件的設計和實現代碼中挖掘未知的漏洞,并對這些未知的安全缺陷進行管理。通過嵌入式軟件安全測試,可以挖掘程序自身存在的安全隱患,并能夠檢查在遭遇攻擊時的防范能力,根據不同的安全需求其安全測試策略會相應的不同[1]。通常情景下,安全性測試都是基于風險分析,即首先需要在測試前進行嵌入式軟件的風險分析,然后再通過具體的安全測試進行驗證[2]。

通過有效的嵌入式軟件安全測試可以發現大部分的安全缺陷,在此基礎上對安全漏洞進行修補可以避免災難性的安全性問題的發生,這使得人們對安全測試的重視程度越來越高。軟件安全測試優于其他軟件安全過程(諸如安全編碼或設計審計等)之處在于,計算機安全測試可以展示出真實的攻擊狀態,因此展示出客觀的、可量化的結果,得出真實的漏洞利用情況[3]。在軟件開發周期后期對軟件進行改動以消除漏洞,不僅存在很大的安全風險,而且伴隨著高昂的開銷。對漏洞被利用帶來的損失進行評估,可以幫助決定是立刻修復一個安全問題,還是在下一輪的軟件開發中進行修復[4]。

1 嵌入式軟件測試技術與策略的研究

1.1 嵌入式軟件交叉測試平臺

嵌入式軟件交叉測試的步驟:首先在宿主機環境中進行測試用例的編寫,然后將生成的測試腳本編譯成測試命令后下載到被測目標機上,接著通過測試代理使這些測試命令在被測目標機上得以執行[5]。因為目標機具有資源匱乏的特點,測試工具一般運行在宿主機上,而測試執行后所采集的測試數據也不會在目標機上進行分析,這就需要目標機端的測試代理把測試數據回傳到宿主機端,再使用其中的測試結果分析工具進行測試數據的分析[6]。

在接收到測試命令后,測試代理將按照測試命令驅動被測嵌入式應用軟件進行相應的測試,被測應用軟件將生成的測試數據發送到測試代理中,再由其發送到宿主機方[7]。嵌入式軟件測試基本結構如圖2所示。

1.2 軟件測試策略

軟件測試通過結構化的組織方法,能夠以有效而合理的測試步驟完成測試要求。嵌入式軟件的結構化測試方法,即TEmb方法由兩部分組成:一是在任何嵌入式軟件測試項目中的測試方法的基礎(通用元素),通用元素主要包括生命周期、基礎設施、基本技術和組織;二是一組相關的特定方法,特定方法主要針對特定的嵌入式軟件系統和特定的測試方式而采取的特定方法策略。通用元素和特定方法的有機結合,能夠產生適合特定的嵌入式系統軟件的測試方法和測試方案[8]。

2 安全測試的組織方式和環境搭建

嵌入式軟件的安全測試在軟件的開發生命周期的測試階段的子過程一般采取下面的測試策略:軟件的單元測試通過對軟件的基本單位(單個類)的檢測以保證輸入的有效性,利用軟件內部邏輯的縱深防御策略,防止惡意行為和不安全操作對軟件安全造成危害;在集成測試的過程中,軟件的整體安全屬性變化的可見和可測試,對平臺環境和應用軟件的風險分析可作為集成測試的指南。集成測試階段通常進行缺陷驗證;系統測試和驗收測試需要在真實的或模擬的目標機環境中進行,然后根據漏洞的入侵點,將發現的可疑漏洞納入入侵點矩陣后,經過典型的滲透活動從而對識別的安全缺陷進行驗證。

在嵌入式軟件進行漏洞性安全測試時,由于其測試技術和測試手段的復雜性等原因,采取在宿主機上進行對目標機環境的仿真和模擬。為了更好地在Android系統平臺上進行安全測試,將在PC機上進行Android模擬器的安裝。由于Android模擬器需要運行在Java環境中,首先需要進行Java環境的安裝,然后進行AndroidSDK包的解壓和環境變量的配置。

在安裝配置好Android模擬器的基礎上,有兩種方式進行Android模擬器的啟動:一是在AndroidSDK的解壓包中直接雙擊SDKSetup.exe,然后將Android平臺的應用軟件apk通過CMD命令窗口導入到Android模擬器中;二是在Eclipse等集成開發環境下,導入要測試的應用軟件對應的工程IReader,直接在Eclipse的導航界面上進行Android模擬器的啟動,在Android手機系統的啟動界面上,看到將要測試的IReader閱讀器軟件,如圖3所示。

在cmd窗口由AndroidShell命令行輸入想要閱讀的電子書,該IReader閱讀器支持常見的格式,比如txt,html,PDF等格式。

3 基于分類的應用軟件安全測試

3.1 軟件的功能性安全測試

系統功能性安全測試是在軟件安全需求的分析與驗證的基礎上進行的。在軟件設計過程中,設計者為了保障嵌入式軟件自身安全,往往會根據安全需求增加系統安全防護方法,例如權限管理、傳輸加密、數據加密、數據備份和恢復等模塊。同時,進行測試用例的設計,然后采用與嵌入式軟件其他功能測試相似的方法進行驗證,黑盒測試方法是用到最多的驗證方法。

3.2 嵌入式軟件的漏洞性安全測試

嵌入式軟件的漏洞性安全測試要求測試人員以攻擊者的思維方式進行嵌入式軟件的安全測試。因此,找到嵌入式軟件盡可能多的漏洞就成為漏洞性安全測試的首要目標,其測試流程如圖4所示。

軟件漏洞的起因是多種多樣的,因此解決漏洞所需要的工作量也是千差萬別的。使用DREAR模型是對漏洞相關風險進行分級的一種有效技術。在對漏洞的修補進行優先級排序的過程中,漏洞的可利用性是最重要的參考因素之一。判定漏洞的可利用性通常包含對以下五個因素的權衡:

攻擊者企圖探測并利用這個漏洞所需的訪問權限和定位技術;成功利用此漏洞能獲得的訪問級別或權限;探測并利用此漏洞的時間和工作量因素;探測和利用的潛在可靠性;探測和利用的可靠性,探測和利用嘗試行為的可重復性。

在對漏洞進行分級的基礎上,按照漏洞的優先級設計入侵矩陣和對應的設計用例,繼而對漏洞進行故障注入,從而驗證漏洞攻擊給軟件帶來的危害。

4 安全測試的執行與分析

4.1 安全測試前的安全性分析

(1) 程序實現語言的安全性分析

除了Android平臺的安全機制,通過對將要測試的應用軟件IReader進行分析研究,該軟件復用了大量的由C++編寫的代碼。C,C++之類的本機代碼都是被編譯為機器碼并直接由處理器來執行的。當測試一個用托管代碼編寫的程序時,注意力應該集中在其中被復用的本機代碼上,由于本機代碼是在虛擬機之外執行的,所以被復用的本機代碼永遠是托管代碼風險最高的領域。

(2) 應用軟件的威脅建模與風險分析

嵌入式應用軟件IReader作為多種文件格式的閱讀器,可以通過AndroidShell導入需要的文件。利用FileFuzz工具可以很好的進行此安全測試。

4.2 安全測試的執行與分析

軟件漏洞作為軟件系統中存在缺陷和不足的地方,因此發現軟件的漏洞是攻擊者進行入侵的首要工作。根據以上對應用軟件和其操作系統的了解,應該重點對嵌入式應用軟件中被復用的C++代碼進行漏洞挖掘;另外,還將對主體的Java代碼部分進行漏洞查詢。在漏洞挖掘過程中,靜態分析方法是目前社會最實用、最有效的安全漏洞檢測方法,盡管仍存在可能產生漏報(1negatives)、誤報(1positives)的情況,特別是在擁有程序源代碼的情況下。因此,這部分的漏洞挖掘工作主要通過利用現有的靜態分析工具進行。使用cppcheck對復用的C++代碼進行靜態掃描,并沒有查詢出代碼的安全缺陷,只是存在一些不規范的編程方式。

將工程導入到FindBugs靜態分析工具中,如圖5所示。FindBugs不僅能夠按照已有的安全規則進行漏洞分類挖掘和準確定位漏洞位置,還能夠對漏洞遭遇可能的攻擊進行分析,這對漏洞的管理和修補是極其有利的。就軟件安全的嚴重程度,首先對Maliciouscodevulnerability(惡意代碼漏洞)進行分析和整理,如表1所示。

將工程導入到FindBugs靜態分析工具中,如圖6所示。由圖6可以看出,程序源碼中出現的Mutable static field類型的漏洞被劃分為3大類:

(1) Field沒有被定義為final類型,因而不能受到保護而免遭惡意代碼的入侵。一個不穩定的靜態域是可以被惡意代碼或另外的包不經意改變的。但是,這種域的使用方法是不容易解決的。

(2) Field作為一個不穩定的數組。一個final靜態域引用一個數組時,可以被惡意代碼或從另一包訪問。此代碼可以自由修改數組的內容。

(3) Field應該受到包的保護。一個不穩定的靜態域可以被惡意代碼或意外改變。該域應該受到包的保護而避免這種缺陷。

所有掃描出的漏洞可以在導出的XML文件中得到查詢,如圖7所示。

從導出的XML文件中,可以清晰地了解漏洞缺陷的類型和安全優先級以及漏洞的準確定位。根據安全漏洞的優先級順序和詳細介紹,可以建立入侵矩陣,以便進行安全漏洞的驗證工作。

5 結 論

隨著嵌入式系統在國民經濟各行業的廣泛使用,嵌入式應用軟件開發成為計算機軟件領域的一個熱點。人們對智能化的需求使得嵌入式軟件的開發日益復雜,并且嵌入式軟件的應用領域對安全性要求越來越高。為了提高嵌入式軟件的安全性,人們提出安全編程的概念期望從根本上改變軟件質量,但由于開發成本及開發效率等原因使得其效果十分有限。而嵌入式軟件的安全測試由于其成本較低,測試方法靈活,測試工具眾多等特點,使其成為了一個很有價值的研究課題。

嵌入式軟件安全測試的重點是由軟件中存在的安全漏洞進行挖掘和管理的過程。本文首先對嵌入式軟件的安全性進行闡述,在此基礎上對軟件安全漏洞是如何產生的以及主要的防御手段進行了總結。通過對各種嵌入式安全測試技術的研究,總結其優缺點和實用性。在對嵌入式軟件的安全性和安全測試技術的共性進行分析研究的基礎上,本文結合實際的Android平臺的應用軟件IReader,提出針對嵌入式軟件安全測試的測試方案。該方案對嵌入式軟件測試的組織方式,測試環境的搭建和具體的測試流程進行研究,并結合實例進行了驗證說明。

參考文獻

[1] 楊晨娜.基于單片機的井徑測量系統軟件設計[J].現代電子技術,2015,38(18):53?56.

[2] 呂金河.嵌入式軟件測試[J].軟件導刊,2010(9):11?12.

[3] 李偉,程朝輝.嵌入式軟件測試策略研究[J].北京化工大學學報,2007(z1):23?24.

[4] 王妍,徐葉茂.嵌入式計算機系統中的故障注入技術[J].艦船電子工程,2005(5):45?46.

[5] 王軼辰,劉斌,鐘德明.基于虛擬機的嵌入式軟件測試環境[J].計算機應用,2005(12):55?56.

[6] 劉利枚,汪文勇,唐科.嵌入式軟件測試方法與技術[J].計算機與現代化,2007(4):66?67.

[7] 杜延,劉從越.嵌入式實時系統軟件測試實踐[J].微計算機信息,2006,22(26):31?33.

[8] LABROSSE J J.嵌入式實時操作系統[M].邵貝貝,譯.北京:北京航空航天大學出版社,2003:66?68.

主站蜘蛛池模板: 欧美不卡在线视频| 四虎影视8848永久精品| 无码一区二区波多野结衣播放搜索| 精品一區二區久久久久久久網站| 2022精品国偷自产免费观看| 久久这里只有精品23| 巨熟乳波霸若妻中文观看免费| 原味小视频在线www国产| 亚洲国产成人综合精品2020| 国产欧美日韩专区发布| 人妻无码一区二区视频| 久久综合色88| 亚洲性日韩精品一区二区| 亚洲精品午夜天堂网页| 日韩av手机在线| 伊人色在线视频| 狠狠做深爱婷婷久久一区| a色毛片免费视频| 亚洲美女一区| 九色国产在线| 日韩精品亚洲一区中文字幕| 亚洲人精品亚洲人成在线| 国产男女免费完整版视频| 麻豆精品在线视频| 白丝美女办公室高潮喷水视频| 欧美视频二区| 啪啪永久免费av| 青青草原偷拍视频| 国产精品一线天| 亚洲侵犯无码网址在线观看| 91久久夜色精品国产网站| 亚洲三级网站| 久久国产拍爱| 性欧美在线| 五月天在线网站| 亚洲人成网站日本片| 97成人在线视频| 亚洲国产精品无码AV| 色欲色欲久久综合网| 日本不卡免费高清视频| 欧美精品xx| 成人精品在线观看| 欧美a√在线| 国产欧美高清| 曰韩人妻一区二区三区| 亚洲最大综合网| 国产91特黄特色A级毛片| 国产无遮挡猛进猛出免费软件| 亚洲色精品国产一区二区三区| 九九免费观看全部免费视频| 日韩欧美中文在线| 日韩无码白| 人妻丝袜无码视频| 久久亚洲AⅤ无码精品午夜麻豆| 麻豆精品在线播放| 91小视频在线| 国产国产人在线成免费视频狼人色| 亚洲中文字幕无码爆乳| 香蕉久人久人青草青草| 亚洲欧美另类视频| 精品福利一区二区免费视频| 97视频免费在线观看| 欧美性猛交一区二区三区| 国产日本视频91| 国产精品久久自在自2021| 亚洲无线视频| 久久人人97超碰人人澡爱香蕉| 亚洲系列无码专区偷窥无码| 午夜视频在线观看免费网站| 国产成人综合久久精品尤物| 亚洲av成人无码网站在线观看| 草草线在成年免费视频2| 国产丝袜啪啪| 亚洲视频一区在线| 国产亚洲视频中文字幕视频 | 老司国产精品视频| 国产高清色视频免费看的网址| 国产精品免费电影| 国产草草影院18成年视频| 国产经典在线观看一区| 色妺妺在线视频喷水| 中文字幕免费视频|