專利名稱:Firefox瀏覽器擴展行為自動檢測系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及軟件功能檢測技術(shù),特別是涉及一種瀏覽器功能的檢測方法。
背景技術(shù):
隨著計算機和Internet的普及,瀏覽器已經(jīng)成為絕大部分計算機用戶搜索和獲取信息的重要工具。與此同時,瀏覽器自身在功能上也發(fā)生了極大的變化,例如絕大多數(shù)主流瀏覽器都已支持擴展機制來增強瀏覽器自身的功能。瀏覽器擴展機制是ー種允許為瀏覽器添加個性化功能的機制。通過該機制,瀏覽器擴展為瀏覽器添加了新的功能,允許用戶可以通過定制應(yīng)用程序來滿足其自身的個性化需求。然而,這ー機制在極大地增強了瀏覽器表現(xiàn)能力的同時,也使瀏覽器暴露在了更多的攻擊之下。具體來說,瀏覽器的擴展機制在為用戶帶來良好體驗的同時,也為用戶使用瀏覽器增添了更多的不安全因素。例如,Liverani對已經(jīng)發(fā)現(xiàn)的惡意或有安全漏洞的擴展(如 Coolpreview2. 7、skype3. 8、UpdateScanner3. O 等)進行了總結(jié),并詳細分析了其原因及攻擊方法。文獻將通過擴展攻擊Firefox的方法分為三種跨站腳本攻擊(XSS)、安裝惡意的擴展以及修改已安裝的擴展,同時識別出五種常見的攻擊場景創(chuàng)建按鍵監(jiān)聽器、損壞訪問的網(wǎng)頁、釣魚攻擊、盜取密碼以及將Firefox作為僵尸。此外,安全評估組織Security-Assessment. com對專門針對Firefox擴展進行跨站腳本攻擊進行了詳細總結(jié)。在其發(fā)布的白皮書中,詳細總結(jié)了八類可能被攻擊者通過擴展進行XCS(CroSS ContextScripting)攻擊的缺陷。同時,在其另ー份白皮書中,對常見的攻擊Firefox擴展的惡意代碼進行了總結(jié),如訪問本地文件、遠程代碼執(zhí)行以及盜取密碼等。針對Firefox瀏覽器擴展安全問題,Mozilla采取了多種措施來緩和這一安全問題,具體包括(I)簽名機制開發(fā)者可以對擴展進行簽名,用戶在安裝擴展時對簽名進行校驗。(2)審查機制Mozilla對新提交的擴展在發(fā)布之前要進行一系列審查,對于未通過的擴展不予發(fā)布,從而一定程度降低了惡意擴展流入最終用戶的可能性。(3) JavaScript沙 窗JavaScript沙窗機制使得擴展與網(wǎng)頁之間沒有直接的信息交互。盡管上述機制能夠在一定程度上緩和瀏覽器擴展所引發(fā)的安全問題,但是由于簽名機制并不是強制的、審查機制經(jīng)常存在人為疏漏以及JavaScript沙窗機制又可以被輕易繞過,所以現(xiàn)有技術(shù)中的這些機制并不能滿足用戶對于瀏覽器擴展的安全需求。
發(fā)明內(nèi)容
基于上述現(xiàn)有技術(shù)存在的問題,本發(fā)明提出了ー種Firefox瀏覽器擴展行為自動檢測系統(tǒng)及方法,通過對瀏覽器擴展的行為進行自動檢測和記錄,以便能夠發(fā)現(xiàn)并規(guī)避瀏覽器擴展的危險或不良行為。本發(fā)明提出了I. ー種Firefox瀏覽器擴展行為自動檢測系統(tǒng),利用插樁的Firefox瀏覽器抽取擴展行該系統(tǒng)包括瀏覽器插樁模塊(101)、擴展下載模塊(102)、測試站點模塊(103)、擴展信息提取模塊(104)、事件模擬模塊(105)、注入對象跟蹤模塊(106)以及控制模塊(107),擴展下載儲存庫(108),其中瀏覽器插樁模塊(101),通過將動態(tài)鏈接庫中的各鉤子函數(shù)插入到瀏覽器源代碼各擴展行為操作開始的位置以截獲不同的瀏覽器內(nèi)部擴展行為事件;擴展下載模塊(102),用于將適合的Firefox擴展從Mozilla的官方網(wǎng)站下載到本地系統(tǒng),該模塊流程包括以下步驟訪問Mozilla,當監(jiān)測到有未訪問的擴展目錄時,進行 擴展目錄訪問;當監(jiān)測到該擴展目錄中有未訪問的擴展時,訪問該擴展,獲得該擴展的元信息,判斷該元信息是否包含下載要求,對于滿足下載要求的擴展進行下載;測試站點模塊(103),用于訪問被測站點并模擬瀏覽器用戶行為;擴展信息提取模塊(104):用于識別瀏覽器界面元素中哪些是由待測擴展填加的,并將其位置信息傳遞給事件模擬模塊以觸發(fā)該元素上的事件;事件模擬模塊(105):用于模擬被測瀏覽器操作的用戶行為以觸發(fā)擴展中相應(yīng)的事件處理,該模塊一方面接受來自擴展信息提取模塊的指令然后模擬用戶的相應(yīng)行為,另一方面為控制模塊提供關(guān)于瀏覽器窗ロ的相關(guān)信息;注入對象跟蹤模塊(106),設(shè)置于在瀏覽器內(nèi)部,用于跟蹤、識別注入到網(wǎng)頁中的代碼,該模塊在擴展調(diào)用瀏覽器提供的方法時識別并記錄這ー注入的路徑信息,然后通過這一信息確定該擴展行為間接地觸發(fā)了哪些其他的擴展行為;以及控制模塊(107),用于連接系統(tǒng)中的其他模塊并協(xié)調(diào)整個測試過程,安裝/卸載擴展,啟動/關(guān)閉瀏覽器,配置/清除測試環(huán)境,協(xié)調(diào)整個測試過程,提供相關(guān)的機制確保系統(tǒng)穩(wěn)定運行。該模塊的控制流程包括以下步驟訪問擴展下載儲存庫108,對于儲存庫中未測試的擴展,在本地安裝擴展,配置測試環(huán)境,重啟瀏覽器,瀏覽器檢測并記錄擴展行為,清除測試環(huán)境,卸載該擴展。所述擴展行為包括直接行為和間接行為。所述瀏覽器內(nèi)部擴展行為事件包括三類事件瀏覽器接ロ的訪問、JavaScript函數(shù)的調(diào)用以及事件監(jiān)聽器的添加與刪除。所述配置測試環(huán)境,具體包括以下操作提取關(guān)于擴展的信息,包括名稱、標識以及安裝路徑;然后將這些信息記錄到配置文件中以備瀏覽器在監(jiān)聽擴展行為時使用。本發(fā)明還提出了ー種Firefox瀏覽器擴展行為自動檢測方法,其特征在于,該方法包括以下步驟訪問Mozilla,監(jiān)測擴展目錄和擴展目錄中的擴展,訪問滿足要求的擴展,獲取擴展的元信息,并對滿足下載要求的擴展進行下載,存于擴展本地庫;訪問擴展本地庫;對于儲存庫中未測試的擴展,在本地安裝擴展;配置測試環(huán)境;在開始檢測瀏覽器擴展行為之前重新啟動瀏覽器;利用插樁在瀏覽器代碼中的鉤子函數(shù),截獲瀏覽器內(nèi)部擴展行為事件;瀏覽器檢測并記錄擴展行為,清除測試環(huán)境,卸載該擴展。所述擴展行為包括直接行為和間接行為。
所述瀏覽器內(nèi)部擴展行為事件包括三類事件瀏覽器接ロ的訪問、JavaScript函數(shù)的調(diào)用以及事件監(jiān)聽器的添加與刪除。所述配置測試環(huán)境,具體包括以下操作提取關(guān)于擴展的信息,包括名稱、標識以及安裝路徑;然后將這些信息記錄到配置文件中以備瀏覽器在監(jiān)聽擴展行為時使用。與現(xiàn)有技術(shù)相比,本發(fā)明是為了能夠?qū)ΜF(xiàn)有瀏覽器擴展的行為有所了解,進而提出適當?shù)陌踩呗砸越档蜑g覽器擴展的使用風險,希望借此能夠讓用戶在應(yīng)用擴展時,在保證安全的前提下,擁有較大的自由度。為瀏覽器內(nèi)部擴展行為是否具有安全威脅提供有效的判斷依據(jù),也就是說,能夠在安全的基礎(chǔ)上充分發(fā)揮Firefox擁有強大擴展功能且人性化程度高的優(yōu)勢。
圖I為Fire Fox瀏覽器擴展行為自動測試系統(tǒng)架構(gòu)圖;圖2為本發(fā)明的插樁操作編碼示意圖;圖3為本發(fā)明的下載模塊工作流程;圖4為本發(fā)明的控制模塊工作流程圖。
具體實施例方式下面結(jié)合附圖和具體實施例對本發(fā)明的技術(shù)方案進行詳細描述。本發(fā)明通過對Firefox瀏覽器為擴展提供的接ロ進行分析,以及對Firefox瀏覽器擴展的行為進行抽象和分類,實現(xiàn)該瀏覽器擴展行為的自動檢測和記錄;分類信息作為對現(xiàn)已存在的Fire Fox瀏覽器擴展行為進行大規(guī)模自動檢測的依據(jù)。如圖I所示的Firefox瀏覽器擴展行為自動檢測系統(tǒng),該系統(tǒng)包括瀏覽器插樁模塊101、擴展下載模塊102、測試站點模塊103、擴展信息提取模塊104、事件模擬模塊105、注入對象跟蹤模塊106以及控制模塊107,擴展下載儲存庫108 ;系統(tǒng)的核心是利用插樁的Firefox瀏覽器抽取擴展的行為信息(包括直接行為和間接行為)并將其記錄在擴展下載儲存庫108中,其中瀏覽器插樁模塊101 :插樁模塊設(shè)計為瀏覽器的一個動態(tài)鏈接庫,庫中包含了一系列設(shè)計良好的鉤子函數(shù),通過將其插入到瀏覽器源代碼的適當位置來截獲不同的瀏覽器內(nèi)部事件。該模塊共截獲了三類瀏覽器的內(nèi)部事件瀏覽器接ロ的訪問、JavaScript函數(shù)的調(diào)用以及事件監(jiān)聽器的添加與刪除。并通過這些信息來大致刻畫出瀏覽器擴展的行為。如圖2所示,為插樁模塊在瀏覽器源碼中插入鉤子函數(shù)的編碼截圖;擴展下載模塊102 :用于將適合的Firefox擴展從Mozilla的官方網(wǎng)站下載到本地系統(tǒng)。為了使待測擴展能夠盡可能地暴露更多的行為,測試過程中瀏覽器會自動訪問本文設(shè)計的一個測試網(wǎng)站,并在事件模擬模塊以及擴展信息抽取模塊的幫助下自動模擬用戶的一系列行為;該模塊的詳細工作流程如圖3所示,該流程包括以下步驟訪問Mozilla瀏覽器,當監(jiān)測到有未訪問的擴展目錄時,進行擴展目錄訪問;當監(jiān)測到該擴展目錄中有未訪問的擴展時,訪問該擴展,獲得該擴展的元信息,判斷該元信息是否包含下載要求,對于包含下載要求的擴展進行下載;
測試站點模塊103 :用于訪問被測站點并模擬一些用戶行為,以使得被測瀏覽器的擴展行為盡可能地暴露出來;擴展信息提取模塊104 :主要用于識別瀏覽器界面元素中哪些是由待測擴展填加的,并將其位置信息傳遞給事件模擬模塊以觸發(fā)該元素上的事件。該模塊是ー個Firefox擴展;事件模擬模塊105 :用于模擬被測瀏覽器操作的用戶行為以觸發(fā)擴展中相應(yīng)的事件處理。它ー方面接受來自擴展信息提取模塊的指令然后模擬用戶的相應(yīng)行為,另一方面為控制模塊提供關(guān)于瀏覽器窗ロ的相關(guān)信息;注入對象跟蹤模塊106 :設(shè)置于在瀏覽器內(nèi)部,用于跟蹤、識別注入到網(wǎng)頁中的代 碼。該模塊在擴展調(diào)用瀏覽器提供的方法時識別并記錄這ー注入的路徑信息,然后通過這一信息確定該擴展間接地觸發(fā)了哪些行為;最后,控制模塊107 :用于協(xié)調(diào)整個測試過程,該模塊主要負責連接系統(tǒng)中的其他模塊并協(xié)調(diào)整個測試過程。其主要工作有安裝/卸載擴展,啟動/關(guān)閉瀏覽器,配置/清除測試環(huán)境,協(xié)調(diào)整個測試過程,提供相關(guān)的機制確保系統(tǒng)穩(wěn)定運行。該模塊的工作流程如圖4所示。該控制流程包括以下步驟訪問擴展下載儲存庫108,對于儲存庫中未測試的擴展,在本地安裝擴展,配置測試環(huán)境,重啟瀏覽器,瀏覽器檢測并記錄擴展行為,清除測試環(huán)境,卸載該擴展。以下為本發(fā)明的具體實施例I、在擴展下載部分,考慮到系統(tǒng)的效率及復(fù)雜性,在對擴展進行測試之前將所有的可測擴展都下載到了本地系統(tǒng)。以擴展CoolPreviews為例,它的功能是使得用戶無須離開當前頁面就可以預(yù)覽本頁中鏈接或圖片的內(nèi)容。2、在配置測試環(huán)境部分,將下載到本地的CoolPreviews 2. 7. 2安裝到系統(tǒng)中進行測試。在擴展安裝之后,系統(tǒng)會提取關(guān)于CoolPreviews 2. 7. 2的一系列信息,如名稱、標識以及安裝路徑等,然后將這些信息記錄到配置文件中已備瀏覽器在監(jiān)聽擴展行為時使用。然后,在真正開始監(jiān)聽瀏覽器擴展行為之前重新啟動瀏覽器。3、在監(jiān)測記錄瀏覽器擴展行為部分,就本實施例來說,在瀏覽器重啟后,瀏覽器會從配置文件中讀入關(guān)于CoolPreviews 2. 7. 2的信息。一旦瀏覽器獲得了這些信息之后,行為監(jiān)控過程將自動啟動。為了能夠使被測擴展的行為能夠更多地暴露出來,系統(tǒng)首先會用瀏覽器訪問測試網(wǎng)站,并且模擬網(wǎng)頁中的各種事件,這些事件主要有點擊鏈接、鍵盤輸入以及表單提交等。然后系統(tǒng)會遍歷瀏覽器的界面元素,識別哪些界面元素(如菜單項、上下文菜單以及狀態(tài)欄)是由被測擴展填加的,并觸發(fā)這些界面元素上的事件。若事件觸發(fā)之后有新的窗ロ被弾出,系統(tǒng)會將其關(guān)閉。在本例中,模擬網(wǎng)頁可以調(diào)用XPCOM組件提供的nslLocalFile WlnslProcess接ロ來執(zhí)行任意的本地程序,這是CoolPreviews 2. 7. 2的漏洞。4、在清除測試環(huán)境部分,關(guān)閉瀏覽器,卸載CoolPreviews 2. 7. 2,清除相關(guān)的配置信息。在上述所有過程都結(jié)束之后,針對ー個擴展的測試過程就基本結(jié)束。
權(quán)利要求
1.一種Firefox瀏覽器擴展行為自動檢測系統(tǒng),利用插樁的Firefox瀏覽器抽取擴展行該系統(tǒng)包括瀏覽器插樁模塊(101)、擴展下載模塊(102)、測試站點模塊(103)、擴展信息提取模塊(104)、事件模擬模塊(105)、注入對象跟蹤模塊(106)以及控制模塊(107),擴展下載儲存庫(108),其中 瀏覽器插樁模塊(101),通過將動態(tài)鏈接庫中的各鉤子函數(shù)插入到瀏覽器源代碼各擴展行為操作開始的位置以截獲不同的瀏覽器內(nèi)部擴展行為事件; 擴展下載模塊(102),用于將適合的Firefox擴展從Mozilla的官方網(wǎng)站下載到本地系統(tǒng),該模塊流程包括以下步驟訪問Mozilla,當監(jiān)測到有未訪問的擴展目錄時,進行擴展目錄訪問;當監(jiān)測到該擴展目錄中有未訪問的擴展時,訪問該擴展,獲得該擴展的元信息,判斷該元信息是否包含下載要求,對于滿足下載要求的擴展進行下載; 測試站點模塊(103),用于訪問被測站點并模擬瀏覽器用戶行為; 擴展信息提取模塊(104):用于識別瀏覽器界面元素中哪些是由待測擴展填加的,并將其位置信息傳遞給事件模擬模塊以觸發(fā)該元素上的事件; 事件模擬模塊(105):用于模擬被測瀏覽器操作的用戶行為以觸發(fā)擴展中相應(yīng)的事件處理,該模塊一方面接受來自擴展信息提取模塊的指令然后模擬用戶的相應(yīng)行為,另一方面為控制模塊提供關(guān)于瀏覽器窗口的相關(guān)信息; 注入對象跟蹤模塊(106),設(shè)置于在瀏覽器內(nèi)部,用于跟蹤、識別注入到網(wǎng)頁中的代碼,該模塊在擴展調(diào)用瀏覽器提供的方法時識別并記錄這一注入的路徑信息,然后通過這一信息確定該擴展行為間接地觸發(fā)了哪些其他的擴展行為; 以及控制模塊(107),用于連接系統(tǒng)中的其他模塊并協(xié)調(diào)整個測試過程,安裝/卸載擴展,啟動/關(guān)閉瀏覽器,配置/清除測試環(huán)境,協(xié)調(diào)整個測試過程,提供相關(guān)的機制確保系統(tǒng)穩(wěn)定運行。該模塊的控制流程包括以下步驟訪問擴展下載儲存庫108,對于儲存庫中未測試的擴展,在本地安裝擴展,配置測試環(huán)境,重啟瀏覽器,瀏覽器檢測并記錄擴展行為,清除測試環(huán)境,卸載該擴展。
2.如權(quán)利要求I所述的Firefox瀏覽器擴展行為自動檢測系統(tǒng),其特征在于,所述擴展行為包括直接行為和間接行為。
3.如權(quán)利要求I所述的Firefox瀏覽器擴展行為自動檢測系統(tǒng),其特征在于,所述瀏覽器內(nèi)部擴展行為事件包括三類事件瀏覽器接口的訪問、JavaScript函數(shù)的調(diào)用以及事件監(jiān)聽器的添加與刪除。
4.如權(quán)利要求I所述的Firefox瀏覽器擴展行為自動檢測系統(tǒng),其特征在于,配置測試環(huán)境,具體包括以下操作 提取關(guān)于擴展的信息,包括名稱、標識以及安裝路徑;然后將這些信息記錄到配置文件中以備瀏覽器在監(jiān)聽擴展行為時使用。
5.一種Firefox瀏覽器擴展行為自動檢測方法,其特征在于,該方法包括以下步驟 訪問Mozilla,監(jiān)測擴展目錄和擴展目錄中的擴展,訪問滿足要求的擴展,獲取擴展的元信息,并對滿足下載要求的擴展進行下載,存于擴展本地庫; 訪問擴展本地庫; 對于儲存庫中未測試的擴展,在本地安裝擴展; 配置測試環(huán)境;在開始檢測瀏覽器擴展行為之前重新啟動瀏覽器; 利用插樁在瀏覽器代碼中的鉤子函數(shù),截獲瀏覽器內(nèi)部擴展行為事件; 瀏覽器檢測并記錄擴展行為,清除測試環(huán)境,卸載該擴展。
6.如權(quán)利要求4所述的Firefox瀏覽器擴展行為自動檢測方法,其特征在于,該方法包括以下步驟所述擴展行為包括直接行為和間接行為。
7.如權(quán)利要求4所述的Firefox瀏覽器擴展行為自動檢測方法,其特征在于,所述瀏覽器內(nèi)部擴展行為事件包括三類事件瀏覽器接口的訪問、JavaScript函數(shù)的調(diào)用以及事件監(jiān)聽器的添加與刪除。
8.如權(quán)利要求4所述的Firefox瀏覽器擴展行為自動檢測方法,其特征在于,所述配置測試環(huán)境的步驟,具體包括以下操作 提取關(guān)于擴展的信息,包括名稱、標識以及安裝路徑;然后將這些信息記錄到配置文件中以備瀏覽器在監(jiān)聽擴展行為時使用。
全文摘要
本發(fā)明屬于軟件功能檢測技術(shù),公開了一種Firefox瀏覽器擴展行為自動檢測系統(tǒng),利用插樁的Firefox瀏覽器抽取擴展行該系統(tǒng)包括瀏覽器插樁模塊(101)、擴展下載模塊(102)、測試站點模塊(103)、擴展信息提取模塊(104)、事件模擬模塊(105)、注入對象跟蹤模塊(106)以及控制模塊(107),擴展下載儲存庫(108),與現(xiàn)有技術(shù)相比,本發(fā)明是為了能夠?qū)ΜF(xiàn)有瀏覽器擴展的行為有所了解,進而提出適當?shù)陌踩呗砸越档蜑g覽器擴展的使用風險,希望借此能夠讓用戶在應(yīng)用擴展時,在保證安全的前提下,擁有較大的自由度。為瀏覽器內(nèi)部擴展是否具有安全威脅提供有效的判斷依據(jù),也就是說,能夠在安全的基礎(chǔ)上充分發(fā)揮Firefox擁有強大擴展功能且人性化程度高的優(yōu)勢。
文檔編號G06F11/36GK102662840SQ20121009446
公開日2012年9月12日 申請日期2012年3月31日 優(yōu)先權(quán)日2012年3月31日
發(fā)明者張程偉, 木林, 李曉紅, 杜長霄, 王俊杰, 石紅 申請人:天津大學