什麼是安全測試

2020-10-19 11:00:55

一 什麼是安全測試

安全測試是在軟體產品的生命週期過程中,對產品檢驗是否符合安全需求定義

二 安全測試的目的

提升軟體產品的安全品質
儘量在釋出前找到安全問題予以修補降低成本
電量安全
驗證安裝在系統內的保護機制能否在實際應用中對系統進行保護
使之不被非法入侵

三 怎麼做安全測試

3.1 一個完整的安全性測試

從部署與基礎結構、輸入驗證、身份驗證、授權、設定管理、敏感資料、對談管理、加密、引數操作、異常管理、稽核和紀錄檔記錄

3.2 部署與基礎結構

網路是否提供了安全的通訊,部署是否包括內部的防火牆,基礎結構安全性需求的限制是什麼,目標環境支援怎樣的信任級別

3.3 輸入驗證

如何驗證輸入,是否驗證Web頁輸入,是否對傳遞到元件或Web服務的引數進行驗證,是否驗證從資料庫中檢索的資料,是否依賴使用者端的驗證,應用程式是否易受SQL隱碼攻擊,應用程式是否易受XSS攻擊,如何處理輸入

3.4 身份驗證

是否區分公共存取和受限存取,如何驗證資料庫的身份

3.5 授權

如何向終端使用者授權,如何在資料庫中授權應用程式,如何將存取限定於系統級資源

3.6 設定管理

是否保證設定儲存的安全

3.7 敏感資料

是否儲存機密資訊,如何儲存敏感資料,是否在網路中傳遞敏感資料,是否記錄敏感資料

3.8對談管理

是否限制對談生存期,如何確保對談儲存狀態的安全

3.9 加密

如何確保加密金鑰的安全性

3.10 引數操作

是否驗證所有的輸入引數,是否在引數過程中傳遞敏感資料,是否為了安全問題而使用HTTP頭資料

3.11異常管理

是否使用結構化的例外處理,是否向用戶端公開了太多的資訊

四 傳輸安全

傳輸級的安全測試是考慮到Web系統的傳輸的特殊性,重點測試資料經使用者端傳送到伺服器端可能存在的安全漏洞,以及伺服器防範非法存取的能力

4.1 HTTPS和SSL

HTTPS和SSL測試:預設的情況下,安全HTTP(Soure HTTP)通過安全通訊端SSL(Source Socket Layer)協定在埠443上使用普通的HTTP
HTTPS使用的公共金鑰的加密長度決定的HTTPS的安全級別,安全性的保證是以損失效能為代價 的。除了要測試加密是否正確,檢查資訊的完整性和確認HTTPS的安全級別外,還要注意在此安全級別下,其效能是否達到要求

4.2 伺服器端的指令碼漏洞檢查

伺服器端的指令碼漏洞檢查:存在於伺服器端的指令碼常常構成安全漏洞,這些漏洞又往往被駭客利用

4.3 防火牆測試

防火牆測試:防火牆是一種主要用於防護非法存取的路由器,在Web系統中是很常用的一種安全系統

五 與通常測試的區別

5.1 目標不同

測試以發現BUG為目標,安全測試以發現安全隱患為目標

5.2 假設條件不同

測試假設導致問題的資料是使用者不小心造成的,介面一般只考慮使用者介面。安全測試假設導致問題的資料是攻擊者處心積慮構造的,需要考慮所有可能的攻擊途徑

5.3 思考域不同

測試以系統所具有的功能為思考域。安全測試的思考域不但包括系統的功能,還有系統的機制、外部環境、應用與資料自身安全風險與安全屬性等

問題發現模式不同

測試以違反功能定義為判斷依據。安全測試以違反許可權與能力的約束為判斷依據