郭錫泉 陳香錫
1(清遠職業(yè)技術學院網絡中心 廣東 清遠 511510) 2(清遠市網絡空間安全工程技術研究開發(fā)中心 廣東 清遠 511510)
國家互聯(lián)網應急中心官網發(fā)布了《我國2019年互聯(lián)網網絡安全態(tài)勢綜述》的報告[1],該報告披露國家信息安全漏洞共享平臺(CNVD)2019年收錄的安全漏洞數量再創(chuàng)新高,共計16 193個。排名前三的依次為應用程序漏洞、Web應用漏洞和操作系統(tǒng)漏洞。Web服務長期以來是最為普遍的互聯(lián)網應用,同時又是風險極高的網絡應用。網絡安全法明確規(guī)定:國家實行網絡安全等級保護制度。實施網絡安全等級保護是各組織和單位保障信息系統(tǒng)安全的有效舉措。等級保護一般要經歷定級、備案、安全建設、等級測評、監(jiān)督檢查等環(huán)節(jié),實施周期較長。目前對Web應用系統(tǒng)的等保測評,是在統(tǒng)一的測評框架下進行的。Web應用系統(tǒng)即使通過了等保測評,仍然需要進行周期性的風險評估和安全改進。對Web應用進行安全風險評估,在應用實踐中愈發(fā)變得重要。而缺乏針對性強、操作性強的評估方法,是當前Web應用安全風險評估亟須解決的問題。
目前已有一些研究是針對Web應用安全的。國內文獻方面,涂玲等[2]提出基于協(xié)議混合變形的Web安全模糊測試與效用評估方法,馬成等[3]提出基于用戶安全屬性偏好的Web服務評估,劉瑞軍等[4]研究了密鑰交換環(huán)境下Web安全漏洞的智能檢測,李棟等[5]提出基于擴展有限狀態(tài)機FSM的Web應用安全測試方法,張玉鳳等[6]提出面向軟件攻擊面的Web應用安全評估模型。國外文獻方面,Nunes等[7]研究了靜態(tài)分析工具在開發(fā)場景下如何挖掘Web安全漏洞,Hsu等[8]研究了Windows系統(tǒng)在隱私模式下作為隱私保護的Web安全機制。以上研究大多是從某個側面對Web應用安全進行技術上的評估,不能完全解決Web安全風險評估的問題。
Wei等[9]、顧兆軍等[10]提出比較系統(tǒng)的信息安全風險評估模型,但沒有針對Web應用安全。齊富民等[11]提出基于模糊理論的Web安全評估模型,李榮等[12]還針對圖書館Web應用提出安全風險評估方法。以上是對Web應用安全風險評估較為全面和深入的研究,提出了Web應用安全風險評估所涉及的指標體系、評價方法等關鍵問題。指標體系方面,目前的研究還不是很統(tǒng)一,也未能把網絡安全等級保護的要求很好地融入Web應用安全風險評估中。評價方法方面,因涉及技術專家的主觀評判,多個專家意見不一致時如何處理,以及如何把主觀評價轉化為量化的、客觀的評價結果,仍然是Web應用安全風險評估的難點所在。本文提出一種Web應用安全的集成風險評估方法,以期在指標體系、評價方法上較上述研究有所改進。
集成風險評估方法由技術維度和管理維度兩部分的評估構成。組織若干安全技術專家對Web應用系統(tǒng)進行風險評估,技術維度和管理維度分別建立相應的指標體系。技術維度可采用代碼審計、滲透測試等技術手段進行分析,獲得測量結果后采用層次分析法與改進的多級模糊評價相結合的方法,得出技術維度的評價值。管理維度由技術專家采用檢查、訪談等手段進行分析,獲得測量結果后采用信息熵的方法得出評價值。最后把技術和管理兩個維度的評價值以一定的比例進行合成,得出該Web應用系統(tǒng)的安全風險數值。
在傳統(tǒng)基于層次分析法的多級模糊綜合評價[13]的基礎上,根據網絡安全眾測的特點引入峰值評判的準則,使技術維度的風險數值更能反映Web應用安全漏洞帶來的潛在風險。
2.1.1 利用層次分析法確定指標權重
構建Web應用安全技術維度的兩級指標體系,Vi表示一級指標,Vij表示二級指標。下面通過結構化的方法確定各級指標的權重。
步驟1建立判斷矩陣。
同一層次中,各個指標進行兩兩比較,比較結果可用判斷矩陣進行表示。假設該層次中有n個指標,可得判斷矩陣D=(Dij)n×n,其中Dij表示指標i相對于指標j的重要性,具有如下性質。
Dij>0
Dij=1/Dji
Dii=1
Dij的賦值可使用多種方法,例如常用的1~9標度法。若認為指標i與指標j同等重要,則Dij=1;若認為指標i比指標j極端重要,則Dij=9;Dij還可取1~9中的數值來表示指標i相對于指標j的重要程度。
步驟2對判斷矩陣進行一致性檢驗。
應用層次分析法的優(yōu)點是能夠保持專家判斷的一致性。例如,構建判斷矩陣的過程中出現A比B極端重要、B比C極端重要,而C又比A極端重要的矛盾情況時,層次分析法能夠識別并要求更正。這是通過對判斷矩陣進行一致性檢驗實現的。根據矩陣的理論,判斷的一致性程度可通過判斷矩陣特征根的變化來進行檢驗。設λ1,λ2,…,λn滿足Ax=λx,即矩陣A的特征根,且對所有aii=1有:
(1)
若矩陣A具有完全一致性,則λ1=λmax=n,且其余特征根均為零。矩陣A不具有完全一致性,則λ1=λmax>n,同時有:
(2)
為表征判斷矩陣偏離一致性的程度,層次分析法引入判斷矩陣最大特征根以外的其余特征根的負平均值CI作為度量,即:
(3)
式中:CI的值越小越好,CI=0表示判斷矩陣具有完全一致性。在實際的應用中,λmax稍大于n且其余特征根均接近于零,這樣的情況也可以接受,稱之為“滿意一致性”。為表征“滿意一致性”,層次分析法用CI與平均隨機一致性指標RI(其數值可查表獲得)的比率CR作為度量,當滿足式(4)時,可認為判斷矩陣具有滿意一致性。
(4)
步驟3層次單排序。
同一層次中,各個指標權重的確定稱為層次單排序。下面給出方根法計算矩陣特征根及其對應特征向量的步驟。
設判斷矩陣每一行元素的乘積為Mi,則:
(5)
(6)
(7)
則W=[W1,W2,…,Wn]T即為所求的特征向量。
計算判斷矩陣的最大特征根λmax:
(8)
式中:(AW)i表示向量AW的第i個元素。
2.1.2 改進的多級模糊綜合評價
根據模糊評價的理論,可把Vij對Vi評判視為一級評判,把Vi對V的評判視為二級評判,從而建立一個三層兩級的模糊綜合評價模型。
步驟1構建模糊評語集,用C={C1,C2,C3}表示。本模型采用{高風險,中風險,低風險}的評語集,專家根據自己的經驗,綜合訪問難度、利用復雜度、影響程度等因素給出評語。技術專家對二級指標Vij使用模糊評語集C進行評判,得到模糊評估矩陣R。
R={rijk}
(9)
rijk=dijk/d
(10)
式中:rijk表示對Vij作出第k種評價的專家人數,d為專家總人數。
步驟2確定指標的權重。在同一個一級指標Ai下,二級指標的權重系數可表示為:
Ai=(ai1,ai2,…,aij)
(11)
一級指標對總目標的權重系數,可表示為:
A=(a1,a2,…,an)
(12)
式中:A和Ai均使用2.1.1節(jié)中的層次分析法推導。
步驟3進行Vij對Vi評判的一級評判??紤]到代碼安全缺陷、Web安全漏洞的潛在風險,結合當前業(yè)界網絡安全眾測的做法,本文引入峰值評判的準則來取代對專家意見的直接統(tǒng)計。設Rij為專家對Vij的評估向量,峰值評判的準則為:若存在高風險的專家意見,則Rij=(1,0,0);如不存在高風險但存在中風險的專家意見,則Rij=(0,1,0);僅當所有專家意見都為低風險時,Rij=(0,0,1)。引入峰值評判的準則后,認為風險越高的專家意見越能得到強化,有利于反映安全漏洞的潛在風險。對專家意見進行峰值評判的調整后,再運用模糊矩陣的合成運算,得到Vi的綜合評判向量Bi:
要讓單張照片具有故事性,可以選擇對你有特殊意義的事物,或是能與你產生共鳴的對象和場景來拍攝。畫面中的每個元素都要考慮到。它能告訴觀眾什么?這個元素與畫面中其他元素之間的關系意味著什么?
Bi=Ai·Ri
(13)
式中:Ri為專家對Vi的評估子陣。
步驟4進行Vi對V的二級評判。再次運用模糊矩陣的合成運算,得到V的綜合評判向量B:
(14)
根據最大隸屬度原則,有Bk=max(b1,b2,b3),從而得出模糊綜合評判結果為Ck。記T為百分制下的風險數值,則:
(15)
技術維度的評估是基于代碼設計、滲透測試等技術手段進行的,獲得的測量結果是比較客觀的。而管理維度的風險評估一般通過訪談、檢查等手段實施,專家憑借自己的經驗進行評價,獲得的結果主觀性較強。管理維度選用的評價方法與技術維度不同,應該側重于挖掘專家意見的一致性。本文采用信息熵的方法,從專家的評價數據中挖掘可信度高的評判意見。
2.2.1 確定指標的熵權
設管理維度有n個指標,由p個專家評分,評分結果分為五個等級(低風險、中低風險、中風險、中高風險、高風險)。設xij為專家j關于指標i的評分,rij表示有多少專家認為指標i屬于等級j。對于指標i,如果專家的意見比較集中(如同一等級或相鄰等級),則指標i的權重可高一些;反之,如果專家的意見比較分散(各個等級均有或等級差距較大),則指標i的權重可調低一些。根據專家意見的聚散程度調整指標權重,可通過熵權系數法[14]進行。
熵被用來表征系統(tǒng)的不確定性,在信息技術領域中稱為信息熵。設S1,S2,…,Sn為系統(tǒng)的n種狀態(tài),pi為系統(tǒng)處于Si的概率,則其信息熵H為:
(16)
對指標i,其熵值之和為:
(17)
歸一化后得:
(18)
可信程度與熵值是反比關系,指標i的熵權為:
(19)
(20)
2.2.2 確定專家的熵權
類似地,對專家也可確定熵權。專家i與群體意見一致性最高,可賦予專家i較大的權重;反之,背離群體意見的專家,其可信度低,應賦予較小的權重。通過基于傳遞熵的熵權系數法,可確定專家的熵權。設xm為全部專家關于指標i評分的平均值,則eij反映了xij趨向于專家群體一致性意見的程度。
eij=1-|xij-xm|/maxxij
(21)
xij的信息熵為:
(22)
專家i的信息熵值之和為:
(23)
專家i的熵權為:
(24)
2.2.3 合成管理維度的風險數值
運用模糊矩陣的合成運算,得到管理維度的綜合評判向量R為:
(25)
記M為百分制下的風險數值,則:
(26)
設Sum為風險評估的綜合分值,由技術維度和管理維度的分值按7∶3的比例合成。Sum的數值范圍為0~100,數值越大,風險越高。
(27)
管理維度的風險數值以一定比例與技術維度的風險數值進行合成,有利于評估組織是否實施了網絡安全等級保護或是否建立了完善的信息安全管理體系。
對某大型Web應用系統(tǒng)使用本文方法進行風險評估,組織了五位網絡安全專家從技術和管理兩個維度進行評估。技術維度方面,專家使用代碼審計、滲透測試等技術手段,獨立進行測試和驗證,并給出評分結果。管理維度方面,專家通過與組織的管理者、系統(tǒng)的IT人員進行深度訪談和現場檢查,根據自己的經驗給出評分結果。
首先,在網絡安全等級保護通用技術要求的基礎上,結合Web應用安全的特點和國際Web安全組織OWASP的Web漏洞排名,構建了表1的Web應用安全技術維度的指標體系。技術維度的指標體系包括10個一級指標、30個二級指標。
表1 Web應用安全技術維度指標體系
續(xù)表1
對一級指標構建判斷矩陣,根據式(1)-式(8),λmax=10.16,CI=0.02,查表RI=1.49,計算得CR=0.012,符合滿意一致性的判斷條件。判斷矩陣、層次單排序和權重的計算結果見表2。
表2 一級指標的判斷矩陣及權重計算結果
用類似的方法,可計算出二級指標的權重,結果見表3。在該表中,按高風險、中風險、低風險三個級別統(tǒng)計了持相應意見的專家的比例。在進行多級模糊評判之前,對專家意見的直接統(tǒng)計結果進行峰值評判。根據式(9)-式(13),得出一級評判的計算結果,見表4,并采用一般層次分析法與多級模糊綜合評價方法進行計算作為對比。
表3 二級指標權重、專家意見統(tǒng)計與轉換
表4 一級評判的計算結果
根據式(14),使用峰值評判后,通過二級評判的計算,V的綜合評判向量B=(0.517,0.345,0.138)。根據最大隸屬度原則,技術維度的評判結果為高風險。根據式(15),技術維度的風險數值為79.37分。
不使用峰值評判、僅使用一般層次分析法與多級模糊綜合評價方法的話,V的綜合評判向量B=(0.146,0.372,0.482)。根據最大隸屬度原則,技術維度的評判結果為低風險。根據式(15),技術維度的風險數值為55.43分。
從以上對比可看出,峰值評判的準則對技術維度的風險評估結果影響非常大。在實際應用中,專家獨立評分后,可一起商議一下大家的尺度是否統(tǒng)一,視情況也可以調整各自的評分結果。但峰值評判的準則應該要堅持,因為一個高危漏洞的存在(如Struts 2框架漏洞、高危SQL注入漏洞等)的確會給Web應用系統(tǒng)帶來極高的風險。
管理維度下設六個指標,依次為:安全管理體系(M1)、安全管理制度(M2)、安全管理機構(M3)、安全管理人員(M4)、安全建設管理(M5)、安全運維管理(M6)。專家對每個指標按照低風險(1)、中低風險(2)、中風險(3)、中高風險(4)、高風險(5)五個等級進行評價。五位專家(E1-E5)的評價結果如表5所示。
表5 管理維度的指標體系和專家的評價結果
對專家關于指標Mi各個等級的評價意見進行統(tǒng)計,得出持各種意見的比例,如表6所示。若根據最大隸屬度原則,專家關于六個指標的群體意見依次為(2,2,1,2,2,2)。
表6 專家意見的直接統(tǒng)計
根據式(16)-式(20),六個指標的熵值向量ei為(0.590,0.590,0.418,0.418,0.418,0.418),熵權向量qi為(0.130,0.130,0.185,0.185,0.185,0.185)。
根據式(21)-式(22),eij為:
hij為:
根據式(23)-式(24),五個專家的熵值向量Hi為(0.735,1.237,1.050,1.112,0.671),熵權向量ci為(0.247,0.147,0.173,0.163,0.270)。根據最大隸屬度原則,第五位專家的意見最可信。根據專家的熵權,專家意見的統(tǒng)計結果需要進行調整,見表7。專家關于六個指標的群體意見變?yōu)?2,2,1,1,2,2)。
表7 賦權后專家意見占比的調整
根據式(25),管理維度的綜合評判向量為(0.257,0.562,0.181,0,0)。按最大隸屬度,綜合評判的等級意見為中低風險。根據式(26),百分制風險數值為38.48分。
從3.1節(jié)和3.2節(jié)的評價過程得出,技術維度的風險數值為79.37分,管理維度的風險數值為38.48分。根據式(27),該Web應用系統(tǒng)的風險評估分值為67.10。雖然技術維度的風險值偏高,但得益于該組織已通過網絡安全等級測評,該組織的管理風險較低,因此綜合風險分值得到一定程度的下降。如果該組織的信息安全管理體系發(fā)揮作用,快速采取相應的處置措施,該Web應用系統(tǒng)的技術風險可較快恢復到低風險的水平。
體系化、標準化、定量化是國內外信息安全管理的發(fā)展趨勢。ISO2700標準和國內的網絡安全等級保護都提出建立信息安全管理體系(ISMS),并按照“規(guī)劃-實施-檢查-改進”的戴明環(huán)(圖1)進行持續(xù)改進。本文的工作正對應檢查(Check)這一重要環(huán)節(jié)。ISMS正常運轉后,應能通過檢查發(fā)現問題,并通過針對性的整改得以改進。本文方法適用于建立了信息安全管理體系或實施了網絡安全等級保護的組織。
圖1 信息安全管理體系的戴明環(huán)螺旋發(fā)展
技術維度進行二級評判時,在吸收安全眾測優(yōu)點的基礎上,本文引入峰值評準則對傳統(tǒng)AHP與多級模糊綜合評價相結合的方法進行改進,使技術維度評分更好地反映風險水平。直接使用AHP與多級模糊綜合評價相結合的方法,只能提供技術維度的評分;而使用本文方法,除了技術維度的評分外,還能提供管理維度評分和綜合風險分值,蘊含的管理決策信息更為豐富。如圖2所示,技術維度評分主要供安全技術人員參考;而管理維度評分主要供安全管理人員參考,它是對技術維度評分的補充;綜合風險分值主要供組織決策層參考,它反映了技術風險的變化趨勢(安全管理做得好、管理維度風險低,則技術風險可相應下降)。本文應用實例得出相關數值后,技術人員根據技術維度評分(79.37分,高風險)要盡快采取有效的技術措施來消除安全漏洞,并做好驗證性測試;管理人員要保持ISMS有效運作,特別是檢查與改進環(huán)節(jié)工作的落實;組織決策層須把控整體和全局,如技術風險突然飆升,可考慮適時增加資源(如采購Web應用防火墻或Web安全服務)應對。
圖2 相關方法比較
管理維度的評分,本文通過使用信息熵的方法獲取專家群體的一致性意見,盡量降低專家人為主觀因素的偏離。在實際評估中,要找在信息安全管理體系、網絡安全等級保護專業(yè)領域有較豐富實踐經驗的專業(yè)人士作為專家,才能較好保證管理維度評分的準確性和有效性。
本文提出Web應用安全的集成風險評估方法,能根據Web應用安全風險評估過程中采用的測量方法和測量結果的特點,選擇合適的評價指標、評價方法來進行綜合處理。技術維度的風險評估指標體系清晰,代碼設計、滲透測試的測量方法及其結果是客觀的,但量化程度不高。本文先通過峰值評判強化風險等級高的專家意見,再用層次分析法確定指標權重,用多級模糊綜合評價獲得技術維度的風險評估數值。管理維度的指標體系較為簡單,專家的評價結果主觀性強,本文通過信息熵的方法從專家的評價數據中挖掘指標和專家的權重信息,獲得專家群體的一致性評判意見。本文提出的方法已應用到多個大型Web應用系統(tǒng)的風險評估中,為通過了網絡安全等級測評的Web系統(tǒng)提供一種針對性強、操作性強、量化程度高的風險評估方法。技術維度和管理維度的指標體系還需要在應用實踐中進一步完善。