孟永黨,蔡 軍,何 駿,紀 鋒
(1.裝備學院復雜電子系統(tǒng)仿真實驗室,北京 101416;2.總裝備部后勤部,北京 100000)
一種基于AHP模型的瀏覽器漏洞分類方法*
孟永黨1,蔡 軍1,何 駿1,紀 鋒2
(1.裝備學院復雜電子系統(tǒng)仿真實驗室,北京 101416;2.總裝備部后勤部,北京 100000)
通過對瀏覽器安全漏洞的形成原因和利用效果進行分析,并利用層次分類模型,提出了一種基于AHP模型的瀏覽器安全漏洞分類方法。該方法從漏洞成因和攻擊效果兩個維度上對瀏覽器安全漏洞進行分類,并把分類結果與CNNVD的分類方法的分類結果進行了對比,結果表明本文的分類方法具有更好的適用性。
瀏覽器;漏洞;層次分類模型
隨著互聯(lián)網的普及,瀏覽器已經成為人們訪問互聯(lián)網的最主要工具,它牽涉到的用戶的利益也越來越多,因此瀏覽器安全近年來一直備受關注;而隨著瀏覽器代碼規(guī)模的增大,其暴露出的漏洞也越來越多。對瀏覽器安全漏洞進行分類,并對不同的安全漏洞進行區(qū)分,有助于我們了解瀏覽器安全漏洞的本質特征,并能在瀏覽器安全防護的過程中給我們提供有用的參考信息,以便于對未來可能出現(xiàn)的瀏覽器安全問題做好預防工作。
從20世紀70年代RISOS(Research Into Secure Operating System)項目[1]開始,業(yè)界從未停止過對操作系統(tǒng)和應用程序漏洞分類的研究,相繼出現(xiàn)了Landwehr分類法[2]、Aslam分類法[3]、Bishop分類法[4]等許多經典的漏洞分類方法。本文對漏洞信息庫CVE(Common Vulnerability and Exposures)和中國國家信息安全漏洞庫CNNVD(China National Vulnerability Database of Information Security)兩個安全組織的漏洞分類方法的規(guī)則和特點進行了分析,并結合對瀏覽器安全漏洞特征的分析,提出了一種基于層次分類法AHP(Analytic Hierarchy Process)結構的瀏覽器安全漏洞分類方法。
2.1 CVE安全漏洞庫的分類方法
截至2014年1月1日,CVE安全漏洞庫列表[5]里共收錄了60 718項漏洞條目,并把這些漏洞劃分為XSS(跨站腳本)、SQL-Inject(SQL注入)、buffer overflow(緩沖區(qū)溢出)、information leak(信息泄露)、memory leak(內存泄露)、spoof(欺騙)、design error(設計錯誤)、double free(雙重釋放)等37個主要漏洞類型。
假設S1和S2是兩個不同的漏洞,那么對它們的分類要遵循以下四條分類規(guī)則[6]:(1)如果S1和S2的屬性特征不同,則把它們分到不同的類別中;如果一個漏洞的屬性特征已知,另一個未知,則把它們分到不同的類別中;如果兩個漏洞的屬性特征都未知,則它們將被同等對待。(2)如果S1和S2的屬性特征相同,但是它們的存在范圍不同,則把它們分到不同的類別中。(3)如果S1和S2的屬性特征相同,并且其存在范圍也相同,則把它們合并到相同的類別中。(4)如果S1和S2由同樣的核心代碼引起,但是他們分屬不同的軟件類型,則應該以其核心代碼為分類的主要依據。
CVE安全組織為每個收錄在其漏洞列表里的漏洞命名、編號,同時提供標準化的描述,并按照以上四條規(guī)則把漏洞劃分到不同的類別中,為安全工作人員進行漏洞挖掘和防護等工作提供參考,極大地提高了其工作效率。但是,該分類方法在對漏洞進行分類時所依據的漏洞的屬性特征比較雜亂,并沒有對漏洞的這些屬性特征進行歸納,且其完備性也不高,有些漏洞不能使用該方法進行分類。
2.2 CNNVD安全漏洞庫的分類方法
CNNVD安全漏洞庫[7]主要把其漏洞列表里的安全漏洞分為緩沖區(qū)溢出、SQL注入、路徑遍歷、跨站腳本、資源管理錯誤、授權問題、配置錯誤、輸入驗證、信息泄露、加密問題等類別,其分類方法主要是依據漏洞的形成原因或者攻擊效果。
CNNVD對信息系統(tǒng)和應用程序安全漏洞進行分類,并提供漏洞的基本描述和補丁信息,可以為安全工作者進行漏洞分析以及對軟件進行風險評估提供支持,并為信息系統(tǒng)提供安全保障。但是,CNNVD的分類方法是不完備的,在其漏洞列表中,有20%以上的漏洞不能使用該分類方法進行分類,如圖1所示。此外,漏洞數(shù)據庫需要從多個層面對漏洞進行描述,因此從多個層面對漏洞進行分類在建立漏洞庫時也是很有必要的。CNNVD雖然考慮了漏洞的成因和攻擊效果等方面的因素,但是在具體分類時卻沒有加以區(qū)分。比如“CNNVD-201309-304”,從漏洞成因上講,它是一個資源管理錯誤類型的漏洞,但是從利用效果來看,它也可以歸類為信息泄露漏洞,而CNNVD僅把它歸類為資源管理錯誤漏洞。
Figure 1 CNNVD vulnerability classification圖1 CNNVD漏洞分類統(tǒng)計
3.1 瀏覽器安全漏洞的層次分類模型
由于瀏覽器安全漏洞的成因紛繁復雜,并且其利用的后果也不盡相同,因此如何盡可能地對每個瀏覽器安全漏洞進行合理的歸類是一項復雜而困難的工作。而漏洞分類的目的是為了方便研究人員對漏洞進行分析以及進行風險評估,這就要求在分類時要盡可能考慮漏洞的各種屬性特征,因此可以針對漏洞的不同屬性特征,從不同的維度對瀏覽器安全漏洞進行層次分析和歸類,建立基于層次分類模型的分類方法。
層次分析法AHP是對一些較為復雜和模糊的問題做出決策的簡易方法,它主要用于分析決策領域,解決一些難于完全定量分析的問題。利用層次分析模型(AHP模型),對于不同的層次,利用不同的屬性特征(即從不同的維度)對漏洞分類,建立瀏覽器安全漏洞的層次分類模型。這樣分類一方面可以從分類結果中直觀地看出漏洞的成因、利用后果等屬性特征;另一方面可以方便我們使用層次分析方法對瀏覽器安全進行量化評估和分析[8]。如圖2中的瀏覽器安全漏洞層次分類模型所示,對于一個瀏覽器安全漏洞,我們分別從形成原因和攻擊效果兩個維度上對它進行層次歸類,可以直觀地顯示出其形成原因和被利用之后的后果兩類屬性特征。
Figure 2 Hierarchical Classification model of browser vulnerability圖2 瀏覽器安全漏洞層次分類模型
3.2 漏洞分類結果描述
瀏覽器安全漏洞層次分類模型主要從兩個維度上對瀏覽器安全漏洞進行分類,分別依據瀏覽器安全漏洞的形成原因和攻擊效果兩個特征屬性對瀏覽器安全漏洞進行層次分類。下面對這兩個維度分類中的部分主要漏洞類型進行描述和分析。
3.2.1 基于成因的漏洞分類
依據瀏覽器安全漏洞的成因,從較高的抽象層次上把瀏覽器分為輸入驗證錯誤、訪問驗證錯誤、代碼質量問題、設計和配置錯誤等類型;從漏洞的直接成因等較低的層次上又可以對這幾類漏洞進行更加細致的分類。下面從漏洞成因角度對幾個主要的瀏覽器安全漏洞類型進行描述分析。
(1)緩沖區(qū)溢出漏洞。
當程序試圖向一段緩沖區(qū)寫入長度超過緩沖區(qū)大小的數(shù)據時就會出現(xiàn)緩沖區(qū)溢出,相應的這類漏洞稱為緩沖區(qū)溢出漏洞。在代碼層面上,緩沖區(qū)溢出漏洞通常包括兩種情況,一種是程序違反了程序員的假設,另一種是程序使用了危險函數(shù)(如strcpy()等),而這些函數(shù)沒有對輸入的數(shù)據進行邊界檢查。緩沖區(qū)溢出漏洞可以導致內存中的其他數(shù)據被覆蓋、程序崩潰或者惡意代碼執(zhí)行。
(2)代碼注入漏洞。
代碼注入是指在應用程序不可預知的情況下,使用某種方法把攻擊者的代碼導入到一些特定的應用程序中,以改變程序的運行進程或者目的。代碼注入會導致用戶信息泄露、敏感信息丟失甚至讓攻擊者獲取機器的控制權,它包括SQL注入漏洞、跨站腳本漏洞等漏洞類型。例如,把“〈script〉alert (‘XSS’);〈/script〉”插入到用戶的請求中時(如:http://testapp.com/test.php?input=〈script〉alert(‘XSS’);〈/script〉),如果目標Web服務器對用戶的輸入不做加工就返回頁面的話,當瀏覽器對返回的頁面進行解析時,發(fā)現(xiàn)“〈script〉alert(‘XS S’);〈/script〉”是腳本命令,因此會把其當作腳本命令解析而后執(zhí)行,即彈出警告對話框,而如果在請求中被插入的是惡意代碼的話,惡意代碼將會被執(zhí)行,這可能會導致用戶信息泄露等危害。
(3)訪問控制繞過漏洞。
為了防止受保護的資源被非法訪問,同時保證合法用戶的訪問權限,網絡系統(tǒng)一般都實現(xiàn)了訪問控制策略。但是,當訪問控制的設計存在某些可利用的邏輯錯誤時,就有可能被攻擊者利用,繞過訪問控制策略。訪問控制繞過漏洞可能導致攻擊者的權限提升,使攻擊者可以訪問受保護的資源或者進行其他惡意操作。此外,訪問控制繞過漏洞的危害不僅僅在于其自身的危害,它還可能大大增加其他相關漏洞的嚴重性。
(4)釋放后使用漏洞。
當程序繼續(xù)引用已經被釋放掉的內存時,就會出現(xiàn)釋放后使用錯誤,相應的程序漏洞稱為釋放后使用漏洞。當系統(tǒng)重新使用釋放之后的內存時,在某些情況下,被釋放后的內存可能已經被合法地重新分配給其他的指針,這時候指向釋放過的這段內存的源指針被重新使用,并且指向被重新分配的內存的某處,由于此時數(shù)據已經被改變了,因此它就可能會破壞合法的內存。此外,在某些情況下,比如由于空間不足而無法處理剩余的輸入數(shù)據時,瀏覽器可能會釋放正在被使用的內存,在這種情況下,使用中的對象所占據的內存釋放后可能被攻擊者控制的內容填充,再次調用被釋放的對象時就可能導致執(zhí)行任意代碼。
(5)路徑遍歷漏洞。
當用戶通過瀏覽器向服務器發(fā)出文件讀取請求時,常常使用在URL中向服務器提交的參數(shù)來指明請求的文件的文件名,如:“http://www.xxxxxx.com/getfile=image.jpg”。當服務器處理傳送過來的image.jpg文件名后,就會自動添加完整路徑,形如“d://site/images/image.jpg”,將讀取的內容返回給用戶。但是,如果攻擊者利用服務器的這種特性,比如使用 “~/”、“/..”等特殊符號進行目錄跳轉回溯的話,就可以越權訪問或者覆蓋掉服務器的敏感數(shù)據(如網站的配置文件、系統(tǒng)的核心文件等),這樣的缺陷被命名為路徑遍歷漏洞。
3.2.2 基于攻擊效果的漏洞分類
根據攻擊者對漏洞的利用效果(即對攻擊目標造成的危害和影響)把瀏覽器安全漏洞主要分為惡意代碼執(zhí)行漏洞、信息泄露漏洞和拒絕服務漏洞。
(1)惡意代碼執(zhí)行漏洞。
由于開發(fā)人員在編寫源碼時沒有針對代碼中可執(zhí)行的特殊函數(shù)接口進行過濾操作,在用戶向瀏覽器提交執(zhí)行命令時,會導致瀏覽器在沒有指定絕對路徑的情況下就執(zhí)行命令,可能會允許攻擊者通過改變MYMPATH或程序執(zhí)行的環(huán)境來執(zhí)行一個惡意構造的代碼,這樣的漏洞稱為惡意代碼執(zhí)行漏洞。
(2)信息泄露漏洞。
當系統(tǒng)數(shù)據或者調試信息通過輸出流或者日志函數(shù)泄露出去時,就會發(fā)生信息泄露,相關的漏洞成為信息泄露漏洞。敏感信息可能會通過以下幾個途徑意外泄露給攻擊者:
①通過查詢統(tǒng)計資料,攻擊者可能會發(fā)現(xiàn)一些敏感信息;
②利用服務器提供的錯誤信息,攻擊者可能在發(fā)起再一次的攻擊時獲取到敏感信息;
③通過標準數(shù)據通道傳遞敏感數(shù)據時,可能會造成敏感信息意外泄露;
④當程序沒有成功地捕獲所有異常信息時,調試信息可能會泄露給攻擊者,并被用來組織一次攻擊。
(3)拒絕服務漏洞。
攻擊者利用拒絕服務漏洞,可以對系統(tǒng)發(fā)起拒絕服務攻擊(即DOS攻擊),使系統(tǒng)或相關的應用程序耗盡資源,從而導致程序崩潰或者失去響應能力。這類漏洞的出現(xiàn)通常是因為系統(tǒng)或應用程序本身有缺陷或者對錯誤處理不當造成的。
為了評估瀏覽器安全漏洞分類方法的應用效果,使用該方法對實際的瀏覽器安全漏洞進行了分類驗證。例如漏洞CNNVD-200606-050和CNNVD-200606-051,它們是“Mozilla Firefox”產品的兩個漏洞,它們在CNNVD中的分類和在本文分類方法中的分類結果比較如表1所示。
Table 1 Comparison 1 of classification results betweenCNNVD and the proposed method表1 CNNVD和本文分類方法的分類結果比較1
從表1中可以看出,與CNNVD的分類方法不同的是,本文的分類方法分別從漏洞形成的具體原因及其利用后的攻擊效果兩個維度對漏洞進行分類,這樣分類使其形成原因和帶來的影響更加直觀地呈現(xiàn)出來。此外,對有些漏洞(比如表1中的“CNNVD-200606-051”),CNNVD的分類方法不能對其進行具體分類,本文從漏洞的具體形成原因和其利用效果可以對其進行歸納分類(對“CNNVD-200606-051”,本文分別從兩個維度把它歸類為輸入驗證漏洞和信息泄露漏洞)。
此外,如表2所示,本文從CNNVD漏洞數(shù)據庫中隨機選取了285個瀏覽器安全漏洞,使用本文的漏洞分類方法對其進行了分類,并和CNNVD的分類結果進行了對比,發(fā)現(xiàn)CNNVD對這285個漏洞中的49個不能進行有效的分類,其比例占17.2%;而本文的分類方法僅有16個漏洞未能有效分類,其比例僅占5.6%,比CNNVD分類方法的比例較低。因此,本文分類方法的適用性較好。
Table 2 Comparison 2 of classification results betweenCNNVD and the proposed method表2 兩種分類方法的分類結果對比2
本文借助AHP模型,從漏洞的形成原因和漏洞利用之后的攻擊效果兩個維度對瀏覽器安全漏洞進行了分析,提出了一種基于AHP模型的瀏覽器安全漏洞分類方法。使用該方法對從CNNVD漏洞庫中隨機提取的285個瀏覽器安全漏洞進行了分類,并與CNNVD的分類結果進行了對比,結果顯示該分類方法在適用性上比CNNVD的分類方法好,具有較高的應用價值。
[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)
附中文參考文獻:
[7] 中國信息安全測評中心.China national vulnerability database of information security[EB/OL].[2014-04-10].http://www.cnnvd.org.cn/.
[8] 杜經農,盧炎生.一種Web軟件安全漏洞分類方法[J].計算機工程與應用,2009,45(25):10-14.
MENGYong-dang,born in 1989,MS candidate,his research interest includes software vulnerability analysis.
蔡軍(1982),男,湖北天門人,博士生,CCF會員(E200040476G),研究方向為逆向工程與軟件漏洞分析。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),男,北京人,教授,研究方向為信息安全。E-mail:sky35028123@gmail.com
HEJun,born in 1959,professor,his research interest includes information security.
紀鋒(1978),男,北京人,碩士,研究方向為信息安全。E-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計劃資助項目(2012AA012902)
TP393.08
:A
10.3969/j.issn.1007-130X.2014.11.014
孟永黨(1989),男,河南周口人,碩士生,研究方向為軟件漏洞分析。E-mail:Zhangdouji.2008@163.com
通信地址:101416 北京市懷柔區(qū)裝備學院復雜電子系統(tǒng)仿真實驗室
Address:Key Laboratory of Science and Technology for National Defense,Academy of Equipment,Huairou District,Beijing 101416,P.R.China