轉自:http://www.cnblogs.com/luluping/archive/2009/08/19/1549633.htmlhtml
注意:安全性測試並不最終證實應用程序是安全的,而是用於驗證所設立策略的有效性,這些對策是基於威脅分析階段所作的假設而選擇的。
如下是我讀<<軟件評測試教程>>中的Web安全性測試章節內容,並進行修改的筆記,前面看了好多朋友寫的,不過不是很全,但願對你們有所幫助,建議你們仍是買本<<軟件評測試教程>>此書絕對物超所值^_^
WEB安全性測試
一個完整的WEB安全性測試能夠從部署與基礎結構、輸入驗證、身份驗證、受權、配置管理、敏感數據、會話管理、加密。參數操做、異常管理、審覈和日誌記錄等幾個方面入手。
1. 安全體系測試
1) 部署與基礎結構
l 網絡是否提供了安全的通訊
l 部署拓撲結構是否包括內部的防火牆
l 部署拓撲結構中是否包括遠程應用程序服務器
l 基礎結構安全性需求的限制是什麼
l 目標環境支持怎樣的信任級別
2) 輸入驗證
l 如何驗證輸入
A. 是否清楚入口點
B. 是否清楚信任邊界
C. 是否驗證Web頁輸入
D. 是否對傳遞到組件或Web服務的參數進行驗證
E. 是否驗證從數據庫中檢索的數據
F. 是否將方法集中起來
G. 是否依賴客戶端的驗證
H. 應用程序是否易受SQL注入攻擊
I. 應用程序是否易受XSS攻擊
l 如何處理輸入
3) 身份驗證
l 是否區分公共訪問和受限訪問
l 是否明確服務賬戶要求
l 如何驗證調用者身份
l 如何驗證數據庫的身份
l 是否強制試用賬戶管理措施
4) 受權
l 如何向最終用戶受權
l 如何在數據庫中受權應用程序
l 如何將訪問限定於系統級資源
5) 配置管理
l 是否支持遠程管理
l 是否保證配置存儲的安全
l 是否隔離管理員特權
6) 敏感數據
l 是否存儲機密信息
l 如何存儲敏感數據
l 是否在網絡中傳遞敏感數據
l 是否記錄敏感數據
7) 會話管理
l 如何交換會話標識符
l 是否限制會話生存期
l 如何確保會話存儲狀態的安全
8) 加密
l 爲什麼使用特定的算法
l 如何確保加密密鑰的安全性
9) 參數操做
l 是否驗證全部的輸入參數
l 是否在參數過程當中傳遞敏感數據
l 是否爲了安全問題而使用HTTP頭數據
10) 異常管理
l 是否使用結構化的異常處理
l 是否向客戶端公開了太多的信息
11) 審覈和日誌記錄
l 是否明確了要審覈的活動
l 是否考慮如何流動原始調用這身份
2. 應用及傳輸安全
WEB應用系統的安全性從使用角度能夠分爲應用級的安全與傳輸級的安全,安全性測試也能夠從這兩方面入手。
應用級的安全測試的主要目的是查找Web系統自身程序設計中存在的安全隱患,主要測試區域以下。
l 註冊與登錄:如今的Web應用系統基本採用先註冊,後登陸的方式。
A. 必須測試有效和無效的用戶名和密碼
B. 要注意是否存在大小寫敏感,
C. 能夠嘗試多少次的限制
D. 是否能夠不登陸而直接瀏覽某個頁面等。
l 在線超時:Web應用系統是否有超時的限制,也就是說,用戶登錄必定時間內(例如15分鐘)沒有點擊任何頁面,是否須要從新登錄才能正常使用。
l 操做留痕:爲了保證Web應用系統的安全性,日誌文件是相當重要的。須要測試相關信息是否寫進入了日誌文件,是否可追蹤。
l 備份與恢復:爲了防範系統的意外崩潰形成的數據丟失,備份與恢復手段是一個Web系統的必備功能。備份與恢復根據Web系統對安全性的要求能夠採用多種手段,如數據庫增量備份、數據庫徹底備份、系統徹底備份等。出於更高的安全性要求,某些實時系統常常會採用雙機熱備或多級熱備。除了對於這些備份與恢復方式進行驗證測試之外,還要評估這種備份與恢復方式是否知足Web系統的安全性需求。
傳輸級的安全測試是考慮到Web系統的傳輸的特殊性,重點測試數據經客戶端傳送到服務器端可能存在的安全漏洞,以及服務器防範非法訪問的能力。通常測試項目包括如下幾個方面。
l HTTPS和SSL測試:默認的狀況下,安全HTTP(Soure HTTP)經過安全套接字SSL(Source Socket Layer)協議在端口443上使用普通的HTTP。HTTPS使用的公共密鑰的加密長度決定的HTTPS的安全級別,但從某種意義上來講,安全性的保證是以損失性能爲代價的。除了還要測試加密是否正確,檢查信息的完整性和確認HTTPS的安全級別外,還要注意在此安全級別下,其性能是否達到要求。
l 服務器端的腳本漏洞檢查:存在於服務器端的腳本經常構成安全漏洞,這些漏洞又每每被黑客利用。因此,還要測試沒有通過受權,就不能在服務器端放置和編輯腳本的問題。
l 防火牆測試:防火牆是一種主要用於防禦非法訪問的路由器,在Web系統中是很經常使用的一種安全系統。防火牆測試是一個很大很專業的課題。這裏所涉及的只是對防火牆功能、設置進行測試,以判斷本Web系統的安全需求。
另推薦安全性測試工具:
Watchfire AppScan:商業網頁漏洞掃描器(此工具好像被IBM收購了,因此推薦在第一位)
AppScan按照應用程序開發生命週期進行安全測試,早在開發階段就進行單元測試和安全保證。Appscan可以掃描多種常見漏洞,例如跨網站腳本、HTTP應答切開、參數篡改、隱藏值篡改、後門/調試選項和緩衝區溢出等等。
Acunetix Web Vulnerability Scanner:商業漏洞掃描器(目前用的比較多,不過這東東N佔內存)
Acunetix WVS自動檢查您的網頁程序漏洞,例如SQL注入、跨網站腳本和驗證頁面弱密碼破解。Acunetix WVS有着很是友好的用戶界面,還能夠生成個性化的網站安全評估報告。算法