Web安全原則
1.認證模塊必須采用防暴力破解機制,例如:驗證碼或者多次連續(xù)嘗試登錄失敗后鎖定帳號或IP。
說明:如采用多次連續(xù)嘗試登錄失敗后鎖定帳號或IP的方式,需支持連續(xù)登錄失敗鎖定策略的“允許連續(xù)失敗的次數”可配置,支持在鎖定時間超時后自動解鎖。
2.對于每一個需要授權訪問的頁面或servlet的請求都必須核實用戶的會話標識是否合法、用戶是否被授權執(zhí)行這個操作,以防止URL越權。
說明:防止用戶通過直接輸入URL,進行URL越權,請求并執(zhí)行一些頁面或servlet;建議通過過濾器實現。
3. 登錄過程中,往服務器端傳遞用戶名和口令時,必須采用HTTPS安全協(xié)議(也就是帶服務器端證書的SSL)。只提供本機接入、登錄,做設備管理使用的場景暫時不要求。
說明:如果在客戶端和服務器間傳遞如帳號、口令等敏感數據,必須使用帶服務器端證書的SSL。由于SSL對服務端的CPU資源消耗很大,實施時必須考慮服務器的承受能力。
4. 對用戶的最終認證處理過程必須放到服務器進行。
5. 用戶產生的數據必須在服務端進行校驗;數據在輸出到客戶端前必須先進行HTML編碼,以防止執(zhí)行惡意代碼、跨站腳本攻擊。對于不可信的數據,輸出到客戶端前必須先進行 HTML 編碼。
6. 使用主流Web安全掃描工具掃描Web服務器和Web應用,不存在“高”級別的漏洞。
7. 非嵌入式產品的Web應用,應使用預編譯語句PreparedStatement代替直接的語句執(zhí)行Statement,以防止SQL注入。
數據庫安全
外購數據庫、開源數據庫、華為自研數據庫都應進行安全配置,保證不出現安全漏洞。
1.數據庫口令禁止使用數據庫廠商的缺省口令,且口令復雜度需滿足“口令安全要求”。數據庫若存在多個默認帳號,須將不使用的帳號禁用或刪除。
2. 使用單獨的操作系統(tǒng)帳號來運行數據庫;數據庫中的敏感文件(如:Oracle數據庫的init.ora、listener.ora等)需要嚴格控制訪問權限,只能被數據庫進程運行帳戶和DBA帳戶讀寫;對數據庫帳戶授予的權限進行嚴格清晰的劃分,所有數據庫帳戶只能具備執(zhí)行其任務的最小權限;對于有監(jiān)聽器功能的數據庫(如Oracle的listener.ora)需要設置監(jiān)聽器密碼或者設置為本地操作系統(tǒng)驗證。
3. 使用主流或華為指定的系統(tǒng)掃描軟件進行安全掃描,不存在“高”級別的漏洞。
敏感數據保護
系統(tǒng)對敏感數據的存儲、傳輸和處理需保證數據安全,并遵從適用國家和地區(qū)的法律和法規(guī)要求。
敏感數據定義:包括但不限于口令、銀行賬號、個人數據(單獨使用該數據或者結合其他信息可以識別某個活著的自然人的數據,包括:最終用戶姓名、帳號、主叫和被叫號碼、通信記錄、話單、通信時間、定位數據等)。
1. 口令不允許明文存儲在系統(tǒng)中,應該加密保護。在不需要還原口令的場景,必須使用不可逆算法加密。對銀行賬號等敏感數據的訪問要有認證、授權和加密機制。口令文件必須設置訪問權限控制,普通用戶不能讀取或拷貝加密的內容。如果帳戶文件/數據中含有口令又必須所有用戶可訪問,則需將帳戶文件/數據與口令文件/數據分開。
注:對于業(yè)界第三方主流軟硬件(如操作系統(tǒng)、數據庫、Web容器)自身提供的口令功能,不受本條限制。
2. 在非信任網絡之間進行敏感數據(包括口令,銀行帳號,批量個人數據等)的傳輸須采用安全傳輸通道或者加密后傳輸,有標準協(xié)議規(guī)定除外。
3.禁止使用私有加密算法。
說明:
1) 對稱加密算法建議使用:AES192及以上強度;
2) 密鑰交換算法建議使用:DH1024;
3) 數字簽名算法建議使用:DSA1024、ECDSA192;
4) 非對稱算法建議使用:RSA2048、ECC192;
5) HASH(哈希)算法建議使用:SHA256及以上強度;
6) HMAC(基于哈希的消息驗證碼)算法建議使用:HMAC-SHA256;
4. 用于敏感數據傳輸加密的密鑰,不能硬編碼在代碼中。
在敏感數據的安全傳輸上,優(yōu)先使用業(yè)界的標準安全協(xié)議(如SSH v2/TLS1.0/SSL3.0/IPSec/SFTP/HTTPS等),并確保密鑰可配置;如果是由產品自身實現安全傳輸過程,則優(yōu)先使用Diffie-Hellman密鑰交換算法,如果使用預置共享密鑰等其他方法,也必須保證該密鑰可配置和可替換。
5. 禁止在日志、話單等文件中記錄口令、銀行賬號、通信內容等敏感數據;
6. 盡量避免在日志、話單中記錄個人數據,如果必須記錄個人數據,則所有數據必須進行結構化存儲或適合于進行匿名化提?。?/strong>
1)盡量避免在日志中記錄個人數據,如果必須記錄,在個人數據之前或之后加統(tǒng)一的標記,以區(qū)別于其他非個人數據。
2)盡量避免在話單中記錄個人數據,如果必須記錄,則話單必須進行結構化存儲,字段間必須由統(tǒng)一的分隔符分開,每行的字段按列嚴格對應。
7. 有個人數據導出功能的產品發(fā)布時必須同時提供對個人數據進行過濾或匿名化處理和功能或工具;
8. 嚴格限制導出功能的權限,對導出功能的使用必須有日志記錄。
9. 涉及個人數據的采集/處理的功能須提供安全保護機制(如認證、權限控制、日志記錄等),并通過產品資料向客戶公開。
10. 在正常業(yè)務流程和標準協(xié)議之外,禁止出于故障定位目的進行用戶精確位置信息定位。如需處理用戶精確位置數據,應有華為的明確需求,并在方案設計時,給予用戶隨時撤回同意的機會。
口令安全策略管理
1. 設置口令時,默認檢測口令復雜度,口令至少滿足如下要求:
1) 口令長度至少6個字符(特權用戶至少8個字符);
2) 口令必須包含如下至少兩種字符的組合:
-至少一個小寫字母;
-至少一個大寫字母;
-至少一個數字;
-至少一個特殊字符:`~!@#$%^&*()-_=+\|[{}];:'”,<.>/? 和空格
3) 口令不能和帳號或者帳號的逆序相同;
若設置的口令不符合上述規(guī)則,必須進行警告。
2. 系統(tǒng)必須提供鎖定用戶的機制??蛇x擇如下兩種方式之一:
方式一:當重復輸入錯誤口令次數(默認3次,次數系統(tǒng)可以設置)超過系統(tǒng)限制時,系統(tǒng)要鎖定該用戶。
方式二:系統(tǒng)還可以設置下次允許輸入口令的間隔時間加倍,采用這種方式時,用戶可以不設置自動鎖定。
3. 可設置自動解鎖時間(只適用于由于口令嘗試被鎖定的用戶)
1) 對于口令嘗試N次失敗被鎖定的用戶,系統(tǒng)要能夠設置自動解鎖時間,建議默認解鎖時間為5分鐘。
2) 用戶被鎖時間達到預定義時間,可自動解鎖該用戶,或者也可通過安全管理員手工解鎖該用戶。
3) 在鎖定時間內,僅能允許應用安全管理員角色所屬帳號手動解鎖該用戶。
4. 操作界面中的口令不能明文顯示,鍵入口令時不能明文顯示出來(操作界面中的輸入口令可不顯示或用代替),包括在終端上打印或存儲在日志中時也不能明文顯示口令,即使是內存中的明文口令(如登錄期間),也應在使用后立即覆蓋。*
5. 口令輸入框不支持拷貝功能。
6. 對于系統(tǒng)內置帳號的缺省口令,口令應符合復雜度的要求,并在客戶資料中提醒用戶修改。
7. 用戶可修改自己的口令,需滿足如下要求:
1) 用戶修改自己口令時必須驗證舊口令;
2) 不允許修改除自身帳號以外的帳號的口令(管理員除外)
8. 口令不能在網絡中明文傳輸,口令等認證憑證在傳輸過程中必須加密,使用高安全等級的加密算法。
說明:
1) 對稱加密算法建議使用:AES192及以上強度;
2) 密鑰交換算法建議使用:DH1024;
3) 數字簽名算法建議使用:DSA1024、ECDSA192;
4) 非對稱算法建議使用:RSA2048、ECC192;
5) HASH(哈希)算法建議使用:SHA256及以上強度;
6) HMAC(基于哈希的消息驗證碼)算法建議使用:HMAC-SHA256;
9. 口令在本地存儲時必須加密,需滿足如下要求:
1) 口令不能夠明文寫入日志文件、配置文件以及cookie中;
2) 口令文件必須設置訪問控制,普通用戶不能讀取或拷貝加密的內容。
10. 產品配套資料提供清晰的帳號、口令清單。
說明:華為提供用戶清單模板
安全資料
針對售前、開局、現網運維幾個階段,提供配套安全方案、資料。
1.在產品描述中對產品安全特性進行描述。
2. 產品發(fā)布前提供產品通信矩陣。描述機器/網元/模塊間的通信關系,包括:通信使用的端口、協(xié)議、IP地址、認證方式、端口用途信息等。
說明:華為提供通信矩陣模板。
3. 產品發(fā)布前提供防病毒軟件部署指南。描述防病毒軟件部署前的準備、流程、執(zhí)行步驟、失敗后回退處理,以及病毒特征庫升級配置指導(Windows系統(tǒng)平臺必選)。
4. 產品發(fā)布前提供安全配置/加固指南。
描述如下內容:
-安全加固及檢查,主要包括操作系統(tǒng)、數據庫或WEB服務器等加固內容,需要包含具體的加固內容和操作步驟(必選)。
-應用的安全配置,針對產品業(yè)務安全應用,需要啟用哪些安全選項,配置哪些內容。(對于需要通過對產品開局時進行安全策略配置才能生效的安全功能,需要提供此部分內容)。如果沒有應用的安全配置,命名為安全加固指南。安全加固指南是必須的。
5. 產品發(fā)布前提供安全維護手冊。從解決方案角度提供業(yè)務日常安全維護方面的指導,包括安全補丁、安全配置、防病毒軟件例行檢查等,指導維護人員例行進行安全維護。
操作系統(tǒng)安全
無論是使用通用操作系統(tǒng)(Windows、Linux、Unix等)還是嵌入式操作系統(tǒng)(如VxWorks、pSOS等),系統(tǒng)都應該保證軟件及軟件運行環(huán)境的安全。
注:系統(tǒng)指交付給客戶運行的整體系統(tǒng),包括自研的軟件、軟件運行的操作系統(tǒng)及應用服務在內。
1.使用主流漏洞掃描軟件進行安全掃描,不存在高風險級別的漏洞。
2.基于通用操作系統(tǒng)的新發(fā)貨產品“操作系統(tǒng)加固+操作系統(tǒng)補丁”預裝率=100%;對于不在生產環(huán)節(jié)預安裝的產品,需要在正式發(fā)布的版本中包含默認的安全策略文件,并在產品資料中說明加固要求和操作步驟。
說明:
1)華為提供的操作系統(tǒng),產品版本應基于最新的操作系統(tǒng)安全補丁進行開發(fā)和兼容性測試。
2)合作方提供的操作系統(tǒng),合作方需在版本交付前對操作系統(tǒng)安全補丁進行兼容性測試并隨版本發(fā)布,并根據CIS標準對操作系統(tǒng)進行加固并隨版本發(fā)布。
3.使用Windows操作系統(tǒng)的產品,產品需要使用主流防病毒軟件進行進行兼容性測試。
說明:
1)華為提供的Windows操作系統(tǒng),合作方需使用主流防病毒軟件或華為指定的防病毒軟件進行兼容性測試;
2)合作方提供的Windows操作系統(tǒng),產品需要缺省配套華為指定的防病毒軟件,并對防病毒軟件進行兼容性測試。
協(xié)議與接口防攻擊
系統(tǒng)應具備基本的防攻擊能力,對影響自身的常見攻擊具備防御能力等。注:系統(tǒng)指交付給客戶運行的整體系統(tǒng),包括自研的軟件、軟件運行的操作系統(tǒng)及應用服務在內。
1.系統(tǒng)所有的對外通信連接必須是系統(tǒng)運行和維護必需的,對使用到的通信端口在產品通信矩陣文檔中說明,動態(tài)偵聽端口必須限定確定的合理的范圍。通過端口掃描工具驗證,未在通信矩陣中列出的端口必須關閉。
說明:
1)華為提供通信矩陣模板。
2.盡量避免使用動態(tài)偵定端口的實現方式,在沒有替代方案的情況下,如果必須使用,需滿足如下要求:
1)、如果使用業(yè)界標準的協(xié)議(如RPC、FTP被動模式),并有一定的安全措施(如NFS安全配置、防火墻支持FTP被動模式等);
2)、如果自實現的方式,則動態(tài)偵聽端口必須限定確定的合理的范圍。
3. 所有能對系統(tǒng)進行管理的通信端口及協(xié)議必須有接入認證機制,標準協(xié)議沒有認證機制的除外。
4. 對自研協(xié)議和業(yè)界非主流軟件(包括非主流的開源軟件)實現的協(xié)議要進行協(xié)議畸形報文攻擊測試。
5. 設備外部可見的能對系統(tǒng)進行管理的物理接口必須有接入認證機制。
監(jiān)聽接口及防止非法監(jiān)聽
產品開發(fā)合法監(jiān)聽接口應遵循國際標準及所在國的法律要求。
1.在沒有華為明確需求的情況下,嚴禁開發(fā)具有監(jiān)聽性質的功能和接口,無論該功能和接口是否要遵循相應的國家標準和國際標準。
2. 在華為對合法監(jiān)聽接口有需求的情況下,合作方需根據華為提供的監(jiān)聽功能或接口的文件中的要求開發(fā)。
說明:對提供合法監(jiān)聽接口的產品版本的要求(二選一)
1)產品提供兩個版本的軟件安裝包:一個支持合法監(jiān)聽,一個不支持合法監(jiān)聽。根據市場的安全要求,選擇對應的軟件安裝包進行部署。
2)產品提供軟件安裝包拆分為:基本軟件安裝包和合法監(jiān)聽插件安裝包。根據市場的安全要求,選擇是否安裝合法監(jiān)聽插件安裝包。
3. 在正常業(yè)務流程和標準協(xié)議之外,禁止提供采集最終用戶原始通信內容(語音類、短信/彩信類、傳真類、數據業(yè)務類)的功能,即使出于保障網絡運營和服務目的。
注:
1) 除了語音類、短信/彩信類、傳真類、數據業(yè)務類信息屬于通信內容外,最終用戶的即時消息、E-Mail信息、URL同樣屬于通信內容;
2) 允許使用debug功能,但debug信息中不允許包含口令、銀行賬號、通信內容等敏感數據。