陶文卿,張俊彥,陳清明
(上海市信息安全測評認(rèn)證中心,上海 200011)
信息技術(shù)(Information Technology,IT)產(chǎn)品作為信息系統(tǒng)的核心部件之一,其安全性直接影響到整個信息系統(tǒng)的可靠性。信息安全產(chǎn)品認(rèn)證認(rèn)可是根據(jù)國家標(biāo)準(zhǔn)、行業(yè)標(biāo)準(zhǔn)或技術(shù)規(guī)范,由具有檢測能力和政府授權(quán)檢測認(rèn)證資格的權(quán)威機構(gòu),按照嚴(yán)格的程序,對其進(jìn)行測試試驗及監(jiān)督檢查的一種客觀公正的評價活動,是應(yīng)對信息技術(shù)快速更新、技術(shù)表現(xiàn)日趨融合、安全保障需求迫切等態(tài)勢的有效途徑。
我國的信息安全產(chǎn)品認(rèn)證認(rèn)可體系自2004年開始建設(shè)[1],至今已形成相對完善的認(rèn)證體系,但隨著技術(shù)的發(fā)展,在認(rèn)證過程中,產(chǎn)品更新?lián)Q代的周期逐漸縮短與用戶的安全保障需求增加之間的矛盾日益突出,因此,在認(rèn)證過程中識別安全關(guān)鍵件,判斷產(chǎn)品更新對認(rèn)證結(jié)果的影響,以便更科學(xué)地實施變更控制,成為一個需要研究的重點方向。
目前,研究人員在不同的領(lǐng)域提出了關(guān)鍵件識別方法,如袁林[2]提出了對網(wǎng)絡(luò)應(yīng)用中的關(guān)鍵事件進(jìn)行識別和跟蹤的方法,盛潔谞[3]等人提出了對軟件關(guān)鍵件識別的方法,李偉剛等人[4]提出了在項目工程的質(zhì)量管理中關(guān)鍵件控制的方法;而在信息安全領(lǐng)域,關(guān)鍵件識別的研究相對較少。在現(xiàn)有研究中,關(guān)鍵件識別一般用故障樹方法進(jìn)行分析,但此方法在確定頂層故障時即區(qū)分出關(guān)鍵故障和一般故障,將關(guān)鍵故障對應(yīng)的元件識別為關(guān)鍵件,缺乏導(dǎo)出關(guān)鍵故障的過程。
威脅樹一般應(yīng)用在風(fēng)險評估領(lǐng)域,本文針對IT產(chǎn)品認(rèn)證領(lǐng)域的安全關(guān)鍵件識別問題,首次將威脅樹引入到了關(guān)鍵件識別領(lǐng)域,并定義了安全重要度概念,用來對IT產(chǎn)品資產(chǎn)的安全重要程度進(jìn)行定量分析,提出了基于威脅樹分析的產(chǎn)品安全關(guān)鍵件識別方法,并以智能卡芯片為例進(jìn)行了應(yīng)用示范。
傳統(tǒng)的關(guān)鍵件定義多從可靠性分析的角度進(jìn)行,從生產(chǎn)的角度來說,關(guān)鍵件被定義為生產(chǎn)周期長、加工復(fù)雜、占用資源多、需要單獨安排生產(chǎn)的部件,從功能和性能的角度來說,關(guān)鍵件指的是產(chǎn)品的主要功能部件[5],在信息安全領(lǐng)域,定義IT產(chǎn)品的安全關(guān)鍵件為:在安全方面對產(chǎn)品產(chǎn)生重要影響、可能會造成安全問題的核心部件。
威脅樹是指針對威脅分析的攻擊樹。攻擊樹模型是SCHNEIER B在1999年提出的一種圖形化風(fēng)險建模方法[6]。它采用樹狀結(jié)構(gòu),描述系統(tǒng)可能受到的各種攻擊行為。攻擊樹的根節(jié)點表示攻擊者要達(dá)到的目標(biāo),中間節(jié)點表示需要完成的中間步驟或者子目標(biāo),葉子節(jié)點表示具體的攻擊手段。子節(jié)點之間具有AND、OR、SAND三種關(guān)系。
對IT產(chǎn)品來說,首先將其劃分為不同的模塊,也即資產(chǎn);識別哪些資產(chǎn)為安全關(guān)鍵件,出發(fā)點即為識別不同資產(chǎn)面臨的安全問題,也即安全威脅。
威脅樹技術(shù)從對一個給定產(chǎn)品的所有威脅的通用抽象的描述開始,KOHNFELDER L和GARG P提出的STRIDE模型[7]定義了六類通用威脅,可以用來識別每個資產(chǎn)的根節(jié)點,其中,STRIDE分別代表六種威脅的首字母組合,即身份欺騙威脅(Spoofing identify)、數(shù)據(jù)篡改威脅(Tampering with data)、否認(rèn)威脅(Repudiation)、數(shù)據(jù)泄露威脅(Data disclosure)、拒絕服務(wù)威脅(Denial of service,Dos)和特權(quán)提升威脅(Elevation of privilege)。
安全威脅實現(xiàn)的風(fēng)險越大,易受此安全威脅影響的部件就越關(guān)鍵。風(fēng)險評估中提出風(fēng)險由事件造成的損失和事件發(fā)生的概率來評價[8],借鑒這一概念,將其引入關(guān)鍵件識別的過程中。因此本文做如下定義。
定義1:安全重要度。安全重要度是衡量IT產(chǎn)品的資產(chǎn)在安全方面的重要程度的指標(biāo)。安全重要度通過如下方式計算:安全重要度=威脅發(fā)生概率×威脅造成損失嚴(yán)重程度。
對資產(chǎn)的安全威脅進(jìn)行分析,根據(jù)威脅被利用成功的脆弱性計算攻擊成功的概率,再結(jié)合威脅的嚴(yán)重程度進(jìn)行打分,計算資產(chǎn)的安全重要度,從而識別出安全關(guān)鍵件。
安全關(guān)鍵件識別的流程圖如圖1所示。
其具體步驟如下:
(1)將產(chǎn)品按照不同的實現(xiàn)模塊進(jìn)行劃分,即識別出產(chǎn)品的所有資產(chǎn)Ai(i=1,2,…,m);
圖1 安全關(guān)鍵件識別流程圖
(2)對每個資產(chǎn)分析其威脅樹:采用STRIDE模型識別出其面臨的根威脅RT,將根威脅RT進(jìn)行第二層的分析,識別其面臨的攻擊威脅,記為STij,(i=1,2,…,m;j=1,2,…,n),對攻擊方式STij進(jìn)行第三層分析,識別實現(xiàn)STij的具體攻擊手段,記為基本事件Eijk,(i=1,2,…,m;j=1,2,…,n;k=1,2,…,s);在威脅樹識別過程中,為了簡化計算,識別至第三層時即定義為基本事件,并且識別出的基本事件均為完整的攻擊事件,不存在先驗步驟,同時,基本事件均為獨立事件,即子節(jié)點之間均為邏輯OR的關(guān)系;
(3)對基本事件Eijk進(jìn)行攻擊代價分析,計算其發(fā)生的概率P(Eijk);
(4)根據(jù)基本事件發(fā)生概率,計算步驟(2)中STij發(fā)生的概率P(STij),由于基本事件之間為邏輯OR的關(guān)系,因此計算STij威脅發(fā)生的概率:
P(STij)=max {P(Eij1),P(Eij2),…,P(Eijk)}
(1)
(5)分析STij威脅發(fā)生造成的損失嚴(yán)重程度Dij,并對其進(jìn)行權(quán)重賦值;
(6)對每個資產(chǎn),根據(jù)其面臨的威脅STij發(fā)生的概率大小和損失嚴(yán)重程度,計算安全重要度:
(2)
(7)對安全重要度Vi進(jìn)行排序,從而識別出安全關(guān)鍵件。
由安全關(guān)鍵件識別的流程可知,當(dāng)識別出威脅樹和具有自證性的基本事件,對基本事件賦予一定的指標(biāo)元素后,就可以對其進(jìn)行相應(yīng)的風(fēng)險分析。信息技術(shù)安全性評估方法CEM[9]中提出了對于通用產(chǎn)品的攻擊潛力計算方法,列出了計算攻擊潛力的五個要素,從時間、技術(shù)專長、設(shè)計和操作知識、評估對象(Target of Evaluation,TOE)訪問、分析設(shè)備五個方面進(jìn)行了評價。參考這一思路,本文將基本事件從消耗時間、設(shè)備、專業(yè)技能水平、資料及訪問四方面對基本時間進(jìn)行衡量,引入如下定義:
定義2:基本事件Eijk的安全威脅攻擊代價為一個四元組,Costijk=
對基本事件的攻擊發(fā)生概率評價需要對四元組進(jìn)行打分。在評分過程中,可以采用專家經(jīng)驗法,也可采用層次分析法[10](Analytic Hierarchy Process,AHP)進(jìn)行評分。為方便計算,本文采用專家經(jīng)驗法進(jìn)行打分。打分評價依據(jù)表1進(jìn)行。
表1 等級評分標(biāo)準(zhǔn)
根據(jù)多屬性效用理論[11-12],基本事件發(fā)生的攻擊代價為:
Cost=WTi×UTi+WDe×UDe+WSk×USk+WKn×UKn
(3)
其中,WTi、WDe、WSk、WKn分別代表基本事件Eijk在消耗時間、設(shè)備、專業(yè)水平、資料及訪問上的權(quán)重,而UTi、UDe、USk、UKn分別代表基本事件在四元素上的效用值。
針對不同的攻擊事件,其在四元素上的權(quán)重值均有不同,因此做出如下規(guī)定:
(1)WTi+WDe+WSk+WKn=1;
(4)
(2)UTi、UDe、USk、UKn與Ti、De、Sk、Kn成正比關(guān)系,取Ux=x,即效用值即為基本事件在對應(yīng)項上的賦值。
(3)根據(jù)公式(3)計算出基本事件的攻擊代價,由于攻擊概率與攻擊代價之間成反比關(guān)系,因此取基本事件發(fā)生的概率:
P(Eijk)=1/Costijk
(5)
根據(jù)基本事件的指標(biāo)量化,計算出其發(fā)生概率,由公式(1)就可以推算出攻擊威脅ST發(fā)生的概率。評價威脅發(fā)生后,對產(chǎn)品造成的損失嚴(yán)重程度時,由于根威脅采用的STRIDE模型為通用威脅,其損失嚴(yán)重程度不易衡量,因此,本文對威脅樹第二層即攻擊威脅STij造成的損失嚴(yán)重程度進(jìn)行量化,記為Dij。對安全重要度的計算也在此層面進(jìn)行。攻擊威脅造成的損失嚴(yán)重程度也需根據(jù)專家經(jīng)驗法進(jìn)行評價和賦值,賦值范圍為1~5。
依據(jù)2.2節(jié)中描述的安全關(guān)鍵件識別的步驟,對每個資產(chǎn),將攻擊威脅發(fā)生概率及威脅造成的損失嚴(yán)重程度進(jìn)行相乘并求和,即可計算出此資產(chǎn)的安全重要度。將安全重要度進(jìn)行排序,便可識別出產(chǎn)品的安全關(guān)鍵件。
為驗證安全關(guān)鍵件識別方法的有效性,本節(jié)以智能卡芯片為例,按照2.2節(jié)提出的識別方法進(jìn)行分析。智能卡芯片是具有中央處理器的集成電路卡芯片,廣泛應(yīng)用于金融、社保、公交、身份鑒別等領(lǐng)域。針對智能卡芯片的安全關(guān)鍵件識別分析步驟如下:
(1)識別智能卡芯片的資產(chǎn),形成資產(chǎn)列表;智能卡芯片資產(chǎn)識別的粒度,由分析者來決定。本文識別出的智能卡芯片資產(chǎn)共14個,分別為中央處理器(Central Processing Unit,CPU)、復(fù)位/中斷模塊、時鐘控制模塊、看門狗計時器、總線、環(huán)境檢測(電壓/頻率/光照/溫度等)傳感器、主動/被動防護(hù)層、存儲器、存儲器管理單元(Memory Management Unit,MMU)、算法模塊、隨機數(shù)模塊、模式控制模塊、自檢模塊、校驗?zāi)K。
(2)針對每個資產(chǎn)進(jìn)行威脅樹分析,根威脅使用STRIDE模型進(jìn)行識別,進(jìn)一步識別出六類針對智能卡芯片的具體ST攻擊威脅,分別為:ST1非侵入式攻擊、ST2半侵入式攻擊、ST3侵入式攻擊、ST4環(huán)境攻擊、ST5測試模式重激活、ST6訪問控制破壞。
(3)針對ST攻擊威脅進(jìn)一步識別實現(xiàn)攻擊的17類基本事件,并針對每個資產(chǎn)繪制威脅樹攻擊圖,如圖2~圖5所示。其中,針對每個資產(chǎn)的威脅均用一個虛線框表示,從根威脅的角度,算法模塊和存儲器模塊均面臨信息泄露和篡改兩種威脅,而其他模塊均面臨一種根威脅;在圖5中,構(gòu)造出的威脅樹相同的多個模塊用同一威脅樹來表示,這些模塊分別為CPU、復(fù)位/中斷模塊、時鐘控制模塊、看門狗計時器、自檢模塊、校驗?zāi)K、主/被動防護(hù)層。
圖2 算法模塊威脅樹分析
圖3 存儲器威脅樹分析
圖4 環(huán)境檢測傳感器及存儲器管理單元威脅樹分析
圖5 其他模塊威脅樹分析
(4)將基本事件的攻擊代價在時間、設(shè)備、專業(yè)水平、資料及訪問四元素上進(jìn)行打分及權(quán)重賦值,根據(jù)公式(3)及公式(5)計算出基本事件的發(fā)生概率,識別出的基本事件及其發(fā)生概率值如表2所示。由于對智能卡芯片的攻擊對設(shè)備和人員水平的依賴性較強,對于E1~E16,將權(quán)重賦值WTi=WKn=0.2,WDe=WSk=0.3。對于E17訪問控制破壞,其攻擊成功更依賴于人員水平和對TOE的資料及訪問,將權(quán)重賦值WTi=WDe=0.2,WSk=WKn=0.3。
表2 基本事件列表及概率值計算
(5)根據(jù)公式(1)計算出STij威脅發(fā)生的概率,并對其損失嚴(yán)重程度Dij進(jìn)行賦值,然后根據(jù)公式(2)對每個資產(chǎn)分別計算安全重要度并排序,計算結(jié)果如表3所示。
表3 智能卡芯片模塊安全重要度
根據(jù)表3結(jié)果,可以看出,安全重要度數(shù)值的大小對于資產(chǎn)的安全重要程度提供了區(qū)分參考,分析者可根據(jù)實際應(yīng)用情況來決定安全關(guān)鍵件篩選的閾值。本例中取安全重要度為1以上的模塊作為安全關(guān)鍵件,則針對智能卡芯片的安全關(guān)鍵件即為:算法模塊、存儲器、環(huán)境檢測傳感器、存儲器管理單元、總線、模式控制、隨機數(shù),分析表明,此類模塊面臨的安全威脅更嚴(yán)峻,因此智能卡芯片的設(shè)計者需要多加關(guān)注此類模塊,對其設(shè)計更多的防護(hù)機制。同時,在產(chǎn)品認(rèn)證過程中,若上述模塊發(fā)生變化,則被認(rèn)為是安全關(guān)鍵件發(fā)生了變化,在產(chǎn)品認(rèn)證的變更控制環(huán)節(jié)中需要多加關(guān)注。值得注意的是,從傳統(tǒng)意義上來說,CPU被認(rèn)為是智能卡芯片的核心部件,而根據(jù)本文提出的安全關(guān)鍵件識別方法,CPU并沒有被識別為安全關(guān)鍵件,這是因為CPU在智能卡芯片中,主要完成計算和處理功能,但其面臨的安全威脅卻有限,因此也證實了安全關(guān)鍵件的識別和功能關(guān)鍵件之間是存在差異的。
針對信息安全認(rèn)證中的關(guān)鍵件識別問題,本文提出一種基于威脅樹分析,對IT產(chǎn)品進(jìn)行安全關(guān)鍵件識別的方法,并以智能卡芯片為例進(jìn)行了示范應(yīng)用,證明了此方法的有效性,為信息安全認(rèn)證中產(chǎn)品的變更控制提供了依據(jù)。下一步研究的重點在于:計算基本事件發(fā)生概率及威脅造成損失嚴(yán)重程度時,減少主觀因素的影響,如采用模糊層次分析法或神經(jīng)網(wǎng)絡(luò)等技術(shù)手段來量化計算,更精確地評估IT產(chǎn)品的安全關(guān)鍵件。