企業(yè)網(wǎng)D1Net 2011年12月19日 隨著銀行業(yè)務(wù)創(chuàng)新的快速發(fā)展,針對新業(yè)務(wù)需求的應(yīng)用系統(tǒng)開發(fā)任務(wù)日益增多,而銀行的很多應(yīng)用系統(tǒng)都直接與客戶的資金有關(guān),這就對應(yīng)用系統(tǒng)自身的安全性提出很高的要求。根據(jù)Gartner公司的分析,目前對網(wǎng)絡(luò)的攻擊有70%以上是集中在應(yīng)用層,并且這一數(shù)字呈上升趨勢。應(yīng)用層的攻擊有可能會造成非常嚴(yán)重的后果,因此,對具體應(yīng)用系統(tǒng)的有效保護(hù)就顯得越發(fā)重要。
我國商業(yè)銀行信息科技風(fēng)險管理指引和國家等級保護(hù)要求,都指出銀行必須構(gòu)建一個完整的開發(fā)安全管理體系,以實(shí)現(xiàn)對信息系統(tǒng)整個生命周期的控制。這個體系應(yīng)該是一個從需求分析、設(shè)計、編碼實(shí)現(xiàn)、測試到上線全生命周期的安全管理體系。軟件工程的相關(guān)研究表明,在軟件開發(fā)周期的早期就修補(bǔ)安全漏洞更高效而且更具成本效益。因此,銀行在防范金融風(fēng)險的過程中,必須充分重視開發(fā)安全管理體系的建設(shè),控制具體應(yīng)用系統(tǒng)的開發(fā)過程,同步進(jìn)行安全建設(shè),避免應(yīng)用系統(tǒng)開發(fā)完成后再考慮安全問題。
開發(fā)安全從規(guī)范開始
銀行在建設(shè)應(yīng)用系統(tǒng)開發(fā)安全管理體系時,應(yīng)當(dāng)首先考慮制定相應(yīng)的制度與流程。通過對各種類型應(yīng)用系統(tǒng)開發(fā)過程的研究,發(fā)現(xiàn)其中面臨的各種與安全相關(guān)的并且具有一定通用性的問題,銀行需要針對這些問題制定相應(yīng)的開發(fā)安全規(guī)范,以保證安全不被忽視。開發(fā)安全規(guī)范的制定應(yīng)該依照組織的整體方針和業(yè)務(wù)目標(biāo),并引用其他參考文檔(如通用準(zhǔn)則、安全標(biāo)準(zhǔn)、組織過程資產(chǎn)以及最佳實(shí)踐等等)來識別與控制風(fēng)險,提出與開發(fā)安全有關(guān)的方針、目標(biāo)、指標(biāo)、過程和程序。
開發(fā)安全規(guī)范一般包括安全需求分析指南、安全技術(shù)方案設(shè)計規(guī)范、安全編碼規(guī)范和安全測試規(guī)范等。依據(jù)開發(fā)安全規(guī)范,銀行在進(jìn)行應(yīng)用系統(tǒng)開發(fā)過程中,對于各個階段的安全問題加以相應(yīng)的控制,確保應(yīng)用系統(tǒng)在開發(fā)中的安全管理。
全生命周期的安全規(guī)劃和管理
應(yīng)用系統(tǒng)的開發(fā)階段是其生命周期內(nèi)的一個重要階段,在此階段,將主要完成應(yīng)用軟件的需求分析、設(shè)計、實(shí)現(xiàn)及測試等工作,此階段的工作將極大程度地決定系統(tǒng)本身的安全性。因此,要確保安全性要求在此階段的各個具體工作過程中的貫徹和實(shí)施,以便交付具有高安全特性的應(yīng)用軟件,為將來應(yīng)用系統(tǒng)的安全投產(chǎn)運(yùn)行奠定堅實(shí)的基礎(chǔ)。
(一)需求分析階段
安全技術(shù)人員在需求分析階段主要對需求文檔中的安全需求情況進(jìn)行分析,重點(diǎn)從系統(tǒng)的重要信息或數(shù)據(jù)、面臨的安全威脅、系統(tǒng)基礎(chǔ)環(huán)境的安全需求等角度入手,分析安全需求的全面性和完整性。
在安全功能需求中,身份鑒別、認(rèn)證與授權(quán)、輸入和數(shù)據(jù)驗(yàn)證、敏感數(shù)據(jù)安全、會話管理、異常管理等需求應(yīng)進(jìn)行明確詳細(xì)的說明。以電子銀行的數(shù)據(jù)安全為例,敏感數(shù)據(jù)要求特別保護(hù),該類數(shù)據(jù)的傳輸、存取和存儲,必需采取加密措施保護(hù),僅能通過內(nèi)置的軟硬件加解密模塊進(jìn)行管制。
(二)方案設(shè)計階段
方案設(shè)計階段是整個生命周期中最為關(guān)鍵的部分,在這個階段不僅要包括系統(tǒng)的功能、性能、開發(fā)費(fèi)用與周期等要求,還要明確規(guī)定系統(tǒng)的安全要求,并據(jù)此確定具體采用的安全控制措施,如用戶身份認(rèn)證體系的強(qiáng)度設(shè)計、認(rèn)證失敗后的處理方式設(shè)計等。
在方案設(shè)計階段應(yīng)該根據(jù)安全需求和安全技術(shù)規(guī)范,選擇和設(shè)計相應(yīng)的安全控制方法。安全技術(shù)人員主要分析系統(tǒng)設(shè)計文檔中關(guān)于安全設(shè)計的完整性、合理性,分析安全設(shè)計是否能夠滿足安全需求、是否達(dá)到相應(yīng)的安全強(qiáng)度等。
(三)編碼實(shí)現(xiàn)階段
程序員可使用各種通用以及特定的編程指導(dǎo)規(guī)范來防止開發(fā)中的普通安全問題,特定的編程指導(dǎo)規(guī)范主要集中在Perl、Java和C/C++語言。大多數(shù)情況下,使用這些編程指導(dǎo)規(guī)范將可以避免許多會導(dǎo)致安全漏洞的錯誤,比如非法數(shù)據(jù)輸入、緩沖區(qū)溢出、SQL注入等常見問題。
在編碼實(shí)現(xiàn)階段,應(yīng)重點(diǎn)關(guān)注由于程序員有意或無意的編碼而導(dǎo)致的安全缺陷。安全技術(shù)人員需要抽查重要的代碼進(jìn)行安全性分析,確認(rèn)編碼是否滿足相應(yīng)編碼安全規(guī)范,是否存在安全編碼缺陷等。
(四)安全測試階段
應(yīng)用系統(tǒng)在正式上線前應(yīng)對安全性進(jìn)行測試,驗(yàn)證應(yīng)用系統(tǒng)的安全性是否符合安全設(shè)計及安全需求。在系統(tǒng)測試階段,應(yīng)重點(diǎn)關(guān)注對于應(yīng)用系統(tǒng)安全功能的測試情況,應(yīng)確保安全功能測試的全面性。僅在用戶管理這一項上,就需要從用戶角色、賬號權(quán)限、口令保護(hù)、弱口令檢測、口令修改等大量重點(diǎn)分析點(diǎn)來進(jìn)行測試。因此,在實(shí)際測試中需要制定準(zhǔn)確周密的測試計劃和測試腳本,特別是驗(yàn)收的標(biāo)準(zhǔn)必須非常詳細(xì)。
在測試過程中,應(yīng)模擬真實(shí)應(yīng)用場景搭建測試的軟硬件環(huán)境,并進(jìn)行嚴(yán)格的控制保護(hù)。系統(tǒng)測試如果需要使用真實(shí)的數(shù)據(jù),應(yīng)對這些數(shù)據(jù)進(jìn)行脫敏處理,并嚴(yán)格控制對這些數(shù)據(jù)的操作行為。在與其他系統(tǒng)進(jìn)行互操作性測試時,應(yīng)充分考慮對其他系統(tǒng)的影響,選擇適當(dāng)?shù)臅r間和方式進(jìn)行。
結(jié)束語
應(yīng)用系統(tǒng)的安全性不應(yīng)該是霧里看花,也不應(yīng)該是空中樓閣。對于安全的信心應(yīng)該來自于我們在整個生命周期中對風(fēng)險的識別、關(guān)注和準(zhǔn)備。銀行可以通過建設(shè)開發(fā)安全管理體系,加強(qiáng)應(yīng)用系統(tǒng)開發(fā)的安全管理,提高銀行應(yīng)用系統(tǒng)開發(fā)安全管理的制度化、規(guī)范化水平,健全銀行信息安全管理體系。
啟明星辰長期關(guān)注開發(fā)安全,為國內(nèi)銀行客戶提供具有國際競爭力的最佳安全實(shí)踐服務(wù),幫助建立并完善開發(fā)安全的管理規(guī)范和技術(shù)體系框架,及時發(fā)現(xiàn)開發(fā)過程中的安全隱患,逐步實(shí)現(xiàn)對銀行開發(fā)人員的知識傳遞,從而全面提升應(yīng)用系統(tǒng)的整體安全防護(hù)水平,保障應(yīng)用系統(tǒng)的運(yùn)行安全。(啟明星辰 汪耀龍)