WEB應(yīng)用系統(tǒng)設(shè)計(jì)安全規(guī)范文檔_第1頁(yè)
WEB應(yīng)用系統(tǒng)設(shè)計(jì)安全規(guī)范文檔_第2頁(yè)
WEB應(yīng)用系統(tǒng)設(shè)計(jì)安全規(guī)范文檔_第3頁(yè)
WEB應(yīng)用系統(tǒng)設(shè)計(jì)安全規(guī)范文檔_第4頁(yè)
WEB應(yīng)用系統(tǒng)設(shè)計(jì)安全規(guī)范文檔_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、WEB應(yīng)用系統(tǒng)安全規(guī)范目 錄WEB應(yīng)用系統(tǒng)安全規(guī)范11概述41.1目的41.2適用范圍42范圍43名詞解釋44WEB開(kāi)發(fā)安全規(guī)范54.1Web應(yīng)用程序體系結(jié)構(gòu)和安全54.2Web安全編碼規(guī)范74.2.1區(qū)分公共區(qū)域和受限區(qū)域74.2.2對(duì)身份驗(yàn)證 cookie 的內(nèi)容進(jìn)行加密74.2.3限制會(huì)話壽命74.2.4使用 SSL 保護(hù)會(huì)話身份驗(yàn)證 Cookie74.2.5確保用戶(hù)沒(méi)有繞過(guò)檢查74.2.6驗(yàn)證從客戶(hù)端發(fā)送的所有數(shù)據(jù)84.2.7不要向客戶(hù)端泄漏信息84.2.8記錄詳細(xì)的錯(cuò)誤信息84.2.9捕捉異常84.2.10不要信任 HTTP 頭信息84.2.11不要使用 HTTP-GET 協(xié)議傳遞敏

2、感數(shù)據(jù)84.2.12不要在永久性 cookie 中存儲(chǔ)敏感數(shù)據(jù)84.2.13對(duì)數(shù)據(jù)進(jìn)行加密或確保通信通道的安全94.2.14SQL 語(yǔ)句的參數(shù)應(yīng)以變量形式傳入94.2.15頁(yè)面中的非源代碼內(nèi)容應(yīng)經(jīng)過(guò) URI 編碼94.2.16頁(yè)面中拼裝的腳本應(yīng)校驗(yàn)元素來(lái)源的合法性94.2.17頁(yè)面請(qǐng)求處理應(yīng)校驗(yàn)參數(shù)的最大長(zhǎng)度94.2.18登錄失敗信息錯(cuò)誤提示應(yīng)一致104.2.19避免頁(yè)面上傳任意擴(kuò)展名的文件104.2.20避免接受頁(yè)面中的主機(jī)磁盤(pán)路徑信息104.2.21第三方產(chǎn)品的合法性105系統(tǒng)部署安全規(guī)范105.1部署架構(gòu)和安全105.1.1網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu)組件115.1.2部署拓?fù)浣Y(jié)構(gòu)125.2部署操作安全

3、規(guī)范125.2.1確保管理界面的安全125.2.2確保配置存儲(chǔ)的安全125.2.3單獨(dú)分配管理特權(quán)125.2.4使用最少特權(quán)進(jìn)程和服務(wù)帳戶(hù)125.2.5盡量避免存儲(chǔ)機(jī)密135.2.6不要在代碼中存儲(chǔ)機(jī)密135.2.7不要以純文本形式存儲(chǔ)數(shù)據(jù)庫(kù)連接、密碼或密鑰135.2.8限制主機(jī)上 WEB 系統(tǒng)啟動(dòng)用戶(hù)的權(quán)限135.2.9隱藏后臺(tái)調(diào)試信息135.2.10密碼加密存儲(chǔ)135.2.11隱藏重要配置參數(shù)信息145.2.12隱藏日志文件145.2.13禁用 WebDAV,或者禁止不需要的 HTTP 方法145.2.14保證管理平臺(tái)、測(cè)試賬號(hào)口令強(qiáng)度145.2.15定期核查文件上傳路徑、日志路徑中是否存

4、在木馬145.2.16及時(shí)刪除應(yīng)用系統(tǒng)臨時(shí)文件145.2.17重要系統(tǒng)隔離146安全審計(jì)156.1審核并記錄跨應(yīng)用層的訪問(wèn)156.2考慮標(biāo)識(shí)流156.3記錄關(guān)鍵事件156.4確保日志文件的安全156.5定期備份和分析日志文件167規(guī)范更新機(jī)制168規(guī)范的執(zhí)行169參考資料171 概述1.1 目的為規(guī)范我司Java Web應(yīng)用編碼和部署的安全控制和管理,特制定本規(guī)范,并作為安全檢查及考核的參考依據(jù)。1.2 適用范圍本規(guī)范適用于我司所有在線Java業(yè)務(wù)系統(tǒng)、測(cè)試系統(tǒng)的WEB應(yīng)用。本規(guī)范可作為其他非WEB應(yīng)用的編碼和部署安全辦法參考。2 范圍本規(guī)范中列出的是常見(jiàn)安全措施和高風(fēng)險(xiǎn)的漏洞,在系統(tǒng)開(kāi)發(fā)與系

5、統(tǒng)部署的過(guò)程中,對(duì)本規(guī)范未能盡述的必要安全措施,仍應(yīng)予以采用。本規(guī)范每年復(fù)審一次,其它時(shí)候也可以根據(jù)需要進(jìn)行修訂并發(fā)布。 本規(guī)范的解釋權(quán)和修改權(quán)歸屬信息技術(shù)部。3 名詞解釋驗(yàn)證:通訊實(shí)體(例如,客戶(hù)端和服務(wù)器)彼此驗(yàn)證,以經(jīng)過(guò)訪問(wèn)授權(quán)的特定標(biāo)識(shí)為依據(jù)。資源的訪問(wèn)控制:資源的交互僅限于某些用戶(hù)或程序的集合,其目的是對(duì)完整性,保密性或可用性實(shí)施強(qiáng)制約束。 數(shù)據(jù)完整性:檢驗(yàn)信息是否被第三方(非信息源的其它實(shí)體)修改。例如,處于開(kāi)放網(wǎng)絡(luò)環(huán)境中的數(shù)據(jù)接收方必須能夠檢測(cè)并丟棄那些在傳遞過(guò)程中被修改過(guò)的消息。 機(jī)密性或數(shù)據(jù)隱私:確保信息僅對(duì)經(jīng)過(guò)訪問(wèn)授權(quán)的用戶(hù)可用。 不可否認(rèn):對(duì)用戶(hù)進(jìn)行檢驗(yàn),讓他無(wú)法否認(rèn)自己

6、進(jìn)行過(guò)的活動(dòng)。 審核:捕獲一個(gè)安全相關(guān)事件的防篡改記錄,目的是評(píng)估安全策略和機(jī)制的有效性。 4 Web開(kāi)發(fā)安全規(guī)范4.1 Web應(yīng)用程序體系結(jié)構(gòu)和安全HTTP 是無(wú)國(guó)界的,這意味著跟蹤每位用戶(hù)的會(huì)話狀態(tài)將成為應(yīng)用程序的責(zé)任。應(yīng)用程序必須能夠通過(guò)某種形式的身份驗(yàn)證來(lái)識(shí)別用戶(hù)。由于所有后續(xù)授權(quán)決策都要基于用戶(hù)的標(biāo)識(shí),因此,身份驗(yàn)證過(guò)程必須是安全的,同樣必須很好地保護(hù)用于跟蹤已驗(yàn)證用戶(hù)的會(huì)話處理機(jī)制。設(shè)計(jì)安全的身份驗(yàn)證和會(huì)話管理機(jī)制僅僅是Web 應(yīng)用程序設(shè)計(jì)人員和開(kāi)發(fā)人員所面臨的眾多問(wèn)題中的兩個(gè)方面。由于輸入和輸出數(shù)據(jù)要在公共網(wǎng)絡(luò)上進(jìn)行傳輸,因此還會(huì)存在其他挑戰(zhàn)。防止參數(shù)操作和敏感數(shù)據(jù)泄漏也是另外一

7、些重要問(wèn)題。Web應(yīng)用程序安全設(shè)計(jì)是根據(jù)應(yīng)用程序漏洞類(lèi)別進(jìn)行組織的。實(shí)際經(jīng)驗(yàn)表明,如果這些領(lǐng)域的設(shè)計(jì)存在薄弱環(huán)節(jié),將會(huì)導(dǎo)致安全漏洞。下表列出了漏洞的類(lèi)別,每個(gè)類(lèi)別都突出顯示了由于設(shè)計(jì)不當(dāng)可能會(huì)導(dǎo)致的潛在問(wèn)題。漏洞類(lèi)別由于設(shè)計(jì)不當(dāng)而引起的潛在問(wèn)題輸入驗(yàn)證嵌入到查詢(xún)字符串、表單字段、cookie 和 HTTP 頭中的惡意字符串的攻擊。這些攻擊包括命令執(zhí)行、跨站點(diǎn)腳本(XSS)、SQL 注入和緩沖區(qū)溢出攻擊。身份驗(yàn)證標(biāo)識(shí)欺騙、密碼破解、特權(quán)提升和未經(jīng)授權(quán)的訪問(wèn)。授權(quán)訪問(wèn)保密數(shù)據(jù)或受限數(shù)據(jù)、篡改數(shù)據(jù)以及執(zhí)行未經(jīng)授權(quán)的操作。配置管理對(duì)管理界面進(jìn)行未經(jīng)授權(quán)的訪問(wèn)、具有更新配置數(shù)據(jù)的能力以及對(duì)用戶(hù)帳戶(hù)和帳戶(hù)

8、配置文件進(jìn)行未經(jīng)授權(quán)的訪問(wèn)。敏感數(shù)據(jù)泄露保密信息以及篡改數(shù)據(jù)。會(huì)話管理捕捉會(huì)話標(biāo)識(shí)符,從而導(dǎo)致會(huì)話劫持及標(biāo)識(shí)欺騙。加密訪問(wèn)保密數(shù)據(jù)或帳戶(hù)憑據(jù),或二者均能訪問(wèn)。參數(shù)操作路徑遍歷攻擊、命令執(zhí)行以及繞過(guò)訪問(wèn)控制機(jī)制,從而導(dǎo)致信息泄漏、特權(quán)提升和拒絕服務(wù)。異常管理拒絕服務(wù)和敏感的系統(tǒng)級(jí)詳細(xì)信息的泄漏。審核和記錄不能發(fā)現(xiàn)入侵跡象、不能驗(yàn)證用戶(hù)操作,以及在診斷問(wèn)題時(shí)出現(xiàn)困難。針對(duì)上述漏洞的應(yīng)用程序設(shè)計(jì)指南如下表:類(lèi)別規(guī)范指南輸入驗(yàn)證不要信任輸入;應(yīng)考慮集中式輸入驗(yàn)證。不要依賴(lài)于客戶(hù)端驗(yàn)證。注意標(biāo)準(zhǔn)化問(wèn)題。限制、拒絕和凈化輸入。驗(yàn)證類(lèi)型、長(zhǎng)度、格式和范圍。身份驗(yàn)證將站點(diǎn)分割為匿名區(qū)域、標(biāo)識(shí)區(qū)域和通過(guò)身份驗(yàn)證

9、的區(qū)域。使用強(qiáng)密碼。支持密碼有效期和帳戶(hù)禁用。不要存儲(chǔ)憑據(jù)(應(yīng)使用帶有 salt 的單向哈希)。加密通信通道,以保護(hù)身份驗(yàn)證令牌。僅通過(guò) HTTPS 連接傳遞表單身份驗(yàn)證 cookie。授權(quán)使用最少特權(quán)帳戶(hù)。考慮授權(quán)粒度。實(shí)施分別授權(quán)。限制用戶(hù)訪問(wèn)系統(tǒng)級(jí)資源。配置管理使用最少特權(quán)進(jìn)程和服務(wù)帳戶(hù)。不要以純文本形式存儲(chǔ)憑據(jù)。在管理界面上使用強(qiáng)身份驗(yàn)證和授權(quán)。不要使用 LSA。遠(yuǎn)程管理時(shí)要確保通信通道的安全。避免在 Web 空間中存儲(chǔ)敏感數(shù)據(jù)。敏感數(shù)據(jù)避免存儲(chǔ)機(jī)密。對(duì)網(wǎng)絡(luò)上傳輸?shù)拿舾袛?shù)據(jù)進(jìn)行加密。確保通信通道的安全。對(duì)敏感數(shù)據(jù)存儲(chǔ)提供強(qiáng)訪問(wèn)控制。不要在永久性 cookie 中存儲(chǔ)敏感數(shù)據(jù)。不要使用

10、HTTP-GET 協(xié)議傳遞敏感數(shù)據(jù)。會(huì)話管理限制會(huì)話壽命。確保通道的安全。對(duì)身份驗(yàn)證 cookie 的內(nèi)容進(jìn)行加密。保護(hù)會(huì)話狀態(tài),以防止未經(jīng)授權(quán)的訪問(wèn)。加密不要自創(chuàng)加密算法。使用可靠并經(jīng)過(guò)測(cè)試的平臺(tái)功能。將未加密的數(shù)據(jù)存儲(chǔ)在算法附近。使用正確的算法和密鑰大小。避免密鑰管理(使用 DPAPI)。定期回收密鑰。在受限區(qū)域存儲(chǔ)密鑰。參數(shù)操作對(duì)敏感的 cookie 狀態(tài)加密。不要信任客戶(hù)端可以操作的字段(如查詢(xún)字符串、表單字段、cookie 或 HTTP 頭)。驗(yàn)證從客戶(hù)端發(fā)送的所有數(shù)據(jù)。異常管理使用結(jié)構(gòu)化的異常處理機(jī)制。不要泄漏敏感的應(yīng)用程序?qū)嵤┘?xì)節(jié)。不要記錄保密數(shù)據(jù),如密碼??紤]使用集中式的異常管

11、理框架。審核和記錄識(shí)別懷有惡意的行為。了解好的數(shù)據(jù)流應(yīng)該是什么樣子。在所有應(yīng)用層中審核和記錄活動(dòng)。確保日志文件訪問(wèn)的安全。定期備份和分析日志文件。4.2 Web安全編碼規(guī)范4.2.1 區(qū)分公共區(qū)域和受限區(qū)域站點(diǎn)的公共區(qū)域允許任何用戶(hù)進(jìn)行匿名訪問(wèn)。受限區(qū)域只能接受特定用戶(hù)的訪問(wèn),而且用戶(hù)必須通過(guò)站點(diǎn)的身份驗(yàn)證??紤]一個(gè)典型的零售網(wǎng)站。您可以匿名瀏覽產(chǎn)品分類(lèi)。當(dāng)您向購(gòu)物車(chē)中添加物品時(shí),應(yīng)用程序?qū)⑹褂脮?huì)話標(biāo)識(shí)符驗(yàn)證您的身份。最后,當(dāng)您下訂單時(shí),即可執(zhí)行安全的交易。這需要您進(jìn)行登錄,以便通過(guò) SSL 驗(yàn)證交易。將站點(diǎn)分割為公共訪問(wèn)區(qū)域和受限訪問(wèn)區(qū)域,可以在該站點(diǎn)的不同區(qū)域使用不同的身份驗(yàn)證和授權(quán)規(guī)則,

12、從而限制對(duì) SSL 的使用。使用 SSL 會(huì)導(dǎo)致性能下降,為了避免不必要的系統(tǒng)開(kāi)銷(xiāo),在設(shè)計(jì)站點(diǎn)時(shí),應(yīng)該在要求驗(yàn)證訪問(wèn)的區(qū)域限制使用 SSL。4.2.2 對(duì)身份驗(yàn)證 cookie 的內(nèi)容進(jìn)行加密即使使用 SSL,也要對(duì) cookie 內(nèi)容進(jìn)行加密。如果攻擊者試圖利用 XSS 攻擊竊取 cookie,這種方法可以防止攻擊者查看和修改該 cookie。在這種情況下,攻擊者仍然可以使用 cookie 訪問(wèn)應(yīng)用程序,但只有當(dāng) cookie 有效時(shí),才能訪問(wèn)成功。4.2.3 限制會(huì)話壽命縮短會(huì)話壽命可以降低會(huì)話劫持和重復(fù)攻擊的風(fēng)險(xiǎn)。會(huì)話壽命越短,攻擊者捕獲會(huì)話 cookie 并利用它訪問(wèn)應(yīng)用程序的時(shí)間越有

13、限。4.2.4 使用 SSL 保護(hù)會(huì)話身份驗(yàn)證 Cookie不要通過(guò) HTTP 連接傳遞身份驗(yàn)證 cookie。在授權(quán) cookie 內(nèi)設(shè)置安全的 cookie 屬性,以便指示瀏覽器只通過(guò) HTTPS 連接向服務(wù)器傳回 cookie。4.2.5 確保用戶(hù)沒(méi)有繞過(guò)檢查確保用戶(hù)沒(méi)有通過(guò)操作參數(shù)而繞過(guò)檢查。最終用戶(hù)可以通過(guò)瀏覽器地址文本框操作 URL 參數(shù)。例如,URL 地址 http:/www./sessionId=10 包含一個(gè)值 10,通過(guò)將該值更改為其他隨機(jī)數(shù)字,可以得到不同的輸出。應(yīng)確保在服務(wù)器端代碼中執(zhí)行上述檢查,而不是在客戶(hù)端的 JavaScript 中檢查,因?yàn)榭梢栽跒g覽器中禁用 J

14、avaScript。4.2.6 驗(yàn)證從客戶(hù)端發(fā)送的所有數(shù)據(jù)限制可接受用戶(hù)輸入的字段,并對(duì)來(lái)自客戶(hù)端的所有值進(jìn)行修改和驗(yàn)證。如果表單字段中包含預(yù)定義值,用戶(hù)可以更改這些值,并將其傳回服務(wù)器,以得到不同的結(jié)果。只接受已知的有益數(shù)據(jù)。例如,如果輸入字段面向一個(gè)州,那么只有與該州郵政編碼匹配的輸入才能被接受。4.2.7 不要向客戶(hù)端泄漏信息發(fā)生故障時(shí),不要暴露將會(huì)導(dǎo)致信息泄漏的消息。例如,不要暴露包括函數(shù)名以及調(diào)試內(nèi)部版本時(shí)出問(wèn)題的行數(shù)(該操作不應(yīng)在生產(chǎn)服務(wù)器上進(jìn)行)的堆棧跟蹤詳細(xì)信息。應(yīng)向客戶(hù)端返回一般性錯(cuò)誤消息。4.2.8 記錄詳細(xì)的錯(cuò)誤信息向錯(cuò)誤日志發(fā)送詳細(xì)的錯(cuò)誤消息。應(yīng)該向服務(wù)或應(yīng)用程序的客戶(hù)

15、發(fā)送最少量的信息,如一般性錯(cuò)誤消息和自定義錯(cuò)誤日志 ID,隨后可以將這些信息映射到事件日志中的詳細(xì)消息。確保沒(méi)有記錄密碼或其他敏感數(shù)據(jù)。4.2.9 捕捉異常使用結(jié)構(gòu)化異常處理機(jī)制,并捕捉異常現(xiàn)象。這樣做可以避免將應(yīng)用程序置于不協(xié)調(diào)的狀態(tài),這種狀態(tài)可能會(huì)導(dǎo)致信息泄漏。它還有助于保護(hù)應(yīng)用程序免受拒絕服務(wù)攻擊。確定如何在應(yīng)用程序內(nèi)部廣播異?,F(xiàn)象,并著重考慮在應(yīng)用程序的邊界會(huì)發(fā)生什么事情。4.2.10 不要信任 HTTP 頭信息HTTP 頭在 HTTP 請(qǐng)求和響應(yīng)開(kāi)始時(shí)發(fā)送。應(yīng)確保Web應(yīng)用程序的任何安全決策都不是基于 HTTP 頭中包含的信息,因?yàn)楣粽吆苋菀撞僮?HTTP 頭。例如,HTTP 頭中

16、的“referer”字段包含發(fā)出請(qǐng)求的網(wǎng)頁(yè)的 URL。不要基于“referer”字段值作出任何安全決策,以檢查發(fā)出請(qǐng)求的頁(yè)面是否由該 Web 應(yīng)用程序生成,因?yàn)樵撟侄魏苋菀讉卧臁?.2.11 不要使用 HTTP-GET 協(xié)議傳遞敏感數(shù)據(jù)應(yīng)避免使用 HTTP-GET 協(xié)議存儲(chǔ)敏感數(shù)據(jù),因?yàn)樵搮f(xié)議使用查詢(xún)字符串傳遞數(shù)據(jù)。使用查詢(xún)字符串不能確保敏感數(shù)據(jù)的安全性,因?yàn)椴樵?xún)字符串經(jīng)常被服務(wù)器記錄下來(lái)。4.2.12 不要在永久性 cookie 中存儲(chǔ)敏感數(shù)據(jù)避免在永久性 cookie 中存儲(chǔ)敏感數(shù)據(jù)。如果存儲(chǔ)的是純文本數(shù)據(jù),最終用戶(hù)能夠看到并修改該數(shù)據(jù)。如果對(duì)其加密,必須考慮密鑰管理。例如,如果用于加密

17、cookie 中的數(shù)據(jù)的密鑰已過(guò)期且已被回收,則新密鑰不能對(duì)客戶(hù)端通過(guò)瀏覽器傳遞的永久性 cookie 進(jìn)行解密。4.2.13 對(duì)數(shù)據(jù)進(jìn)行加密或確保通信通道的安全如果在網(wǎng)絡(luò)上向客戶(hù)端發(fā)送敏感數(shù)據(jù),應(yīng)對(duì)數(shù)據(jù)進(jìn)行加密或確保通信通道的安全。通常的做法是在客戶(hù)端與 Web 服務(wù)器之間使用 SSL。服務(wù)器間的通信通常使用 IPSec。要確保通過(guò)多重中間件傳輸?shù)拿舾袛?shù)據(jù)的安全性,如 Web 服務(wù)簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議 (SOAP) 消息,應(yīng)使用消息級(jí)加密。4.2.14 SQL 語(yǔ)句的參數(shù)應(yīng)以變量形式傳入(一)在對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢(xún)與各類(lèi)操作時(shí),SQL 語(yǔ)句中的參數(shù)應(yīng)以變量形式傳輸給服務(wù)器,不應(yīng)直接將參數(shù)的值拼接到

18、SQL 語(yǔ)句的文本中。 (二)參數(shù)的類(lèi)型包括所有數(shù)據(jù)類(lèi)型,而不僅是字符串類(lèi)型。 (三)參數(shù)值的來(lái)源包括但不限于:用戶(hù)輸入的數(shù)據(jù)、從數(shù)據(jù)庫(kù)中讀出的數(shù)據(jù)、從配 置文件中讀出的數(shù)據(jù)、從外部系統(tǒng)中獲得的數(shù)據(jù)、其它程序邏輯計(jì)算得出的數(shù) 據(jù),等等。 (四)SQL語(yǔ)句的執(zhí)行位置包括但不限于:代碼中的 SQL 語(yǔ)句,數(shù)據(jù)庫(kù)的存儲(chǔ)過(guò)程、 觸發(fā)器、定時(shí)器等。 (五)應(yīng)用程序在處理用戶(hù)非法 URL 請(qǐng)求,觸發(fā)后臺(tái)應(yīng)用程序的 SQL 錯(cuò)誤時(shí),應(yīng)返回 處理后的錯(cuò)誤頁(yè)面提示, 禁止直接拋出數(shù)據(jù)庫(kù) SQL 錯(cuò)誤, 如出現(xiàn) ORA-xxx 等等。 4.2.15 頁(yè)面中的非源代碼內(nèi)容應(yīng)經(jīng)過(guò) URI 編碼(一)頁(yè)面中的非源代碼內(nèi)

19、容,應(yīng)該以 URI 編碼后的字符出現(xiàn),避免特殊字符直接出現(xiàn)在頁(yè)面中。 (二)內(nèi)容的來(lái)源包括但不限于:在服務(wù)器端由程序生成的頁(yè)面內(nèi)容、在瀏覽器端由腳本生成的頁(yè)面內(nèi)容(如:javascript 中的 document.write 函數(shù)) 。 (三)頁(yè)面中的隱藏內(nèi)容、頁(yè)面格式控制等,也應(yīng)受本條約束。 4.2.16 頁(yè)面中拼裝的腳本應(yīng)校驗(yàn)元素來(lái)源的合法性(一)在瀏覽器端拼裝并運(yùn)行(如:利用 javascript 的 eval 函數(shù)執(zhí)行)的腳本,應(yīng) 校驗(yàn)拼裝元素的來(lái)源合法性,確定其中沒(méi)有危害性的內(nèi)容。 (二)校驗(yàn)的范圍包括但不限于:變量名元素應(yīng)符合標(biāo)識(shí)符的規(guī)則、整型元素只包含 數(shù)字、元素中不包含特殊字符

20、。 4.2.17 頁(yè)面請(qǐng)求處理應(yīng)校驗(yàn)參數(shù)的最大長(zhǎng)度(一)WEB 服務(wù)器在接受頁(yè)面請(qǐng)求時(shí),應(yīng)校驗(yàn)參數(shù)的最大長(zhǎng)度,截?cái)喑鲎畲箝L(zhǎng)度的范圍。4.2.18 登錄失敗信息錯(cuò)誤提示應(yīng)一致(一)WEB 服務(wù)器在接受用戶(hù)登錄請(qǐng)求時(shí),不應(yīng)區(qū)分登錄失敗的提示信息(如:用戶(hù)名不存在、密碼錯(cuò)誤、密碼已過(guò)期等) ,應(yīng)采用統(tǒng)一的失敗提示信息(如:錯(cuò)誤 的用戶(hù)名或密碼) 。 4.2.19 避免頁(yè)面上傳任意擴(kuò)展名的文件(一)WEB 服務(wù)器在接受頁(yè)面上傳文件時(shí),應(yīng)對(duì)文件名進(jìn)行過(guò)濾,僅接受指定范圍的文件(如:圖片, .zip 文件等),同時(shí),要修改上傳后的文件名,不應(yīng)接受可能存在危險(xiǎn)的文件(如:.jsp, .sh, .war,

21、.jar 文件等)。 (二)如果出于業(yè)務(wù)的需要(如:網(wǎng)盤(pán)等)必須接受任意擴(kuò)展名的文件,則應(yīng)自動(dòng)修改上傳文件的擴(kuò)展名,并注意采用統(tǒng)一的無(wú)風(fēng)險(xiǎn)的擴(kuò)展名命名規(guī)則。 4.2.20 避免接受頁(yè)面中的主機(jī)磁盤(pán)路徑信息(一)WEB 服務(wù)器接受的頁(yè)面請(qǐng)求中的任何內(nèi)容,不得作為主機(jī)磁盤(pán)路徑(包括相對(duì)路徑)處理,尤其不得在程序中提取磁盤(pán)上的目錄、文件的內(nèi)容傳送到頁(yè)面。 4.2.21 第三方產(chǎn)品的合法性(一)應(yīng)選擇合法的第三方產(chǎn)品,在使用第三方產(chǎn)品前,需要進(jìn)行安全的評(píng)估和版本篩選。5 系統(tǒng)部署安全規(guī)范5.1 部署架構(gòu)和安全下圖顯示了需在程序設(shè)計(jì)階段考慮的幾個(gè)程序部署問(wèn)題。在應(yīng)用程序設(shè)計(jì)階段,應(yīng)考慮我司安全策略和程序

22、,以及部署應(yīng)用程序的基礎(chǔ)結(jié)構(gòu)。通常,目標(biāo)環(huán)境是固定不變的,應(yīng)用程序的設(shè)計(jì)必須要反映這些限制條件。有時(shí)需要折衷考慮設(shè)計(jì)方案,例如,由于存在協(xié)議和端口限制,或是特定部署拓?fù)浣Y(jié)構(gòu)的要求。要在設(shè)計(jì)初期確定存在哪些限制條件,以避免日后在開(kāi)發(fā)過(guò)程中出現(xiàn)意外;另外,應(yīng)邀請(qǐng)網(wǎng)絡(luò)和基礎(chǔ)結(jié)構(gòu)工作組的成員參與此過(guò)程。5.1.1 網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu)組件確保您了解目標(biāo)環(huán)境提供的網(wǎng)絡(luò)結(jié)構(gòu),并了解網(wǎng)絡(luò)的基本安全要求,如篩選規(guī)則、端口限制、支持的協(xié)議等等。確定防火墻和防火墻策略可能會(huì)如何影響應(yīng)用程序的設(shè)計(jì)和部署。在面向 Internet 的應(yīng)用程序和內(nèi)部網(wǎng)絡(luò)之間可能存在防火墻將其隔開(kāi)。也許還存在用于保護(hù)數(shù)據(jù)庫(kù)的其他防火墻。這些防火

23、墻影響了可用的通信端口,因此會(huì)影響 Web 服務(wù)器到遠(yuǎn)程應(yīng)用程序和數(shù)據(jù)庫(kù)服務(wù)器的身份驗(yàn)證選項(xiàng)。例如,Windows 身份驗(yàn)證需要附加端口。在設(shè)計(jì)階段,需要考慮允許哪些協(xié)議、端口和服務(wù)從外圍網(wǎng)絡(luò)中的 Web 服務(wù)器訪問(wèn)內(nèi)部資源。還應(yīng)確定應(yīng)用程序設(shè)計(jì)所需的協(xié)議和端口,并分析打開(kāi)新端口或使用新協(xié)議會(huì)帶來(lái)哪些潛在威脅。交流并記錄所有有關(guān)網(wǎng)絡(luò)和應(yīng)用層安全的設(shè)想,以及哪些組件將處理哪些問(wèn)題。這樣,當(dāng)開(kāi)發(fā)人員和網(wǎng)絡(luò)管理人員都認(rèn)為對(duì)方會(huì)解決安全問(wèn)題時(shí),可以防止安全控制失敗。注意網(wǎng)絡(luò)為應(yīng)用程序提供的安全防范措施。設(shè)想如果更改網(wǎng)絡(luò)設(shè)置,可能會(huì)帶來(lái)哪些安全隱患。如果實(shí)現(xiàn)特定的網(wǎng)絡(luò)結(jié)構(gòu)更改,將會(huì)出現(xiàn)多少安全漏洞?5.

24、1.2 部署拓?fù)浣Y(jié)構(gòu)應(yīng)用程序的部署拓?fù)浣Y(jié)構(gòu)和是否具有遠(yuǎn)程應(yīng)用層是設(shè)計(jì)階段必須考慮的關(guān)鍵問(wèn)題。如果具有遠(yuǎn)程應(yīng)用層,需要考慮怎樣保護(hù)服務(wù)器之間的網(wǎng)絡(luò)以減少網(wǎng)絡(luò)竊聽(tīng)威脅,以及怎樣保護(hù)敏感數(shù)據(jù)的保密性和完整性。此外,還要考慮標(biāo)識(shí)符流,并確定在應(yīng)用程序連接到遠(yuǎn)程服務(wù)器時(shí)將用于網(wǎng)絡(luò)身份驗(yàn)證的帳戶(hù)。一種常見(jiàn)方法是使用最小特權(quán)進(jìn)程帳戶(hù),并在遠(yuǎn)程服務(wù)器上創(chuàng)建一個(gè)具有相同密碼的帳戶(hù)副本(鏡像)。另一種方法是使用域進(jìn)程帳戶(hù),此類(lèi)帳戶(hù)管理方便,但會(huì)帶來(lái)更大的安全問(wèn)題,因?yàn)楹茈y限制該帳戶(hù)在網(wǎng)絡(luò)上的使用。未建立信任關(guān)系的介入防火墻和單獨(dú)域使應(yīng)用本地帳戶(hù)成為唯一的選擇。5.2 部署操作安全規(guī)范5.2.1 確保管理界面的安全

25、配置管理功能只能由經(jīng)過(guò)授權(quán)的操作員和管理員訪問(wèn),這一點(diǎn)是非常重要的。關(guān)鍵一點(diǎn)是要在管理界面上實(shí)施強(qiáng)身份驗(yàn)證,如使用證書(shū)。如果有可能,限制或避免使用遠(yuǎn)程管理,并要求管理員在本地登錄。如果需要支持遠(yuǎn)程管理,應(yīng)使用加密通道,如 SSL 或 VPN 技術(shù),因?yàn)橥ㄟ^(guò)管理界面?zhèn)鬟f的數(shù)據(jù)是敏感數(shù)據(jù)。此外,還要考慮使用 IPSec 策略限制對(duì)內(nèi)部網(wǎng)絡(luò)計(jì)算機(jī)的遠(yuǎn)程管理,以進(jìn)一步降低風(fēng)險(xiǎn)。5.2.2 確保配置存儲(chǔ)的安全基于文本的配置文件、注冊(cè)表和數(shù)據(jù)庫(kù)是存儲(chǔ)應(yīng)用程序配置數(shù)據(jù)的常用方法。如有可能,應(yīng)避免在應(yīng)用程序的 Web 空間使用配置文件,以防止可能出現(xiàn)的服務(wù)器配置漏洞導(dǎo)致配置文件被下載。無(wú)論使用哪種方法,都應(yīng)確

26、保配置存儲(chǔ)訪問(wèn)的安全,如使用 Windows ACL 或數(shù)據(jù)庫(kù)權(quán)限。還應(yīng)避免以純文本形式存儲(chǔ)機(jī)密,如數(shù)據(jù)庫(kù)連接字符串或帳戶(hù)憑據(jù)。通過(guò)加密確保這些項(xiàng)目的安全,然后限制對(duì)包含加密數(shù)據(jù)的注冊(cè)表項(xiàng)、文件或表的訪問(wèn)權(quán)限。5.2.3 單獨(dú)分配管理特權(quán)如果應(yīng)用程序的配置管理功能所支持的功能性基于管理員角色而變化,則應(yīng)考慮使用基于角色的授權(quán)策略分別為每個(gè)角色授權(quán)。例如,負(fù)責(zé)更新站點(diǎn)靜態(tài)內(nèi)容的人員不必具有更改客戶(hù)信貸限額的權(quán)限。5.2.4 使用最少特權(quán)進(jìn)程和服務(wù)帳戶(hù)應(yīng)用程序配置的一個(gè)重要方面是用于運(yùn)行 Web 服務(wù)器進(jìn)程的進(jìn)程帳戶(hù),以及用于訪問(wèn)下游資源和系統(tǒng)的服務(wù)帳戶(hù)。應(yīng)確保為這些帳戶(hù)設(shè)置最少特權(quán)。如果攻擊者設(shè)

27、法控制一個(gè)進(jìn)程,則該進(jìn)程標(biāo)識(shí)對(duì)文件系統(tǒng)和其他系統(tǒng)資源應(yīng)該具有極有限的訪問(wèn)權(quán)限,以減少可能造成的危害。5.2.5 盡量避免存儲(chǔ)機(jī)密在軟件中以完全安全的方式存儲(chǔ)機(jī)密是不可能的??梢越佑|到服務(wù)器的系統(tǒng)管理員可以訪問(wèn)這些數(shù)據(jù)。例如,當(dāng)您所要做的僅僅是驗(yàn)證用戶(hù)是否知道某個(gè)機(jī)密時(shí),則沒(méi)有必要存儲(chǔ)該機(jī)密。在這種情況下,可以存儲(chǔ)代表機(jī)密的哈希值,然后使用用戶(hù)提供的值計(jì)算哈希值,以驗(yàn)證該用戶(hù)是否知道該機(jī)密。5.2.6 不要在代碼中存儲(chǔ)機(jī)密不要在代碼中對(duì)機(jī)密進(jìn)行硬編碼。即使不將源代碼暴露在 Web 服務(wù)器上,但從編譯過(guò)的可執(zhí)行文件中仍然可以提取字符串常量。配置漏洞可能會(huì)允許攻擊者檢索可執(zhí)行文件。5.2.7 不要以

28、純文本形式存儲(chǔ)數(shù)據(jù)庫(kù)連接、密碼或密鑰避免以純文本形式存儲(chǔ)諸如數(shù)據(jù)庫(kù)連接字符串、密碼和密鑰之類(lèi)的機(jī)密。使用加密,并存儲(chǔ)經(jīng)過(guò)加密的字符串。5.2.8 限制主機(jī)上 WEB 系統(tǒng)啟動(dòng)用戶(hù)的權(quán)限(一)應(yīng)將WEB系統(tǒng)的啟動(dòng)用戶(hù)的權(quán)限限制在最小范圍內(nèi),禁止該用戶(hù)訪問(wèn)其它不必要的路徑(如:/etc/、/root) 。 5.2.9 隱藏后臺(tái)調(diào)試信息(一)WEB 系統(tǒng)、數(shù)據(jù)庫(kù)等報(bào)告的異常信息、調(diào)試信息不應(yīng)該出現(xiàn)在頁(yè)面上。5.2.10 密碼加密存儲(chǔ)(一)WEB 系統(tǒng)中存儲(chǔ)的密碼應(yīng)采用一定的加密算法,以密文形式存放。此處所指的密碼包括但不限于: 1配置文件中的主機(jī)、網(wǎng)絡(luò)、數(shù)據(jù)庫(kù)、郵箱的密碼; 2數(shù)據(jù)庫(kù)中的用戶(hù)資料密碼

29、; (二)加密算法的選擇應(yīng)根據(jù)實(shí)際需要,首選不對(duì)稱(chēng)加密算法,次選破解難度高的對(duì)稱(chēng)加密算法。 5.2.11 隱藏重要配置參數(shù)信息(一)對(duì)于重要的配置參數(shù)信息,應(yīng)采用必要的隱藏措施,具體技術(shù)請(qǐng)遵循我司敏感參數(shù)保護(hù)規(guī)范 (二)此處所指的配置參數(shù)包括但不限于: 1. 重要的用戶(hù)名、密碼; 2. 重要設(shè)備的內(nèi)網(wǎng)地址(如:數(shù)據(jù)庫(kù)、存儲(chǔ)設(shè)備) ; 5.2.12 隱藏日志文件(一)不應(yīng)將日志文件的路徑設(shè)置在頁(yè)面可達(dá)的位置,用戶(hù)通過(guò)頁(yè)面應(yīng)該無(wú)法訪問(wèn)到 系統(tǒng)產(chǎn)生的日志文件。 5.2.13 禁用 WebDAV,或者禁止不需要的 HTTP 方法(一)在無(wú)特定的需求情況下,應(yīng)只開(kāi)放 GET, HEAD, POST 等安

30、全的 HTTP 方法,禁用 PUT, DELETE, OPTIONS 等具有操作性質(zhì)的 HTTP 方法。 5.2.14 保證管理平臺(tái)、測(cè)試賬號(hào)口令強(qiáng)度 (一)WEB系統(tǒng)的管理平臺(tái)、 測(cè)試賬號(hào)的口令應(yīng)具有足夠的強(qiáng)度。 具體要求請(qǐng)遵循我司公司系統(tǒng)帳號(hào)口令管理辦法 。5.2.15 定期核查文件上傳路徑、日志路徑中是否存在木馬(一)應(yīng)定期對(duì)不可能出現(xiàn)代碼的路徑進(jìn)行檢查,及時(shí)發(fā)現(xiàn)與排除可能存在的木馬。 (二)需要檢查的路徑包括但不限于:用戶(hù)文件上傳路徑、日志文件路徑。 5.2.16 及時(shí)刪除應(yīng)用系統(tǒng)臨時(shí)文件(一)WEB系統(tǒng)中不應(yīng)該含有不必要的文件。包括但不限于:.CVS 文件夾、.svn 文件夾、臨時(shí)備份文件等等。 (二)對(duì)于WEB頁(yè)面?zhèn)浞菸募灰?bak文件存放(如 index.jsp.bak 等) 5.2.17 重要系統(tǒng)隔離(一)在部署WEB系統(tǒng)時(shí),應(yīng)根據(jù)實(shí)際情況,盡量使重要系統(tǒng)之間互相隔離、重要系統(tǒng)與其它系統(tǒng)之間隔離。 (二)隔離措施包括但不限于:主機(jī)分離、數(shù)據(jù)庫(kù)分離、網(wǎng)段隔離。6 安全審計(jì)應(yīng)該審核和記錄跨應(yīng)用層的活動(dòng)。使用日志,可以檢測(cè)到蹤跡可疑的活動(dòng)。這通常能較早地發(fā)現(xiàn)成熟攻擊的跡象,日志還有助于解決抵賴(lài)問(wèn)題,即用戶(hù)拒絕承認(rèn)其行為的問(wèn)題。在證明個(gè)人錯(cuò)誤行為的法律程序中,可能

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論