專利名稱:一種瀏覽器擴(kuò)展的缺陷檢測(cè)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及軟件安全技術(shù)領(lǐng)域,特別是涉及瀏覽器擴(kuò)展中存在的安全漏洞的檢測(cè)方法。
背景技術(shù):
隨著互聯(lián)網(wǎng)在人們生活中扮演著日益重要的角色,瀏覽器成為了當(dāng)今人們使用最多的一個(gè)計(jì)算機(jī)應(yīng)用軟件。對(duì)于用戶來(lái)說(shuō),它正逐漸變?yōu)椹`個(gè)功能強(qiáng)大的平臺(tái)。替代了傳統(tǒng)的桌面應(yīng)用,為了實(shí)現(xiàn)瀏覽器代替桌面應(yīng)用和操作系統(tǒng),就需要對(duì)瀏覽器內(nèi)核進(jìn)行越來(lái)越多的擴(kuò)展。早期的瀏覽器只是用來(lái)閱讀HTML語(yǔ)言編寫(xiě)的文檔的工具,對(duì)于網(wǎng)絡(luò)來(lái)說(shuō)并沒(méi)有 構(gòu)成威脅。但是隨著新技術(shù)的不斷發(fā)展,特別是JavaScript、VisualScript、Java應(yīng)用程序及ActiveX控件在Internet的廣泛應(yīng)用,一方面這些技術(shù)突破使瀏覽器的功能大大增強(qiáng),豐富了網(wǎng)上資源,但另一方面也為網(wǎng)絡(luò)帶來(lái)了新的安全問(wèn)題。瀏覽器的安全性問(wèn)題包括瀏覽器本身和第三方擴(kuò)展兩個(gè)方面的問(wèn)題,相關(guān)的研究表明,瀏覽器的安全性問(wèn)題絕大部分來(lái)源于第三方開(kāi)發(fā)的擴(kuò)展。擴(kuò)展的開(kāi)發(fā)大多數(shù)都是由安全意識(shí)不夠的愛(ài)好者完成的,導(dǎo)致瀏覽器的擴(kuò)展安全狀況令人擔(dān)憂。瀏覽器允許不可信的擴(kuò)展以最高的權(quán)限運(yùn)行,更使得用戶的隱私受到極大的威脅。擴(kuò)展(Extensions)是指添加新功能到瀏覽器中,可以是簡(jiǎn)單添加ー個(gè)工具欄按鈕,也可以始實(shí)現(xiàn)ー個(gè)完整的新功能。擴(kuò)展可以讓瀏覽器更加適合個(gè)人需要。擴(kuò)展跟插件(plugins)不同。插件幫助瀏覽器顯示特殊內(nèi)容,例如播放多媒體文件?;贘avaScript語(yǔ)言的瀏覽器擴(kuò)展(JSEs)通過(guò)提升瀏覽器的外觀、用戶體驗(yàn)擴(kuò)展了瀏覽器的核心功能,因而被商用瀏覽器廣泛采用。為了使擴(kuò)展能夠滿足用戶多樣化的需求,瀏覽器賦予擴(kuò)展瀏覽器本身全部的權(quán)限。例如,跟web工程里的JavaScript不一樣,JSEs里的代碼不受“同源策略”限制。即使是惡意JSEs也可以利用它們的權(quán)限來(lái)危害機(jī)密性和一致性,例如,竊取敏感信息如Cookies和保存的密碼,或者在主機(jī)上執(zhí)行任意的語(yǔ)句。即使ー個(gè)JSE本身不是惡意的,但是JSE和瀏覽器里的缺陷也可能讓ー個(gè)遠(yuǎn)程攻擊者威脅到瀏覽器的安全。同吋,JavaScript語(yǔ)言一直被ー些語(yǔ)言純化學(xué)家認(rèn)為是惡劣的,因?yàn)樗鼊?dòng)態(tài)生成代碼的特性,這些觀點(diǎn)使人們相信,JavaScript語(yǔ)言不適于靜態(tài)分析。舉ー個(gè)簡(jiǎn)單的例子,如果認(rèn)為document, write語(yǔ)句是不安全的話,為了查找它,靜態(tài)分析方法需要考慮到下表中document, write變式的三種形式。因而更增加對(duì)擴(kuò)展的安全威脅的偵測(cè)難度。表I. document, write 的三種形式
權(quán)利要求
1.ー種瀏覽器擴(kuò)展的缺陷檢測(cè)方法,其特征在于,該方法包括以下步驟 步驟一、將擴(kuò)展缺陷特征轉(zhuǎn)化為Datalog語(yǔ)言格式的缺陷信息作為規(guī)則,并由所述規(guī)則構(gòu)建關(guān)于擴(kuò)展的安全缺陷特征庫(kù); 步驟ニ、對(duì)擴(kuò)展源代碼進(jìn)行預(yù)處理,從源代碼中分離出描述擴(kuò)展行為的JavaScript代碼和界面表不語(yǔ)目XUL,將該JavaScript代碼轉(zhuǎn)化成Datalog語(yǔ)目格式的"[目息作為事實(shí);步驟三、將JavaScript代碼變成抽象語(yǔ)法樹(shù),所述抽象語(yǔ)法樹(shù)包含擴(kuò)展信息;以抽象語(yǔ)法樹(shù)與事實(shí)之間的匹配為依據(jù)將所述抽象語(yǔ)法樹(shù)轉(zhuǎn)換成Datalog語(yǔ)言格式, 步驟四、待檢測(cè)的擴(kuò)展信息全部?jī)?chǔ)存為一個(gè)演繹數(shù)據(jù)庫(kù),該演繹數(shù)據(jù)庫(kù)包含了原來(lái)擴(kuò)展源代碼中的調(diào)用、傳參、聲明和指向;利用開(kāi)源工具bddbddb進(jìn)行演繹數(shù)據(jù)庫(kù)推理,從擴(kuò)展的演繹數(shù)據(jù)庫(kù)中查找跟安全缺陷特征庫(kù)里面的缺陷條目匹配的部分,實(shí)現(xiàn)擴(kuò)展的檢測(cè)。
2.如權(quán)利要求I所述的瀏覽器擴(kuò)展的缺陷檢測(cè)方法,其特征在于,所述匹配的具體處理是針對(duì)擴(kuò)展缺陷,分別找到了一條匹配,并給出缺陷所在的代碼行號(hào)。
全文摘要
本發(fā)明公開(kāi)了一種瀏覽器擴(kuò)展的缺陷檢測(cè)方法,包括(1)將擴(kuò)展缺陷特征轉(zhuǎn)化為Datalog語(yǔ)言格式的缺陷信息作為規(guī)則,由所述規(guī)則構(gòu)建關(guān)于擴(kuò)展的安全缺陷特征庫(kù);(2)對(duì)擴(kuò)展源代碼進(jìn)行預(yù)處理,從源代碼中分離出描述擴(kuò)展行為的JavaScript代碼,轉(zhuǎn)化成Datalog語(yǔ)言格式的信息作為事實(shí);(3)將JavaScript代碼變成抽象語(yǔ)法樹(shù)并且轉(zhuǎn)換成Datalog語(yǔ)言格式,(4)待檢測(cè)的擴(kuò)展信息儲(chǔ)存為演繹數(shù)據(jù)庫(kù),進(jìn)行演繹數(shù)據(jù)庫(kù)推理,從擴(kuò)展的演繹數(shù)據(jù)庫(kù)中查找跟安全缺陷特征庫(kù)里面的缺陷條目匹配的部分實(shí)現(xiàn)擴(kuò)展的檢測(cè)。與現(xiàn)有技術(shù)相比,本發(fā)明使瀏覽器擴(kuò)展的人工審核的工作能夠?qū)崿F(xiàn)自動(dòng)化,也提高了精確度。
文檔編號(hào)G06F11/36GK102799524SQ201210227518
公開(kāi)日2012年11月28日 申請(qǐng)日期2012年7月3日 優(yōu)先權(quán)日2012年7月3日
發(fā)明者李曉紅, 王俊杰, 許光全, 孫達(dá)志 申請(qǐng)人:天津大學(xué)