陸向陽(yáng),蔣樹立,孫 亮,熊延忠 (江南農(nóng)村商業(yè)銀行,江蘇常州213003)
伴隨業(yè)務(wù)的不斷擴(kuò)展和機(jī)構(gòu)規(guī)模的擴(kuò)大,銀行信息系統(tǒng)已逐步發(fā)展到數(shù)量級(jí)龐大、功能集成性復(fù)雜的階段,隨之而來(lái)的管理和技術(shù)風(fēng)險(xiǎn)也日趨增多。在發(fā)現(xiàn)的安全缺陷中,大約50%源于系統(tǒng)設(shè)計(jì)階段,是造成銀行信息系統(tǒng)安全問(wèn)題的主要原因之一。因此,進(jìn)行主動(dòng)的軟件風(fēng)險(xiǎn)分析與評(píng)估能夠幫助設(shè)計(jì)人員盡早識(shí)別信息系統(tǒng)面臨的威脅,提前評(píng)估其安全態(tài)勢(shì)并設(shè)計(jì)相應(yīng)的解決方案,從而增強(qiáng)銀行信息系統(tǒng)的安全性。下面,筆者對(duì)銀行信息系統(tǒng)開(kāi)發(fā)威脅建模與風(fēng)險(xiǎn)分析方法進(jìn)行了研究。
銀行信息系統(tǒng)安全開(kāi)發(fā)周期包括5個(gè)階段,即需求分析階段、設(shè)計(jì)階段、編碼階段、測(cè)試評(píng)估階段和上線運(yùn)行階段,而風(fēng)險(xiǎn)評(píng)估工作需要貫穿始終。在系統(tǒng)設(shè)計(jì)階段,根據(jù)需求分析階段的安全需求分析文檔,逐步深入展開(kāi),對(duì)信息系統(tǒng)設(shè)計(jì)進(jìn)行詳細(xì)的風(fēng)險(xiǎn)評(píng)估。風(fēng)險(xiǎn)評(píng)估工作由需求分析人員、設(shè)計(jì)人員、信息系統(tǒng)審計(jì)人員和安全主管共同參與完成,銀行信息系統(tǒng)開(kāi)發(fā)風(fēng)險(xiǎn)評(píng)估的主要工作內(nèi)容如下[1]:①通過(guò)現(xiàn)狀分析總結(jié)系統(tǒng)安全需求和安全目標(biāo);②通過(guò)對(duì)業(yè)務(wù)路徑、重要數(shù)據(jù)、系統(tǒng)邊界的分析,整理威脅列表;③分析現(xiàn)有安全控制措施,識(shí)別系統(tǒng)脆弱性,判斷威脅的可能性;④進(jìn)行影響性分析,根據(jù)風(fēng)險(xiǎn)大小和緊迫程度進(jìn)行優(yōu)先級(jí)排序并提出整改措施。
圖1 攻擊樹模型
攻擊樹模型是一種描述一個(gè)系統(tǒng)內(nèi)引發(fā)可預(yù)期的安全事件路徑的圖形模型[2],其用事件符號(hào)、邏輯符號(hào)和轉(zhuǎn)移符號(hào)描述系統(tǒng)中各種事件和條件之間的因果關(guān)系,即將系統(tǒng)攻擊表示為一棵樹,根節(jié)點(diǎn)代表了總目標(biāo),各個(gè)分支代表實(shí)現(xiàn)總目標(biāo)的各種方法。根據(jù)一棵給定的攻擊樹,可以從樹的某個(gè)葉子節(jié)點(diǎn)開(kāi)始找到一條能夠?qū)崿F(xiàn)某一攻擊目標(biāo)而進(jìn)行的一個(gè)完整的攻擊過(guò)程。攻擊樹的節(jié)點(diǎn)分為與(AND)節(jié)點(diǎn)和或(OR)節(jié)點(diǎn),AND節(jié)點(diǎn)表示只有在所有子節(jié)點(diǎn)都實(shí)現(xiàn)之后,該節(jié)點(diǎn)才能實(shí)現(xiàn),并將任務(wù)繼續(xù)向上傳遞,而OR節(jié)點(diǎn)表示只要其中某一個(gè)子節(jié)點(diǎn)已經(jīng)實(shí)現(xiàn),則該節(jié)點(diǎn)就可以實(shí)現(xiàn),并將任務(wù)向上下級(jí)傳遞[3]。攻擊樹AND節(jié)點(diǎn)和OR節(jié)點(diǎn)如圖1所示。
威脅是指某個(gè)特定威脅源利用特定系統(tǒng)脆弱性對(duì)系統(tǒng)造成損失的潛在能力,其發(fā)生的可能性與系統(tǒng)存在的脆弱性、威脅源的強(qiáng)度和系統(tǒng)采取的控制措施有關(guān)[4]。為了對(duì)銀行信息系統(tǒng)進(jìn)行安全風(fēng)險(xiǎn)評(píng)估,設(shè)計(jì)人員應(yīng)該對(duì)該系統(tǒng)所面臨威脅的可能性進(jìn)行分析。威脅建模是銀行信息系統(tǒng)安全開(kāi)發(fā)生命周期中不可或缺的一部分,其開(kāi)始于設(shè)計(jì)的早期階段,是一個(gè)不斷進(jìn)行迭代分析的過(guò)程,據(jù)此設(shè)計(jì)人員能夠確定銀行信息系統(tǒng)面臨的主要威脅。威脅建模的主要流程包括構(gòu)建系統(tǒng)概圖、資產(chǎn)識(shí)別、威脅識(shí)別、脆弱性識(shí)別和構(gòu)建攻擊樹威脅模型,具體內(nèi)容如下。
1)構(gòu)建系統(tǒng)概圖 通過(guò)分析銀行信息系統(tǒng)的總體架構(gòu)和業(yè)務(wù)流程,準(zhǔn)確地劃定系統(tǒng)的數(shù)據(jù)流和安全邊界。根據(jù)系統(tǒng)功能清單,逐一分析每一功能的業(yè)務(wù)路徑的數(shù)據(jù)處理流程和相應(yīng)的安全技術(shù)方案并進(jìn)行歸納分類,由此構(gòu)建系統(tǒng)概圖。
2)資產(chǎn)識(shí)別 通過(guò)對(duì)系統(tǒng)架構(gòu)、功能和業(yè)務(wù)路徑等進(jìn)行分析,提取出其中需要重點(diǎn)保護(hù)的信息資產(chǎn) (通常包括:硬件、軟件、數(shù)據(jù)信息、服務(wù)、人員等),并根據(jù)信息的安全等級(jí)劃分原則,分別確定其保密性、完整性和可用性等級(jí),對(duì)一些特別敏感的數(shù)據(jù)應(yīng)該通過(guò)技術(shù)手段妥善保護(hù)。
3)威脅識(shí)別 由于銀行信息系統(tǒng)自身應(yīng)用的特點(diǎn)和地理位置不同,其可能面臨不同的威脅,主要包括自然威脅、人為威脅和環(huán)境威脅,應(yīng)根據(jù)具體情況加以識(shí)別。
4)脆弱點(diǎn)識(shí)別 在系統(tǒng)開(kāi)發(fā)過(guò)程中常見(jiàn)的系統(tǒng)脆弱點(diǎn)包括內(nèi)存溢出、非加密的數(shù)據(jù)存儲(chǔ)和傳輸、缺乏必要的訪問(wèn)控制、缺少合適的輸入輸出合法性檢測(cè)、沒(méi)有安全的失敗處理等。因此,在銀行信息系統(tǒng)設(shè)計(jì)階段,對(duì)信息系統(tǒng)現(xiàn)有安全控制措施的審查是系統(tǒng)脆弱點(diǎn)的識(shí)別重點(diǎn)。
圖2 攻擊樹威脅模型
根據(jù)所識(shí)別出的威脅和脆弱性,按照業(yè)務(wù)路徑的數(shù)據(jù)流來(lái)建立攻擊樹模型。有針對(duì)性地分析關(guān)鍵信息資產(chǎn)相關(guān)的安全事件,評(píng)估各種攻擊的發(fā)生概率,以更好地制定控制措施。攻擊樹模型的攻擊路徑描述了威脅利用資產(chǎn)的脆弱性作用于一個(gè)或多個(gè)系統(tǒng)單元,最終破壞關(guān)鍵信息資產(chǎn)安全性的過(guò)程,這一過(guò)程與系統(tǒng)單元的安全性密切相關(guān)。利用攻擊樹描述方法對(duì)系統(tǒng)進(jìn)行風(fēng)險(xiǎn)評(píng)估的具體步驟如下[5]:①了解系統(tǒng)總的安全狀況,從攻擊者的角度考慮攻擊者要實(shí)現(xiàn)的最終目標(biāo);②將總體目標(biāo)細(xì)化分解為各個(gè)子目標(biāo),構(gòu)造攻擊鏈;③構(gòu)建攻擊樹之后,求每個(gè)葉子節(jié)點(diǎn)量化后的風(fēng)險(xiǎn)值;④對(duì)系統(tǒng)進(jìn)行風(fēng)險(xiǎn)分析,確定系統(tǒng)總的風(fēng)險(xiǎn)和攻擊者最可能采取的攻擊序列;根據(jù)風(fēng)險(xiǎn)分析的結(jié)果并結(jié)合成本效益分析,制定相應(yīng)的控制措施。攻擊樹威脅模型如圖2所示。
1)風(fēng)險(xiǎn)計(jì)算 設(shè)系統(tǒng)第i個(gè)風(fēng)險(xiǎn)域內(nèi)第k個(gè)風(fēng)險(xiǎn)點(diǎn)安全事件發(fā)生的可能性為Qk(i),安全事件發(fā)生造成的損失為Ck(i),那么該風(fēng)險(xiǎn)點(diǎn)風(fēng)險(xiǎn)值的大小Zk(i)可以用下列公式計(jì)算:
設(shè)該風(fēng)險(xiǎn)點(diǎn)包含的資產(chǎn)Aik的價(jià)值為L(zhǎng)k(i),脆弱性嚴(yán)重程度為Vk(i),攻擊發(fā)生的頻率為Tk(i),則有以下關(guān)系:
2)風(fēng)險(xiǎn)等級(jí)確定 首先遍歷系統(tǒng)第i個(gè)風(fēng)險(xiǎn)域內(nèi)各風(fēng)險(xiǎn)點(diǎn),即當(dāng)k=1,2,…,n時(shí),就可以得到風(fēng)險(xiǎn)值向量Z(i)= [Z1(i),Z2(i),…,Zn(i)],然后遍歷各個(gè)風(fēng)險(xiǎn)域,即當(dāng)i=1,2,…,p時(shí),確定整個(gè)信息系統(tǒng)的風(fēng)險(xiǎn)值分布狀況。
根據(jù)所采用的風(fēng)險(xiǎn)計(jì)算方法和風(fēng)險(xiǎn)值的分布情況,將風(fēng)險(xiǎn)域內(nèi)各風(fēng)險(xiǎn)點(diǎn)的風(fēng)險(xiǎn)劃分一定等級(jí),為每個(gè)等級(jí)設(shè)定風(fēng)險(xiǎn)值范圍,每個(gè)等級(jí)代表相應(yīng)風(fēng)險(xiǎn)點(diǎn)風(fēng)險(xiǎn)的嚴(yán)重程度。
網(wǎng)上銀行系統(tǒng)由用戶系統(tǒng)、網(wǎng)站、網(wǎng)銀中心、業(yè)務(wù)數(shù)據(jù)中心和銀行柜臺(tái)等組成,該系統(tǒng)安全主要涉及網(wǎng)銀服務(wù)器安全、網(wǎng)銀交易身份安全和網(wǎng)銀客戶端安全3個(gè)部分。采取的主要安全措施是基于RSA的加密機(jī)制、數(shù)字簽名機(jī)制、SSL加密傳輸和口令登陸相結(jié)合的方式驗(yàn)證用戶身份,同時(shí)安裝多重防火墻防止Internet的非法攻擊和銀行系統(tǒng)信息外泄。入侵檢測(cè)系統(tǒng)安裝在網(wǎng)站和網(wǎng)銀中心,實(shí)時(shí)監(jiān)測(cè)網(wǎng)絡(luò)的攻擊行為,從而提供對(duì)內(nèi)部攻擊、外部攻擊和非法操作的保護(hù)。網(wǎng)上銀行系統(tǒng)面臨主要的威脅有自然力破壞 (因火災(zāi)、水災(zāi)、雷電、地震等自然災(zāi)害的破壞而導(dǎo)致設(shè)備故障)、人的行為錯(cuò)誤或失敗 (由于人的操作失誤而導(dǎo)致硬件設(shè)備或網(wǎng)銀系統(tǒng)故障)、知識(shí)產(chǎn)權(quán)的破壞 (采用盜版的軟件而引起安全隱患)、間諜或入侵行為 (通過(guò)系統(tǒng)入侵或其他手段竊取信息機(jī)密)、蓄意破壞或損毀行為 (惡意破壞硬件設(shè)備或系統(tǒng)文件,導(dǎo)致故障)、軟件攻擊行為 (黑客利用系統(tǒng)設(shè)計(jì)漏洞或配置信息錯(cuò)誤對(duì)網(wǎng)銀系統(tǒng)發(fā)起攻擊)、硬件技術(shù)上的故障和錯(cuò)誤 (跟網(wǎng)銀系統(tǒng)相關(guān)的硬件設(shè)備存在技術(shù)故障)、軟件技術(shù)上的故障和錯(cuò)誤(跟網(wǎng)銀相關(guān)的軟件系統(tǒng)存在設(shè)計(jì)上的缺陷)、社會(huì)工程學(xué) (利用社會(huì)工程學(xué)竊取網(wǎng)銀信息數(shù)據(jù))等。
網(wǎng)上銀行系統(tǒng)攻擊樹威脅模型如圖4所示。將入侵網(wǎng)銀系統(tǒng)并獲取用戶帳戶信息作為最終目標(biāo)表示為V1;對(duì)V1進(jìn)行分解,獲取注冊(cè)信息表示為V2,破解用戶名和密碼表示為V3;V2分解為通過(guò)社會(huì)工程學(xué)攻擊 (V4)或跨站攻擊獲取相關(guān)注冊(cè)信息 (V5),V3分解為系統(tǒng)后臺(tái)突破 (V6)或SQL注入攻擊 (V7);V6分解為腳本掃描 (V8)和暴力破解 (V9),V7分解為注入點(diǎn)掃描 (V10)和提交注入代碼 (V11)。根據(jù)以上分析,攻擊者可通過(guò)如下幾個(gè)路徑入侵系統(tǒng),即V4、V5、V8和V9以及V10和V11。根據(jù)威脅模型葉節(jié)點(diǎn)的評(píng)估屬性的量化標(biāo)準(zhǔn),對(duì)各個(gè)節(jié)點(diǎn)的評(píng)估屬性進(jìn)行賦值Si,然后進(jìn)行攻擊概率分析,確定攻擊發(fā)生的可能性。
圖3 網(wǎng)上銀行系統(tǒng)攻擊樹威脅模型
為提高銀行信息系統(tǒng)的安全性,有必要對(duì)其開(kāi)發(fā)風(fēng)險(xiǎn)進(jìn)行評(píng)估。介紹了銀行信息系統(tǒng)開(kāi)發(fā)風(fēng)險(xiǎn)評(píng)估基本流程,闡述了基于威脅建模的銀行信息系統(tǒng)開(kāi)發(fā)風(fēng)險(xiǎn)評(píng)估方法,并對(duì)網(wǎng)上銀行系統(tǒng)威脅建模實(shí)例進(jìn)行了分析。在銀行信息系統(tǒng)開(kāi)發(fā)風(fēng)險(xiǎn)評(píng)估中,不可避免地會(huì)受到主觀因素的干預(yù),如何減少主觀因素在風(fēng)險(xiǎn)評(píng)估中的影響并設(shè)計(jì)適合金融機(jī)構(gòu)系統(tǒng)開(kāi)發(fā)的威脅建模工具是今后研究的重點(diǎn)。
[1]Michael Howard,Steve Lipner.軟件安全開(kāi)發(fā)生命周期 [M].北京:電子工業(yè)出版社,2008.
[2]李嵩,孟亞平,孫鐵,等 .一種基于模型的信息安全風(fēng)險(xiǎn)評(píng)估方法 [J].計(jì)算機(jī)工程與應(yīng)用,2005,41(29):159-162.
[3]甘早斌,吳平,路松峰,等 .基于擴(kuò)展攻擊樹的信息系統(tǒng)安全風(fēng)險(xiǎn)評(píng)估 [J].計(jì)算機(jī)應(yīng)用研究,2004,24(11):153-160.
[4]林國(guó)恩,李建彬 .信息系統(tǒng)安全 [M].北京:電子工業(yè)出版社,2010.
[5]Saini V,Duan Q.Threat Modeling Using Attack Trees [J].Consortium for Computing Sciences in Colleges,2008,45:124-131.