国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

NFC協(xié)議的模糊測試優(yōu)化方案

2017-06-15 18:20:31張光華石曉朦李仁浩
河北工業(yè)科技 2017年3期
關(guān)鍵詞:測試用例規(guī)范節(jié)點

張光華,石曉朦,李仁浩,任 軍

(1.河北科技大學(xué)信息科學(xué)與工程學(xué)院,河北石家莊 050018;2.西安電子科技大學(xué)電子工程學(xué)院,陜西西安 710126;3. 河北省教育考試院,河北石家莊 050091)

NFC協(xié)議的模糊測試優(yōu)化方案

張光華1,石曉朦1,李仁浩2,任 軍3

(1.河北科技大學(xué)信息科學(xué)與工程學(xué)院,河北石家莊 050018;2.西安電子科技大學(xué)電子工程學(xué)院,陜西西安 710126;3. 河北省教育考試院,河北石家莊 050091)

針對NFC協(xié)議進行模糊測試方案時產(chǎn)生大量不符合協(xié)議規(guī)范的無效測試用例而導(dǎo)致測試效率較低的問題,應(yīng)用圖論思想,提出了基于生成的策略與深度優(yōu)先算法融合后的模糊測試方案。在基于生成的策略下構(gòu)造測試用例的過程中,遍歷由協(xié)議規(guī)范連接成的測試需求圖,以深度優(yōu)先算法搜索圖中覆蓋點較多的生成路徑,精簡測試用例的生成路徑,保證生成的測試用例能夠接近協(xié)議規(guī)范。實驗分析表明,所提出的模糊測試方案能夠有效地減少無效測試用例的生成,提高測試效率。

算法理論;通信網(wǎng)絡(luò);NFC協(xié)議;漏洞挖掘;模糊測試;圖論算法

NFC(near field communication)是能夠利用2個NFC設(shè)備之間電磁場的耦合感應(yīng),在短距離的情況下自動進行高速非接觸式數(shù)據(jù)通信的技術(shù)[1-2]。NFC技術(shù)被廣泛應(yīng)用于移動平臺的同時,安全漏洞也成為了網(wǎng)絡(luò)攻擊者首要攻擊的目標。根據(jù)對已知漏洞CVE-2008-5825[3]和CVE-2008-5826[4]的總結(jié)發(fā)現(xiàn),NFC技術(shù)應(yīng)用安全漏洞的產(chǎn)生主要來自對NFC協(xié)議脆弱點的攻擊。因此,挖掘NFC協(xié)議的安全漏洞成為保障NFC技術(shù)應(yīng)用安全的重要手段之一[5-7]。

目前,針對NFC協(xié)議進行的漏洞挖掘方案主要分為2個方向:模糊測試方向與靜態(tài)分析方向。模糊測試是一種動態(tài)分析技術(shù), 它使用大量半有效的數(shù)據(jù)作為應(yīng)用程序的輸入, 以被測應(yīng)用是否出現(xiàn)異常作為標志, 來發(fā)現(xiàn)網(wǎng)絡(luò)協(xié)議中可能存在的脆弱點。其中半有效的數(shù)據(jù)是指測試用例的必要標示部分和大部分數(shù)據(jù)是有效的, 但同時該數(shù)據(jù)的其他部分是無效的,接收到這樣數(shù)據(jù)的應(yīng)用程序就有可能發(fā)生錯誤, 這種錯誤可能導(dǎo)致應(yīng)用程序的崩潰或者觸發(fā)相應(yīng)的安全漏洞。而靜態(tài)分析技術(shù)多采用源代碼審計的方法查找漏洞, 因為可以獲得待測軟件的全部源代碼,所有可能的代碼路徑都可以被審核。

通過對NFC協(xié)議這種已知RFC規(guī)范的通信協(xié)議,選擇模糊測試技術(shù)進行漏洞挖掘的可行性較高。所以針對NFC協(xié)議進行的漏洞挖掘方案主要依靠模糊測試技術(shù),主要進行如下研究。

MILLER[8]提出了基于變異的策略和生成的策略融合后的模糊測試用例構(gòu)建策略,以期達到增加NFC協(xié)議漏洞的檢出率,降低測試的漏報率,優(yōu)化測試效率的效果。MULLINER[9]設(shè)計了一種在移動平臺直接對應(yīng)用軟件進行測試的軟件測試方案,方案直接運行于Android平臺,以手工編造測試用例的方法針對軟件進行模糊測試。WIEDERMANN[10]開發(fā)了針對NFC技術(shù)的漏洞挖掘工具Fuzzing-to-go,將技術(shù)成熟的開源測試框架移植到Android平臺針對NFC應(yīng)用進行測試。

基于以上文獻分析可以得出,以往的研究者們進行NFC協(xié)議模糊測試時,在針對優(yōu)化模糊測試的測試效率問題上通常以增強漏洞檢出率作為提高效率的途徑,往往忽視了大量無效測試用例的生成,導(dǎo)致測試用例有效性較低,使得方案優(yōu)化后測試效果達不到預(yù)期設(shè)想。為了解決測試效率較低的問題,本文針對構(gòu)造測試用例這一過程,提出了在基于生成的策略基礎(chǔ)下融合深度優(yōu)先算法進行測試用例生成的模糊測試方案。

1 NFC協(xié)議的模糊測試優(yōu)化方案設(shè)計

1.1 總體設(shè)計思想

模糊測試技術(shù)的核心思想是使用大量畸形數(shù)據(jù)作為輸入來針對程序進行測試,并且記錄下測試過程中目標程序執(zhí)行的狀態(tài),篩選出可能存在的安全漏洞,供人們繼續(xù)分析[10-15]。模糊測試的關(guān)鍵問題是測試用例的生成[16]。測試用例的生成方法可分為兩大類:基于變異的方法和基于生成的方法。前者針對已有數(shù)據(jù)樣本強制性變異來創(chuàng)建新的測試用例;后者通過分析目標特征從頭開始產(chǎn)生測試用例[17]。

基于生成策略[18-19]的模糊測試方案中測試用例的生成算法往往采用了數(shù)據(jù)塊關(guān)聯(lián)模型,以數(shù)據(jù)塊為基本元素,將數(shù)據(jù)塊之間的關(guān)聯(lián)性視作聯(lián)系數(shù)據(jù)塊的紐帶?;谏刹呗酝歉鶕?jù)遍歷由數(shù)據(jù)塊與其關(guān)聯(lián)性形成的路徑進行測試用例的生成。本文選擇的基礎(chǔ)框架Sulley平臺是一款基于生成策略下的模糊測試框架,其沿用了基于塊的生成思想,并且通過添加屬性標簽,擴大了字段間依賴關(guān)系的描述。Sulley中內(nèi)置的圖形工具將數(shù)據(jù)塊根據(jù)彼此的關(guān)聯(lián)性連接成為樹形結(jié)構(gòu),由根節(jié)點逐級進行節(jié)點的遍歷,同時根據(jù)生成樹的信息進行測試用例的生成。

NFC協(xié)議的模糊測試就是被測目標與模糊測試框架進行的一次通信過程,發(fā)送的畸形數(shù)據(jù)不符合協(xié)議規(guī)范會造成通信過程的失敗。在強制性的模糊測試方案中,基于變異的策略下通過對測試腳本進行隨機性的變異,生成的部分測試用例協(xié)議普遍解析度不高,測試過程中測試用例的代碼覆蓋率較低,冗余測試用例的產(chǎn)生降低了測試方案的效率。

不同于基于變異的測試用例生成策略,基于生成的策略下,進行NFC協(xié)議模糊測試時,需根據(jù)NFC協(xié)議的規(guī)范構(gòu)造出一組用于生成測試用例需求腳本。相較于基于變異的策略,基于生成的策略有方向性,并且規(guī)范了構(gòu)造測試用例生成的路徑。

本文以基于生成的測試用例構(gòu)造策略作為NFC協(xié)議的模糊測試方案構(gòu)造測試用例的基本策略,采用模糊測試框架Sulley作為基礎(chǔ)框架。在數(shù)據(jù)塊關(guān)聯(lián)模型的描述下,協(xié)議格式就是對協(xié)議構(gòu)成單元詞法、語法和語義的規(guī)定。詞法為數(shù)據(jù)單元的符號特征;語法為數(shù)據(jù)單元的組織規(guī)則;語義為數(shù)據(jù)單元的具體解釋。這些網(wǎng)絡(luò)協(xié)議的協(xié)議規(guī)范具有一定的關(guān)聯(lián)性,Sulley框架根據(jù)事先由人工構(gòu)造出的一組協(xié)議規(guī)范為腳本,內(nèi)置pGraph[20]部分會自動根據(jù)協(xié)議腳本中協(xié)議規(guī)范點之間的相關(guān)性連接成有向圖,其拓撲結(jié)構(gòu)如圖1所示。

圖1 協(xié)議規(guī)范的拓撲結(jié)構(gòu)Fig.1 Topology diagram of protocol specification

圖1中的節(jié)點代表著協(xié)議規(guī)范點。在基于生成策略下通常隨機進行圖的遍歷。協(xié)議模糊測試不同于文件模糊測試,目標應(yīng)用在接收畸形測試用例時會進行校驗和比對。例如,遍歷圖中a—b—c路徑終止向下搜索直接生成測試用例,但是目標應(yīng)用部分需要對e進行校驗,不包含e生成測試用例是被拒絕接收的。所以在測試的過程中往往產(chǎn)生大量不能通過驗證的冗余測試用例。冗余測試用例產(chǎn)生的原因通常是如上例所述,在遍歷有向圖時所選擇的生成路徑?jīng)]有覆蓋較多的協(xié)議規(guī)范點。

所以在基于生成的策略下,雖然測試用例的構(gòu)造減少了一定的盲目性,但是為了進一步解決測試效率較低的問題,本文在基于生成策略的基礎(chǔ)上提出基于生成策略和深度優(yōu)先算法融合后的模糊測試方案。深度優(yōu)先算法減少了路徑遍歷的隨機性,在進行圖的遍歷時篩選出盡可能覆蓋較多節(jié)點的生成路徑。以圖1為例進行說明,從根節(jié)點a開始,然后訪問a節(jié)點下的第1個子節(jié)點 b,接下來訪問b節(jié)點的子節(jié)點 c,再訪問c節(jié)點的子節(jié)點e,e節(jié)點為葉子節(jié)點,則訪問e節(jié)點后,訪問e節(jié)點父節(jié)點的下一個兄弟節(jié)點,如果父節(jié)點沒有下一個兄弟節(jié)點,則訪問祖父節(jié)點的下一個兄弟節(jié)點,繼續(xù)上述過程,直到訪問的下一個節(jié)點與根節(jié)點相同,則所有節(jié)點訪問完成。根據(jù)以上方法,圖1 中各節(jié)點訪問序列為a—b—c—e—d—f。根據(jù)這條路徑生成的測試用例相較于根據(jù)a—b,b—c生成的測試用例更加貼近于真實的協(xié)議,減少了冗余測試用例的生成。

1.2 算法設(shè)計與分析

NDEF協(xié)議具有3種記錄類型:Text型用于連通其他的記錄和提供文本說明;URI型描述了一種在NFC標簽中保存URI數(shù)據(jù)結(jié)構(gòu)的類型,并且在2個NFC設(shè)備之間可以通過 NDEF消息傳輸這些數(shù)據(jù)結(jié)構(gòu);Smart Poster記錄類型可以看作是URI類型的一種特例,一個Smart Poster只要包含1個URI記錄,其他內(nèi)容可以作為可選項。NDEF協(xié)議采用的是“類型-長度-值”的格式來描述信息。所以那些描述類型或者長度的字段就顯得十分重要。NDEF 記錄一般可分為頭字段、ID長度字段、類型長度字段、有效載荷長度字段、ID 字段、類型字段、有效載荷字段幾個方面進行協(xié)議規(guī)范的描述。

深度優(yōu)先算法是一種用于圖遍歷時搜索路徑的算法。深度優(yōu)先算法所遵循的搜索策略是沿著單一方向深入地搜索圖中的生成路徑,直至連通路徑上所有節(jié)點被標記。

通過構(gòu)造實例具體說明算法過程。例如,通過上述幾個方面對NDEF協(xié)議Text型進行模糊測試,測試文本信息“Hello,world”。如表1所示,對Text型記錄協(xié)議規(guī)范進行分析,總共分析出7個協(xié)議規(guī)范點。

表1 Text型NDEF協(xié)議規(guī)范

設(shè)定NFC模糊測試中的協(xié)議規(guī)范圖為G,以協(xié)議規(guī)范圖G抽象描述7個協(xié)議規(guī)范點之間的連通關(guān)系,分別定義表中7個協(xié)議規(guī)范點為V1—V7,如圖2所示。

圖2 Text型記錄協(xié)議規(guī)范圖GFig.2 Text type record protocol specification G

算法的具體步驟如下:

1)初始化協(xié)議規(guī)范圖G,以圖中的節(jié)點V7作為出發(fā)點,訪問并標記該節(jié)點為已訪問節(jié)點;

2)以路徑為信息搜索V7當(dāng)前的鄰節(jié)點Vi,訪問和標記鄰節(jié)點Vi為已經(jīng)遍歷;

3)以Vi為當(dāng)前頂點,重復(fù)上述步驟,搜索Vi節(jié)點的下一個鄰節(jié)點,依次類推,直至所有鄰節(jié)點被標記,輸出搜索的路徑;

4)返回源點V7,重復(fù)以上步驟,直至圖中節(jié)點都被標記。

深度優(yōu)先搜索算法進行過程中,深入挖掘測試需求之間的關(guān)系,包含關(guān)聯(lián)性的測試需求越多,測試用例越容易被判定為有效測試用例。算法的時間復(fù)雜度為O(V+E),V為節(jié)點數(shù),E為邊數(shù),測試需求圖的數(shù)據(jù)量較小,使用該算法的時間復(fù)雜度較低,不會增加方案的復(fù)雜度。

1.3 NFC協(xié)議模糊測試優(yōu)化方案的實現(xiàn)

本文選擇開源框架Sulley作為基層開發(fā)框架。Sulley框架是針對網(wǎng)絡(luò)協(xié)議進行測試的模糊測試框架,源代碼運行于Python語言環(huán)境,含有多個組件,可擴展性良好。Sulley框架在基于生成的策略下以基于數(shù)據(jù)塊的方式進行數(shù)據(jù)生成,構(gòu)造數(shù)據(jù)的能力較為優(yōu)秀簡潔,同時,能夠?qū)崟r監(jiān)控和記錄測試目標的運行狀況。

改進后的方案框架如圖3所示。首先,需要對NDEF協(xié)議進行分析,得出協(xié)議的基本格式后,手工構(gòu)造需要的測試腳本,在測試需求時集中等待會話管理模塊的調(diào)用;然后,通過會話管理模塊將測試需求連接成有向無環(huán)圖,使用深度優(yōu)先算法對圖進行生成路徑的搜索,結(jié)合生成器進行測試用例的生成;最后,將生成的模糊數(shù)據(jù)發(fā)送到Android虛擬設(shè)備上的NFC API中運行,代理模塊和輔助模塊記錄異常數(shù)據(jù)反饋到模糊測試端,結(jié)束測試。本文提出的方案中,針對模糊測試中生成部分遍歷測試需求會話圖的盲目性進行改進,基于圖論的思想,提出了以深度優(yōu)先算法縱深搜索協(xié)議規(guī)范點,以篩選測試用例的生成路徑,保證每條生成路徑中可以覆蓋盡量多的測試需求,生成的測試用例盡量貼近協(xié)議規(guī)范,以達到減少冗余測試用例生成的目的。

圖3 NFC協(xié)議模糊測試優(yōu)化方案框架Fig.3 Framework of NFC protocol fuzzy test optimization

基于以上方案框圖,下面給出NFC協(xié)議的模糊測試優(yōu)化方案的具體方案流程。

Step1 構(gòu)造測試需求集。通過NFC的協(xié)議規(guī)范分析出Text型的NDEF協(xié)議記錄的7個協(xié)議規(guī)范點,然后在方案框架的數(shù)據(jù)管理部分進行測試用例的構(gòu)造與存儲。數(shù)據(jù)管理模塊部分以Sulley框架自帶的數(shù)據(jù)構(gòu)造語法對協(xié)議規(guī)范點進行描述,并把描述后的協(xié)議規(guī)范文件存儲在Sulley框架的會話管理部分。

Step2 構(gòu)造會話圖。在基于生成的策略下,會話管理部分調(diào)用Requests文件,讀取文件中的協(xié)議規(guī)范點,根據(jù)協(xié)議規(guī)范之間的相關(guān)性將協(xié)議規(guī)范點連接成有向圖,存儲在Sulley框架的會話管理部分。

Step3 深度優(yōu)先算法進行圖的遍歷。深度優(yōu)先算法由Python語言編寫,存儲在Sulley文件夾中。深度優(yōu)先算法模塊部分提取PGraph中的測試需求圖,依據(jù)算法特性深度遍歷圖中的路徑,逐步輸出搜索后的路徑。

Step4 生成模糊測試所需測試用例??蚣苤衟rimitives.py部分負責(zé)由上述搜索路徑生成測試用例。這部分根據(jù)協(xié)議規(guī)范中可以模糊的字段和不可模糊的字段分別進行測試用例的生成,生成的數(shù)據(jù)為半有效畸形數(shù)據(jù),保證生成的半有效數(shù)據(jù)盡可能通過被測程序部分校驗和驗證。

Step5 進行模糊測試。這一部分完成模糊測試工具與被測目標的通信過程。再次調(diào)用會話管理模塊定義通信會話,同時啟動network_monitor.py和process_monitor.py兩個模塊進行測試用例的發(fā)送以及被測目標的監(jiān)測。被測目標為Android虛擬設(shè)備的NFC API,模糊測試過程的進行是Android虛擬設(shè)備與模糊測試框架進行的Socket通信過程。

Step6 代理模塊和輔助模塊進行進程的監(jiān)控與記錄。在上一步進行時設(shè)定端口5678是Android虛擬設(shè)備的映射端口,代理模塊監(jiān)聽端口5678獲取測試信息。

2 實驗與分析

本文針對3種NDEF記錄類型分別設(shè)計進行了2次針對NFC協(xié)議的模糊測試實驗,分別是改進前的模糊測試方案和改進后的模糊測試方案,通過這2次模糊測試實驗來進行方案有效性和正確性的驗證,結(jié)果證明了本文提出檢測方法的效果更優(yōu)。

2.1 實驗環(huán)境

實驗環(huán)境在內(nèi)存為4 GB,處理器為Intel(R) Core(TM)i3Quad 2.67 GHz的機器上完成。實驗方案的驗證是在Windows7-64位系統(tǒng)下完成的。方案框架實現(xiàn)采用Sulley源代碼作為基礎(chǔ)框架,IDA Python,調(diào)試工具Windbg,MinGW等完成算法實現(xiàn)以及監(jiān)視記錄的過程,目標虛擬設(shè)備采用Android SDK工具實現(xiàn),主要針對Android系統(tǒng)中的NFC API進行測試。測試過程相當(dāng)于完成1次Socket通信。NFC API測試流程圖如圖4所示。

圖4 NFC API測試流程圖Fig.4 NFC API test flow chart

測試中需要綁定的IP地址為127.0.0.1,監(jiān)視端口為5678。本文將前面提出的算法使用Python語言進行實現(xiàn)。在測試中所需要的測試腳本也由Python算法實現(xiàn)??蛻舳薃ndroid虛擬設(shè)備的設(shè)置由Java語言和C++語言完成。

2.2 實驗結(jié)果與分析

NFC協(xié)議模糊測試方案的測試效率與測試用例的有效性相關(guān)。評價一個模糊測試方案的有效性主要依靠有效數(shù)據(jù)的對象效率,即所構(gòu)造的畸形數(shù)據(jù)通過目標應(yīng)用的個數(shù)與總共生成的畸形數(shù)據(jù)之比。設(shè)定有效數(shù)據(jù)對象效率為V,生成的測試用例的個數(shù)為∑Pi,有效的測試用例個數(shù)為∑Pv,給出評估模糊測試方案有效性的公式為

v=∑Pv/∑Pi。

(1)

本文選擇NDEF協(xié)議的3種記錄類型——Text型,URI型, Smart Poster型分別進行改進前后的模糊測試。表2—表4,分別為改進前和改進后針對Text型記錄進行的2種測試方案的對比結(jié)果,針對URI型記錄進行的2種測試方案的對比結(jié)果,以及針對Smart Poster型記錄進行的2種測試方案的對比結(jié)果。

針對Text型NDEF記錄進行模糊測試時,首先分析后得出Text型NDEF記錄由頭字段、ID長度字段、類型長度字段、有效載荷長度字段、ID 字段、類型字段、有效載荷字段描述的協(xié)議規(guī)范。算法根據(jù)如圖1所示的協(xié)議規(guī)范之間的關(guān)聯(lián),沿代表文本內(nèi)容“Hello,world”的節(jié)點開始向下搜索最深的生成路徑,直到7個協(xié)議規(guī)范點都被標記為已遍歷。基于生成的策略,根據(jù)搜索到的生成路徑構(gòu)造相應(yīng)的測試用例,已生成的測試用例啟動模糊測試,記錄結(jié)果如表2所示。

表2 Text型記錄方案測試結(jié)果對比

方案生成的測試用例分為可接收和不可接收兩部分,如表2所示。改進前方案生成2 080個測試用例,改進后方案生成1 537個測試用例,改進后方案所生成的測試用例的總數(shù)與改進前的測試用例總數(shù)相比減少了543個測試用例。其中不能接收的冗余測試用例減少了548個。與改進前的測試用例集相比減少了26.01%,相應(yīng)的縮小了模糊測試的測試用例樣本規(guī)模。從可接收的測試用例數(shù)量上看,由式(1)計算有效數(shù)據(jù)效率,改進前的有效數(shù)據(jù)效率為32.9%,改進后的有效數(shù)據(jù)效率為44.8%,優(yōu)化有效數(shù)據(jù)效率11.9%。

同理于上述實驗,使用NDEF的另外2種類型URI型NDEF記錄,以及Smart Poster型NDEF記錄針對方案進行驗證。同樣進行協(xié)議規(guī)范的分析后分別得出協(xié)議規(guī)范點,將測試用例腳本寫入Sulley框架的Requests部分,啟動2次模糊測試后得出的結(jié)果如表3和表4所示。

表3 URI型記錄方案測試結(jié)果對比

表4 Smart Poster型方案測試結(jié)果對比

如表3所示,改進前方案總共生產(chǎn)了2 153個測試用例,改進后方案總共生成了2 083個測試用例,針對URI型NDEF記錄,改進后方案所生成的測試用例的總數(shù)與改進前的測試用例總數(shù)相比減少了70個測試用例,其中不能接收的冗余測試用例減少了252個,縮小了模糊測試的用例樣本規(guī)模。從表3數(shù)據(jù)發(fā)現(xiàn)改進后可接收數(shù)據(jù)較之改進前增加了182個,可接收的測試用例數(shù)量上看,由式(1)計算有效數(shù)據(jù)效率,改進前的有效數(shù)據(jù)效率為24.7%,改進后的有效數(shù)據(jù)效率為34.3%,優(yōu)化有效數(shù)據(jù)效率9.6%。

從表4的數(shù)據(jù)可以得出,針對Smart Poster型記錄進行測試時2次實驗的結(jié)果都是接收所有產(chǎn)生的畸形數(shù)據(jù)并且沒有報錯。證明了NFC API無法對Smart Poster型記錄進行正確的校驗。

綜合以上3個實驗得出的結(jié)果,改進前方案共產(chǎn)生4 768個測試用例,其中可被接收的測試用例為1 683個。改進后方案共產(chǎn)生3 844個測試用例,其中可被接收的測試用例為1 630個。改進后的方案較之改進前的方案總共減少了924個冗余測試用例。根據(jù)式(1)得到改進前方案的有效數(shù)據(jù)效率為35.3%,改進后方案的有效數(shù)據(jù)效率為42.4%。后者的有效數(shù)據(jù)效率相較前者提高了7.1%。以有效數(shù)據(jù)效率作為評價模糊測試方案效率的指標,通過以上數(shù)據(jù)證明了在基于圖論思想提出的基于生成策略與深度優(yōu)先算法融合后的NFC協(xié)議模糊測試方案,有效減少了測試用例的生成路徑,降低了冗余測試用例的生成,提高了有效的測試用例生成概率,優(yōu)化了測試方案的有效性。

通過調(diào)用不可解析的測試用例分析,如表5所示,在Text型測試用例343的測試用例總長度為37字節(jié),有效載荷的長度用0x21指定,因此進行測試集合在33字節(jié)的有效載荷之后被截斷。當(dāng)計算實際有效載荷長度時,判斷該字節(jié)溢出,結(jié)果顯示該測試用例不可解析。構(gòu)造函數(shù)的解析是按照有效載荷長度字段存儲的長度值進行截斷的,這也反映了NDEF協(xié)議的構(gòu)造函數(shù)在生成對象時的策略,即直接按照有效載荷長度對輸入數(shù)據(jù)進行截取,如果載荷的內(nèi)容大于聲明的有效載荷長度,則直接按照聲明的長度把多余的載荷數(shù)據(jù)截斷丟棄。

表5 測試用例實例分析

本文主要測試NFC 應(yīng)用接口是NdefMessage類的構(gòu)造函數(shù)。分析一些不能解析的Text型用例和URI型用例,可總結(jié)出以下結(jié)論。

1)類型長度字段被置為0x00的測試用例不能解析,證明構(gòu)造函數(shù)對這個字段進行了校驗。

2)URI測試用例的有效載荷長度字段里面的值大于實際使用的長度,說明構(gòu)造函數(shù)對有效載荷長度進行了校驗,不處理那些聲明長度大于實際長度的記錄。

3)對首字節(jié)變異的多數(shù)測試用例也不能被處理,證明構(gòu)造函數(shù)對首字節(jié)也進行了相應(yīng)的校驗。

分析以上結(jié)論可以發(fā)現(xiàn),NFC API只能對數(shù)據(jù)的類型長度字段、有效載荷長度字段以及首字節(jié)字段進行校驗。其中第1個實驗采用的Text型記錄可以和其他記錄類型結(jié)合使用,最主要的功能是提供解釋性文本。對比實驗結(jié)果不難看出,選擇Text型記錄達到的效果明顯優(yōu)于其他實驗。因為在第1個實驗中使用的Text型記錄相較URI型記錄以及Smart Poster型記錄更為基本。這個結(jié)果證明了NFC應(yīng)用接口在處理數(shù)據(jù)時也只能進行較為原始的校驗。從表2和表3得出的數(shù)據(jù)也可以看出,仍然有超過一半的畸形數(shù)據(jù)被構(gòu)造成為符合NDEF協(xié)議的對象,通過了NFC API的校驗并交給應(yīng)用程序做進一步處理,由于NFC API部分不能識別更加復(fù)雜的畸形數(shù)據(jù),也就不能切實保證NFC協(xié)議在實際應(yīng)用的安全性,說明了Android平臺的安全性較差的特點,所以在后續(xù)針對Android APP進行的NFC協(xié)議漏洞挖掘工作仍需深入研究。

3 結(jié) 論

為了解決NFC模糊測試效率較低的問題,本文提出了以深度優(yōu)先算法篩選出覆蓋較多協(xié)議規(guī)范點的測試用例的生成路徑,以達到減少測試用例生成算法的隨機性,減少冗余測試用例生成的目的。仿真實驗證明,本文方案具有一定的有效性,減少了一部分冗余測試用例的生成,提高了測試用例的有效性,并且根據(jù)不能接收的測試用例的回放數(shù)據(jù)也顯示出部分NFC協(xié)議的脆弱點,說明NFC協(xié)議存在安全問題。方案在PC端實現(xiàn),測試方案實現(xiàn)比較簡潔。但是本文實現(xiàn)的方案需人工構(gòu)造測試腳本,沒有實現(xiàn)自動化的測試功能。下一步工作主要包括:首先,因為NFC API只能對數(shù)據(jù)進行簡單的校驗,不能進行更復(fù)雜的驗證,所以接下來需要以含有NFC功能的Android APP為主體進行模糊測試,進一步驗證協(xié)議的安全性;其次,本文進行的模糊測試結(jié)果依賴于人工構(gòu)造的測試用例腳本,沒有實現(xiàn)自動化的方案,所以接下來將對NFC協(xié)議模糊測試方案的自動化程度進行研究,減少對人工的依賴,保證測試的精確性。

/References:

[1] HAMEED S, JAMALI U M, SAMAD A.Protecting NFC data exchange against eavesdropping with encryption record type definition[C]//15th IEEEE/IFIP Network Operations and Management Symposium(noms). Istanbul:[s.n.],2016:94-100.

[2] ROSTAM N A, ZULKIFFLI N F, GHAZALI N H,et al. The acceptance study of NFC technology:A survey of models and user acceptance[C]// 2015 International Symposium on Technology Management and Emerging Technologies (ISTMET). Langkawi: [s.n.],2015:53-57.

[3] NVD.Vulnerability summary for CVE-2008-5825[EB/OL].http://web.nvd.nist.gov/view/vuln/detail?vuln Id=CVE-2008-5825,2015-01-09.

[4] NVD.Vulnerability summary for CVE-2008-5826[EB/OL].http://web.nvd.nist.gov/view/vuln/detail?vuln Id=CVE-2008-5826,2015-01-09.

[5] 張玉清,王志強,劉奇旭,等.近場通信技術(shù)的安全研究進展與發(fā)展趨勢[J].計算機學(xué)報,2016, 39(6):1190-1207. ZHANG Yuqing, WANG Zhiqiang, LIU Qixu,et al.Research progress and trends on the security of near field communication[J]. Chinese Journal of Computers,2016,39(6):1190-1207.

[6] 張翔, 李雅峰, 張自賓,等. 網(wǎng)絡(luò)入侵檢測技術(shù)漫談[J]. 河北工業(yè)科技, 2004, 21(2):30-32. ZHANG Xiang,LI Yafeng,ZHANG Zibin,et al. Discussion of intrusion detection technology[J].Hebei Journal of Industrial Science and Technology,2004, 21(2):30-32.

[7] 任軍, 賈克. 基于隔離和免疫的蠕蟲傳播模型及穩(wěn)定性分析[J]. 河北工業(yè)科技, 2015, 32(4):326-330. REN Jun,JIA Ke.Stability analysisof a worm propagation model with quarantine and vaccination[J].Hebei Journal of Industrial Science and Technology,2015,32(4):326-330.

[8] MILLER C. Exploring the NFC Attack Surface[R].[S.l.]:[s.n.],2012.

[9] MULLINER C. Vulnerability analysis and attacks on NFC-enabled mobile phones[C]//2009 International Conference on Availability, Reliability and Security. Fukuoka:[s.n.], 2009: 695-700.

[10]WIEDERMANN N.Fuzzing-to-go: A Test Framework for Android Devices [D]. München: Technische Universiat München, 2012.

[11]王志強,劉奇旭,張玉清. Android 平臺NFC 應(yīng)用漏洞挖掘技術(shù)研究[J]. 通信學(xué)報, 2014(sup2): 117-123. WANG Zhiqiang, LIU Qixu, ZHANG Yuqing. Research of discovering vulnerabilities of NFC applications on Android platform[J]. Journal on Communications, 2014(sup2):117-123.

[12]SUTTON M, GREENE A, AMINI P. Fuzzing: Brute Force Vulnerability Discovery[M]. Boston: Pearson Education, 2007.

[13]李紅輝,齊佳,劉峰,等.模糊測試技術(shù)研究[J].中國科學(xué):信息科學(xué),2014,44(10): 1305-1322. LI Honghui, QI Jia, LIU Feng, et al.The research progress of fuzz testing technology[J]. Scientia Sinica( Informationis),2014,44(10): 1305-1322.

[14]劉奇旭,張玉清.基于Fuzzing的TFTP漏洞挖掘技術(shù)[J].計算機工程, 2007, 33(20): 142-144. LIU Qixu, ZHANG Yuqing. TFTP vulnerability exploiting technique based on Fuzzing[J]. Computer Engineering, 2007,33(20): 142-144.

[15]馬金鑫,張濤,李舟軍,等. Fuzzing過程中的若干優(yōu)化方法[J].清華大學(xué)學(xué)報(自然科學(xué)版), 2016,56(5):478-483. MA Jinxin, ZHANG Tao, LI Zhoujun, et al.Improved fuzzy analysis methods[J].Journal of Tsinghua University(Science and Technology), 2016,56(5):478-483.

[16]吳志勇,夏建軍,孫樂昌,等.多維Fuzzing 技術(shù)綜述[J].計算機應(yīng)用研究, 2010, 27(8): 2810-2813. WU Zhiyong,XIA Jianjun, SUN Lechang,et al. Survey of multi-dimensional Fuzzing technology[J]. Application Research of Computer, 2010,27(8): 2810-2813.

[17]孔(王瑩). 基于靜態(tài)分析技術(shù)的Web 漏洞挖掘[D]. 北京:中國科學(xué)院研究生院, 2012.

[18]閆斌. 一種二進制程序漏洞挖掘技術(shù)的研究與實現(xiàn)[D]. 北京:北京郵電大學(xué), 2013. YAN Bin. Research and Implementation of A Binary Program Vulnerabilities Mining Technology[D]. Beijing:Beijing University of Posts and Telecommunications, 2013.

[19]張賽丹. 基于Fuzzing算法的網(wǎng)絡(luò)漏洞挖掘研究[D]. 北京:北京郵電大學(xué), 2014. ZHANG Saidan. Vulnerability Mining for Network Protocols Based on Fuzzing [D]. Beijing :Beijing University of Posts and Telecommunications, 2014.

[20]AMINI P.PAIMEI[EB/OL].http://pedram.redhive.com/PyDbg/dos,2008-10-06.

Fuzzy test optimization scheme for NFC protocol

ZHANG Guanghua1, SHI Xiaomeng1, LI Renhao2, REN Jun3

(1.School of Information Science and Engineering, Hebei University of Science and Technology, Shijiazhuang, Hebei 050018, China; 2.School of Electronic Engineering, Xidian University, Xi’an, Shaanxi 710126, China; 3.Hebei Education Examination Authority, Shijiazhuang, Hebei 050091, China)

Aiming at the problem that when the NFC protocol in under fuzz testing scheme, there is a large number of invalid testing cases which are incongruent with agreements, causing lower test efficiency. By applying the thought of graph theory, a fuzz testing which is based on the generated strategy and Depth-First-Search is introduced. It is proceeding based on the procreative strategy and constructive testing cases, and then traversed test requirements diagrams which is connected with agreement norms. It is used by depth-first algorithm to search the generate path which is covered by major cover points, and to simplify the cases generate path, which guarantees the cases to close to the agreements. According to the experimental analysis, the fuzz test can reduce invalid tests cases effectively and enhance the test's efficiency.

algorithm theory; communication network; NFC protocol; vulnerability discovery; fuzz testing; graph theory algorithm

1008-1534(2017)03-0155-07

2017-02-26;

2017-04-17;責(zé)任編輯:陳書欣

國家自然科學(xué)基金(61572255);中國博士后科學(xué)基金(2015M582622);物聯(lián)網(wǎng)信息安全技術(shù)北京市重點實驗室開放課題(J6V0011104)

張光華(1979—),男,河北深州人,副教授,博士,主要從事信任管理、無線網(wǎng)絡(luò)安全方面的研究。

E-mail:xian_software@163.com

TP393

A

10.7535/hbgykj.2017yx03001

張光華,石曉朦,李仁浩,等.NFC協(xié)議的模糊測試優(yōu)化方案[J].河北工業(yè)科技,2017,34(3):155-161. ZHANG Guanghua, SHI Xiaomeng, LI Renhao, et al.Fuzzy test optimization scheme for NFC protocol[J].Hebei Journal of Industrial Science and Technology,2017,34(3):155-161.

猜你喜歡
測試用例規(guī)范節(jié)點
CM節(jié)點控制在船舶上的應(yīng)用
來稿規(guī)范
來稿規(guī)范
PDCA法在除顫儀規(guī)范操作中的應(yīng)用
Analysis of the characteristics of electronic equipment usage distance for common users
來稿規(guī)范
基于AutoCAD的門窗節(jié)點圖快速構(gòu)建
基于SmartUnit的安全通信系統(tǒng)單元測試用例自動生成
基于混合遺傳算法的回歸測試用例集最小化研究
抓住人才培養(yǎng)的關(guān)鍵節(jié)點
巴楚县| 葵青区| 新巴尔虎右旗| 墨竹工卡县| 师宗县| 谷城县| 尉犁县| 四平市| 沙坪坝区| 都安| 融水| 时尚| 宁海县| 亳州市| 宁波市| 赣州市| 龙泉市| 兰西县| 巴林左旗| 兴和县| 盐山县| 白银市| 黄冈市| 化隆| 忻城县| 牙克石市| 蒙自县| 奉新县| 永昌县| 龙游县| 资源县| 兴城市| 溆浦县| 津南区| 涞水县| 方正县| 凤阳县| 凌云县| 金门县| 塔河县| 德令哈市|