通用軟件測評之軟件產品的信息安全性
軟件測評標准概述
計算機軟件是計算機應用的核心,其質量的好壞關系到計算機應用系統的成敗,軟件測評是提高軟件質量的一個重要手段,目前我國軟件開發、軟件測評主要依照標准是《GBT 25000.51-2016系統與軟件工程 系統與軟件質量要求和評價(SQuaRE) 第51部分:就緒可用軟件產品(RUSP)的質量要求和測試細則 》以及《GBT_25000.10-2016系統與軟件工程 系統與軟件質量要求和評價(SQuaRE) 第10部分:系統與軟件質量模型》,這兩個標准是對現行標准GB/T25000.51-2010以及GB/T16260.1-2006的修訂。
新標准最大的改變是將軟件產品的六個質量特性擴充為八個特性(功能性、性能效率、兼容性、易用性、可靠性、信息安全性、維護性、可移植性),新標准增加了信息安全性和兼容性這兩大特性,本文主要針對軟件的信息安全性質量特性要求進行解讀。
信息安全性定義
軟件產品質量的信息安全性是指產品或者系統保護信息和數據的程度,以使用戶、其他產品或系統具有與其授權類型和授權級別一致的數據訪問度。
在《GBT 25000.51-2016系統與軟件工程 系統與軟件質量要求和評價(SQuaRE) 第51部分:就緒可用軟件產品(RUSP)的質量要求和測試細則》信息安全性要求為:
軟件應按照用戶文檔集中定義的信息安全性特征來運行。
軟件應能防止對程序和數據的未授權訪問(不管是無意的還是故意的)。
軟件應能識別出對結構數據庫或文件完整性產生損害的事件,且能阻止該事件,並通報給授權用戶。
軟件應能按照信息安全要求,對訪問權限進行管理。
軟件應能對保密數據進行保護,只允許授權用戶訪問。
信息安全性解析
信息安全性一般划分為以下6個子特性:保密性、完整性、抗抵賴性、可核查性、真實性、信息安全性的依從性。我們依據《GBT_25000.10-2016系統與軟件工程 系統與軟件質量要求和評價(SQuaRE) 第10部分:系統與軟件質量模型》中的要求對其各個子特性逐一進行分析
保密性
要求:產品或系統確保數據只有在被授權時才能被訪問的程度。
測試內容:
-
驗證軟件產品是否具有對系統正常訪問的控制能力依據安全策略和用戶角色沒置訪問控制矩陣,用戶權限應遵循“最小權限原則”
-
測試系統是否進行用戶身份鑒別,並在每次用戶登錄系統時進行鑒別。
-
測試軟件鑒別信息是否為不可見,且具有相應的抗攻擊能力,並在存儲或傳輸時用加密方法/具有相同安全強度的其他方法進行安全保護
-
驗證數據在傳輸過程中不被竊聽,對整個通信過程中的整個報文或會話過程進行加密,如采用3DES(三重數據加密算法)、AES(高級加密標准)和IDEA(國際數據加密算法)等加密處理。
-
明確區分系統中不同用戶權限,系統不會因用戶的權限的改變造成混亂。
-
合適的身份認證方式,用戶登密碼是否是可見、可復制,密碼的存儲和傳輸安全,密碼策略保證密碼安全
-
測試系統是否對不成功的鑒別嘗試的值(包括嘗試次數和時間的閾值)進行預先定義,井明確規定達到該值時是否采取了具有規范性和安全性的措施來實現鑒別失敗的處理。
-
軟件應能防止對程序和數據的未授權訪何(不管是無意的還是故意的).
測試用例參考:
明確區分系統中不同的用戶權限
系統不會因用戶的權限的改變造成混亂,把原來高權限用戶改為低權限用戶,登錄后系統是否異常
系統中存在用戶登錄鑒別模塊,並且每次登錄需要鑒別
是否存在登錄驗證碼,登錄失敗次數限制等抗攻擊能力
用戶登錄密碼是否可見、可復制,密碼是否加密存儲和傳輸
網站是否為https協議傳輸
是否可以通過絕對路徑登錄系統(訪問用戶登錄后的鏈接直接進入系統)
完整性
要求:系統、產品或組件防止未授權訪問、篡改計算機程序或數據的程度。
測試內容:
- 驗證對軟件產品是杏具有對未授權用戶非法訪間的控制能力
- 采用專業測試工具開展“滲透測試”、“漏洞掃描”等手段,在模擬非法入侵攻擊事件的條件下,驗證軟件產品是否有控制和處理能力
- 驗證軟件產品對非授權人創建、刪除或修改信息是否有控制處理能力
- 軟件應能識別出對結構數據庫或文件完整性產生損害的事件,且能阻止該事件,並通報給授權人
- 系統數據的完整性、可管理性可備份和可恢復能力,數據傳輸、數據使用、數據存儲的完整性
測試用例參考:
未授權訪問,低權限用戶訪問高權限用戶數據
未授權修改,無修改權限用戶修改系統數據(包括創建、刪除、修改)
漏洞掃描或滲透測試中,系統是否存在告警機制、是否存在自動限制賬號、IP訪問等控制處理功能
數據庫、文件篡改、破壞是否具備防止和恢復功能
漏洞掃描測試未發現存在已知漏洞
抗抵賴性
要求:活動或事件發生后可以被證實且不可被否認的程度。
測試內容:
- 測試軟件是否具有在請求的情況下為數據原發者提供數據原發證據的功能:
- 測試軟件是否具有在請求的情況下為數據接收者提供數據接收證據的功能:
- 測試軟件是否使用數字證書等方式保證用戶的身份認證,在收到請求的情況下為數據原發者或接受者提供數據原發和接收的證據。
- 測試軟件是否具備完整且無法算改的審計記錄,確保用戶操作可經過審計及追蹤。系統操作日志/審計、異常日志、告警日志,審計日志的完整性、保密性。
- 驗證審計日志的管理,日志不能被任何人修改和刪除,能夠形成完整的證據鏈。
測試用例參考:
用戶操作是否存在審計日志
用戶操作審計日志是否可以刪除
軟件是否使用數字證書加密
軟件的系統操作日志、異常日志、告警日志,審計日志完整性,並只有授權用戶能訪問
可核查性
要求:實體的活動可以被唯一地追溯到該實體的程度。
測試內容:
- 測試系統是否將用戶進程與所有者用戶相關聯,使用戶進程行為可以追溯到進程所有者用戶
- 測試系統是否將系統進程動態地與當前服務要求者用戶相關聯,使系統進程的行為可以追溯到
- 測試系統或軟件的審計模塊,檢查模塊是否具有完善的安全審計功能考察啟用安全審計功能后,覆蓋用戶的多少和安全事件的程度,覆蓋到每個用戶活動,日志記錄內容至少應包括事件日期、事件、發起者信息、類型、描述和結果等,審計跟蹤設置是否定義了審計跟蹤極限的閥值,當存儲空間被耗盡時,能否采取必要的保護措施
- 賬戶管理,包括賬戶唯一性、登錄機制、密碼管理策略
- 會話管理,設計登錄成功使用新的會話:設計會話數據的存儲安全;設計會話數據的傳輸安全;設計會話的安全終止;設計合理的會話存活時間:設計避免跨站請求偽造
測試用例參考:
審計模塊是否具有安全審計功能,功能是否合理完善有效
身份標識具有唯一性,無法注冊相同用戶名
多因素登錄保證用戶登錄的一致性,且其中一種至少應使用密碼技術實現
是否存在避免跨站請求偽造漏洞,關鍵數據操作是否驗證請求來源
用戶退出登錄后是否刪除所有鑒權信息,退出登錄系統后使用瀏覽器的后退功能是否可以不通過輸入口令進入系統
是否存在登錄連接超時自動退出功能
真實性
要求:對象或資源的身份標識能夠被證實符合其聲明的程度。
測試內容:
- 驗證軟件是否具有當前使用系統的用戶列表和配置表。
- 驗證軟件在系統的訪問歷史數據庫中記錄的訪問登錄記錄是否完整
- 檢查軟件是否具有用戶使用系統的歷史日志及日志管理功能。
- 在模擬攻擊事件的入侵的情況下,驗證軟件的日志內容是否有相關記錄。
- 檢查軟件中的"用戶訪問系統和數據”的記錄內是否包括防止病毒的"病毒檢測記錄”。
測試用例參考:
軟件是否存在用戶管理模塊,是否具有用戶列表和配置表功能
查看數據庫日志訪問登錄日志是否完整,真實記錄
查看審計日志是否有用戶登錄使用日志
查看審計日志是否有攻擊防護日志
軟件中的"用戶訪問系統和數據”的記錄內是否包括防止病毒的"病毒檢測記錄”
信息安全性的依從性
要求:產品或系統遵循與信息安全性相關的標准、約定或法規以及類似規定的程度。
測試內容:
- 檢查軟件產品的信息安全性是否遵循了所實施法規、標准和約定
測試用例參考:
軟件是否遵循了所實施法規、標准和約定,行業標准、驗收標准、等級保護標准等
附件:信息安全危害分級標准
目前定義有五類危害等級,危害等級定義依據為:
漏洞等級 | 說明 |
---|---|
緊急 | 可以直接被利用的漏洞,且利用難度較低。被攻擊之后可能對網站或服務器的正常運行造成嚴重影響,或對用戶財產及個人信息造成重大損失。 |
高危 | 被利用之后,造成的影響較大,但直接利用難度較高的漏洞。或本身無法直接攻擊,但能為進一步攻擊造成極大便利的漏洞。 |
中危 | 利用難度極高,或滿足嚴格條件才能實現攻擊的漏洞。或漏洞本身無法被直接攻擊,但能為進一步攻擊起較大幫助作用的漏洞。 |
低危 | 無法直接實現攻擊,但提供的信息可能讓攻擊者更容易找到其他安全漏洞。 |
信息 | 本身對網站安全沒有直接影響,提供的信息可能為攻擊者提供少量幫助,或可用於其他手段的攻擊,如社工等。 |