孟永黨,蔡 軍,何 駿,紀(jì) 鋒
(1.裝備學(xué)院復(fù)雜電子系統(tǒng)仿真實(shí)驗(yàn)室,北京 101416;2.總裝備部后勤部,北京 100000)
一種基于AHP模型的瀏覽器漏洞分類方法*
孟永黨1,蔡 軍1,何 駿1,紀(jì) 鋒2
(1.裝備學(xué)院復(fù)雜電子系統(tǒng)仿真實(shí)驗(yàn)室,北京 101416;2.總裝備部后勤部,北京 100000)
通過對(duì)瀏覽器安全漏洞的形成原因和利用效果進(jìn)行分析,并利用層次分類模型,提出了一種基于AHP模型的瀏覽器安全漏洞分類方法。該方法從漏洞成因和攻擊效果兩個(gè)維度上對(duì)瀏覽器安全漏洞進(jìn)行分類,并把分類結(jié)果與CNNVD的分類方法的分類結(jié)果進(jìn)行了對(duì)比,結(jié)果表明本文的分類方法具有更好的適用性。
瀏覽器;漏洞;層次分類模型
隨著互聯(lián)網(wǎng)的普及,瀏覽器已經(jīng)成為人們?cè)L問互聯(lián)網(wǎng)的最主要工具,它牽涉到的用戶的利益也越來越多,因此瀏覽器安全近年來一直備受關(guān)注;而隨著瀏覽器代碼規(guī)模的增大,其暴露出的漏洞也越來越多。對(duì)瀏覽器安全漏洞進(jìn)行分類,并對(duì)不同的安全漏洞進(jìn)行區(qū)分,有助于我們了解瀏覽器安全漏洞的本質(zhì)特征,并能在瀏覽器安全防護(hù)的過程中給我們提供有用的參考信息,以便于對(duì)未來可能出現(xiàn)的瀏覽器安全問題做好預(yù)防工作。
從20世紀(jì)70年代RISOS(Research Into Secure Operating System)項(xiàng)目[1]開始,業(yè)界從未停止過對(duì)操作系統(tǒng)和應(yīng)用程序漏洞分類的研究,相繼出現(xiàn)了Landwehr分類法[2]、Aslam分類法[3]、Bishop分類法[4]等許多經(jīng)典的漏洞分類方法。本文對(duì)漏洞信息庫CVE(Common Vulnerability and Exposures)和中國國家信息安全漏洞庫CNNVD(China National Vulnerability Database of Information Security)兩個(gè)安全組織的漏洞分類方法的規(guī)則和特點(diǎn)進(jìn)行了分析,并結(jié)合對(duì)瀏覽器安全漏洞特征的分析,提出了一種基于層次分類法AHP(Analytic Hierarchy Process)結(jié)構(gòu)的瀏覽器安全漏洞分類方法。
2.1 CVE安全漏洞庫的分類方法
截至2014年1月1日,CVE安全漏洞庫列表[5]里共收錄了60 718項(xiàng)漏洞條目,并把這些漏洞劃分為XSS(跨站腳本)、SQL-Inject(SQL注入)、buffer overflow(緩沖區(qū)溢出)、information leak(信息泄露)、memory leak(內(nèi)存泄露)、spoof(欺騙)、design error(設(shè)計(jì)錯(cuò)誤)、double free(雙重釋放)等37個(gè)主要漏洞類型。
假設(shè)S1和S2是兩個(gè)不同的漏洞,那么對(duì)它們的分類要遵循以下四條分類規(guī)則[6]:(1)如果S1和S2的屬性特征不同,則把它們分到不同的類別中;如果一個(gè)漏洞的屬性特征已知,另一個(gè)未知,則把它們分到不同的類別中;如果兩個(gè)漏洞的屬性特征都未知,則它們將被同等對(duì)待。(2)如果S1和S2的屬性特征相同,但是它們的存在范圍不同,則把它們分到不同的類別中。(3)如果S1和S2的屬性特征相同,并且其存在范圍也相同,則把它們合并到相同的類別中。(4)如果S1和S2由同樣的核心代碼引起,但是他們分屬不同的軟件類型,則應(yīng)該以其核心代碼為分類的主要依據(jù)。
CVE安全組織為每個(gè)收錄在其漏洞列表里的漏洞命名、編號(hào),同時(shí)提供標(biāo)準(zhǔn)化的描述,并按照以上四條規(guī)則把漏洞劃分到不同的類別中,為安全工作人員進(jìn)行漏洞挖掘和防護(hù)等工作提供參考,極大地提高了其工作效率。但是,該分類方法在對(duì)漏洞進(jìn)行分類時(shí)所依據(jù)的漏洞的屬性特征比較雜亂,并沒有對(duì)漏洞的這些屬性特征進(jìn)行歸納,且其完備性也不高,有些漏洞不能使用該方法進(jìn)行分類。
2.2 CNNVD安全漏洞庫的分類方法
CNNVD安全漏洞庫[7]主要把其漏洞列表里的安全漏洞分為緩沖區(qū)溢出、SQL注入、路徑遍歷、跨站腳本、資源管理錯(cuò)誤、授權(quán)問題、配置錯(cuò)誤、輸入驗(yàn)證、信息泄露、加密問題等類別,其分類方法主要是依據(jù)漏洞的形成原因或者攻擊效果。
CNNVD對(duì)信息系統(tǒng)和應(yīng)用程序安全漏洞進(jìn)行分類,并提供漏洞的基本描述和補(bǔ)丁信息,可以為安全工作者進(jìn)行漏洞分析以及對(duì)軟件進(jìn)行風(fēng)險(xiǎn)評(píng)估提供支持,并為信息系統(tǒng)提供安全保障。但是,CNNVD的分類方法是不完備的,在其漏洞列表中,有20%以上的漏洞不能使用該分類方法進(jìn)行分類,如圖1所示。此外,漏洞數(shù)據(jù)庫需要從多個(gè)層面對(duì)漏洞進(jìn)行描述,因此從多個(gè)層面對(duì)漏洞進(jìn)行分類在建立漏洞庫時(shí)也是很有必要的。CNNVD雖然考慮了漏洞的成因和攻擊效果等方面的因素,但是在具體分類時(shí)卻沒有加以區(qū)分。比如“CNNVD-201309-304”,從漏洞成因上講,它是一個(gè)資源管理錯(cuò)誤類型的漏洞,但是從利用效果來看,它也可以歸類為信息泄露漏洞,而CNNVD僅把它歸類為資源管理錯(cuò)誤漏洞。
Figure 1 CNNVD vulnerability classification圖1 CNNVD漏洞分類統(tǒng)計(jì)
3.1 瀏覽器安全漏洞的層次分類模型
由于瀏覽器安全漏洞的成因紛繁復(fù)雜,并且其利用的后果也不盡相同,因此如何盡可能地對(duì)每個(gè)瀏覽器安全漏洞進(jìn)行合理的歸類是一項(xiàng)復(fù)雜而困難的工作。而漏洞分類的目的是為了方便研究人員對(duì)漏洞進(jìn)行分析以及進(jìn)行風(fēng)險(xiǎn)評(píng)估,這就要求在分類時(shí)要盡可能考慮漏洞的各種屬性特征,因此可以針對(duì)漏洞的不同屬性特征,從不同的維度對(duì)瀏覽器安全漏洞進(jìn)行層次分析和歸類,建立基于層次分類模型的分類方法。
層次分析法AHP是對(duì)一些較為復(fù)雜和模糊的問題做出決策的簡(jiǎn)易方法,它主要用于分析決策領(lǐng)域,解決一些難于完全定量分析的問題。利用層次分析模型(AHP模型),對(duì)于不同的層次,利用不同的屬性特征(即從不同的維度)對(duì)漏洞分類,建立瀏覽器安全漏洞的層次分類模型。這樣分類一方面可以從分類結(jié)果中直觀地看出漏洞的成因、利用后果等屬性特征;另一方面可以方便我們使用層次分析方法對(duì)瀏覽器安全進(jìn)行量化評(píng)估和分析[8]。如圖2中的瀏覽器安全漏洞層次分類模型所示,對(duì)于一個(gè)瀏覽器安全漏洞,我們分別從形成原因和攻擊效果兩個(gè)維度上對(duì)它進(jìn)行層次歸類,可以直觀地顯示出其形成原因和被利用之后的后果兩類屬性特征。
Figure 2 Hierarchical Classification model of browser vulnerability圖2 瀏覽器安全漏洞層次分類模型
3.2 漏洞分類結(jié)果描述
瀏覽器安全漏洞層次分類模型主要從兩個(gè)維度上對(duì)瀏覽器安全漏洞進(jìn)行分類,分別依據(jù)瀏覽器安全漏洞的形成原因和攻擊效果兩個(gè)特征屬性對(duì)瀏覽器安全漏洞進(jìn)行層次分類。下面對(duì)這兩個(gè)維度分類中的部分主要漏洞類型進(jìn)行描述和分析。
3.2.1 基于成因的漏洞分類
依據(jù)瀏覽器安全漏洞的成因,從較高的抽象層次上把瀏覽器分為輸入驗(yàn)證錯(cuò)誤、訪問驗(yàn)證錯(cuò)誤、代碼質(zhì)量問題、設(shè)計(jì)和配置錯(cuò)誤等類型;從漏洞的直接成因等較低的層次上又可以對(duì)這幾類漏洞進(jìn)行更加細(xì)致的分類。下面從漏洞成因角度對(duì)幾個(gè)主要的瀏覽器安全漏洞類型進(jìn)行描述分析。
(1)緩沖區(qū)溢出漏洞。
當(dāng)程序試圖向一段緩沖區(qū)寫入長度超過緩沖區(qū)大小的數(shù)據(jù)時(shí)就會(huì)出現(xiàn)緩沖區(qū)溢出,相應(yīng)的這類漏洞稱為緩沖區(qū)溢出漏洞。在代碼層面上,緩沖區(qū)溢出漏洞通常包括兩種情況,一種是程序違反了程序員的假設(shè),另一種是程序使用了危險(xiǎn)函數(shù)(如strcpy()等),而這些函數(shù)沒有對(duì)輸入的數(shù)據(jù)進(jìn)行邊界檢查。緩沖區(qū)溢出漏洞可以導(dǎo)致內(nèi)存中的其他數(shù)據(jù)被覆蓋、程序崩潰或者惡意代碼執(zhí)行。
(2)代碼注入漏洞。
代碼注入是指在應(yīng)用程序不可預(yù)知的情況下,使用某種方法把攻擊者的代碼導(dǎo)入到一些特定的應(yīng)用程序中,以改變程序的運(yùn)行進(jìn)程或者目的。代碼注入會(huì)導(dǎo)致用戶信息泄露、敏感信息丟失甚至讓攻擊者獲取機(jī)器的控制權(quán),它包括SQL注入漏洞、跨站腳本漏洞等漏洞類型。例如,把“〈script〉alert (‘XSS’);〈/script〉”插入到用戶的請(qǐng)求中時(shí)(如:http://testapp.com/test.php?input=〈script〉alert(‘XSS’);〈/script〉),如果目標(biāo)Web服務(wù)器對(duì)用戶的輸入不做加工就返回頁面的話,當(dāng)瀏覽器對(duì)返回的頁面進(jìn)行解析時(shí),發(fā)現(xiàn)“〈script〉alert(‘XS S’);〈/script〉”是腳本命令,因此會(huì)把其當(dāng)作腳本命令解析而后執(zhí)行,即彈出警告對(duì)話框,而如果在請(qǐng)求中被插入的是惡意代碼的話,惡意代碼將會(huì)被執(zhí)行,這可能會(huì)導(dǎo)致用戶信息泄露等危害。
(3)訪問控制繞過漏洞。
為了防止受保護(hù)的資源被非法訪問,同時(shí)保證合法用戶的訪問權(quán)限,網(wǎng)絡(luò)系統(tǒng)一般都實(shí)現(xiàn)了訪問控制策略。但是,當(dāng)訪問控制的設(shè)計(jì)存在某些可利用的邏輯錯(cuò)誤時(shí),就有可能被攻擊者利用,繞過訪問控制策略。訪問控制繞過漏洞可能導(dǎo)致攻擊者的權(quán)限提升,使攻擊者可以訪問受保護(hù)的資源或者進(jìn)行其他惡意操作。此外,訪問控制繞過漏洞的危害不僅僅在于其自身的危害,它還可能大大增加其他相關(guān)漏洞的嚴(yán)重性。
(4)釋放后使用漏洞。
當(dāng)程序繼續(xù)引用已經(jīng)被釋放掉的內(nèi)存時(shí),就會(huì)出現(xiàn)釋放后使用錯(cuò)誤,相應(yīng)的程序漏洞稱為釋放后使用漏洞。當(dāng)系統(tǒng)重新使用釋放之后的內(nèi)存時(shí),在某些情況下,被釋放后的內(nèi)存可能已經(jīng)被合法地重新分配給其他的指針,這時(shí)候指向釋放過的這段內(nèi)存的源指針被重新使用,并且指向被重新分配的內(nèi)存的某處,由于此時(shí)數(shù)據(jù)已經(jīng)被改變了,因此它就可能會(huì)破壞合法的內(nèi)存。此外,在某些情況下,比如由于空間不足而無法處理剩余的輸入數(shù)據(jù)時(shí),瀏覽器可能會(huì)釋放正在被使用的內(nèi)存,在這種情況下,使用中的對(duì)象所占據(jù)的內(nèi)存釋放后可能被攻擊者控制的內(nèi)容填充,再次調(diào)用被釋放的對(duì)象時(shí)就可能導(dǎo)致執(zhí)行任意代碼。
(5)路徑遍歷漏洞。
當(dāng)用戶通過瀏覽器向服務(wù)器發(fā)出文件讀取請(qǐng)求時(shí),常常使用在URL中向服務(wù)器提交的參數(shù)來指明請(qǐng)求的文件的文件名,如:“http://www.xxxxxx.com/getfile=image.jpg”。當(dāng)服務(wù)器處理傳送過來的image.jpg文件名后,就會(huì)自動(dòng)添加完整路徑,形如“d://site/images/image.jpg”,將讀取的內(nèi)容返回給用戶。但是,如果攻擊者利用服務(wù)器的這種特性,比如使用 “~/”、“/..”等特殊符號(hào)進(jìn)行目錄跳轉(zhuǎn)回溯的話,就可以越權(quán)訪問或者覆蓋掉服務(wù)器的敏感數(shù)據(jù)(如網(wǎng)站的配置文件、系統(tǒng)的核心文件等),這樣的缺陷被命名為路徑遍歷漏洞。
3.2.2 基于攻擊效果的漏洞分類
根據(jù)攻擊者對(duì)漏洞的利用效果(即對(duì)攻擊目標(biāo)造成的危害和影響)把瀏覽器安全漏洞主要分為惡意代碼執(zhí)行漏洞、信息泄露漏洞和拒絕服務(wù)漏洞。
(1)惡意代碼執(zhí)行漏洞。
由于開發(fā)人員在編寫源碼時(shí)沒有針對(duì)代碼中可執(zhí)行的特殊函數(shù)接口進(jìn)行過濾操作,在用戶向?yàn)g覽器提交執(zhí)行命令時(shí),會(huì)導(dǎo)致瀏覽器在沒有指定絕對(duì)路徑的情況下就執(zhí)行命令,可能會(huì)允許攻擊者通過改變MYMPATH或程序執(zhí)行的環(huán)境來執(zhí)行一個(gè)惡意構(gòu)造的代碼,這樣的漏洞稱為惡意代碼執(zhí)行漏洞。
(2)信息泄露漏洞。
當(dāng)系統(tǒng)數(shù)據(jù)或者調(diào)試信息通過輸出流或者日志函數(shù)泄露出去時(shí),就會(huì)發(fā)生信息泄露,相關(guān)的漏洞成為信息泄露漏洞。敏感信息可能會(huì)通過以下幾個(gè)途徑意外泄露給攻擊者:
①通過查詢統(tǒng)計(jì)資料,攻擊者可能會(huì)發(fā)現(xiàn)一些敏感信息;
②利用服務(wù)器提供的錯(cuò)誤信息,攻擊者可能在發(fā)起再一次的攻擊時(shí)獲取到敏感信息;
③通過標(biāo)準(zhǔn)數(shù)據(jù)通道傳遞敏感數(shù)據(jù)時(shí),可能會(huì)造成敏感信息意外泄露;
④當(dāng)程序沒有成功地捕獲所有異常信息時(shí),調(diào)試信息可能會(huì)泄露給攻擊者,并被用來組織一次攻擊。
(3)拒絕服務(wù)漏洞。
攻擊者利用拒絕服務(wù)漏洞,可以對(duì)系統(tǒng)發(fā)起拒絕服務(wù)攻擊(即DOS攻擊),使系統(tǒng)或相關(guān)的應(yīng)用程序耗盡資源,從而導(dǎo)致程序崩潰或者失去響應(yīng)能力。這類漏洞的出現(xiàn)通常是因?yàn)橄到y(tǒng)或應(yīng)用程序本身有缺陷或者對(duì)錯(cuò)誤處理不當(dāng)造成的。
為了評(píng)估瀏覽器安全漏洞分類方法的應(yīng)用效果,使用該方法對(duì)實(shí)際的瀏覽器安全漏洞進(jìn)行了分類驗(yàn)證。例如漏洞CNNVD-200606-050和CNNVD-200606-051,它們是“Mozilla Firefox”產(chǎn)品的兩個(gè)漏洞,它們?cè)贑NNVD中的分類和在本文分類方法中的分類結(jié)果比較如表1所示。
Table 1 Comparison 1 of classification results betweenCNNVD and the proposed method表1 CNNVD和本文分類方法的分類結(jié)果比較1
從表1中可以看出,與CNNVD的分類方法不同的是,本文的分類方法分別從漏洞形成的具體原因及其利用后的攻擊效果兩個(gè)維度對(duì)漏洞進(jìn)行分類,這樣分類使其形成原因和帶來的影響更加直觀地呈現(xiàn)出來。此外,對(duì)有些漏洞(比如表1中的“CNNVD-200606-051”),CNNVD的分類方法不能對(duì)其進(jìn)行具體分類,本文從漏洞的具體形成原因和其利用效果可以對(duì)其進(jìn)行歸納分類(對(duì)“CNNVD-200606-051”,本文分別從兩個(gè)維度把它歸類為輸入驗(yàn)證漏洞和信息泄露漏洞)。
此外,如表2所示,本文從CNNVD漏洞數(shù)據(jù)庫中隨機(jī)選取了285個(gè)瀏覽器安全漏洞,使用本文的漏洞分類方法對(duì)其進(jìn)行了分類,并和CNNVD的分類結(jié)果進(jìn)行了對(duì)比,發(fā)現(xiàn)CNNVD對(duì)這285個(gè)漏洞中的49個(gè)不能進(jìn)行有效的分類,其比例占17.2%;而本文的分類方法僅有16個(gè)漏洞未能有效分類,其比例僅占5.6%,比CNNVD分類方法的比例較低。因此,本文分類方法的適用性較好。
Table 2 Comparison 2 of classification results betweenCNNVD and the proposed method表2 兩種分類方法的分類結(jié)果對(duì)比2
本文借助AHP模型,從漏洞的形成原因和漏洞利用之后的攻擊效果兩個(gè)維度對(duì)瀏覽器安全漏洞進(jìn)行了分析,提出了一種基于AHP模型的瀏覽器安全漏洞分類方法。使用該方法對(duì)從CNNVD漏洞庫中隨機(jī)提取的285個(gè)瀏覽器安全漏洞進(jìn)行了分類,并與CNNVD的分類結(jié)果進(jìn)行了對(duì)比,結(jié)果顯示該分類方法在適用性上比CNNVD的分類方法好,具有較高的應(yīng)用價(jià)值。
[1] Abbott R P,Chin J S, Donnelley J E, et al. Security analysis and enhancements of computer operating system[R]. NBSIR 76-1041, Institute for Computer Sciences and Technology, National Bureau of Standards, 1976.
[2] Landwher C E, Bull A R, McDermott J P, et al. A taxonomy of computer program security flaws[J]. ACM Computing Surveys,1994, 26(3):211-254.
[3] Aslam T,Krsul I,Spafford E. Use of a taxonomy of security [C]∥Proc of the 19th NCSC National Information Systems Security Conference, 1996:1.
[4] Bishop M. A taxonomy of Unix system and network vulnerabilities [R]. Technical Report 95-10, Davis:Department of Computer Science, University of California, 1995.
[5] Common vulnerabilities and eExposures(CVE)[EB/OL].[2014-04-10]. http://www.cve.mitre.org/.
[6] Christey S M.CVE abstraction content decisions:Rationale and application[EB/OL].[2014-04-10]. http://www.cve.mitre. org/cve/editorial_policies/cd_abstraction.html#big_four.
[7] China Information Technology Security Evaluation Center.China national vulnerability database of information security[EB/OL].[2014-04-10].http://www.cnnvd.org.cn/.(in Chinese)
[8] Du Jing-nong,Lu Yan-sheng.Taxonomy of web-based application vulnerabilities[J].Computer Engineering and Applications,2009,45(25):10-14.(in Chinese)
附中文參考文獻(xiàn):
[7] 中國信息安全測(cè)評(píng)中心.China national vulnerability database of information security[EB/OL].[2014-04-10].http://www.cnnvd.org.cn/.
[8] 杜經(jīng)農(nóng),盧炎生.一種Web軟件安全漏洞分類方法[J].計(jì)算機(jī)工程與應(yīng)用,2009,45(25):10-14.
MENGYong-dang,born in 1989,MS candidate,his research interest includes software vulnerability analysis.
蔡軍(1982),男,湖北天門人,博士生,CCF會(huì)員(E200040476G),研究方向?yàn)槟嫦蚬こ膛c軟件漏洞分析。E-mail:cjgfkd@163.com
CAIJun,born in 1982,PhD candidate,CCF member(E200040476G),his research interests include reverse engineering, and software vulnerability analysis.
何駿(1959),男,北京人,教授,研究方向?yàn)樾畔踩?。E-mail:sky35028123@gmail.com
HEJun,born in 1959,professor,his research interest includes information security.
紀(jì)鋒(1978),男,北京人,碩士,研究方向?yàn)樾畔踩-mail:80852542@qq.com
JIFeng,born in 1978,MS,his research interests include information security.
AnAHP-basedbrowservulnerabilitytaxonomy
MENG Yong-dang1,CAI Jun1,HE Jun1,JI Feng2
(1.Key Laboratory of Science and Technology for National Defense,Academy of Equipment,Beijing 101416;2.Logistics Department,General Armament Department,Beijing 100000,China)
Through analyzing the causes and effects of the browser vulnerabilities, we propose an AHP-based browser vulnerability taxonomy using the Analytic Hierarchy Process (AHP).According to the causes and attack effects of vulnerabilities,this taxonomy classifies the browser vulnerabilities,and compares the classification results with that of the CNNVD taxonomy.The results reveal that the applicability of the proposal is better.
browser;vulnerability;Analytic Hierarchy Process (AHP)
1007-130X(2014)11-2137-05
2014-06-15;
:2014-08-20
國家863計(jì)劃資助項(xiàng)目(2012AA012902)
TP393.08
:A
10.3969/j.issn.1007-130X.2014.11.014
孟永黨(1989),男,河南周口人,碩士生,研究方向?yàn)檐浖┒捶治觥-mail:Zhangdouji.2008@163.com
通信地址:101416 北京市懷柔區(qū)裝備學(xué)院復(fù)雜電子系統(tǒng)仿真實(shí)驗(yàn)室
Address:Key Laboratory of Science and Technology for National Defense,Academy of Equipment,Huairou District,Beijing 101416,P.R.China