注意:安全性測試并不最終證明應用程式是安全的,而是用于驗證所設立政策的有效性,這些對策是基于威脅分析階段所做的假設而選擇的。
以下是我讀<<軟體評測試教程>>中的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有着非常友好的使用者界面,還可以生成個性化的網站安全評估報告。