5.3 增強級安全要求
5.3 增強級安全要求
5.3.1 安全功能要求
5.3.1.1 掃描能力
5.3.1.1.1 資源發現
產品應能夠發現Web應用中的以下各種URL,并以樹型結構呈現。
a) 解析和執行JavaScript等腳本而獲得的URL;
b) 頁面文件包括的URL;
5.3.1.1.2 漏洞檢測
產品應能夠檢測出Web應用漏洞,包括但不限于以下內容:
a) SQL注入漏洞,支持基于GET、POST方式提交的應包括字符、數字和搜索等的注入漏洞;
b) Cookie注入漏洞,支持基于Cookie方式提交的應包括字符、數字和搜索等的注入漏洞;
c) XSS漏洞,支持基于GET、POST、Referrer和Cookie方式的跨站攻擊漏洞;
d) CSRF漏洞;
e) 目錄遍歷漏洞;
f) 信息泄漏漏洞,支持路徑泄漏、文件備份、源代碼泄漏、目錄瀏覽和phpinfo等信息泄漏;
g) 認證方式脆弱,包括但不限于各種登錄繞過、弱口令等;
h) 文件包含漏洞,支持遠程、本地方式的文件包含漏洞;
i) 命令執行漏洞;
j) 第三方組件漏洞,如Struts2、FCKeditor編輯器等;
l) LDAP注入漏洞;
5.3.1.1.3 變形檢測
產品應支持漏洞的變形檢測,以此繞過簡單的防護過濾檢測機制。支持包括大小寫隨機轉換、多種繞過空格限制、空格替換和URL編碼等機制。
5.3.1.1.4 內容檢測
產品應能夠檢測目標Web應用系統的以下內容:
a) 不屬于目標系統的外鏈;
b) 目標系統內的壞鏈;
c) 目標系統內的暗鏈;
5.3.1.1.5 升級能力
產品應具備以下升級能力:
a) 漏洞特征庫的更新;
5.3.1.1.6 支持SSL應用
產品應能對基于HTTPS協議的Web應用系統進行掃描。
5.3.1.1.7 對目標系統的影響
產品在掃描過程中應避免影響目標Web應用系統的正常工作,不對其產生較大的性能影響。
5.3.1.1.8 誤報率
產品判斷錯誤的漏洞數量占所有發現到的同類型漏洞總數的比例須低于20%。
5.3.1.1.9 漏報率
產品未發現的漏洞數量占掃描范圍內實際同類型漏洞總數的比例須低于20%。
5.3.1.1.10 URL發現率
產品發現Web應用的URL比例應大于90%。
5.3.1.2 掃描配置管理
5.3.1.2.1 向導功能
產品應提供向導功能,指導用戶進行正確配置。
5.3.1.2.2 掃描范圍
產品應能夠按照下列條件配置掃描的范圍:
a) 指定域名和URL;
b) 掃描的深度;
c) 不掃描的URL,例如登出、刪除等相關頁面;
d) 路徑模式排重;
5.3.1.2.3 登錄掃描
產品應能夠基于用戶的登錄信息對Web應用進行掃描。如基于錄制信息、Cookie、Session和Token等一種或多種方式授權登錄并進行掃描。
5.3.1.2.4 掃描策略
5.3.1.2.4.1 策略選擇
產品應能夠按照下列方式來選擇掃描策略:
a) 漏洞類型、類別;
b) 漏洞危害程度;
5.3.1.2.4.2 策略擴展
產品應能夠自定義掃描策略,對已有策略進行擴展。
5.3.1.2.5 掃描速度
產品應提供合理的掃描速度:
a) 配置HTTP請求速度、掃描線程或進程數目等方式進行調節;
b) 支持分布式部署掃描引擎方式;
5.3.1.2.6 任務定制
產品應能按照計劃任務實現批量、定時、指定時間段和周期性啟動掃描,并根據設置自動生成相應的報告。
5.3.1.2.7 穩定性和容錯性
產品應能夠穩定的運行,應滿足下列條件:
a) 主界面不應失去響應或非正常退出;
b) 掃描進度不應停滯不前;
c) 掃描任務應能夠隨時停止;
d) 應支持斷點續掃;
5.3.1.3 掃描結果分析處理
5.3.1.3.1 結果驗證
產品應具備Web應用漏洞驗證的功能,具備下列驗證能力:
a) 提供參數驗證XSS漏洞、SQL注入點、目錄遍歷、信息泄漏和命令執行等安全漏洞;
5.3.1.3.2 結果保存
掃描結果應非明文存儲于掉電非易失性存儲介質中。
5.3.1.3.3 統計分析
產品應能對掃描獲取的原始數據進行整理,并對結果進行統計分析。
5.3.1.3.4 報告生成
產品應能對掃描結果進行分析并形成報告,報告應包括下列內容:
a) 對掃描信息的結果生成相應報告,漏洞信息應包括URL、漏洞名稱、漏洞描述等詳細信息;
b) 對漏洞提出相應的安全性建議;
c) 支持導出行業合規報告;
d) 支持編輯和自定義設計報告,添加自定義注釋或詳細信息,為技術人員修復安全缺陷提供幫助;
e) 支持批量導出報告;
5.3.1.3.5 報告輸出
產品的掃描報告應按下列要求輸出:
a) 導出為常用文檔格式;
5.3.1.4 互動性要求
產品應提供或采用一個標準的、開放的接口。遵照該接口規范,可為其它類型安全產品編寫相應的程序模塊,達到與產品進行互動的目的。
5.3.2 自身安全功能要求
5.3.2.1 標識與鑒別
5.3.2.1.1 用戶標識
5.3.2.1.1.1 屬性定義
產品應為每個管理角色規定與之相關的安全屬性,例如管理角色標識、鑒別信息、隸屬組、權限等。
5.3.2.1.1.2 屬性初始化
產品應具備使用默認值對創建的每個管理角色的屬性進行初始化的能力。
5.3.2.1.1.3 唯一性標識
產品應為用戶提供唯一標識。同時將用戶的身份標識與該用戶的所有可審計能力相關聯。
5.3.2.1.2 身份鑒別
5.3.2.1.2.1 用戶鑒別
產品應在執行任何與管理員相關操作之前鑒別用戶的身份。
5.3.2.1.2.2 用戶數據保護
產品應保證用戶數據不被未授權查閱或修改。
5.3.2.1.2.3 鑒別失敗處理
當對用戶鑒別失敗的次數達到指定次數后,產品應能終止用戶的訪問。
5.3.2.1.2.4 超時鎖定或注銷
應具有登錄超時鎖定或注銷功能。在設定的時間段內沒有任何操作的情況下,終止會話,需要再次進行身份鑒別才能夠重新操作。最大超時時間僅由授權管理員設定。
5.3.2.2 安全管理
5.3.2.2.1 安全功能管理
產品應允許管理員進行以下管理:
a) 查看安全屬性;
b) 修改安全屬性;
c) 啟動、關閉全部或部分安全功能;
5.3.2.2.2 安全角色管理
產品應能對管理員角色進行區分:
a) 具有至少兩種不同權限的管理員角色;
5.3.2.2.3 遠程安全傳輸
若產品組件間通過網絡進行通訊,應采取措施保障傳輸數據的安全性。
5.3.2.2.4 管理主機限制
若控制臺提供遠程管理功能,應能對可遠程管理的主機地址進行限制。
5.3.2.3 審計日志
5.3.2.3.1 審計日志生成
產品應對與自身安全相關的以下事件生成審計日志:
a) 管理員的登錄成功和失敗;
b) 對安全策略進行配置的操作;
c) 對安全角色進行增加、刪除和屬性修改的操作;
d) 對掃描結果的備份和刪除。
5.3.2.3.2 審計日志保存
審計日志應存儲于掉電非易失性存儲介質中。
5.3.2.3.3 審計日志管理
產品應提供下列審計日志管理功能:
a) 只允許授權管理員訪問審計日志;
b) 提供針對操作用戶、日期時間和操作類型等條件的查詢和檢索功能;
5.3.3 安全保障要求
5.3.3.1 開發
5.3.3.1.1 安全架構
開發者應提供產品安全功能的安全架構描述,安全架構描述應滿足以下要求:
a) 與產品設計文檔中對安全功能實施抽象描述的級別一致;
b) 描述與安全功能要求一致的產品安全功能的安全域;
c) 描述產品安全功能初始化過程為何是安全的;
d) 證實產品安全功能能夠防止被破壞;
5.3.3.1.2 功能規范
開發者應提供完備的功能規范說明,功能規范說明應滿足以下要求:
a) 完全描述產品的安全功能;
b) 描述所有安全功能接口的目的與使用方法;
c) 標識和描述每個安全功能接口相關的所有參數;
d) 描述安全功能接口相關的安全功能實施行為;
e) 描述由安全功能實施行為處理而引起的直接錯誤消息;
f) 證實安全功能要求到安全功能接口的追溯;
g) 描述安全功能實施過程中,與安全功能接口相關的所有行為;
5.3.3.1.3 實現表示
開發者應提供全部安全功能的實現表示,實現表示應滿足以下要求:
a) 提供產品設計描述與實現表示實例之間的映射,并證明其一致性;
b) 按詳細級別定義產品安全功能,詳細程度達到無須進一步設計就能生成安全功能的程度;
5.3.3.1.4 產品設計
開發者應提供產品設計文檔,產品設計文檔應滿足以下要求:
a) 根據子系統描述產品結構;
b) 標識和描述產品安全功能的所有子系統;
c) 描述安全功能所有子系統間的相互作用;
d) 提供的映射關系能夠證實設計中描述的所有行為能夠映射到調用它的安全功能接口;
e) 根據模塊描述安全功能;
f) 提供安全功能子系統到模塊間的映射關系;
g) 描述所有安全功能實現模塊,包括其目的及與其它模塊間的相互作用;
h) 描述所有實現模塊的安全功能要求相關接口、其它接口的返回值、與其它模塊間的相互作用及調用的接口;
##### 5.3.3.2 指導性文檔
5.3.3.2.1 操作用戶指南
開發者應提供明確和合理的操作用戶指南,操作用戶指南與為評估而提供的其他所有文檔保持一致,對每一種用戶角色的描述應滿足以下要求:
a) 描述在安全處理環境中被控制的用戶可訪問的功能和特權,包含適當的警示信息;
b) 描述如何以安全的方式使用產品提供的可用接口;
c) 描述可用功能和接口,尤其是受用戶控制的所有安全參數;
d) 明確說明與需要執行的用戶可訪問功能有關的每一種安全相關事件,包括改變安全功能所控制實體的安全特性;
e) 標識產品運行的所有可能狀態(包括操作導致的失敗或者操作性錯誤),以及它們與維持安全運行之間的因果關系和聯系;
5.3.3.2.2 準備程序
開發者應提供產品及其準備程序,準備程序描述應滿足以下要求:
a) 描述與開發者交付程序相一致的安全接收所交付產品必需的所有步驟;
5.3.3.3 生命周期支持
5.3.3.3.1 配置管理能力
開發者的配置管理能力應滿足以下要求:
a) 為產品的不同版本提供唯一的標識;
b) 使用配置管理系統對組成產品的所有配置項進行維護,并唯一標識配置項;
c) 提供配置管理文檔,配置管理文檔描述用于唯一標識配置項的方法;
d) 配置管理系統提供一種自動方式來支持產品的生成,通過該方式確保只能對產品的實現表示進行已授權的改變;
e) 配置管理文檔包括一個配置管理計劃,配置管理計劃描述如何使用配置管理系統開發產品。實施的配置管理與配置管理計劃相一致;
5.3.3.3.2 配置管理范圍
開發者應提供產品配置項列表,并說明配置項的開發者。配置項列表應包含以下內容:
a) 產品、安全保障要求的評估證據和產品的組成部分;
5.3.3.3.3 交付程序
開發者應使用一定的交付程序交付產品,并將交付過程文檔化。在給用戶方交付產品的各版本時,交付文檔應描述為維護安全所必需的所有程序。
5.3.3.3.4 開發安全
開發者應提供開發安全文檔。開發安全文檔應描述在產品的開發環境中,為保護產品設計和實現的保密性和完整性所必需的所有物理的、程序的、人員的和其他方面的安全措施。
5.3.3.3.5 生命周期定義
開發者應建立一個生命周期模型對產品的開發和維護進行的必要控制,并提供生命周期定義文檔描述用于開發和維護產品的模型。
5.3.3.3.6 工具和技術
開發者應明確定義用于開發產品的工具,并提供開發工具文檔無歧義地定義實現中每個語句的含義和所有依賴于實現的選項的含義。
5.3.3.4 測試
5.3.3.4.1 測試覆蓋
開發者應提供測試覆蓋文檔,測試覆蓋描述應滿足以下要求:
a) 表明測試文檔中所標識的測試與功能規范中所描述的產品的安全功能間的對應性;
5.3.3.4.2 測試深度
開發者應提供測試深度的分析。測試深度分析描述應滿足以下要求:
a) 證實測試文檔中的測試與產品設計中的安全功能子系統和實現模塊之間的一致性;
##### 5.3.3.4.3 功能測試
開發者應測試產品安全功能,將結果文檔化并提供測試文檔。測試文檔應包括以下內容:
a) 測試計劃,標識要執行的測試,并描述執行每個測試的方案,這些方案包括對于其它測試結果的任何順序依賴性;
b) 預期的測試結果,表明測試成功后的預期輸出;
5.3.3.4.4 獨立測試
開發者應提供一組與其自測安全功能時使用的同等資源,以用于安全功能的抽樣測試。
5.3.3.5 脆弱性評定
基于已標識的潛在脆弱性,產品能夠抵抗增強攻擊。
GB/T37931-2019Web應用安全檢測系統安全要求
推薦文章: