web安全測試---AppScan掃描工具
安全測試應該是測試中非常重要的一部分,但他常常最容易被忽視掉。
儘管國內經常出現各種安全事件,但沒有真正的引起人們的注意。不管是開發還是測試都不太關注產品的安全。當然,這也不能怪我們苦B的“民工兄弟”。因為公司的所給我們的時間與精力只要求我們對產品的功能的實現以及保證功能的正常執行。一方面出於僥倖心理。誰沒事會攻擊我?
關於安全測試方面的資料也很少,很多人所知道的就是一本書,一個工具。
一本書值《web安全測試》,這應該是安全測試領域維數不多又被大家熟知的安全測試書,我曾看過前面幾個章節,唉,鄙視一下自己,做事總喜歡虎頭蛇尾。寫得非常好,介紹了許多安全方面的工具和知識。我覺得就算你不去做專業的安全開發\測試人員。起碼可以開闊你的視野,使你在做開發或測試時能夠考慮到產品安全方面的設計。防患於未然總是好的,如果你想成為一個優秀的人。
一個工具,其實本文也只是想介紹一下,這個工具----AappScan,IBM的這個web安全掃描工具被許多人熟知,相關資料也很多,因為我也摸了摸它的皮毛,所以也來人說兩句,呵呵!說起sappScan,對它也頗有些感情,因為,上一份工作的時候,我摸過於測試相關的許多工具,AappScan是其它一個,當時就覺得這工具這麼強大,而且還這麼傻瓜!!_! 於是,後面在面試的簡歷上寫了這個工具,應聘現在的這家公司,幾輪面試下來都問到過這個工具,因為現在這家公司一直在使用這個工具做安全方面的掃描。我想能來這家公司和我熟悉AappScan應該有一點點的關係吧!呵呵
AappScan下載與安裝
IBM官方下載;
本連線為7.8 簡體中文版本的
破解補丁;http://www.vdisk.cn/down/index/4760606A4753
破解補丁中有相應的註冊機與破解步驟,生成註冊碼做一下替換就OK了,這裡不細說。
AppScan其實是一個產品家族,包括眾多的應用安全掃描產品,從開發階段的原始碼掃描的AppScan source edition,到針對WEB應用進行快速掃描的AppScan standard edition.以及進行安全管理和彙總整合的AppScan enterprise Edition等,我們經常說的AppScan就是指的桌面版本的AppScan,即AppScan standard edition.其安裝在Windows作業系統上,可以對網站等WEB應用進行自動化的應用安全掃描和測試。
使用AppScan來進行掃描
我們按照PDCA的方法論來進行規劃和討論; 建議的AppScan使用步驟:PDCA: Plan,Do,check, Action and Analysis.
計劃階段:明確目的,進行策略性的選擇和任務分解。
-
明確目的:選擇合適的掃描策略
-
瞭解物件:首先進行探索,瞭解網站結構和規模
-
確定策略:進行對應的配置
a) 按照目錄進行掃描任務的分解
b) 按照掃描策略進行掃描任務的分解
執行階段:一邊掃描一遍觀察
-
進行掃描
-
先爬後掃(繼續僅測試)
檢查階段(Check)
- 檢查和調整配置
結果分析(Analysis)
-
對比結果
-
彙總結果(整合和過濾)
AppScan的工作原理
當我們單擊“掃描”下面的小三角,可以出現如下的三個選型“繼續完全掃描”,“繼續僅探索”,“繼續僅測試“,有木有?什麼意思? 理解了這個地方,就理解了AppScan的工作原理,我們慢慢展開:
還沒有正式開始,所以先不管“繼續“,直接來討論’完全掃描”,“僅探索”,“僅測試”三個名詞:
AppScan是對網站等WEB應用進行安全攻擊,通過真刀真槍的攻擊,來檢查網站是否存在安全漏洞;既然是攻擊,肯定要有明確的攻擊物件吧,比如北約現在的物件就是卡扎菲上校還有他的軍隊。對網站來說,一個網站存在的頁面,可能成千上萬。每個頁面也都可能存在多個欄位(引數),比如一個登陸介面,至少要輸入使用者名稱和密碼吧,這就是一個頁面存在兩個欄位,你提交了使用者名稱密碼等登陸資訊,網站總要有地方接受並且檢查是否正確吧,這就可能存在一個新的檢查頁面。這裡的每個頁面的每個引數都可能存在安全漏洞,所有都是被攻擊物件,都需要來檢查。
這就存在一個問題,你領命來檢查一個網站的安全性,這個網站有多少個頁面,有多少個引數,頁面之間如何跳轉,你可能很不明確,如何知道這些資訊? 看起來很複雜,盤根錯節;那就更需要找到那個線索,提綱挈領; 那就想一想,訪問一個網站的時候,我們需要知道的最重要的資訊是哪個?網站主頁地址吧? 從網站地址開始,很多其他頻道,其他頁面都可以連結過去,對不對,那麼可不可以有種技術,告訴了它網站的入口地址,然後它“順藤摸瓜”,找出其他的網頁和頁面引數? OK,這就是”爬蟲” 技術,具體說,是”網站爬蟲“,其利用了網頁的請求都是用http協議傳送的,傳送和返回的內容都是統一的語言HTML,那麼對HTML語言進行分析,找到裡面的引數和連結,紀錄並繼續傳送之,最終,找到了這個網站的眾多的頁面和目錄。這個能力AppScan就提供了,這裡的術語叫“探索”,explorer,就是去發現,去分析,瞭解未知的,記錄。
在使用AppScan的時候,要配置的第一個就是要檢查的網站的地址,配置了以後,AppScan就會利用“探索”技術去發現這個網站存在多少個目錄,多少個頁面,頁面中有哪些引數等,簡單說,瞭解了你的網站的結構。
“探索”瞭解了,測試的目標和範圍就大致確定了,然後呢,利用“軍火庫”,傳送導彈,進行安全攻擊,這個過程就是“測試”;針對發現的每個頁面的每個引數,進行安全檢查,檢查的彈藥就來自AppScan的掃描規則庫,其類似防毒軟體的病毒庫,具體可以檢查的安全攻擊型別都在裡面做好了,我們去使用即可。
那麼什麼是“完全測試呢”,完全測試就是把上面的兩個步驟整合起來,“探索”+ “測試”;在安全測試過程中,可以先只進行探索,不進行測試,目的是瞭解被測的網站結構,評估範圍; 然後選擇“繼續僅測試”,只對前面探索過的頁面進行測試,不對新發現的頁面進行測試。“完全測試”就是把兩個步驟結合在一起,一邊探索,一邊測試。
上圖更容易理解:
步驟1:探索(爬行,爬網)
步驟2:真對找到的頁面進行測試,生成安全攻擊
AppScan掃描大型網站
經常有客戶抱怨,說AppScan無法掃描大型的網站,或者是掃描接近完成時候無法儲存,甚至儲存後的結果檔案下次無法開啟?;同時大家又都很奇怪,作為一款業界出名的工具,如此的脆弱?是配置使用不當還是自己不太瞭解呢?我們今天就一起來討論下AppScan掃描大型網站會遇到的問題以及應對。
什麼叫大型網站,顧名思義,網站規模大,具體說是頁面很多,內容很全。比如www.sina.com.cn,比如http://music.10086.cn/,都包括上萬個頁面。而且除了這個,可能還有一個特點---頁面引數多,即要填寫的地方多,和使用者的互動多;比如一個網站如果都是靜態頁面(.html,.jpg等),沒有讓使用者輸入的地方,那麼可以利用,可以作為攻擊點的地方也就不多。如果頁面到處都是有輸入,有查詢,要求使用者來參與的,你輸入的越多,可能洩露的資訊也越多,可能被別人利用的攻擊點也就越多,所以和頁面引數也是有關係的。AppScan聲稱測試用例的時候,也是根據每個引數來產生的,簡單說,如果一個引數,對應了200個安全攻擊測試用例,那麼一個登陸介面至少就對應400個了,為什麼?登陸介面至少有使用者名稱和密碼兩個欄位吧? 每個欄位200個攻擊用例。
這個簡單吧,還可以更復雜:如果遇到下面的兩個地址,那要掃描多少次呢?
http://www.cnblogs.com/fnng/focus/satisfy/file.jsp?id=1
http://www.cnblogs.com/fnng/focus/satisfy/file.jsp?id=2
上面的兩個地址有類似的,“?”號以前的URL地址完全一樣,”?”號後面帶的引數不同,這種可以認為是重複頁面,那麼對於重複頁面,是否要重複測試呢?
這取決於“冗餘路徑設定”,預設的是最多測試5次;即,這種型別URL出現的前5次,那麼就是要測試1000個攻擊用例了。
如果再繼續修改下:遇到下面的URL呢
http://www.cnblogs.com/fnng/focus/satisfy/file.jsp?id=1&Item=open
http://www.cnblogs.com/fnng/focus/satisfy/file.jsp?id=2&Item=close
每個URL裡面都有2個引數,測試的次數就更多了。想象下,如果這個網頁裡面的引數如果是10個,或者更多的呢?比如很多網站提交註冊資訊的時候,要填寫的內容足夠多吧?
要進行的安全測試用例也就隨之不斷增加…
這是網站規模的影響,還有一個問題,就出在“每個引數,傳送200個安全測試用例”這個假設上。這個假設的前提來源於哪裡? 來源於我們選擇的掃描規則庫。即你關心那些安全威脅,這個需要在測試策略裡面選擇。同樣來參照防毒軟體,你會用防毒軟體來查詢一些專用的病毒嗎,比如CIH,比如木馬;應用安全掃描也是一樣的道理,如果有明確的安全指標或者安全規則範圍,那麼就選擇之。這些可能來源於企業的規範,來源於政府的法律法規。就要根據你的理解,在這裡選擇。
很多時候,我們也很難在最開始的階段,就把掃描規範制定下來,按照專案經理們的口頭禪“漸進明細”,“滾動式規劃”,在實踐中,更多時候也是摸著石頭過河,選擇了一個掃描策略,然後根據結果分析,看是否需要調整,不斷優化。比如選擇預設的“預設值’掃描策略,對網站進行掃描,發現其”敏感資訊“裡面會去檢查頁面上是否含有Email地址,是否含有信用卡號碼等,如果我們覺得這些資訊,顯示在頁面上是正常的業務需要, 我們就可以取消掉這些規則,所以掃描規則也很大程度上影響著我們的掃描效率。