◆劉凱強 呂遠陽
商業(yè)銀行信息系統(tǒng)建設面臨的安全威脅及應對措施
◆劉凱強 呂遠陽
(山東省農(nóng)村信用社聯(lián)合社 山東 250000)
隨著商業(yè)銀行網(wǎng)上業(yè)務的不斷發(fā)展,電子信息系統(tǒng)安全風險管理策略成為理論與實踐中必須重視的課題。本文從現(xiàn)階段信息系統(tǒng)安全的薄弱點出發(fā),對比商業(yè)銀行信息系統(tǒng)的建設過程,提出了商業(yè)銀行信息系統(tǒng)安全開發(fā)的策略。策略建議在項目整體的設計規(guī)劃中采用軟件安全開發(fā)生命周期,在開發(fā)過程中通過威脅建模覆蓋潛在的風險點,并在開發(fā)完成后進行漏洞挖掘和代碼審計,將開發(fā)中的不確定性降到最低,保證銀行信息系統(tǒng)的安全與穩(wěn)定。
商業(yè)銀行;OwaspTop 10;威脅建模;代碼審計;漏洞挖掘
商業(yè)銀行的信息安全一直是各方關(guān)注的焦點,隨著銀行網(wǎng)上業(yè)務的不斷發(fā)展,越來越多的業(yè)務由信息系統(tǒng)承載,銀行系統(tǒng)的穩(wěn)定與安全也越來越受到各方的關(guān)注。對商業(yè)銀行而言,在信息系統(tǒng)建設階段,跟蹤安全科技前沿,采用先進、周密的安全策略,保證信息系統(tǒng)不出現(xiàn)較大安全漏洞,不僅是商業(yè)銀行自身資金安全的訴求,也是為銀行廣大客戶群體負責。
過去的幾年中,應用程序的基礎技術(shù)和結(jié)構(gòu)發(fā)生了重大變化,信息系統(tǒng)面臨的安全威脅也隨之發(fā)生了變化。開源Web應用安全項目(OWASP,the Open Web Application Security Project)在2017年末發(fā)布了最新版本的OwaspTop 10,如2.1所示,將2013年以來Web系統(tǒng)常見的安全威脅項進行了調(diào)整,并詳細分析了每一種安全威脅的特點與表現(xiàn)形式。對于商業(yè)銀行科技員工,深入了解這十種常見的安全漏洞,并能夠在建設信息系統(tǒng)時采取針對性的防范措施至關(guān)重要。
圖1 十項最嚴重的Web 應用程序安全風險列表(OwaspTop 10)
上圖1所示的安全威脅在商業(yè)銀行的信息系統(tǒng)中也存在著具體的表現(xiàn)形式。例如:SQL注入漏洞、失效的身份認證和訪問控制、暴力破解、金額篡改、跨站腳本攻擊、越權(quán)漏洞、路徑遍歷漏洞及業(yè)務邏輯缺陷等。
雖然漏洞的表現(xiàn)形式五花八門,甚至可以說是無窮無盡,致使發(fā)現(xiàn)及控制這些缺陷困難重重,但是商業(yè)銀行為保證資金安全和系統(tǒng)穩(wěn)定,必須嚴格把控信息系統(tǒng)的各類安全風險。針對部分常見漏洞,商業(yè)銀行可以依賴于開發(fā)和設計人員的經(jīng)驗,但由于商業(yè)銀行科技系統(tǒng)的復雜性與高集成性等特性,僅僅依賴個人經(jīng)驗是遠遠不夠的。安全開發(fā)是一項系統(tǒng)性工作,需要設計人員、開發(fā)人員、測試人員、審計人員等各階段人員的共同參與,并以科學嚴謹?shù)陌踩_發(fā)策略作支撐。
圖2 軟件安全開發(fā)生命周期
如圖2,軟件開發(fā)安全生命周期(SDL,Security Development Lifecycle)相比傳統(tǒng)的安全建設方式,能夠?qū)④浖踩目紤]集成在開發(fā)的每一個階段,利用威脅模型改進安全流程。這是一種方法論,旨在提前、主動的發(fā)現(xiàn)問題,并希望能夠全面的覆蓋問題點。SDL的核心思想在于全流程的參與到軟件開發(fā)的流程中,對威脅進行識別、分級,在需求、設計、編碼和測試階段緩和威脅[1]。若項目上線、運行階段再進行需求、威脅的修正將會面臨較大的風險和難度。商業(yè)銀行在信息系統(tǒng)建設時要改變以往“先上線,再加固”的傳統(tǒng)安全建設方式,采用國際先進的軟件開發(fā)生命周期安全模式,進行整體安全規(guī)劃與設計,確保項目安全、按時建設完成。
面對信息系統(tǒng)中的威脅點,主動發(fā)現(xiàn)優(yōu)于被動響應,早分析早處置優(yōu)于上線時再評估,通過結(jié)構(gòu)化的覆蓋優(yōu)于簡單的羅列風險點。威脅建模在一個結(jié)構(gòu)化的過程來考慮、記錄、討論威脅項,通過結(jié)構(gòu)化和可操作的過程全面覆蓋風險點。從多個角度對每個交易繪制數(shù)據(jù)流圖、劃分區(qū)域邊界,讓產(chǎn)品經(jīng)理、開發(fā)人員和測試人員都參與到威脅建模工作中,從而覆蓋軟件中的缺陷和體系漏洞[2]。STRIDE是一種常見的威脅建模模型,使用該模型,能夠判斷數(shù)據(jù)流圖中的各個節(jié)點是否存在相應的漏洞,最終生成一個威脅矩陣,并根據(jù)重要度進行合理的威脅評估。通過該方法能夠全面地覆蓋項目風險點,但其缺點也顯而易見,占用較多人力和時間,各項目可以在開發(fā)過程中,根據(jù)實際尋求上線速度與系統(tǒng)安全的平衡點。
圖3 STRIDE模型威脅要素
如圖3,STRIDE模型威脅要素有以下六項:
(1)仿冒(Spofing),是指試圖通過使用假身份訪問系統(tǒng)??梢酝ㄟ^使用偷取獲得的用戶憑據(jù)或者假IP地址進行欺騙實現(xiàn)。當攻擊者以合法用戶或者主機身份成功訪問系統(tǒng)后,即可實現(xiàn)提高特權(quán)或者濫用授權(quán)。其表現(xiàn)形式有憑證泄露、認證管理漏洞及身份劫持等。
(2)篡改(Tampering),是指未經(jīng)授權(quán)就對數(shù)據(jù)進行更改,例如銀行不同系統(tǒng)間報文傳遞時被第三方篡改金額、交易對象,甚至加密破解等。
(3)否認(Repudiation),用戶(合法的或者非法的)否認他們曾經(jīng)執(zhí)行過特定操作或者事務的能力。簽名就是一種簡單的防否認的措施,U盾就是銀行系統(tǒng)采用的數(shù)字簽名技術(shù)的實現(xiàn)方式之一。其體現(xiàn)形式有無數(shù)字簽名技術(shù)、日志缺陷、記錄不全等。
(4)信息泄露(Information Disclosure),不必要地暴露私有數(shù)據(jù)。某些看似非隱私的數(shù)據(jù)對攻擊者來說是非常有用的。例如密碼泄露、未授權(quán)內(nèi)容展示、網(wǎng)絡中出現(xiàn)明文、異常信息泄露帶出系統(tǒng)細節(jié)、數(shù)據(jù)庫連接細節(jié)等。
(5)拒絕服務(Denial of Service),使系統(tǒng)或者應用程序不可使用的過程。攻擊者可以通過大量惡意請求耗盡系統(tǒng)資源,或者通過異常輸入使系統(tǒng)崩潰。作為銀行的應用系統(tǒng)有必要嚴格控制系統(tǒng)輸入,過濾異常、意圖不明的輸入,也有必要在系統(tǒng)整體架構(gòu)設計時加入抗拒絕服務設計,同時考慮到各系統(tǒng)間的依賴關(guān)系,將拒絕服務的影響降到最低。
(6)權(quán)限提升(Elevation of Privilege)是指具有有限特權(quán)的用戶假冒特權(quán)用戶的身份來對應用程序進行特權(quán)訪問。表現(xiàn)形式有XSS腳本攻擊、遠程代碼執(zhí)行、假冒管理員操作等。
要使用這些模型要素覆蓋開發(fā)中的風險點,對開發(fā)人員提出了一定的要求。首先,開發(fā)人員要進行安全開發(fā)的學習,能夠識別常見的軟件漏洞及交易中的潛在風險點,將其劃分至具體的威脅模型要素,并體現(xiàn)在數(shù)據(jù)流圖中;其次,要求開發(fā)人員使用規(guī)范編碼、代碼審計等策略減少軟件缺陷的出現(xiàn)。當軟件系統(tǒng)的建設能夠通過威脅建模來監(jiān)控風險點時,就能在很大程度上減少因為編碼不規(guī)范、邏輯漏洞等因素造成的軟件缺陷。
銀行信息系統(tǒng)開發(fā)完成后的漏洞挖掘與代碼審計同樣重要。由于交易系統(tǒng)的復雜性,難免會存在隱蔽的軟件缺陷和漏洞,如果不進行嚴格的代碼審計,這些遺漏的風險點猶如定時炸彈,隨時可能會將系統(tǒng)防護、資金安全、社會聲譽等方面撕出一個口子。
代碼審計的思路一般分為業(yè)務邏輯正向?qū)徲嫼完P(guān)鍵代碼逆向?qū)徲媅3]。正向?qū)徲嬐ǔ8櫧灰渍埱笤谙到y(tǒng)中的流轉(zhuǎn),審計業(yè)務邏輯路線的代碼;逆向?qū)徲嬦槍μ囟┒幢容^有效,比如SQL注入、命令執(zhí)行、線程安全等安全問題,其他特點是有特定代碼寫法,進而全局搜索并排除非風險項。根據(jù)系統(tǒng)的實際情況,也可以結(jié)合審計工具找出的威脅點,并在重要功能點(如身份鑒別、數(shù)據(jù)庫連接、關(guān)鍵業(yè)務流等)進行人工審計、專家審計。另外,在項目測試過程中充分進行白盒測試進行源代碼脆弱性和缺陷檢查,上線前通過黑盒測試進行模擬滲透測試。在功能性測試之外,程序的健壯性也需要在壓力測試中進行充分的測試與審計。
本文從OwaspTop 10出發(fā),介紹了當前常見的十項信息系統(tǒng)安全風險類型,以此為參考,討論了商業(yè)銀行信息系統(tǒng)建設中防范安全風險的策略措施。本文提出從信息系統(tǒng)建設的三個階段做好安全工作,即采用安全開發(fā)方法論,開發(fā)過程中全覆蓋開發(fā)風險,開發(fā)完成后尋找漏洞。安全工作是一項系統(tǒng)性工作,絕非在一個階段就能實現(xiàn)安全目標,尤其是對商業(yè)銀行來說,更需要從整體上、全流程地把控安全風險。
[1]叢曉穎.計算機網(wǎng)絡信息系統(tǒng)安全問題的分析與對策[J].信息安全與技術(shù),2016.
[2]張濤,王玥,黃道麗.信息系統(tǒng)安全治理框架:歐盟的經(jīng)驗與啟示——基于網(wǎng)絡攻擊的視角[J].情報雜志,2016.
[3]王培培.網(wǎng)絡會計信息系統(tǒng)安全對策研究[D].山西財經(jīng)大學,2014.