在網站
測試中如何做好安全性測試?
軟體測試每周一問:隨著網路發展的趨勢,對於網站的安全性的要求也越來越高,很多網站都存在被駭客攻擊的漏洞,你在網站測試中有做到安全性測試嗎?你覺得
安全性測試應該從哪些方面來檢查?歡迎大家討論交流!
會員賣燒烤的魚的精彩回答:
安全性測試(security testing)是有關驗證應用程式的安全服務和識別潛在安全性缺陷的過程。
注意:安全性測試並不最終證明應用程式是安全的,而是用於驗證所設立策略的有效性,這些對策是基於威脅分析階段所做的假設而選擇的。
以下是我讀>中的Web安全性測試章節內容,並進行修改的筆記,前面看了好多朋友寫的,不過不是很全,希望對大家有所協助,建議大家還是買本>此書絕對物超所值^_^
WEB安全性測試
一個完整的WEB安全性測試可以從部署與基礎結構、輸入驗證、身分識別驗證、授權、組態管理、敏感性資料、會話管理、加密。參數操作、異常管理、審核和日誌記錄等幾個方面入手。
1. 安全體系測試
1) 部署與基礎結構
網路是否提供了安全的通訊
部署拓撲結構是否包括內部的防火牆
部署拓撲結構中是否包括遠程應用程式伺服器
基礎結構安全性需求的限制是什麼
目標環境支援怎樣的信任層級
2) 輸入驗證
l 如何驗證輸入
A. 是否清楚進入點
B. 是否清楚信任邊界
C. 是否驗證Web頁輸入
D. 是否對傳遞到組件或Web服務的參數進行驗證
E. 是否驗證從資料庫中檢索的資料
F. 是否將方法集中起來
G. 是否依賴用戶端的驗證
H. 應用程式是否易受SQL注入攻擊
I. 應用程式是否易受XSS攻擊
l 如何處理輸入
3) 身分識別驗證
是否區分公用訪問和受限訪問
是否明確服務帳戶要求
如何驗證調用者身份
如何驗證資料庫的身份
是否強制試用帳戶管理措施
4) 授權
如何向終端使用者授權
如何在資料庫中授權應用程式
如何將訪問限定於系統級資源
5) 組態管理
是否支援遠端管理
是否保證配置儲存的安全
是否隔離管理員特權
6) 敏感性資料
是否儲存機密資訊
如何儲存敏感性資料
是否在網路中傳遞敏感性資料
是否記錄敏感性資料
7) 會話管理
如何交換工作階段識別項
是否限制會話生存期
如何確保會話儲存狀態的安全
8) 加密
為何使用特定的演算法
如何確保加密金鑰的安全性
9) 參數操作
是否驗證所有的輸入參數
是否在參數過程中傳遞敏感性資料
是否為了安全問題而使用HTTP頭資料
10) 異常管理
是否使用結構化的異常處理
是否向用戶端公開了太多的資訊
11) 審核和日誌記錄
是否明確了要審核的活動
是否考慮如何流動原始調用這身份
2. 應用及傳輸安全
WEB應用系統的安全性從使用角度可以分為應用級的安全與傳輸級的安全,安全性測試也可以從這兩方面入手。
應用級的安全性測試的主要目的是尋找Web系統自身程式設計中存在的安全隱患,主要測試地區如下。
註冊與登陸:現在的Web應用系統基本採用先註冊,後登入的方式。
A. 必須測試有效和無效的使用者名稱和密碼
B. 要注意是否存在大小寫敏感,
C. 可以嘗試多少次的限制
D. 是否可以不登入而直接瀏覽某個頁面等。
線上逾時:Web應用系統是否有逾時的限制,也就是說,使用者登陸一定時間內(例如15分鐘)沒有點擊任何頁面,是否需要重新登陸才能正常使用。
操作留痕:為了保證Web應用系統的安全性,記錄檔是至關重要的。需要測試相關資訊是否寫進入了記錄檔,是否可追蹤。
備份與恢複:為了防範系統的意外崩潰造成的資料丟失,備份與恢複手段是一個Web系統的必備功能。備份與恢複根據Web系統對安全性的要求可以採用多種手段,如資料庫增量備份、資料庫完全備份、系統完全備份等。出於更高的安全性要求,某些即時系統經常會採用雙機熱備或多級熱備。除了對於這些備份與恢複方式進行驗證測試以外,還要評估這種備份與恢複方式是否滿足Web系統的安全性需求。
傳輸級的安全性測試是考慮到Web系統的傳輸的特殊性,重點測試資料經用戶端傳送到伺服器端可能存在的安全性漏洞,以及伺服器防範非法訪問的能力。一般測試項目包括以下幾個方面。
HTTPS和SSL測試:預設的情況下,安全HTTP(Soure HTTP)通過安全通訊端SSL(Source Socket Layer)協議在連接埠443上使用普通的HTTP。HTTPS使用的公用密鑰的加密長度決定的HTTPS的安全層級,但從某種意義上來說,安全性的保證是以損失效能為代價的。除了還要測試加密是否正確,檢查資訊的完整性和確認HTTPS的安全層級外,還要注意在此安全層級下,其效能是否達到要求。
伺服器端的指令碼漏洞檢查:存在於伺服器端的指令碼常常構成安全性漏洞,這些漏洞又往往被駭客利用。所以,還要測試沒有經過授權,就不能在伺服器端放置和編輯指令碼的問題。
防火牆測試:防火牆是一種主要用於防護非法訪問的路由器,在Web系統中是很常用的一種安全系統。防火牆測試是一個很大很專業的課題。這裡所涉及的只是對防火牆功能、設定進行測試,以判斷本Web系統的安全需求。
另推薦安全性測試載入器:
Watchfire AppScan:商業網頁漏洞掃描器(此工具好像被IBM收購了,所以推薦在第一位)
AppScan按照應用程式開發生命週期進行安全性測試,早在開發階段就進行單元測試和安全保證。Appscan能夠掃描多種常見漏洞,例如跨網站指令碼、HTTP應答切開、參數篡改、隱藏值篡改、後門/調試選項和緩衝區溢位等等。
Acunetix Web Vulnerability Scanner:商業漏洞掃描器(目前用的比較多,不過這東東N占記憶體)
Acunetix WVS自動檢查您的網頁程式漏洞,例如SQL注入、跨網站指令碼和驗證頁面弱密碼破解。Acunetix WVS有著非常友好的使用者介面,還可以產生個人化的網站安全評估報告。