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