應(yīng)用系統(tǒng)設(shè)計(jì)之安全性原則
由于銀行應(yīng)用系統(tǒng)中涉及資金、客戶信息等重要、敏感的數(shù)據(jù),應(yīng)用系統(tǒng)始終面臨著外部和內(nèi)部攻擊的威脅,為此需要采取有效的手段確保應(yīng)用系統(tǒng)安全。
一、訪問(wèn)控制安全
(一)“嚴(yán)禁”原則
嚴(yán)禁使用明文或在程序/腳本文件中寫死密碼,應(yīng)用系統(tǒng)中涉及的任何密碼,均嚴(yán)禁使用明文,并嚴(yán)禁將密碼寫在代碼/腳本文件中。嚴(yán)禁在網(wǎng)頁(yè)源碼中暴露應(yīng)用處理邏輯,嚴(yán)禁在網(wǎng)頁(yè)源代碼中出現(xiàn)類似SQL、腳本、條件判斷等應(yīng)用處理邏輯。
嚴(yán)禁在超鏈接中出現(xiàn)參數(shù)信息,嚴(yán)禁基于Web的應(yīng)用將數(shù)據(jù)庫(kù)連接用戶、密碼等重要參數(shù)信息放在超鏈接中,超鏈接中參數(shù)信息、服務(wù)調(diào)用信息應(yīng)進(jìn)行變形(亂碼)或者隱藏,以防止SQL注入攻擊,避免黑客猜測(cè)數(shù)據(jù)庫(kù)表結(jié)構(gòu)、數(shù)據(jù)庫(kù)連接用戶和密碼。嚴(yán)禁應(yīng)用系統(tǒng)設(shè)計(jì)留有“后門”,嚴(yán)禁以維護(hù)、技術(shù)支持或者特殊操作為由,設(shè)計(jì)違反或者繞過(guò)安全規(guī)則的任何類型的入口和設(shè)計(jì)文檔中未說(shuō)明的任何模式的隱藏入口。
(二)必須原則
身份識(shí)別是信息安全服務(wù)的基礎(chǔ),基本原則是要做到用戶區(qū)分的唯一性,認(rèn)證是基于身份識(shí)別的,身份識(shí)別最常見的形式就是用戶ID,與密碼組合標(biāo)識(shí)一個(gè)用戶身份。
密碼分為交易密碼和用戶登錄密碼等。應(yīng)用系統(tǒng)應(yīng)對(duì)交易密碼的全部使用環(huán)節(jié)進(jìn)行硬加密,包括密碼的產(chǎn)生、密碼錄入、密碼修改、密碼的傳輸、密碼的保存。應(yīng)用系統(tǒng)應(yīng)支持聯(lián)機(jī)密鑰修改,避免加密設(shè)備密鑰變更對(duì)應(yīng)用系統(tǒng)正常運(yùn)行的影響。
應(yīng)用系統(tǒng)應(yīng)對(duì)系統(tǒng)的使用用戶密碼進(jìn)行加密(可以是軟加密),包括密碼的產(chǎn)生、密碼錄入、密碼修改、密碼的傳輸、密碼的保存。軟加密時(shí)應(yīng)確保軟加密算法具有足夠的強(qiáng)度,并且確保密鑰存儲(chǔ)安全,對(duì)密鑰的訪問(wèn)應(yīng)嚴(yán)格控制。同時(shí),還應(yīng)采取必要的措施,確保軟加密算法的安全。
必須保證密碼安全傳遞,應(yīng)用系統(tǒng)應(yīng)建立完善的密碼傳遞機(jī)制,如采用硬件轉(zhuǎn)加密、密碼信封等方式,確保密碼在系統(tǒng)和使用用戶(人)之間的安全傳遞。
應(yīng)用系統(tǒng)必須設(shè)計(jì)密碼強(qiáng)度檢查機(jī)制,密碼錯(cuò)誤次數(shù)限制等措施,避免用戶使用簡(jiǎn)單密碼,防止黑客對(duì)密碼進(jìn)行暴力破解。,必須提供用戶賬戶鎖定功能,當(dāng)用戶帳戶幾次登錄嘗試失敗后,必須禁用該帳戶并將事件寫入日志。同時(shí)必須提供用戶帳戶解鎖功能。必須在設(shè)計(jì)階段將這些策略明確下來(lái)。
必須支持密碼有效期,密碼不應(yīng)固定不變。作為常規(guī)密碼維護(hù)的一部分,通過(guò)設(shè)置密碼有效期強(qiáng)制應(yīng)用系統(tǒng)用戶對(duì)密碼進(jìn)行定期更改。在應(yīng)用程序設(shè)計(jì)階段,必須考慮提供這種類型的功能。,必須對(duì)前端輸入信息進(jìn)行驗(yàn)證
將輸入驗(yàn)證策略作為應(yīng)用程序設(shè)計(jì)的核心要素。應(yīng)假定所有的輸入都是惡意的,不要依賴于客戶端的驗(yàn)證,雖然使用客戶端驗(yàn)證可以減少客戶端和服務(wù)器之間的信息傳遞次數(shù)。
要做到限制、拒絕或者凈化輸入,輸入驗(yàn)證的首選方法是從開始就限制允許輸入的內(nèi)容。按照已知的有效類型、模式和范圍驗(yàn)證數(shù)據(jù)要比通過(guò)查找已知有害字符的數(shù)據(jù)驗(yàn)證方法容易。設(shè)計(jì)應(yīng)用程序時(shí),應(yīng)了解應(yīng)用程序需要輸入什么內(nèi)容。與潛在的惡意輸入相比,有效數(shù)據(jù)的范圍通常是更為有限的集合。為了使防御更為徹底,可能還需要拒絕已知的有害輸入,達(dá)到凈化輸入的效果。
(三)盡可能原則
盡可能實(shí)現(xiàn)用戶的權(quán)限最小化,應(yīng)用用戶的權(quán)限最小化,控制應(yīng)用用戶對(duì)文件、數(shù)據(jù)的訪問(wèn),記錄并統(tǒng)計(jì)登錄歷史;對(duì)重要信息資源設(shè)置敏感標(biāo)記并控制對(duì)設(shè)置敏感標(biāo)記資源的操作。
二、運(yùn)行安全
(一)“嚴(yán)禁”原則
為方便使用,無(wú)論是軟件還是硬件,都存在缺省配置參數(shù),比如訪問(wèn)權(quán)限、網(wǎng)絡(luò)服務(wù)端口號(hào)、用戶ID及密碼等。如果在系統(tǒng)上線前不對(duì)缺省配置進(jìn)行修改或者禁止,就會(huì)遺留安全隱患。為此,應(yīng)用系統(tǒng)上線前,必須調(diào)整、修改系統(tǒng)缺省配置,尤其諸如用戶ID、密碼等涉及系統(tǒng)安全的缺省參數(shù)。
(二)“必須”原則
應(yīng)用系統(tǒng)必須關(guān)閉所有未用網(wǎng)絡(luò)端口,尤其要關(guān)閉能夠遠(yuǎn)程控制系統(tǒng)的網(wǎng)絡(luò)端口,如Windows遠(yuǎn)程桌面管理端口。以防止黑客利用系統(tǒng)應(yīng)用缺陷,通過(guò)網(wǎng)絡(luò)端口攻擊、滲透。
應(yīng)用系統(tǒng)交付前必須進(jìn)行信息安全評(píng)估,信息系統(tǒng)安全已經(jīng)是銀行面臨的重大問(wèn)題,監(jiān)管部門對(duì)信息系統(tǒng)安全問(wèn)題是零容忍。信息系統(tǒng)安全包括對(duì)外安全和對(duì)內(nèi)安全。所謂對(duì)外安全是能夠有效避免來(lái)自互聯(lián)網(wǎng)等外部系統(tǒng)的攻擊、滲透;所謂對(duì)內(nèi)安全是指能夠有效避免來(lái)自銀行內(nèi)部的攻擊,包括運(yùn)維人員的違法、違規(guī)、違章操作等。
應(yīng)用系統(tǒng)在交付時(shí),必須提交對(duì)信息系統(tǒng)安全的評(píng)估報(bào)告,說(shuō)明系統(tǒng)采取了哪些安全措施,經(jīng)過(guò)了何種安全測(cè)試及結(jié)果;說(shuō)明系統(tǒng)還存在哪些安全隱患;說(shuō)明在運(yùn)維時(shí)還需執(zhí)行何種安全防護(hù)措施;等等。必須假設(shè)外部系統(tǒng)是不安全的,如果需要從一個(gè)不能完全控制的系統(tǒng)接收數(shù)據(jù),則接收到的任何數(shù)據(jù)都應(yīng)該被認(rèn)為是不安全的。當(dāng)接收用戶輸入的時(shí)候,這一點(diǎn)尤其重要。用戶是從用戶界面或應(yīng)用程序客戶端執(zhí)行命令的,許多攻擊者都是利用服務(wù)端缺陷,通過(guò)繞過(guò)客戶端,將有惡意的數(shù)據(jù)發(fā)送給服務(wù)器。
“緩沖區(qū)溢出”是一個(gè)眾所周知的安全問(wèn)題,其根本原因是向一個(gè)內(nèi)存空間(可能是棧,也可能是堆)復(fù)制比內(nèi)存空間大的數(shù)據(jù)量。包括靜態(tài)緩沖區(qū)溢出、堆溢出、數(shù)組索引越界、格式化字符串缺陷、Unicode和ANSI的緩沖區(qū)大小不匹配等多種情況。通常這些情況是在用像C/C++這樣可以靈活操縱內(nèi)存的語(yǔ)言編寫程序造成的。必須嚴(yán)格檢查這類程序代碼,消除“緩沖區(qū)溢出”隱患。
(三)“盡可能”原則
盡可能具有防木馬程序設(shè)計(jì),應(yīng)用系統(tǒng)盡可能設(shè)計(jì)必要的措施防止木馬程序?qū)γ艽a的截取。,盡可能使用成熟穩(wěn)定版本的軟件或者工具,軟件產(chǎn)品或者工具升級(jí)換代非常的迅速,雖然新的版本會(huì)帶來(lái)很多功能上的提升,但是也可能隱藏著新的缺陷。所以盡可能在功能滿足的情況下使用經(jīng)過(guò)驗(yàn)證的成熟穩(wěn)定的版本。
盡可能保證關(guān)鍵信息安全傳遞,應(yīng)用系統(tǒng)盡可能完善各種關(guān)鍵信息(例如:磁道信息、卡片校驗(yàn)碼、制卡文件等)傳遞機(jī)制,如采用硬件轉(zhuǎn)加密、密碼信封等方式,確保關(guān)鍵信息在系統(tǒng)和使用用戶(人)之間的安全傳遞。盡可能提供安全審計(jì)功能,在應(yīng)用系統(tǒng)中發(fā)生的各種與安全相關(guān)的事件,應(yīng)盡可能記錄下來(lái)。審計(jì)記錄應(yīng)包括安全事件的主體、客體、時(shí)間、事件類型、事件內(nèi)容、事件結(jié)果等內(nèi)容。應(yīng)提供審計(jì)記錄查詢、分類、分析和存儲(chǔ)保護(hù);能對(duì)特定安全事件進(jìn)行報(bào)警;確保審計(jì)記錄不被破壞或非授權(quán)訪問(wèn)。應(yīng)為安全管理中心提供接口;對(duì)不能由系統(tǒng)獨(dú)立處理的安全事件,提供由授權(quán)主體調(diào)用的接口。并提供審計(jì)功能的啟動(dòng)和關(guān)閉功能。