孫瑜,周安民
(四川大學電子信息學院,成都 610065)
基于Peach的視頻文件安全脆弱性模糊測試方法研究
孫瑜,周安民
(四川大學電子信息學院,成都610065)
自2010年Google承認遭受嚴重黑客攻擊之后,APT(高級持續(xù)性威脅)便成了信息安全圈子里眾人皆知的“時髦名詞”。其中,文件解析型漏洞在APT攻擊中承擔了重型武器的功能[1]。隨著數字化媒體設備的發(fā)展,音視頻文件的使用已越來越廣泛,各種視頻文件沒有嚴格統(tǒng)一的規(guī)范,也沒有專業(yè)的公司或者組織對其安全性進行升級,因此各種類型的視頻文件在文檔結構以及各種視頻軟件在實現上都存在著許多安全性問題。目前,針對視頻軟件的解析格式漏洞進行的深入研究比較少,而這類漏洞往往具有嚴重的危害性,因此對主流音視頻文件格式進行分析,整理歸納易引發(fā)漏洞的數據結構,結合模糊測試的思想,對各種播放器進行有針對性的Fuzzing測試,對發(fā)現其潛在的漏洞具有重要意義。
模糊測試適用于對目標軟件有輸入的漏洞類型,輸入相關的漏洞具體是指通過特定的輸入觸發(fā)異常的漏洞,由用戶提供,因此對于主流視頻處理軟件來說,視頻文件格式的分析十分重要。主流視頻處理軟件所處理的主要文件格式包括:AVI、MP4、FLV、ASF等。本文將以這四種文件格式為例,研究主流視頻處理軟件能夠解析的這些文件格式,針對文件格式的詳細分析編寫Peach Pit文件。在此基礎上按照一定規(guī)則構造大量特殊的“畸形”樣本,將這些樣本逐一送入視頻處理軟件進行解析,監(jiān)測軟件是否會出現異常、崩潰等情況,記錄產生的錯誤信息。更進一步的工作是核實這些錯誤能否被利用,由此判斷主流視頻處理軟件在解析文件格式時是否存在漏洞。
MP4視頻文件是一種較為全面的容器格式,可以在其中嵌入任何形式的數據,各種編碼的視頻、音頻等[2]。
MP4視頻文件封裝格式是基于QuickTime容器格式來定義的,因此需要參考QuickTime的格式定義來對MP4文件格式進行解析。MP4文件由若干個Box組成,其中所有數據都裝在Box(QuickTime中為atom)中,Box可認為是一個數據對象塊,每個Box有類型、大小和長度。大box中存放小box,一級嵌套一級來存放媒體信息。
FLV格式是一個用于提供視頻在互聯網上使用的容器文件格式,應用于Adobe Flash Player版本6或者更新的版本。由于其形成的文件小、加載的速度快等優(yōu)點,使得網絡觀看視頻成為可能,它的出現有效地解決了在視頻文件導入Flash后不能很好地在網絡上使用,導出的SWF文件過于龐大等缺點[3]。
FLV文件包括文件頭和文件體兩部分,其中文件體由一系列的Tag及Tag Size對組成。
ASF(Advanced Streaming Format)即高級串流格式,支持任意的壓縮/解壓縮編碼方式,并且體積小,可以使用任何一種底層網絡傳輸協議,具有很大的靈活性[4]。其數據組合形式也十分靈活,能夠將聲音、動畫以及圖形等數據組合在一個ASF格式文件中,也可以與其他格式的音視頻文件相互轉換。還可以在ASF視頻文件中增加帶有命令的代碼,執(zhí)行某個事件或某種操作。
ASF對象是ASF文件的基本組織單元,由一個Object ID(128位全球唯一對象標識符,GUID),一個Object Size(64位的對象大?。┖鸵粋€Object Data(可變長的對象數據)組成。對象大小的值等于對象數據的大小加24比特之和。
AVI即音頻視頻交錯格式,微軟公司于1992年11月推出的一種多媒體文件格式。音頻視頻交錯,就是將音頻與視頻流數據交織在一起,同步播放,它的優(yōu)點是可以跨平臺使用。
AVI文件格式包含三部分:文件頭、數據塊,以及索引塊。數據塊是文件的主體,它包含實際的數據流,也就是圖像和聲音序列數據,這部分信息決定了文件主要容量。索引塊包含數據塊的列表以及它們在文件中對應的位置信息,用以提供數據在文件中的隨機存取能力[5]。文件頭包含定義數據格式、文件所用壓縮算法、文件通用信息等參數。AVI文件屬于一種用于采集、編輯、播放的RIFF文件。RIFF文件格式是一種樹狀的結構,它的基本組成單元包含LIST和CHUNK兩種結構。LIST相當于文件的目錄,它可以包含多個CHUNK結構或者多個LIST結構,包含關鍵字“LIST”。CHUNK結構是保存數據的最基本單元,可用于保存各種音視頻數據或者某些參數的信息。
在對文件格式解析的基礎上,編寫Peach Pit文件,選取初始模板,由系統(tǒng)完成模糊測試功能,具體執(zhí)行流程為如圖1所示:
圖1 系統(tǒng)框架執(zhí)行流程
樣本變異策略,即Peach模糊測試框架內預先制定的一些處理輸入文件的規(guī)則。Peach自帶三種變異策略,分別為隨機變異策略、順序變異策略、混合變異策略[6]。
(1)隨機變異策略,策略中Peach每次會從數據模型中取MaxFieldsToMutate個元素,其中MaxFieldsTo-Mutate是Pit文件的測試模塊中預先設定的參數,然后為每一個數據元素隨機選擇一種變異方法。Peach是通過隨機數種子來實現隨機化的。隨機變異策略可以設置測試數據模型的次數,也可以設置迭代數據模型中元素的數目。該策略最適合用于測試較大的數據結構,且與順序策略聯合使用。
(2)順序變異策略中,Peach每次按照數據模型中的元素集合的順序依次對所有元素進行Fuzz,從最頂端的元素開始,對每個數據元素應用變異器中所有的有效變異方法,然后按照順序再對元素集合中下一個元素繼續(xù)上述操作。
(3)混合變異策略中,結合了隨機變異策略和順序變異策略的一種方法,解決了隨機變異策略的無限測試問題,它為整個模糊測試設置確定開始和結束元素,就是數據模型中元素集合的起點和終點。
根據前面的介紹可以了解Peach三大變異策略,但不同的策略都會有一定的局限性。
(1)隨機變異策略可能對同一個數據進行兩次相同的變異,會生成兩個相同的變異文件,大大增加了Fuzzing test的開銷,降低了模糊測試的效率。另外,隨機策略是一種無限測試,如果沒有外部中斷,測試將一直運行下去。
(2)順序變異策略已對數據元素集合中的所有元素窮盡各種變異方法,就不用再次重復進行,所以采用這種變異策略的模糊測試所迭代的次數是有限的,即生成的畸形樣本個數是有限的。適用于較小的數據結構的細粒度模糊測試,即使遍歷所有數據元素,窮盡變異方法,畸形樣本數量也不會太多。
(3)混合變異策略對于各元素的變異順序就不再采用集合元素的順序,而是隨機獲取數據元素進行變異,這點與隨機變異策略一致。盡管沒有按照元素集合中的順序進行變異,但還是會對每個元素遍歷變異器中的所有變異方法,因此這種變異策略也是一種有限測試。
(4)三種系統(tǒng)提供的變異策略均屬于一維的變異策略,即每次只調用一種變異方法來改變某個字節(jié)的值,或刪除,或插入,或替換,這樣不僅效率低。各類視頻文件中都存在很多關聯的數據,如果每次只變異某個地方的數據,如果其正好存在其他的關聯數據,那么變異后生成的測試樣本很可能是無效的,大大增加了無效樣本的數量,降低了測試效率。
因此,基于以上對三種變異策略的分析,提出了一種多維的變異策略,主要的優(yōu)化方法如下:
(1)利用歷史漏洞分析結果,通過在Peach Pit中限制數據的定義等,縮小所需變異的元素范圍;
(2)判斷當前數據元素是否存在與其相關聯的其他數據元素,如果不存在則調用混合變異策略;如果存在關聯數據元素,則對所有相關的元素數據分別調用隨機變異策略;
(3)變異后生成的測試樣本文件,以其文件內容的MD5值命名,能驗證當前生成的測試樣本文件是否已經存在。
具體的多維變異策略邏輯過程如圖2所示。
圖2 多維變異策略示意圖
為了驗證變異策略的有效性,對常見的播放器軟件如RealPlayer、Adobe Flash Player、Win Media Player等軟件進行模糊測試,測試環(huán)境為Windows XP3。
此開源漏洞挖掘框架系統(tǒng)在歷史漏洞復現方面有很好的表現,以下選取了近年危害比較嚴重的視頻軟件漏洞,通過構造漏洞觸發(fā)樣本來測試此系統(tǒng)在漏洞行為監(jiān)控和記錄現場的性能指標,具體測試結果如表1所示:
表1 測試歷史漏洞復現統(tǒng)計表
實驗結果表明,此系統(tǒng)能對近年絕大部分的視頻軟件漏洞實現復現,說明通過利用變異策略能夠提高模糊測試的效率和正確性,進而能夠主動防范借助于視頻軟件的惡意攻擊行為。未來會進一步深入研究模糊測試變異策略,在已有變異策略的基礎上進行優(yōu)化,并繼續(xù)研究其他視頻文件,盡可能提高普遍性。
[1]比特網安全(ChinaByte).http://sec.chinabyte.com/7/12162007.shtm.2015-3-5.
[2]陳吉.淺談流媒體技術[J].常州信息職業(yè)技術學院學報,2008(03):10-12.
[3]嚴鳴.SVC封裝技術研究和實現[D].重慶:重慶大學,2013.
[4]陳吉.淺談流媒體技術[J].常州信息職業(yè)技術學院學報,2008(03):10-12.
[5]謝金祥.基于流媒體技術的工交學院校園網設計與實現[D].合肥:華中科技大學,2006.
[6]周俊.談談AVI文件的修復[J].電腦知識與技術(經驗技巧).2003,(01):30-31.
[7]Peach[EB/OL].http://www.PeachFuzzer.com.2015-2-5.
Fuzzing;Peach;Mutation Strategy
Research on Fuzzing Mutation Strategy of the Video Player Based on the Peach
SUN Yu,ZHOU An-min
(College of Electronic and Information Engineering,Sichuan University,Chengdu 610065)
1007-1423(2016)02-0058-04
10.3969/j.issn.1007-1423.2016.02.014
孫瑜(1990-),女,碩士研究生,研究方向為信息安全、網絡通信
2015-12-01
2015-12-30
文件解析型漏洞在惡意代碼攻擊中扮演著重要的角色。攻擊者通過將有特殊功能的代碼嵌入文件中,讓軟件在解析這些文件時出錯,從而執(zhí)行有特殊功能的代碼,實現對漏洞的利用。旨在通過研究視頻文件格式,總結出其中的“脆弱點”,提出更加有效的樣本構造方法;對Peach的變異策略進行研究,提出更加有效的變異策略,提高樣本生成率,從而更加有針對性地對視頻文件格式缺陷進行相應的Fuzz測試,以主動防范基于視頻軟件的惡意攻擊行為。
模糊測試;Peach;變異策略
周安民(1963-),男,碩士生導師,研究員,研究方向為信息安全關鍵技術和核心產品工程
The file analytical vulnerability plays an important role in attack from malicious code.The code with special function be embedded in the file,through the way,the attackers make the software error when parsing the file,to execute a code with special function.It makes the vulnerability exploitation successful.Sums up the files'"weak point"through studying the video file format,and puts forward a more effective approach.In order to achieve the goal of improve sample generation rate,puts forward more effective mutation strategies through studying the Peach mutation strategy.Thus can more targeted to the video file format defect on the corresponding Fuzzy test,and then to take the initiative to prevent malicious attacks by means of video software.On the basis of the research objectives,research contents are as follows.