◆劉凱強 呂遠陽
商業銀行信息系統建設面臨的安全威脅及應對措施
◆劉凱強 呂遠陽
(山東省農村信用社聯合社 山東 250000)
隨著商業銀行網上業務的不斷發展,電子信息系統安全風險管理策略成為理論與實踐中必須重視的課題。本文從現階段信息系統安全的薄弱點出發,對比商業銀行信息系統的建設過程,提出了商業銀行信息系統安全開發的策略。策略建議在項目整體的設計規劃中采用軟件安全開發生命周期,在開發過程中通過威脅建模覆蓋潛在的風險點,并在開發完成后進行漏洞挖掘和代碼審計,將開發中的不確定性降到最低,保證銀行信息系統的安全與穩定。
商業銀行;OwaspTop 10;威脅建模;代碼審計;漏洞挖掘
商業銀行的信息安全一直是各方關注的焦點,隨著銀行網上業務的不斷發展,越來越多的業務由信息系統承載,銀行系統的穩定與安全也越來越受到各方的關注。對商業銀行而言,在信息系統建設階段,跟蹤安全科技前沿,采用先進、周密的安全策略,保證信息系統不出現較大安全漏洞,不僅是商業銀行自身資金安全的訴求,也是為銀行廣大客戶群體負責。
過去的幾年中,應用程序的基礎技術和結構發生了重大變化,信息系統面臨的安全威脅也隨之發生了變化。開源Web應用安全項目(OWASP,the Open Web Application Security Project)在2017年末發布了最新版本的OwaspTop 10,如2.1所示,將2013年以來Web系統常見的安全威脅項進行了調整,并詳細分析了每一種安全威脅的特點與表現形式。對于商業銀行科技員工,深入了解這十種常見的安全漏洞,并能夠在建設信息系統時采取針對性的防范措施至關重要。

圖1 十項最嚴重的Web 應用程序安全風險列表(OwaspTop 10)
上圖1所示的安全威脅在商業銀行的信息系統中也存在著具體的表現形式。例如:SQL注入漏洞、失效的身份認證和訪問控制、暴力破解、金額篡改、跨站腳本攻擊、越權漏洞、路徑遍歷漏洞及業務邏輯缺陷等。
雖然漏洞的表現形式五花八門,甚至可以說是無窮無盡,致使發現及控制這些缺陷困難重重,但是商業銀行為保證資金安全和系統穩定,必須嚴格把控信息系統的各類安全風險。針對部分常見漏洞,商業銀行可以依賴于開發和設計人員的經驗,但由于商業銀行科技系統的復雜性與高集成性等特性,僅僅依賴個人經驗是遠遠不夠的。安全開發是一項系統性工作,需要設計人員、開發人員、測試人員、審計人員等各階段人員的共同參與,并以科學嚴謹的安全開發策略作支撐。

圖2 軟件安全開發生命周期
如圖2,軟件開發安全生命周期(SDL,Security Development Lifecycle)相比傳統的安全建設方式,能夠將軟件安全的考慮集成在開發的每一個階段,利用威脅模型改進安全流程。這是一種方法論,旨在提前、主動的發現問題,并希望能夠全面的覆蓋問題點。SDL的核心思想在于全流程的參與到軟件開發的流程中,對威脅進行識別、分級,在需求、設計、編碼和測試階段緩和威脅[1]。若項目上線、運行階段再進行需求、威脅的修正將會面臨較大的風險和難度。商業銀行在信息系統建設時要改變以往“先上線,再加固”的傳統安全建設方式,采用國際先進的軟件開發生命周期安全模式,進行整體安全規劃與設計,確保項目安全、按時建設完成。
面對信息系統中的威脅點,主動發現優于被動響應,早分析早處置優于上線時再評估,通過結構化的覆蓋優于簡單的羅列風險點。威脅建模在一個結構化的過程來考慮、記錄、討論威脅項,通過結構化和可操作的過程全面覆蓋風險點。從多個角度對每個交易繪制數據流圖、劃分區域邊界,讓產品經理、開發人員和測試人員都參與到威脅建模工作中,從而覆蓋軟件中的缺陷和體系漏洞[2]。STRIDE是一種常見的威脅建模模型,使用該模型,能夠判斷數據流圖中的各個節點是否存在相應的漏洞,最終生成一個威脅矩陣,并根據重要度進行合理的威脅評估。通過該方法能夠全面地覆蓋項目風險點,但其缺點也顯而易見,占用較多人力和時間,各項目可以在開發過程中,根據實際尋求上線速度與系統安全的平衡點。

圖3 STRIDE模型威脅要素
如圖3,STRIDE模型威脅要素有以下六項:
(1)仿冒(Spofing),是指試圖通過使用假身份訪問系統。可以通過使用偷取獲得的用戶憑據或者假IP地址進行欺騙實現。當攻擊者以合法用戶或者主機身份成功訪問系統后,即可實現提高特權或者濫用授權。其表現形式有憑證泄露、認證管理漏洞及身份劫持等。
(2)篡改(Tampering),是指未經授權就對數據進行更改,例如銀行不同系統間報文傳遞時被第三方篡改金額、交易對象,甚至加密破解等。
(3)否認(Repudiation),用戶(合法的或者非法的)否認他們曾經執行過特定操作或者事務的能力。簽名就是一種簡單的防否認的措施,U盾就是銀行系統采用的數字簽名技術的實現方式之一。其體現形式有無數字簽名技術、日志缺陷、記錄不全等。
(4)信息泄露(Information Disclosure),不必要地暴露私有數據。某些看似非隱私的數據對攻擊者來說是非常有用的。例如密碼泄露、未授權內容展示、網絡中出現明文、異常信息泄露帶出系統細節、數據庫連接細節等。
(5)拒絕服務(Denial of Service),使系統或者應用程序不可使用的過程。攻擊者可以通過大量惡意請求耗盡系統資源,或者通過異常輸入使系統崩潰。作為銀行的應用系統有必要嚴格控制系統輸入,過濾異常、意圖不明的輸入,也有必要在系統整體架構設計時加入抗拒絕服務設計,同時考慮到各系統間的依賴關系,將拒絕服務的影響降到最低。
(6)權限提升(Elevation of Privilege)是指具有有限特權的用戶假冒特權用戶的身份來對應用程序進行特權訪問。表現形式有XSS腳本攻擊、遠程代碼執行、假冒管理員操作等。
要使用這些模型要素覆蓋開發中的風險點,對開發人員提出了一定的要求。首先,開發人員要進行安全開發的學習,能夠識別常見的軟件漏洞及交易中的潛在風險點,將其劃分至具體的威脅模型要素,并體現在數據流圖中;其次,要求開發人員使用規范編碼、代碼審計等策略減少軟件缺陷的出現。當軟件系統的建設能夠通過威脅建模來監控風險點時,就能在很大程度上減少因為編碼不規范、邏輯漏洞等因素造成的軟件缺陷。
銀行信息系統開發完成后的漏洞挖掘與代碼審計同樣重要。由于交易系統的復雜性,難免會存在隱蔽的軟件缺陷和漏洞,如果不進行嚴格的代碼審計,這些遺漏的風險點猶如定時炸彈,隨時可能會將系統防護、資金安全、社會聲譽等方面撕出一個口子。
代碼審計的思路一般分為業務邏輯正向審計和關鍵代碼逆向審計[3]。正向審計通常跟蹤交易請求在系統中的流轉,審計業務邏輯路線的代碼;逆向審計針對特定漏洞比較有效,比如SQL注入、命令執行、線程安全等安全問題,其他特點是有特定代碼寫法,進而全局搜索并排除非風險項。根據系統的實際情況,也可以結合審計工具找出的威脅點,并在重要功能點(如身份鑒別、數據庫連接、關鍵業務流等)進行人工審計、專家審計。另外,在項目測試過程中充分進行白盒測試進行源代碼脆弱性和缺陷檢查,上線前通過黑盒測試進行模擬滲透測試。在功能性測試之外,程序的健壯性也需要在壓力測試中進行充分的測試與審計。
本文從OwaspTop 10出發,介紹了當前常見的十項信息系統安全風險類型,以此為參考,討論了商業銀行信息系統建設中防范安全風險的策略措施。本文提出從信息系統建設的三個階段做好安全工作,即采用安全開發方法論,開發過程中全覆蓋開發風險,開發完成后尋找漏洞。安全工作是一項系統性工作,絕非在一個階段就能實現安全目標,尤其是對商業銀行來說,更需要從整體上、全流程地把控安全風險。
[1]叢曉穎.計算機網絡信息系統安全問題的分析與對策[J].信息安全與技術,2016.
[2]張濤,王玥,黃道麗.信息系統安全治理框架:歐盟的經驗與啟示——基于網絡攻擊的視角[J].情報雜志,2016.
[3]王培培.網絡會計信息系統安全對策研究[D].山西財經大學,2014.