[發(fā)明專(zhuān)利]一種基于虛擬執(zhí)行模式的Flash漏洞檢測(cè)方法有效
| 申請(qǐng)?zhí)枺?/td> | 201210190206.6 | 申請(qǐng)日: | 2012-06-11 |
| 公開(kāi)(公告)號(hào): | CN102693396A | 公開(kāi)(公告)日: | 2012-09-26 |
| 發(fā)明(設(shè)計(jì))人: | 王建新;彭程;聶石婧;董蘋(píng)蘋(píng) | 申請(qǐng)(專(zhuān)利權(quán))人: | 中南大學(xué) |
| 主分類(lèi)號(hào): | G06F21/22 | 分類(lèi)號(hào): | G06F21/22 |
| 代理公司: | 長(zhǎng)沙市融智專(zhuān)利事務(wù)所 43114 | 代理人: | 黃美成 |
| 地址: | 410083 湖南*** | 國(guó)省代碼: | 湖南;43 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 虛擬 執(zhí)行 模式 flash 漏洞 檢測(cè) 方法 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及一種基于虛擬執(zhí)行模式的Flash漏洞檢測(cè)方法。
背景技術(shù)
Adobe公司的Flash?Player是一款目前使用極為廣泛的客戶(hù)端播放器,能夠在各種主流操作系統(tǒng)、瀏覽器、移動(dòng)電話和移動(dòng)設(shè)備上提供功能強(qiáng)大與內(nèi)容豐富的視頻體驗(yàn)?,F(xiàn)在,幾乎絕大部分PC機(jī)或其它終端都裝有Flash?Player,但與此同時(shí),F(xiàn)lash?Player漏洞也日益增多,并對(duì)互聯(lián)網(wǎng)的安全造成了嚴(yán)重的威脅。
根據(jù)CVE公布的漏洞報(bào)告,F(xiàn)lash漏洞數(shù)量目前仍呈增長(zhǎng)趨勢(shì),F(xiàn)lash?Player已成為高危漏洞最多的黑客攻擊重災(zāi)區(qū)。而2011年十大安全漏洞當(dāng)中,F(xiàn)lash?Player共曝出四次高危漏洞,其危險(xiǎn)程度已超過(guò)微軟Windows操作系統(tǒng)。鑒于Flash?Player飽受詬病的安全性,IOS等操作系統(tǒng)甚至已拒絕支持Flash,以保證客戶(hù)端安全。
Flash漏洞檢測(cè)是對(duì)目標(biāo)Flash文件是否為利用Flash漏洞編寫(xiě)的惡意文件進(jìn)行檢測(cè)的一種方法,通過(guò)檢測(cè),可以事先發(fā)現(xiàn)惡意Flash文件,阻止用戶(hù)訪問(wèn),從而保證用戶(hù)的網(wǎng)絡(luò)安全。
目前傳統(tǒng)的Flash漏洞檢測(cè)方法主要有三種:
(1)基于特征碼匹配的Flash漏洞文件掃描
此方法類(lèi)似于傳統(tǒng)殺毒軟件的文件掃描,即將待檢測(cè)的Flash文件以二進(jìn)制流的形式打開(kāi),通過(guò)匹配事先設(shè)定的特征碼來(lái)確定該文件是否具有漏洞。這種對(duì)包含漏洞的Flash文件進(jìn)行掃描的方法,適用面較窄,且效果不佳。
(2)基于靜態(tài)分析代碼的Flash漏洞檢測(cè)
此方法首先將Flash文件中的ActionScript代碼進(jìn)行反編譯,然后再對(duì)其代碼進(jìn)行靜態(tài)分析,檢測(cè)是否具有觸發(fā)某一漏洞的特定條件。如根據(jù)CVE-2011-2134的漏洞描述,當(dāng)代碼中包含一個(gè)深度大于16的表達(dá)式時(shí),會(huì)導(dǎo)致溢出并觸發(fā)漏洞,例如:A.match(/(((((((((((((((((.*)))))))))))))))).)*/g);。因此當(dāng)檢測(cè)到具有該類(lèi)表達(dá)式時(shí),則成功檢測(cè)出漏洞。
由于大部分Flash漏洞需要根據(jù)變量值等當(dāng)前狀態(tài)信息進(jìn)行匹配,而靜態(tài)分析代碼無(wú)法得到此類(lèi)執(zhí)行Flash代碼后的狀態(tài)信息,故該方法效果不佳。
(3)基于虛擬執(zhí)行的Flash漏洞檢測(cè)
該方案的原理主要是將Flash文件在Flash播放器的虛擬機(jī)(即AVM2,已開(kāi)源)中執(zhí)行,通過(guò)其行為來(lái)檢測(cè)是否具有漏洞。如大部分緩沖區(qū)溢出漏洞,就可根據(jù)Flash是否崩潰,堆或棧是否溢出來(lái)判定。
但該方案仍存在問(wèn)題。如怎樣實(shí)現(xiàn)執(zhí)行Flash文件中的所有ActionScript代碼尚需解決,因?yàn)楣粽呖梢詫⒙┒蠢么a編寫(xiě)成需要特定觸發(fā)條件才會(huì)執(zhí)行,如點(diǎn)擊Flash中某一按鈕,或使用Firefox瀏覽器打開(kāi)時(shí)才會(huì)執(zhí)行等。此外,傳統(tǒng)虛擬執(zhí)行方法需要運(yùn)行Flash文件,則在對(duì)大量Flash文件進(jìn)行漏洞檢測(cè)時(shí),效率較低。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問(wèn)題是提供一種基于虛擬執(zhí)行模式的Flash漏洞檢測(cè)方法,該基于虛擬執(zhí)行模式的Flash漏洞檢測(cè)方法具有誤判率低,執(zhí)行效率高的特點(diǎn)。
發(fā)明的技術(shù)解決方案如下:
一種基于虛擬執(zhí)行模式的Flash漏洞檢測(cè)方法,包括以下步驟:
步驟1:將待檢測(cè)的Flash文件進(jìn)行反編譯,得到ActionScript代碼;
步驟2:對(duì)ActionScript代碼進(jìn)行單詞掃描及詞法分析,即將ActionScript代碼轉(zhuǎn)換成單詞流,并對(duì)每個(gè)單詞的類(lèi)型進(jìn)行分析,單詞的類(lèi)型包括保留字、標(biāo)識(shí)符、符號(hào)、數(shù)字;
步驟3:構(gòu)建生成樹(shù):
以生成樹(shù)存儲(chǔ)ActionScript代碼:生成樹(shù)中每個(gè)結(jié)點(diǎn)用于存儲(chǔ)ActionScript的一行語(yǔ)句,若某結(jié)點(diǎn)具有子結(jié)點(diǎn),則每個(gè)子結(jié)點(diǎn)存儲(chǔ)的ActionScript語(yǔ)句是其父節(jié)點(diǎn)的ActionScript語(yǔ)句的子語(yǔ)句;
步驟4:對(duì)每個(gè)結(jié)點(diǎn)中的語(yǔ)句進(jìn)行結(jié)構(gòu)分析,得到類(lèi)結(jié)構(gòu)信息,其中語(yǔ)句結(jié)構(gòu)包括類(lèi)定義語(yǔ)句、類(lèi)成員變量定義語(yǔ)句及類(lèi)的成員函數(shù)定義語(yǔ)句;在分析ActionScript代碼結(jié)構(gòu)時(shí),對(duì)代碼逐行進(jìn)行掃描,若發(fā)現(xiàn)關(guān)鍵字“class”則為類(lèi)定義語(yǔ)句,關(guān)鍵字“function”則為類(lèi)的成員函數(shù)定義語(yǔ)句;若找到關(guān)鍵字“var”或“const”則為類(lèi)成員變量定義語(yǔ)句;
標(biāo)記所有函數(shù)的狀態(tài)為“未執(zhí)行”;
步驟5:基于類(lèi)結(jié)構(gòu)信息生成虛擬執(zhí)行流程,并將虛擬執(zhí)行流程放入虛擬執(zhí)行流程棧中;
該專(zhuān)利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專(zhuān)利權(quán)人授權(quán)。該專(zhuān)利全部權(quán)利屬于中南大學(xué),未經(jīng)中南大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專(zhuān)利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210190206.6/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專(zhuān)利網(wǎng)。
- 同類(lèi)專(zhuān)利
- 專(zhuān)利分類(lèi)
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F21-00 防止未授權(quán)行為的保護(hù)計(jì)算機(jī)或計(jì)算機(jī)系統(tǒng)的安全裝置
G06F21-02 .通過(guò)保護(hù)計(jì)算機(jī)的特定內(nèi)部部件
G06F21-04 .通過(guò)保護(hù)特定的外圍設(shè)備,如鍵盤(pán)或顯示器
G06F21-06 .通過(guò)感知越權(quán)操作或外圍侵?jǐn)_
G06F21-20 .通過(guò)限制訪問(wèn)計(jì)算機(jī)系統(tǒng)或計(jì)算機(jī)網(wǎng)絡(luò)中的節(jié)點(diǎn)
G06F21-22 .通過(guò)限制訪問(wèn)或處理程序或過(guò)程
- 確定吸收制品功效
- 一種虛擬機(jī)的安全訪問(wèn)方法及虛擬機(jī)系統(tǒng)
- 一種虛擬桌面的解鎖方法及裝置
- 一種實(shí)時(shí)處理虛擬交換機(jī)網(wǎng)絡(luò)流量的虛擬化平臺(tái)
- 虛擬智能家居實(shí)訓(xùn)系統(tǒng)及其虛擬實(shí)訓(xùn)方法
- 虛擬機(jī)的磁盤(pán)資源的管理方法和裝置
- 一種基于KVM的虛擬網(wǎng)卡管理方法
- 虛擬資源數(shù)據(jù)處理方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 基于虛擬環(huán)境的道具使用方法、裝置、設(shè)備及介質(zhì)
- 虛擬道具的獲取方法、裝置、設(shè)備及介質(zhì)
- 以注射方式執(zhí)行死刑的自動(dòng)執(zhí)行車(chē)的執(zhí)行床
- 過(guò)程執(zhí)行裝置、過(guò)程執(zhí)行方法以及過(guò)程執(zhí)行程序
- 用以執(zhí)行跳舞電子游戲的執(zhí)行系統(tǒng)及其執(zhí)行方法
- 策略執(zhí)行系統(tǒng)及其執(zhí)行方法
- 腳本執(zhí)行系統(tǒng)和腳本執(zhí)行方法
- 命令執(zhí)行設(shè)備、命令執(zhí)行系統(tǒng)、命令執(zhí)行方法以及命令執(zhí)行程序
- 程序執(zhí)行裝置、程序執(zhí)行系統(tǒng)以及程序執(zhí)行方法
- 處理執(zhí)行設(shè)備和由該處理執(zhí)行設(shè)備執(zhí)行的方法
- 有序任務(wù)的執(zhí)行方法、執(zhí)行裝置和執(zhí)行系統(tǒng)
- 執(zhí)行器(閥門(mén)執(zhí)行器)





