??????? 5.2.4 ?測試階段安全管理
??????? a)?測試前安全檢測:信息系統(tǒng)歸口管理部門應組織開發(fā)人員進行代碼審核,檢查、消除程序代碼潛在的安全漏洞。
??????? b)?信息系統(tǒng)歸口管理部門應設計詳細的測試計劃,測試范圍,測試方法和測試工具,應充分考慮與其他系統(tǒng)的互操作性測試中對其他系統(tǒng)的影響,選擇適當?shù)臅r間、方法。并對應用系統(tǒng)存在的弱點威脅進行安全檢查,如:假冒身份、惡意篡改、信息泄露、拒絕服務、特權(quán)提升等。
??????? c)?信息系統(tǒng)歸口管理部門應在測試系統(tǒng)功能正常運行的基礎上,還需測試系統(tǒng)的模塊和模塊之間、功能和功能之間的接口的正確性、負載能力及水平、系統(tǒng)承受壓力及峰值、測試環(huán)境等。
??????? 5.3 ?開發(fā)、測試及驗收過程安全指導規(guī)范
??????? 5.3.1 ?開發(fā)環(huán)境安全
??????? a)?信息系統(tǒng)歸口管理部門應對項目文檔、代碼的存儲進行備份,以確保在發(fā)生意外時,可有效恢復;
??????? b)?信息系統(tǒng)歸口管理部門應對項目文檔和代碼版本管理和訪問控制;
??????? c)?信息系統(tǒng)歸口管理部門應對用于開發(fā)的服務器、個人電腦的配置做好嚴格的安全防護措施。
??????? 5.3.2 ?文檔安全
??????? a)?文檔內(nèi)容的安全:信息系統(tǒng)歸口管理部門應對文檔內(nèi)容進行以下幾個的規(guī)范:需求說明書中應明確描述應用系統(tǒng)的安全需求;設計說明書中應有針對安全需求的設計,并進行評審;在測試大綱或者測試方案中應有安全性測試方案,并以此進行安全性測試;開發(fā)各階段輸出的文檔應對安全要求的執(zhí)行情況進行描述。
??????? b)?文檔自身的安全:信息系統(tǒng)歸口管理部門應對文檔設定密級及讀者范圍,以限定其訪問范圍,文檔的訪問控制應有相應的授權(quán)機制。
??????? 5.3.3 ?源代碼管理
??????? a)?信息系統(tǒng)歸口管理部門應根據(jù)協(xié)議執(zhí)行源代碼的管理,源代碼管理應保存所有的歷史版本,以便查閱。
??????? b)?信息系統(tǒng)歸口管理部門應對所有的程序源代碼及設置支持文件等打包進行安全檢查并存檔。
??????? c)?對于委托第三方開發(fā)的應用系統(tǒng)(或功能、模塊等)的代碼文件或設置文件,在需要對其進行修改時,必須經(jīng)過投資裝備部批準后,才能交給修改人進行修改。修改完畢需通過安全檢查才可以提交,通過檢查后的源代碼(或設置文件)提交至XXXX部門,由專人進行更新和歸檔。
??????? d)?其他源代碼規(guī)范:應用系統(tǒng)需對函數(shù)入口參數(shù)的合法性和準確性進行檢查;應嚴格遵循Fail-Safe原則,即當發(fā)生意外事故時,必須能自動切換到安全的保護模式。(當應用系統(tǒng)的登錄驗證機制不能正常運行時,系統(tǒng)必須自動拒絕所有登錄請求,而非接受所有登錄請求);應禁止接受不安全的登錄密碼,并允許系統(tǒng)管理員強制密碼設定規(guī)則;所有缺省安全設置必須能同時滿足系統(tǒng)正常運行和系統(tǒng)安全兩方面的要求;在所有警告或提示對話窗口中應使用準確、明了的描述性語言,并提供有關(guān)幫助鏈接;在接受用戶輸入時,必須有數(shù)據(jù)合法性檢查,并嚴格規(guī)定輸入數(shù)據(jù)的字符長度;在輸入密碼等敏感信息時,使用特殊符號來代替輸入的字符;應禁止使用未經(jīng)授權(quán)和驗證的代碼,在使用第三方代碼時,應對代碼安全性進行評估和測試;如密碼由應用系統(tǒng)生成,則必須保證有足夠的長度和隨機性,如密碼由用戶生成,則應用系統(tǒng)應有密碼安全策略來拒絕接受“不安全的”密碼;應禁止以明文方式傳遞用戶密碼;應測試用的“后門”,應在發(fā)布版中去除;應注釋代碼中無用的代碼;應規(guī)范代碼的格式,并對代碼進行版本控制,確保代碼的可用性;應禁止在程序中添加隱藏“惡意”的代碼,防止與應用系統(tǒng)相關(guān)的程序員對系統(tǒng)的非授權(quán)修改。
??????? 5.3.4 ?需求分析
??????? a)?信息系統(tǒng)歸口管理部門應在需求分析階段確定應用系統(tǒng)的安全要求,并對其進行詳細描述,制定項目安全需求說明書,并指導整個項目設計、實現(xiàn)、測試環(huán)節(jié)。
??????? b)?在需求分析階段應明確以下與安全相關(guān)的需求:用戶數(shù)、終端數(shù)、在線并發(fā)數(shù);用戶角色的劃分和權(quán)限的分配;應用系統(tǒng)性能要求;應用系統(tǒng)可用性要求;現(xiàn)有網(wǎng)絡現(xiàn)狀和網(wǎng)絡性能要求;數(shù)據(jù)量估計、數(shù)據(jù)存儲方式和周期;系統(tǒng)安全級別和數(shù)據(jù)保密性要求;其他對網(wǎng)絡、存儲、服務器、終端、操作系統(tǒng)、數(shù)據(jù)庫、數(shù)據(jù)等方面的安全需求。
??????? 5.3.5 ?應用安全功能設計
??????? a)?認證失敗處理:連續(xù)失敗登錄后鎖定該帳號,帳號鎖定后可由系統(tǒng)管理員解鎖,也可以在一段時間后自動解鎖,并通知用戶認證失敗。
??????? b)?授權(quán):應用系統(tǒng)應包含用戶權(quán)限分配和管理功能設計。如: 系統(tǒng)讀、寫、執(zhí)行權(quán)限設計; 系統(tǒng)查看、配置、修改、刪除、登錄、運行等權(quán)限設計;數(shù)據(jù)訪問范圍的角色設計;應用功能模塊使用權(quán)限的設計;限制用戶對系統(tǒng)級資源的訪問,系統(tǒng)級的資源包括:文件、文件夾、注冊表項、Active Directory 對象、數(shù)據(jù)庫對象、事件日志的系統(tǒng)資源;程序應使用盡可能小的權(quán)限; 數(shù)據(jù)庫訪問應該使用低權(quán)限數(shù)據(jù)庫賬號(如選擇,刪除,更新,插入等)通過參數(shù)化的存儲過程來訪問;應用啟動進程的權(quán)限盡可能??; 應用使用的系統(tǒng)賬號(運行環(huán)境中的)應該有盡可能低的權(quán)限。應避免“Administrator”, “root”, “sa”, “sysman”, “Supervisor”或其它所有的特權(quán)用戶被用來運行應用系統(tǒng)或連接到網(wǎng)站服務器,數(shù)據(jù)庫或中間件。
??????? c)?輸入輸出驗證:為了防止攻擊者繞過客戶端直接驗證,在服務器端進行驗證時,必須使用服務器端代碼執(zhí)行驗證;按照已知的有效類型、模式和范圍驗證數(shù)據(jù);應限制用戶輸入并驗證數(shù)據(jù)的類型、長度、格式和范圍。
??????? d)?數(shù)據(jù)加密:應用系統(tǒng)應使用公開并且經(jīng)過驗證和測試的加密方法;應避免向算法傳遞明文數(shù)據(jù),并避免修改存儲該數(shù)據(jù);應確保所使用的密鑰長度和密鑰空間能提供足夠的安全級別;對于大量數(shù)據(jù)加密,應使用對稱的加密,提高加密的速度并減少資源消耗;對于少量存儲的敏感數(shù)據(jù)使用非對稱加密,確保數(shù)據(jù)的安全性;應對密鑰的存儲進行嚴格保護。
??????? 5.3.6 ?測試安全
??????? a)?信息系統(tǒng)測試人員需明確記錄測試目的、安全要點、測試參與人員、測試流程,并編寫測試大綱,包括對應用系統(tǒng)的帳號、口令的安全測試;
??????? b)?信息系統(tǒng)測試人員需對應用系統(tǒng)的安全功能點進行測試,確保安全功能的有效性、正確性;
??????? c)?信息系統(tǒng)測試人員需對對應用系統(tǒng)抵抗攻擊的能力進行測試;
??????? d)?信息系統(tǒng)測試人員需對數(shù)據(jù)傳輸?shù)陌踩?、物理環(huán)境等進行測試,測試數(shù)據(jù)如選擇真實數(shù)據(jù),應限定測試的人員,并在測試完成后全部刪除和詳細記錄測試過程中發(fā)現(xiàn)的問題。
??????? 5.3.7 ?系統(tǒng)部署安全
??????? a)?信息系統(tǒng)歸口管理部門應規(guī)劃應用系統(tǒng)部署需要的資源需求:應用系統(tǒng)部署的軟件、硬件的資源要求;應用系統(tǒng)部署的網(wǎng)絡要求;物理鏈路(光纖、五類線)資源;網(wǎng)絡設備資源(HUB、Switch)、上聯(lián)網(wǎng)絡節(jié)點端口;IP地址;上聯(lián)網(wǎng)絡帶寬;應用系統(tǒng)部署的有關(guān)部門、人員要求;其它資源的詳細清單。
??????? b)?信息系統(tǒng)歸口管理部門應確保應用系統(tǒng)部署的環(huán)境安全:確保應用系統(tǒng)部署的硬件安全、操作系統(tǒng)安全;確保應用系統(tǒng)部署的帳號、口令安全;確保符合應用系統(tǒng)部署的安全策略要求(如訪問控制);確保應用系統(tǒng)部署的物理環(huán)境安全(如電力);應了解脆弱的網(wǎng)絡或者主機的配置缺陷。
??????? c)?信息系統(tǒng)歸口管理部門應確保應用系統(tǒng)部署的過程安全:確保應用系統(tǒng)部署過程的操作安全;對應用系統(tǒng)部署所在的系統(tǒng)進行安全備份;只對部署所需要的帳號提供最小的訪問權(quán)限,防止進行其它與部署無關(guān)的活動;部署的過程應有業(yè)務人員在場,對部署的操作需要經(jīng)業(yè)務人員的確認;對部署的操作過程應進行記錄;應確保應用系統(tǒng)部署過程的安裝安全。
??????? d)?應用系統(tǒng)部署的其它安全問題:記錄應用系統(tǒng)部署的詳細過程;應用系統(tǒng)部署的時間進度安排;分析應用系統(tǒng)部署可能存在的風險,并制定風險規(guī)避方案;明確所有參與人員的工作職責;與所有參與人員簽訂保密協(xié)議,禁止泄漏部署有關(guān)的重要內(nèi)容。
??????? e)?信息系統(tǒng)歸口管理部門需明確應用系統(tǒng)部署后的升級驗收標準,并在驗收之前做系統(tǒng)測試(如系統(tǒng)聯(lián)通性測試),管理員應確保應用系統(tǒng)的驗收標準和要求得到清楚地定義、記錄和測試。管理員還應考慮以下的管理措施:性能和計算機容量需求;錯誤恢復和重新啟動程序及意外事故的處理計劃;有效的人工操作程序;業(yè)務連續(xù)性安排;證明新應用系統(tǒng)的安裝不會對現(xiàn)有系統(tǒng)有負面影響,尤其是在高峰處理時段;證明已經(jīng)考慮到新系統(tǒng)對該組織整體安全性的影響;應用系統(tǒng)的操作使用手冊;安排人員培訓。
??????? 5.3.8 ?日志設計
??????? a)?日志的內(nèi)容應盡可能詳細、準確,但應平衡性能要求。應為日志文件設計不同的詳細程度供系統(tǒng)管理員或用戶選擇。
??????? b)?為日志文件設計輸出界面,允許以不同的格式輸出日志文件或允許直接輸出日志文件到數(shù)據(jù)庫。
??????? c)?日志文件中的每條數(shù)據(jù)記錄應要求有日期和時間(精確到秒)。
??????? d)?應利用操作系統(tǒng)或其他監(jiān)控系統(tǒng)的日志文件對應用系統(tǒng)在發(fā)生異常時提供日志記錄。
???????