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