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

基于Fuzzing技術(shù)的可信軟件棧穿透性測試*

2016-04-20 00:29:11李金亮高文靜

李金亮 高文靜

(91404部隊(duì)93分隊(duì) 秦皇島 066001)

?

基于Fuzzing技術(shù)的可信軟件棧穿透性測試*

李金亮高文靜

(91404部隊(duì)93分隊(duì)秦皇島066001)

摘要利用Fuzzing技術(shù)對可信軟件棧(TSS)進(jìn)行軟件代碼脆弱性以及安全漏洞測試,通過故障注入、畸形數(shù)據(jù)構(gòu)造以及異常行為捕獲,發(fā)現(xiàn)了TSS軟件代碼中的安全缺陷,根據(jù)TSS的系統(tǒng)結(jié)構(gòu)與具體機(jī)制,設(shè)計(jì)并實(shí)現(xiàn)了相關(guān)測試原型系統(tǒng),對TSS軟件產(chǎn)品進(jìn)行了測試,實(shí)驗(yàn)結(jié)果表明:TSS軟件產(chǎn)品并不完全符合可信規(guī)范的要求,TSS中的若干API功能函數(shù)中存在可被利用的安全漏洞。

關(guān)鍵詞Fuzzing技術(shù); 可信軟件棧; 穿透性測試

Penetration Testing for TCG Software Stack Based on Fuzzing Technology

LI JinliangGAO Wenjing

(Unit 93, No. 91404 Troops of PLA, Qinhuangdao066001)

AbstractFuzzing testing technology is utilized to find security faults and codes vulnerability for TCG software stack(TSS). By using fault injection, abnormal data structure and capture abnormal behavior, security flaws in TSS are found in this paper. According to TSS’ structure and specification, the relevant test prototype system is designed and implemented to test some kinds of TSS products. Experiment results show that TSS products do not fully comply with the requirements of specification, there are some vulnerability in API functions of TSS.

Key WordsFuzzing technology, TCG software stack, penetration testing

Class NumberTP309

1引言

可信計(jì)算已經(jīng)成為國際信息安全領(lǐng)域的新熱潮。可信軟件棧(TCG Software Stack,TSS)是可信計(jì)算平臺(tái)的重要組成部分,可信計(jì)算產(chǎn)品應(yīng)符合可信計(jì)算規(guī)范的要求。從安全測評(píng)的角度出發(fā),應(yīng)通過標(biāo)準(zhǔn)符合性測試、安全穿透性測試和漏洞掃描測試等測試手段對TSS進(jìn)行安全測評(píng),以檢測TSS系統(tǒng)中是否存在已知、公開的安全漏洞[1]。

在安全穿透性測試方面,除文獻(xiàn)[2]發(fā)現(xiàn)了部分安全缺陷外,文獻(xiàn)[3]將白盒源代碼審核和Fuzzing技術(shù)相結(jié)合,發(fā)現(xiàn)OpenTC項(xiàng)目中的TSS存在若干程序Bug以及可能造成遠(yuǎn)程溢出的安全漏洞。

本文以國內(nèi)外TSS為穿透性測試對象,利用Fuzzing技術(shù)檢查產(chǎn)品代碼中是否存在安全漏洞,從而發(fā)現(xiàn)軟件代碼中的安全缺陷。通過對相關(guān)TSS產(chǎn)品的實(shí)驗(yàn)測評(píng),給出TSS安全性評(píng)估的量化測試結(jié)果,并且發(fā)現(xiàn)API(Application Programming Interface)接口函數(shù)中存在的若干安全漏洞。

2技術(shù)背景

目前國內(nèi)外較常見以及成熟的穿透性測試技術(shù),主要包括靜態(tài)分析、補(bǔ)丁分析、Fuzzing技術(shù)[4]與動(dòng)態(tài)調(diào)試技術(shù)。這四種技術(shù)分別從靜態(tài)和動(dòng)態(tài)的角度,對被測軟件進(jìn)行針對性的測試與分析,從而有效地發(fā)現(xiàn)軟件中存在的各種安全漏洞。

Fuzzing技術(shù)是一種自動(dòng)化的軟件黑盒測試技術(shù),它使用大量半有效的隨機(jī)數(shù)據(jù)作為軟件程序的輸入,通過程序的崩潰和異常等特征,從而尋找其中的安全漏洞[5]。對于結(jié)構(gòu)封閉的、不開放源代碼的安全硬件和軟件系統(tǒng)而言,Fuzzing的黑盒測試技術(shù)具有更實(shí)際的應(yīng)用價(jià)值。即使是普遍認(rèn)為的高可信的設(shè)備(如ATM取款機(jī)),也可能由于邊界條件的違背,健壯性受到破壞并被成功利用。Fuzzing技術(shù)最初是用于測試Unix操作系統(tǒng)及其上應(yīng)用軟件的穩(wěn)定性[6];在后繼的研究中,Fuzzing技術(shù)用于測試X Windows、Windows NT和Mac OS X等系統(tǒng)上應(yīng)用軟件中的安全漏洞[7~8]。目前,Fuzzing技術(shù)已經(jīng)成為工業(yè)界最為常用的安全漏洞檢測技術(shù),主要利用該技術(shù)測試各種文檔處理軟件以及網(wǎng)絡(luò)協(xié)議軟件。安全測試人員也將其作為安全產(chǎn)品發(fā)布前的最后一道測試環(huán)節(jié)。

Fuzzing技術(shù)研究的兩個(gè)關(guān)鍵問題,一是脆弱性測試點(diǎn)以及觀察點(diǎn)的選取,如何在對測試對象深入分析的基礎(chǔ)上,選取薄弱環(huán)節(jié)利用構(gòu)造的測試數(shù)據(jù),更有效地引發(fā)程序中的安全漏洞;二是半有效畸形數(shù)據(jù)的構(gòu)造,如何在原有正常數(shù)據(jù)的基礎(chǔ)上,結(jié)合漏洞類型相關(guān)的測試邏輯進(jìn)行變異,變異后的畸形數(shù)據(jù)既能通過待測程序的輸入檢查,又能引發(fā)相應(yīng)類型的安全漏洞。此外,已有研究人員對多種漏洞挖掘技術(shù)的結(jié)合進(jìn)行了有益的探索,文獻(xiàn)[9]提出將模型測試和Fuzzing測試相結(jié)合,文獻(xiàn)[10]提出了演化灰盒Fuzzing的思路。

3基于Fuzzing技術(shù)的TSS穿透性測試

3.1故障注入點(diǎn)選取

TSS是一個(gè)多層封裝的軟件系統(tǒng),其中TSP(Trusted Service Provider)是以動(dòng)態(tài)鏈接庫的形式,向用戶應(yīng)用進(jìn)程提供API調(diào)用函數(shù)接口,同時(shí)TSP層將用戶的API調(diào)用以SOAP(Simple Object Access Protocol)數(shù)據(jù)包的形式,通過TCP/IP協(xié)議發(fā)送給下面的TCS(Trusted Core Service)層和TDDL(Trusted Device Driver Layer)層。TCS層和TDDL層是以一個(gè)唯一的獨(dú)立守護(hù)進(jìn)程的形式執(zhí)行,可以接收來自于本地或是遠(yuǎn)程主機(jī)的TSP層發(fā)送的數(shù)據(jù),經(jīng)過內(nèi)部處理后,再由TPM(Trusted Platform Module)驅(qū)動(dòng)下傳給TPM處理,最終處理后的結(jié)果同樣以SOAP數(shù)據(jù)包的形式返回給TSP層,最終由TSP層將結(jié)果返回給用戶進(jìn)程。

為攔截正常的數(shù)據(jù)處理流程,并且分別針對TSP層和TCS層的API函數(shù)進(jìn)行測試,穿透性測試最終選擇兩個(gè)故障注入的最佳測試點(diǎn),一個(gè)位于用戶層,攔截用戶進(jìn)程對TSP中API函數(shù)的調(diào)用請求,使用程序代碼插樁技術(shù);另一個(gè)位于網(wǎng)絡(luò)層,攔截TSP層到TCS層的SOAP數(shù)據(jù)包,使用Socket數(shù)據(jù)包過濾技術(shù)。TSS的整體數(shù)據(jù)處理流程與故障注入點(diǎn)的選取如圖1所示。

圖1 TSS數(shù)據(jù)處理流程與故障注入點(diǎn)

數(shù)據(jù)攔截以及故障注入的具體流程如下:

1) 在這兩個(gè)故障注入點(diǎn)完成數(shù)據(jù)的實(shí)時(shí)攔截。 2) 將數(shù)據(jù)轉(zhuǎn)發(fā)給特定的Fuzzing測試程序。 3) 由該測試程序完成數(shù)據(jù)的解析,并且根據(jù)漏洞特征測試算法對其中關(guān)鍵的數(shù)據(jù)段進(jìn)行畸形數(shù)據(jù)的變異,最后仍按正常數(shù)據(jù)的語法格式重新封裝。 4) 封裝后的數(shù)據(jù)回傳至攔截點(diǎn),并沿原流程繼續(xù)處理。

3.2畸形測試數(shù)據(jù)構(gòu)造

在Fuzzing測試中,畸形測試數(shù)據(jù)的構(gòu)造也是一個(gè)重要內(nèi)容。變異后數(shù)據(jù)既要求通過待測函數(shù)的輸入檢查,從而進(jìn)入函數(shù)代碼內(nèi)部檢查脆弱點(diǎn);又要求與利用特定漏洞特征測試算法,盡可能有效地觸發(fā)潛在的安全漏洞。

為簡化討論,算法假定攔截的數(shù)據(jù)中只包含一個(gè)數(shù)據(jù)緩沖區(qū)變量,而實(shí)際上算法也可同時(shí)處理多個(gè)數(shù)據(jù)緩沖區(qū)變量,從而提高測試的效率。但還有一種較為復(fù)雜的情況是,多個(gè)緩沖區(qū)變量之間可能存在依賴關(guān)系。例如,當(dāng)緩沖區(qū)A不包含特定值時(shí),緩沖區(qū)B的溢出漏洞就不會(huì)被發(fā)現(xiàn)。例如,在對某類網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行Fuzzing測試實(shí)現(xiàn)時(shí),發(fā)現(xiàn)了這樣一個(gè)現(xiàn)象,當(dāng)數(shù)據(jù)包的屬性字段并非“message/external-body”時(shí),數(shù)據(jù)包的內(nèi)容字段就不會(huì)被解析處理,從而也無法發(fā)現(xiàn)相應(yīng)接收函數(shù)的緩沖區(qū)溢出漏洞。

因此,數(shù)據(jù)構(gòu)造模塊在對測試數(shù)據(jù)進(jìn)行畸形構(gòu)造前,需要首先利用收集到的通信數(shù)據(jù)的結(jié)構(gòu)描述信息,對攔截到的數(shù)據(jù)進(jìn)行正常解析。一方面識(shí)別需要構(gòu)造的字段或變量,并且明確字段或變量間的依賴關(guān)系;另一方面需要維持其它字段或變量的穩(wěn)定,利用這些“不變量”保證變異后的數(shù)據(jù)可以通過待測函數(shù)的語法檢查。在根據(jù)相應(yīng)的漏洞測試算法對數(shù)據(jù)進(jìn)行變異后,再根據(jù)結(jié)構(gòu)描述信息進(jìn)行重新的組合。數(shù)據(jù)構(gòu)造模塊的處理流程如圖2所示。

圖2 畸形數(shù)據(jù)構(gòu)造流程

圖3 API函數(shù)輸入數(shù)據(jù)結(jié)構(gòu)描述

在測試的具體實(shí)施中,各待測API函數(shù)的輸入數(shù)據(jù)結(jié)構(gòu)描述信息從規(guī)范的定義中提取,采用XML(eXtensible Markup Language)格式記錄其中的變量聲明、類型定義以及需要進(jìn)行構(gòu)造的變量或字段。采用這種方法可以方便地對測試數(shù)據(jù)進(jìn)行解析和重組,圖3為TSS中的其中某個(gè)API函數(shù)的輸入數(shù)據(jù)結(jié)構(gòu)的描述信息。

3.3異常捕獲與分析

在明確了故障注入點(diǎn)和數(shù)據(jù)構(gòu)造方法后,就可著手針對TSS進(jìn)行穿透性測試實(shí)驗(yàn)與分析。測試的根本目的是發(fā)現(xiàn)軟件中存在的安全漏洞,而安全漏洞外在最明顯的特征就是測試對象的行為異常,在此簡化理解為程序的崩潰或報(bào)錯(cuò)。錯(cuò)誤要求是可重現(xiàn)的,從而便于對漏洞的分析以及調(diào)試。雖然針對TSP層和TCS層函數(shù)分別進(jìn)行測試,但是由于兩層函數(shù)在數(shù)據(jù)處理上具有關(guān)聯(lián)性,因?yàn)樵跍y試TSP層函數(shù)時(shí),也需要觀察TCS層的運(yùn)行狀況。TSP層和TCS層的運(yùn)行狀況,都是通過管道通信反饋給Fuzzing程序。

TSP層函數(shù)的Fuzzing測試流程如圖4所示,故障注入通過HOOK的方式插入到正常處理流程中。在圖中,失敗的測試用例可能對應(yīng)某種潛在安全漏洞,需要進(jìn)一步分析與調(diào)試。

圖4 TSP層Fuzzing測試流程

TCS層函數(shù)的Fuzzing測試流程與TSP層的類似,故障注入通過Socket包過濾的方式插入到正常處理流程中。實(shí)驗(yàn)中采用了Netfilter機(jī)制,因其作為系統(tǒng)自帶的內(nèi)核模塊,具有較好的穩(wěn)定性和可擴(kuò)展性。

4實(shí)驗(yàn)結(jié)果與分析

基于以上原理與技術(shù),本文實(shí)現(xiàn)了穿透性測試原型系統(tǒng),并針對某TSS中的TSP層函數(shù)和TCS層函數(shù)進(jìn)行測試實(shí)驗(yàn)。在測試過程中,共生成14397組測試用例,其中發(fā)現(xiàn)錯(cuò)誤的測試用例共計(jì)63組,測試結(jié)果分類統(tǒng)計(jì)如表1所示。

表1 穿透性測試結(jié)果統(tǒng)計(jì)

表2 API函數(shù)測試結(jié)果統(tǒng)計(jì)

從統(tǒng)計(jì)數(shù)據(jù)中可以看出,失敗的測試用例只占全部測試用例的0.43%左右。從另一個(gè)角度來看,雖然軟件錯(cuò)誤用例的比重很小,但是發(fā)現(xiàn)存在安全漏洞的API函數(shù)的意義卻很重要。在測試中,發(fā)現(xiàn)5個(gè)TSP函數(shù)和1個(gè)TCS函數(shù)存在安全漏洞,如表2所示。這表明,即使是TSS這種對安全性要求非常敏感的軟件,也不可避免地存在安全漏洞與缺陷。這些安全漏洞可能被攻擊者用于進(jìn)行拒絕服務(wù)或遠(yuǎn)程代碼執(zhí)行等各種類型的攻擊。

5結(jié)語

TSS的安全測評(píng)是對其安全屬性的綜合評(píng)價(jià),利用Fuzzing測試技術(shù)檢查TSS產(chǎn)品代碼中是否存在安全漏洞,發(fā)現(xiàn)軟件代碼中的安全缺陷,是TSS安全屬性測評(píng)中不可或缺的重要內(nèi)容。本文利用Fuzzing技術(shù)挖掘軟件中潛在的安全漏洞與缺陷,對Fuzzing測試環(huán)節(jié)中的故障注入點(diǎn)、畸形數(shù)據(jù)構(gòu)造以及異常行為捕獲與分析等關(guān)鍵問題進(jìn)行研究,分別針對TSP層和TCS層函數(shù)制定了不同的Fuzzing測試方案。對某TSS產(chǎn)品實(shí)驗(yàn)結(jié)果表明:若干API接口函數(shù)中存在潛在的安全漏洞,對整個(gè)TSS的安全性產(chǎn)生威脅。

下一步的工作將研究如何把符號(hào)執(zhí)行、污點(diǎn)傳播與Fuzzing技術(shù)相結(jié)合的白盒Fuzzing技術(shù),將程序動(dòng)態(tài)分析技術(shù)與漏洞挖掘技術(shù)相互結(jié)合、優(yōu)勢互補(bǔ),針對種類更加豐富的代碼安全缺陷進(jìn)行檢測。

參 考 文 獻(xiàn)

[1] ZHANG Huanguo, YAN Fei, FU Jianming, et al. Research on Theory and Key Technology of Trusted Computing Platform Security Testing and Evaluation[J]. Science China: Information Sciences,2010,53(3):434-453.

[2] SADEGHI Ahmad Reza, SELHORST Marcel, STUEBLE Christian, et al. TCG inside?-a Note on TPM Specification Compliance. In First ACM Workshop on Scalable Trusted Computing[C]. New York: ACM Press,2006:47-56.

[3] GERGELY Toth, KOSZEGI Gabor, HORNAK Zoltan. Case Study: Automated Security Testing on the Trusted Computing Platform[C]//Proceedings of the 1st ACM SIGOPS European Workshop on System Security. New York: ACM Press,2008:35-39.

[4] SUTTON Michael, GREENE Adam, AMINI Pedram. Fuzzing: Brute Force Vulnerability Discovery[M]. New Jersey: Addison-Wesley Professional,2007.

[5] PETER Oehlert. Violating Assumptions with Fuzzing[J]. IEEE Security & Privacy,2005,3(2):58-62.

[6] BARTON P. Miller, LOUIS Fredriksen, BRYAN So. An Empirical Study of the Reliability of UNIX Utilities[J]. In Communications of the ACM,1990,33(12):32-44.

[7] JUSTIN E. Forrester, BARTON P. Miller. An Empirical Study of the Robustness of Windows NT Applications Using Random Testing[C]//WSS’00: Proceedings of the 4th conference on USENIX Windows Systems Symposium, Berkeley, CA, USA,2000:6-16.

[8] BARTON P. Miller, GREGORY Cooksey, FREDRICK Moore. An Empirical Study of the Robustness of Macos Applications Using Random Testing[C]//RT’06: Proceeding of the 1st International Workshop on Random Testing, New York, NY, USA,2006:46-54.

[9] WILLIAM H. Allen, CHIN Dou, GERALD A. Marin. A Model-based Approach to the Security Testing of Network Protocol Implementations[C]//Proceedings of 31st IEEE Conference on Local Computer Networks,2006:66-73.

[10] JARED Demott, DR Richard, J Enbody, et al. Revolutionizing the Field of Grey-box Attack Surface Testing with Evolutionary Fuzzing[C]//Blackhat Conference,2007.

中圖分類號(hào)TP309

DOI:10.3969/j.issn.1672-9722.2016.03.027

作者簡介:李金亮,男,工程師,研究方向:指揮控制測試。

收稿日期:2015年9月12日,修回日期:2015年10月25日

主站蜘蛛池模板: 日韩区欧美国产区在线观看| 在线观看免费人成视频色快速| 色欲不卡无码一区二区| 亚洲精品第1页| 国产小视频a在线观看| 成人福利视频网| 伊人蕉久影院| 国产欧美日韩精品综合在线| 亚洲黄色高清| 国禁国产you女视频网站| 国产又黄又硬又粗| 四虎亚洲国产成人久久精品| 成人午夜网址| 久久特级毛片| 色哟哟国产精品| 国产毛片片精品天天看视频| 日本精品中文字幕在线不卡| 视频一本大道香蕉久在线播放| 青草91视频免费观看| 国产精品一线天| 国产综合精品一区二区| 国内老司机精品视频在线播出| 欧美性久久久久| 欧美人人干| 五月天福利视频| 久久精品只有这里有| 欧美日韩国产在线播放| 九九热视频精品在线| 欧美视频在线播放观看免费福利资源| 久久亚洲精少妇毛片午夜无码| 国产欧美中文字幕| 91久久夜色精品| 97国产一区二区精品久久呦| 欧美区在线播放| 中文字幕va| 久久久久国产精品免费免费不卡| 亚洲一区免费看| 国产精品深爱在线| 久久青草精品一区二区三区| 国产精品天干天干在线观看| 国产成人高清在线精品| 日本高清有码人妻| 欧美国产精品拍自| 国产99免费视频| 麻豆精品在线播放| 亚洲最大福利网站| 久久久久无码精品| 成人精品午夜福利在线播放| 无码一区二区三区视频在线播放| 熟女成人国产精品视频| 精品无码人妻一区二区| 欧美成人第一页| 国产在线观看99| AV老司机AV天堂| 国产成人综合日韩精品无码不卡| 亚洲精品无码AV电影在线播放| 毛片免费高清免费| 亚洲综合色吧| 精品国产一区91在线| 日韩美毛片| 久久窝窝国产精品午夜看片| 人妻中文字幕无码久久一区| 亚洲一区二区精品无码久久久| 欧美国产综合视频| 六月婷婷精品视频在线观看| 第一页亚洲| 欧美成人免费午夜全| 国产美女丝袜高潮| 久久久精品国产亚洲AV日韩| 欧美黄网站免费观看| 欧美一级高清片久久99| 蜜芽一区二区国产精品| 亚洲中文无码h在线观看| 无码丝袜人妻| 白浆视频在线观看| 色九九视频| 三级视频中文字幕| 国产草草影院18成年视频| 天天综合天天综合| 中国毛片网| 国产日韩欧美中文| JIZZ亚洲国产|