◆張 贏
(湖南省農村信用社聯合社 湖南 410000)
省級農村機構成立之后,其金融科技的發展逐步加快,隨著互聯網金融架構演進的熱潮,農村金融機構的信息科技也面臨著信息安全方面的風險,其中最主要的風險則是業務系統軟件漏洞所導致的風險。
農村金融系統和其他商業銀行發展的規律一樣,由于金融業務的飛速發展,軟件開發的主要目的通常會更加注重業務功能的實現,所有跟軟件開發相關聯的規范、流程等都會更加側重于確保業務功能的定義和實現,然而,這樣帶來的后果則是軟件安全質量、漏洞控制率則無法保證,未來上線的業務系統整體安全性面臨巨大挑戰。
SDL 模型是一套在長期的軟件開發過程中形成的安全開發模型,此模型試圖建立一套全周期流程來提高應用軟件研發過程的安全水平,業界應用此模型的經驗表明,已發布的各類應用軟件的漏洞問題相較于之前確實降低了不少。圖1為SDL模型涉及的7個安全控制階段和對應的安全控制活動。

圖1 SDL模型涉及的7個安全控制階段和對應的安全控制活動
農村金融體系(即農村信用社)相較于其他商業銀行,具備其獨有的個性特點。
一是與四大國有銀行、其他全國性銀行相比,省級農村金融體系以上缺乏一個全國性的、國家統一管理的、為農信系統提供技術支持的“總公司”。各省級農村金融機構大部分都是成立在2000年之后,成立之初更加偏重于全省農村金融的人事管理職能而不是業務職能,這種情況在各省農村金融機構改制之后有所改善。
二是省級及省以下分別實現法人機制,省級農村金融機構和縣市級農村金融機構都是獨立法人資質。省級農村金融機構履行對省內其他農村金融機構的管理和協調。市縣級農村金融機構是獨立考核的企業法人,依法自主開展各項金融服務業務。這種體制與其他商業銀行統一法人體制有著本質區別。
三是不同地域經濟發展的不平衡。較偏遠農村金融機構的專職科技人員配備嚴重不足,業務發展方向差別大,發展理念難以統一。
根據信息科技部職能和工作需要,按照職責明確、安全高效、相互制約、防控風險的原則,省聯社信息科技部一般都會下設綜合組、運行組、系統組、研發組、軟件應用組、網絡組、數據組、測試組等多個組別。
全國農村金融系統已經基本建設了核心系統、柜面前端系統、企業服務總線(ESB)、企業級客戶信息系統(ECIF)、安全密管平臺、總賬系統、前置平臺、支付平臺、IC卡、信貸系統等重要業務系統,同時也建設了各類電子渠道業務、各類中間業務等特色業務系統。農村金融系統的業務功能日益豐富,金融服務體系日益完善。
但是,上述這些業務系統基本都承載在農信內網,現代商業銀行體系中基于互聯網的業務主要是電子銀行系統(含網上銀行、電話銀行、手機銀行、微信銀行等),與其他商業銀行的電子銀行系統具有明顯差異,目前大部分的省農信系統電子銀行系統的核心架構并不在本地,而是統一由北京農信銀清算中心提供服務,因此不存在傳統電子銀行系統都具有的生產應用區和生產數據區,農信電子銀行系統傳統的安全隱患相對較少。
金融行業從發展之初就是以業務為導向的行業,因此業務部門在整個金融企業中的地位都較高,而科技部門屬于后端支撐部門,地位相對弱勢。業務部門是各項新業務需求的發起部門,科技部門則是業務設計和實現的部門,由于業務部門對信息技術知識領域的不熟悉,導致業務部門和科技部門在軟件項目的需求溝通上勢必會存在諸多問題。
由于部門間的協調問題以及項目需求不明確,直接影響到應用軟件項目的開發過程,導致安全開發的方法論無法正常應用。
由于農村金融系統發展較晚,真正進入發展成熟期一般都在2000年之后,農村金融系統往往都沒有完善的軟件開發項目管理體系,在需求不明確、設計不充分、意外情況考慮不全面的情況下就盲目進行以實現業務功能為目的的開發實施,這種狀況極大地增加了開發風險。
業務應用設計的各環節都缺乏統一的標準體系和指導文檔,導致各應用軟件開發項目的設計水平不一致,直接影響到軟件產品質量的優劣,安全開發的設計規范也無法有效融入其中。
傳統農村金融系統的軟件開發團隊由于發展過慢,人員數量有限且人員開發知識積累不足,在農村金融業務高速發展的過程中,其開發能力逐漸成為瓶頸。和所有商業銀行發展初期一樣,農村金融機構也會選擇開發外包的方式來完成項目開發,由于對外包團隊管理缺乏足夠的經驗,這直接影響到企業自身的業務開發能力、安全風險控制能力。在此大背景之下,安全編碼的技術規范要求無法實際落地,規范成為一紙空文。
跟軟件開發團隊相類似的,由于農村金融機構科技部成立測試團隊的時間較短,人員數量嚴重不足,往往在重大項目或時間周期比較短的項目中臨時抽調省內其他農村金融機構的人員參與測試工作,這些人員往往都是業務部門人員,不具備專業的軟件測試技能,軟件測試工作效率不高,測試效果不理想。同時,由于成本控制原因,當前的測試集成環境也相對較少,無法覆蓋所有生產開發所需環境,同時對于測試計劃、測試用例的管理缺乏統一的技術指標和管理指南,導致測試效果無法達到預期水平。由于缺乏測試流程及人員能力不足,安全功能測試、安全滲透測試等安全開發方法無法實施。
基于農村金融系統的業務系統部署特點,部署在各省農信本地的業務系統都是承載在當地農信內網的系統,主要在互聯網系統提供服務的重要業務系統即電子銀行系統(含網上銀行、電話銀行、手機銀行、微信銀行等)則部署在北京農信銀清算中心。
農村金融系統此類部署特點,使得各省農信系統面臨的外部安全威脅較小,但也給其帶來了一種錯誤理解:即省農信設計開發的內網業務系統由于不在互聯網上部署,沒有外部攻擊的隱患,則軟件應用開發過程不用太注重的安全開發方法,已經投產的業務系統代碼安全隱患也不會過度暴露。由于此種錯誤理解,致使全國很多省農信系統科技部的領導層都不太重視安全開發生命周期方法的大面積應用,這也是安全開發生命周期方法論無法在農信系統落地的主要原因。
筆者之前在某省農信科技部門直接推廣安全開發生命周期方法論,由于農信存在諸多歷史困難點,推廣收效甚微。為了提高農信系統軟件開發質量,促使安全開發生命周期方法成功落地實踐,筆者提出部分成功實踐的探索思路供參考。
根據農信系統科技創新理念提出并實施的經驗,結合通用企業安全管理思路,安全開發生命周期理念需要通過“一把手”工程即高級管理層開始,以從上到下的方式進行推廣,理念提出前期需要直接跟高管層進行深度溝通以協助其理解理念內容。
通過對已經良好運用安全開發方法的企業進行深度分析可知,大多數企業歷史上都發生過類似軟件漏洞的安全事件,且這些安全事件給企業本身帶來了巨大經濟損失或較壞的社會影響。由于農村金融體系在信息科技方面發展較晚以及信息安全意識相較于其他金融機構嚴重不足,直接應用安全開發方法很難實際落地,而具有一定影響力的軟件漏洞安全事件一旦發生,會極大地改變企業高管層對信息安全的認識,安全開發生命周期方法應用的推進會變得立竿見影。雖然通過攻防事件的發生會給農村金融企業帶來一定的運營風險,但如果控制得當并不會帶來實際損失,反而會對農村金融企業科技部門的領導層以及研發部門帶來極大沖擊,進而促成軟件安全開發管理思路的形成。
安全開發生命周期方法要想被科技部門完全接受,需要分階段逐步進行實施。
第一階段:在軟件開發的需求、設計、實施、測試、發布等全過程中,第一階段往往先在測試和發布環節進行安全控制,通過使用安全黑盒測試、安全滲透測試、上線前安全及格線評估等手段,發現問題并提交研發部門。此階段以多發現軟件代碼層面的問題為主要目的,在軟件安全開發技術規范缺乏的開端階段,雖然研發部門不一定盡數去修復問題,但會給安全管理部門樹立技術權威,強化領導層的安全思維,同時為下一階段安全開發方法論的高效應用提供鋪墊。
第二階段:在第一階段開展一定周期并有一定成效之后,第二階段開始搭建安全開發管理體系,逐步起草并發布農村金融企業自身的《軟件開發項目安全需求規范》、《軟件開發項目安全設計規范》、《軟件開發項目安全編碼規范》、《軟件開發項目安全測試規范》;同時制定開發安全生命周期管理流程,包含項目風險定級流程、需求階段流程、設計階段流程、編碼實施階段流程、測試階段流程、投產發布階段流程等。這些管理體系文檔最終提交給研發、測試等部門并進行培訓工作,此階段安全管理部門則在測試和發布環節針對管理體系的要求進行針對性檢查,以督促研發部門盡力修復問題。
第三階段:根據前一階段發布的技術規范,檢查要求的落地情況,逐步帶動科技部門內部各專業條線一起完成安全開發工作,第三階段的主要目的是要把安全開發方法全面融入軟件開發的常規過程,不管是研發部門、測試部門還是安全管理部門都會自覺自發地完成安全開發流程中的內容,此時軟件設計問題、代碼問題、集成環境問題的發現過程都會比較流暢。此階段安全管理人員會深入到軟件開發的需求、設計和實施環節,所有軟件項目立項時均會引入安全因素,此階段開發的軟件質量會有大幅度提升。
本文通過分析主流的安全開發生命周期 SDL方法理論,闡述了在業務系統開發過程中遵循 SDL 思想的必要性,特別是在農村金融系統應用安全開發方法論也是大勢所趨。農村金融系統其創立之初的思路決定了其特殊的組織體系,同時其業務系統是以內網系統為主,互聯網系統基本都托管在北京農信銀清算中心,這樣的特點造成了安全開發周期方法論的落地面臨諸多困難。本文探索性地提出了要在農村金融系統成功實踐安全開發理論的有效思路,通過此思路可逐步把理論知識轉化為實踐成果。