因工作需要,最近要使用AppScan,研究了一下AppScan使用方法。
一、AppScan的工作原理
對一個綜合性的大型網站來說,可能存在成千上萬的頁面。以登錄界面為例,至少要輸入用戶名和密碼,即該頁面存在兩個字段,當提交了用戶名和密碼等登錄信息,網站需要檢查是否正確,這就可能存在一個新的檢查頁面。這里的每個頁面的每個參數都可能存在安全漏洞,可能成為被攻擊對象。AppScan正是通過按照設定策略和規則,對Web應用進行安全攻擊,以此來檢查網站是否存在安全漏洞。
在使用AppScan的時候,通過配置網站的URL網址,AppScan會利用“探索”技術去發現這個網站存在多少個目錄,多少個頁面,頁面中有哪些參數等,即探索出網站的整體結構。通過“探索”可確定測試的目標和范圍,然后利用AppScan的掃描規則庫,針對發現的每個頁面的每個參數,進行安全檢查。
簡言之,APPScan的工作原理如下:
1)通過“探索”功能,利用HTTP Request和Response的內容,爬行出指定網站的整個Web應用結構
2)AppScan本身有一個內置的漏洞掃描的規則庫,可隨版本進行更新。從探索出的url中,修改參數or目錄名等方式,構造不同的url對照組向服務器發送請求or攻擊
3)根據HTTP Response返回的內容,和正常請求所返回的響應作對比,是否產生差異性,而這種差異性又是否符合掃描規則庫的設定規則,以此來判斷是否存在不同類型的安全漏洞
4)若APPScan可判斷存在安全漏洞,則對這些漏洞的威脅風險給出說明,進行嚴重程度提示,並給出修復的建議和方法,以及漏洞發現的位置提示
二、APPScan掃描操作教程
1.打開AppScan
2.文件-->新建-->創建新的掃描,一般選擇Regular Scan(常規掃描),也可以根據自己的需要創建模板
進入配置向導頁面,選擇Web應用程序掃描,點擊“下一步”,
(說明:1.若只對Web程序本身的漏洞檢測,就選Web 應用程序掃描即可;
2.若需要對Web服務進行掃描,則選擇Web Service;
3.如果選擇Web Service掃描,則需提前告知服務器維護的負責人,建立異常情況發生的處理機制,最好避開訪問請求的高峰or辦公人員集中使用的時間,比如下班后自動掃描;
4.若需要使用Web Service掃描功能,需要提前下載安裝好GSC Web Services記錄器)
4.進入掃描配置向導頁面,URL輸入框的地址即為被測網址或者IP地址,如輸入以下被測url,點擊“下一步”(可以打開AppScan內置瀏覽器查看被測鏈接是否能正常訪問;以下被測網址為某個專門測試用的漏洞網站,非常規使用的網站)

5.登錄方法:根據實際需要選擇登錄方法,用戶名和密碼即為被測網站的登錄賬戶,點擊“下一步”
(說明:1.若登錄方法選擇“記錄”,則可通過界面右側的“記錄(R)”按鈕打開APPScan內置瀏覽器並輸入登錄信息,內置瀏覽器會自動關閉,AppScan即可記錄該用戶名和密碼,掃描的時候相當於是已登錄此賬戶的狀態進行掃描;
2.若選擇“提示”,則根據網站掃描探索過程中需要登錄會提示輸入登錄信息,人工輸入正確的賬號信息之后繼續掃描;
3.若選擇“自動”,則填寫用戶名和密碼,APPScan在掃描過程中,會自動使用用戶名和密碼登錄繼續掃描;
4.若選擇“無”,則不需輸入登錄賬戶)

6.選擇適當的操作策略(一般保持默認選擇,即“缺省值”),點擊“下一步”

7.設置啟動模式,根據實際需要選擇,點擊“完成”,即可開始啟動掃描或者測試
(說明:1.全面自動掃描:探索的同時,也進行攻擊測試;
2.僅自動“探索”:自動探索網站的目錄結構,可被測的鏈接范圍及數目,不作實際攻擊測試;
3.手動探索:先通過AppScan內置瀏覽器打開被測網站,手動點擊不同的目錄頁面,然后AppScan記錄之;
4.稍后啟動掃描:先把此次網站的掃描配置進行保存,后續若想掃描的時候再繼續操作)

8.保存配置:比如點擊“是”,將此次配置命名保存到指定文件夾下


9.待步驟8保存配置之后,即會自動跳轉到掃描網站的界面開始掃描,一般掃描時間根據測試范圍和策略有關,這里可以看到掃描進度
(說明:掃描過程中,若掃描時間較長,可自動讓其掃描,或者點擊“暫停”-保存本次掃描,然后下次繼續未掃描的過程;若直接點擊右上角“×”關閉AppScan,則不會保存本次掃描的過程)

10.掃描完成之后,可查看掃描的結果如下所示

11.點擊“掃描”-“僅測試”,開始啟動對此次探索結果的攻擊測試
根據掃描測試過程中的APPScan工作情況,是否有掃描出安全漏洞,是否在掃描過程中進度受阻而不能繼續掃描,是否覆蓋到設定的url范圍,對同一模塊可重復掃描做對比,調整獲得適合自己環境的配置


12.測試完成之后,保存本次AppScan掃描測試的結果;從統計出的安全性問題,可以查看對應的漏洞鏈接、請求和響應、修復建議


13.點擊“報告”,創建不同要求的安全報告


三、AppScan使用特別注意事項【Important !】
【1】AppScan掃描過程中,會向服務器發送較多請求,會占用一定的正常請求訪問的資源,可能導致一些垃圾數據,建議只在本地測試環境執行
【2】使用AppScan之前,請提前備份好數據庫的數據,假若掃描致使服務器異常關閉,則需重啟服務;若掃描產生的請求數據過多,或Web程序出現異常,可能需要從備份數據恢復還原。一般情況下,正常掃描Web程序很少可能出現Web服務異常的情形
【3】AppScan掃描的結果並不代表完全真實的情況,受限於所用掃描器版本的漏洞規則庫的規則,以及操作者的配置策略,掃描過程中有可能會使得掃描器出現誤判或者漏測。如有必要,還需對掃描的結果進行人工校驗,可對同一Web應用分次進行掃描對比差異性
【4】掃描配置時,一般按照默認的測試策略-WASC威脅分類即可;若服務器本身所能承受的性能壓力不強,or存在較多漏洞的時候,不宜選擇“侵入式”策略,該策略存在着可能會入侵服務器、關閉服務、破壞數據庫等風險

【5】使用破解版的AppScan掃描Web應用時,若Web網站本身結構比較復雜、模塊眾多、涉及的url數目巨大(幾萬-十多萬),則不宜一次性全站掃描,有可能連續掃描幾個小時都不能探索完網站的所有結構。持續時間過長還可能造成AppScan出現卡頓,顯示“正在掃描中”,但實際上已經沒有繼續再掃描。因此,當第一次探索了大概的網站結構和容量之后,若容量巨大,最好分而治之,按模塊結構分次進行掃描測試
【6】結果分析(Analysis)
在APPScan掃描結果基礎上,根據不同的嚴重級別進行排序、手工+工具驗證的方式對漏洞驗證可靠性,排除誤報的情況,並盡可能找出漏報的情況,把本次掃描結果匯總,對以上已驗證存在的安全漏洞排列優先級、漏洞威脅程度,並提出每個漏洞的修復建議
然后,再把此次安全漏洞整理的報告提交給項目負責人,由負責人決定哪些漏洞轉給開發工程師修復,而后再由安全測試工程師進行回歸驗證修復的狀況
【7】操作策略並非絕對,需要根據實際情況,通過實踐進行不斷優化和改進,以獲取最適合自己環境的操作策略