AppScan使用教程
1.新建掃描:一般選擇 常規掃描
2.選擇掃描的平台:web或app
3.掃描配置向(xiàng)導
①配置URL和服務器
②配置登錄管理
在掃描的過(guò)程中,可能(néng)會(huì)不小心碰到退出按鈕導緻Appscan注銷.因此,要登陸到應用程序中,我們需要根據需求設置。
在測試的web沒(méi)有驗證碼情況下,可以使用(1和3種(zhǒng)登陸方法)
在web有驗證碼情況下,可以使用第二種(zhǒng)登陸方法。推薦使用第一種(zhǒng)方法。
記錄:選擇此項後(hòu),會(huì)出現一個新的浏覽器,并嘗試鏈接到指定的網站作爲本掃描的起(qǐ)始URL.你需要輸入賬号和密碼登陸到應用程序.這(zhè)樣設置之後(hòu)你可以關閉浏覽器,但是不要點擊注銷按鈕。有時(shí)候你會(huì)發(fā)現打開(kāi)的浏覽器不是IE或者Mozilla,而是Appscan浏覽器.你可以改變通過(guò)設置來改變這(zhè)個。工具-->Options -->Advanced,設置OpenIEBrower的值0--Appscan浏覽器,1--IE,2--Firefox,3--Chrome.如果該網站的行爲在不同的浏覽器下有所不同,這(zhè)個設置將(jiāng)是非常有用的.
提示:每次注銷之後(hòu),Appscan會(huì)提示你登陸到應用程序中.如果你打算整個掃描你的系統,你可以選擇這(zhè)個選項。
自動:在這(zhè)裡(lǐ)可以直接指定用戶名和密碼,當需要登陸到應用程序的時(shí)候。
在浏覽器打開(kāi)的界面(miàn)(需掃描的web)上輸入用戶名和密碼後(hòu),點擊系統的登錄按鈕。如果登錄成(chéng)功,可點擊【我已登錄到站點】。appscan會(huì)開(kāi)始分析登錄操作,若成(chéng)功記錄下登錄操作,會(huì)執行注銷操作。
appscan執行完注銷操作後(hòu),會(huì)回到配置向(xiàng)導界面(miàn):有标志,說(shuō)明已記錄成(chéng)功。
【注意】Appscan使用外部浏覽器的問題。目前隻支持IE、Firefox、Chrome三款浏覽器。9.0.1.1版本中在工具-選項-掃描選項中可以找到。
早期版本在工具-選項-高級裡(lǐ)有個OpenExternalBrowser這(zhè)個參數 1爲IE、2爲火狐、3是Chrome。
【驗證登錄】用登錄接口返回的内容進(jìn)行會(huì)話驗證
驗證通過(guò):
③測試策略
掃描期間,AppScan® 發(fā)送的測試數量可以達到數千。有時(shí),最好(hǎo)將(jiāng)掃描限制在僅掃描特定類型,以減少掃描時(shí)間。這(zhè)是“測試策略”。幾種(zhǒng)測試策略說(shuō)明:
缺省值:包含多有測試,但不包含侵入式和端口偵聽器
僅應用程序:包含所有應用程序級别的測試,但不包含侵入式和端口偵聽器
僅基礎結構:包含所有基礎結構級别的測試,但不包含侵入式和端口偵聽器
侵入式:包含所有侵入式測試(可能(néng)影響服務器穩定性的測試)
完成(chéng):該策略包含所有 AppScan 測試,但端口偵聽器測試除外。
關鍵的少數:包含一些成(chéng)功可能(néng)性較高的測試精選,在時(shí)間有限時(shí)對(duì)站點評估可能(néng)有用
開(kāi)發(fā)者精要:包含一些成(chéng)功可能(néng)性極高的應用程序測試的精選,在時(shí)間有限時(shí)對(duì)站點評估可能(néng)有用
僅第三方:該策略包含所有第三方級别測試,但侵入式和端口偵聽器測試除外。
生産站點:此策略“排除”可能(néng)損壞站點的侵入式測試,或測試可能(néng)導緻“拒絕服務”的其他用戶。
Web Services:該策略包含所有 SOAP 相關的非侵入式測試。
選擇合适的策略後(hòu),點擊【下一步】
④完成(chéng)
選擇--啓動全面(miàn)自動掃描,點擊【完成(chéng)】按鈕。
4.啓動掃描專家
掃描專家會(huì)先大緻的探索被測網站,提出建議,以更好(hǎo)的掃描應用程序。
掃描專家建議:
可手動配置環境:提高性能(néng)和準确性。
5.開(kāi)始測試
應用掃描專家的建議後(hòu),整個掃描就(jiù)開(kāi)始了。系統先會(huì)掃描大緻的網站,了解所需測的頁面(miàn)、測試元素、發(fā)送請求數。掃描結束後(hòu),開(kāi)始測試。
6.測試結束
7.生成(chéng)測試報告
8.關于手動探索
如果想要快速驗證系統,可以采用手動探索一些重要的界面(miàn),填寫表單的參數也會(huì)記錄,會(huì)著(zhe)重于探索的界面(miàn)進(jìn)行測試。
如果是全部系統的探索,時(shí)間比較長(cháng),但是比較全面(miàn),對(duì)表單的驗證不夠詳細。
AppScan掃描策略的選擇
使用 AppScan 進(jìn)行掃描
針對(duì)大型網站的掃描,我們按照戴明環 PDCA 的方法論來進(jìn)行規劃和讨論,建議 AppScan 使用步驟:計劃(Plan)、執行(Do)、檢查(check)、分析(Analysis and Action)。
1.在計劃階段:明确目的,進(jìn)行策略性的選擇和任務分解。
1.明确目的:選擇合适的掃描策略
2.了解對(duì)象:首先進(jìn)行探索,了解網站結構和規模
3.确定策略:進(jìn)行對(duì)應的配置
4.按照目錄進(jìn)行掃描任務的分解
5.按照掃描策略進(jìn)行掃描任務的分解
2.執行階段:一邊掃描一遍觀察
1.進(jìn)行掃描
2.先爬後(hòu)掃(繼續僅測試)
3.檢查階段(Check)
1.檢查和調整配置
4.結果分析(Analysis)
1.對(duì)比結果
2.彙總結果(整合和過(guò)濾)
下面(miàn)我們針對(duì)每個階段,進(jìn)行具體的闡述。
準備階段
AppScan 安裝環境要求和檢查
爲了保證更好(hǎo)的掃描效果,安裝 AppScan 的硬件建議配置如下:
表 1. Rational AppScan 安裝配置要求
處理器 Pentium P4,2.4 GHz
内存 2 GB RAM
磁盤空間 30 GB
網絡 1 NIC 100 Mbps(具有已配置的 TCP/IP 的網絡通信)
其中,處理器和内存建議越大越好(hǎo),而磁盤空間,建議系統盤(一般是 C 盤)磁盤空間至少保留 10G,如果系統盤磁盤空間比較少,可以考慮把用戶文件等保存在其他盤;如默認的用戶文件是:C:\Documents and Settings\Administrator\My Documents\AppScan;可以修改爲其他路徑。該路徑可以在菜單欄中依次選擇工具 - 選項 - 一般 - 文件位置部分修改。
磁盤要求:修改臨時(shí)文件路徑
有時(shí)候大家會(huì)發(fā)現,已經(jīng)把上面(miàn)的地址都(dōu)修改到了其他盤,但是在掃描過(guò)程中,還(hái)是會(huì)發(fā)現 C 盤的空間快速被消耗,分析原因,是因爲很多臨時(shí)文件都(dōu)保存在 C 盤,AppScan 中有一個隐藏的參數 APPSCAN_TEMP 來設置臨時(shí)文件位置。在掃描過(guò)程中,如果系統盤空間比較下,可以通過(guò)修改系統變量來修改到其他硬盤空間。
臨時(shí)文件位置說(shuō)明:描述正常操作期間 AppScan 將(jiāng)其臨時(shí)文件保存到的位置。缺省情況下,AppScan 將(jiāng)其臨時(shí)文件存儲在以下位置:
C:\Documents and Settings\All Users\Application Data\IBM\Rational AppScan\temp
如果需要修改此缺省位置,請按照要求編輯環境變量 APPSCAN_TEMP 的路徑。(訪問環境變量的方法是,右鍵單擊我的電腦,然後(hòu)依次選擇屬性 > 高級 > 環境變量。)
注意:在新位置的路徑中絕不能(néng)有任何 Unicode 字符。
修改 AppScan 中的臨時(shí)文件:
1.桌面(miàn)上鼠标右鍵選擇“我的電腦”,選擇“屬性”
2.選擇“高級”,“環境變量”
3.增加一個新的“用戶環境變量”,名字是“APPSCAN_TEMP”,設定路徑,指向(xiàng)您希望保存臨時(shí)文件的目錄。
計劃階段
在計劃階段,首先明确幾個問題:
1.關心哪些類型的安全問題,根據這(zhè)些安全問題來設置掃描規則。
2.要掃描的網站地址,網站的業務特點。
掃描策略的選擇
試想,我們現在要掃描的是某個移動公司的網站系統,該網站系統提供多個内容頻道(dào),還(hái)可以連接到多個其他移動公司網站和業務網站,我們本次安全測試重點關心的是門戶網站本身和其上面(miàn)的網上營業廳業務。這(zhè)就(jiù)是一個比較明确的測試目标對(duì)象。
然後(hòu),确定掃描策略,我們主要關心該網站是否存在跨站點腳本執行和 SQL 注入的問題,則在掃描規則中,我們就(jiù)可以選擇這(zhè)兩(liǎng)種(zhǒng)類型的規則,其他規則都(dōu)排除。
具體的掃描規則定制,可以在掃描配置 - 測試 - 測試策略中選擇:
測試策略中,有多種(zhǒng)不同的分組模式,最經(jīng)常使用的是“嚴重性”,“類型”,“侵入式”、“WASC 威脅分類”等标準,根據不同分組選擇的掃描策略,最後(hòu)組成(chéng)一個共同的策略集合。
根據我們這(zhè)次掃描的目标,關心的是跨站點腳本執行和 SQL 注入的問題,而且不考慮“基礎結構”級别的安全問題。則就(jiù)可以首先選擇一個默認的掃描策略,然後(hòu)全部置空,再選擇
跨站點腳本執行和 SQL 注入,最後(hòu)再去除這(zhè)兩(liǎng)種(zhǒng)掃描策略中和基礎結果相關的安全問題。
方法如下:
·選擇缺省的掃描策略,或者把當前的掃描策略,切換到按照“類型”分類,取消掉“基礎結構”和“應用程序”兩(liǎng)種(zhǒng)類型。 說(shuō)明:則把掃描策略置空,沒(méi)有選擇任何的掃描策略,指所有分布類型選擇“類型”分類,是因爲類型分類裡(lǐ)面(miàn)含有的類型,隻有兩(liǎng)種(zhǒng)類型,可以快速全部都(dōu)取消掉。
·分組類型,切換到“WASC 威脅分類”,選擇“SQL 注入”和“跨站點腳本編制”。
·分組類型,切換到“類型”,發(fā)現這(zhè)時(shí)候“基礎結構”和“應用程序”兩(liǎng)種(zhǒng)類型的掃描策略都(dōu)是選擇上的模式,而且是虛線,說(shuō)明這(zhè)兩(liǎng)種(zhǒng)類型下均有部分掃描策略被選擇了。
·我們不關心“基礎結構”級别的安全問題,所以在這(zhè)裡(lǐ)取消“基礎結構”。
·分組類型,切換到“侵入式”類型,下面(miàn)有“非侵入式”和“侵入式”兩(liǎng)種(zhǒng)分類。取消“基礎結構”級别的測試。
·侵入式的測試用例,往往因爲有比較強的副作用,可能(néng)對(duì)系統造成(chéng)傷害,所以一般掃描生産系統的時(shí)候,很少選擇。我們可以查看一個 SQL 注入類型的侵入式安全問題,在“輸入以查找”輸入框中輸入“SQL”,然後(hòu)回車查詢。可以看到測試變體的描述“將(jiāng)參數值設置爲 Declare/Case SQL 注入攻擊(嘗試關閉 DB 服務器)”,則掃描過(guò)程中,會(huì)使用該測試用例去執行嘗試關閉數據庫的命令,如果該測試用例執行通過(guò),則就(jiù)關閉了數據庫,則整個系統就(jiù)癱瘓!所以,要很慎重的選擇“侵入式的測試用例”。
其他的在“類型”中,“應用程序”類型表示該問題的存在是因爲應用程序不嚴謹,代碼存在安全問題而造成(chéng)的,修改方法就(jiù)是修改原代碼;而“基礎結構”類型,則表示該問題是配置問題,建議修改系統配置或者安裝最新的補丁(經(jīng)常是中間件或數據庫補丁)。
了解被測試網站
在對(duì)網站進(jìn)行測試之前,我們經(jīng)常需要先大概了解下這(zhè)個網站,比如該網站使用了哪些技術,提供什麼(me)類型的業務(功能(néng)),網站規模等。這(zhè)些都(dōu)和我們的掃描設置相關。如下圖,就(jiù)是我們經(jīng)常使用的一個調查表,了解被測試系統的基本特點。
表 2. 記錄被測網站特點
其中,用戶經(jīng)常迷惑的是 URL 數量,有些時(shí)候,用戶很難評估出一個系統的大概頁面(miàn)數量,而按照 AppScan 的工作原理,掃描是針對(duì)頁面(miàn)的每個參數的,如果頁面(miàn)越多,參數越多,則掃描要運行的時(shí)間也就(jiù)越長(cháng),掃描保存成(chéng)的接過(guò)文件也是越大,更需要進(jìn)行分解。如果一個掃描任務,本身的已訪問 URL 數超過(guò) 5000,評估的要運行的安全測試用例數超過(guò) 50,000,則建議進(jìn)行掃描配置的分析,并根據分析結果,決定是否需要進(jìn)一步的任務分解和分工。
那麼(me),如果可以了解到網站具體有哪些頁面(miàn)呢?這(zhè)裡(lǐ)我們就(jiù)可以利用 AppScan 的探索(頁面(miàn)爬行)能(néng)力。
在掃描配置裡(lǐ)面(miàn)設置了主 URL 以後(hòu),工作菜單中中依次選擇掃描 - 僅探索。對(duì)網站進(jìn)行探索。一般會(huì)讓探索工具運行 10 到 30 分鍾,看該網站具體存在哪些頁面(miàn),哪些參數等。這(zhè)個就(jiù)可以切換到“應用程序數據”視圖來查看。
我們一般關心這(zhè)幾個視圖:
·已訪問的 URL():AppScan 已經(jīng)探索到并且進(jìn)行了分析的頁面(miàn)
·已過(guò)濾掉的 URL():AppScan 已經(jīng)發(fā)現,同時(shí)根據掃描配置,認爲不需要進(jìn)行安全掃描的頁面(miàn)。
·中斷鏈接 URL():AppScan 發(fā)現了,但是無法訪問到或者訪問出錯的頁面(miàn),如 404 頁面(miàn)不存在,或者 500 服務器錯誤等。
僞靜态頁面(miàn)
可以選擇左邊“我的應用程序數據”中的 URL 樹下的每一個節點,察看該節點已訪問的 URL,已過(guò)濾掉的 URL 等。
如在已訪問的 URL() 中,我們發(fā)現大量類似如下結構的 HTML 頁
http://www.Test.com//focus/satisfy/file5.html
http://www.Test.com//focus/satisfy/file6.html
http://www.Test.com/m-zone/news/dgdd/quanbu/bylb/file5.html
其共同特征,都(dōu)是以 html 爲後(hòu)綴名,最後(hòu)的文件名格式都(dōu)是 file+ 數字格式;這(zhè)種(zhǒng)類型的頁面(miàn)經(jīng)常存在新聞,論壇等。如果訪問這(zhè)些頁面(miàn),發(fā)現頁面(miàn)結構相同,差異的都(dōu)是裡(lǐ)面(miàn)的文本内容,如提供不同的新聞内容等,這(zhè)些頁面(miàn)就(jiù)是所謂的“僞靜态頁面(miàn)”,其實是網站發(fā)布系統動态産生的,由于結果相似,在安全掃描中,沒(méi)有必要針對(duì)這(zhè)些頁面(miàn)每次都(dōu)進(jìn)行掃描。如針對(duì)每個目錄下面(miàn)存在的 file+ 數字格式的頁面(miàn),我們就(jiù)可以設置正則表達式來過(guò)濾,比如,在掃描配置 - 排除路徑和文件中
排除所有該類型的頁面(miàn);.*file\d+.html
增加“例外”,對(duì)該類型的頁面(miàn)隻掃描 file1.html 和 file20.html
經(jīng)常存在的其他類似頁面(miàn),還(hái)有 news1.html、content200.html 等類型,采用方法類似。
業務類型的“冗餘路徑”
和“僞靜态頁面(miàn)”對(duì)應的有另外一種(zhǒng)動态頁面(miàn),這(zhè)些頁面(miàn)按照默認的掃描規則,會(huì)被自動過(guò)濾,但是根據真實的業務場景,這(zhè)些頁面(miàn)确實不能(néng)被過(guò)濾的,如訪問 demo.testfire.net 時(shí)候在“已過(guò)濾 URL”内會(huì)顯示有如下的 URL 地址,過(guò)濾原因都(dōu)是“路徑限制”:
http://www.Test.com/default.aspx?content=inside_community.htm
http://www.Test.com/default.aspx?content=inside_press.htm
http://www.Test.com/default.aspx?content=inside_executives.htm
選擇 URL 地址,鼠标右鍵“在浏覽器中顯示”,會(huì)發(fā)現這(zhè)裡(lǐ)顯示的頁面(miàn)内容完全不一樣,和上面(miàn)的“僞靜态頁面(miàn)”正好(hǎo)相反,這(zhè)些參數相同,參數值不同的動态頁面(miàn),是真正的業務頁面(miàn),是不能(néng)過(guò)濾掉;如果過(guò)濾,則會(huì)很多後(hòu)續的業務頁面(miàn)無法發(fā)現。那這(zhè)些頁面(miàn)爲什麼(me)會(huì)被過(guò)濾了呢?按照什麼(me)樣的規則被過(guò)濾掉的?
在 AppScan 中,默認情況下是有一個“冗餘路徑限制”(在“掃描配置 - 探索選型 - 冗餘路徑限制”),默認對(duì)于冗餘的頁面(miàn),最多掃描 5 次,關鍵的問題是,什麼(me)頁面(miàn)被 Appscan 認爲是冗餘頁面(miàn)呢 ?
簡單說(shuō):
http://www.Test.com/default.aspx?content=inside_community.htmhttp://www.Test.com/default.aspx?content=inside_press.htm
Appscan 是根據“?”号來分隔的,如果 ? 号前面(miàn)的内容都(dōu)相同,則就(jiù)被認爲是冗餘頁面(miàn),所以上面(miàn)的頁面(miàn)就(jiù)是冗餘頁面(miàn)了。
遇到這(zhè)樣情況的頁面(miàn),最多被訪問 5 次。而這(zhè) 5 次,具體是使用了哪些參數,是随機的,具體訪問到的頁面(miàn)也會(huì)在“應用程序數據”視圖的“已訪問的 URL”中查看:
http://www.Test.com/default.aspx?content=business.htmhttp://www.Test.com/default.aspx?content=business_lending.htmhttp://www.Test.com/default.aspx?content=inside_contact.htm
可是,在本例中 content 參數值不同的時(shí)候,其實根據業務邏輯,不應該算作“冗餘頁面(miàn)的”,而按照配置,也會(huì)被自動過(guò)濾了,遇到這(zhè)種(zhǒng)情況,就(jiù)需要考慮增加“冗餘路徑限制”,如設置爲 20 或者 50。以可以更多次訪問這(zhè)些頁面(miàn)。
這(zhè)些情況經(jīng)常存在于跳轉參數等情況。
順便備注下,“冗餘路徑限制”,功能(néng)設置的目的是爲了處理類似論壇 BBS 等頁面(miàn),隻有文本内容不同,頁面(miàn)架構完全相同的頁面(miàn):如
http://www.Test.com/showthread.php?id=1
http://www.Test.com/showthread.php?id=2
http://www.Test.com/showthread.php?id=3
而我們在測試 demo.testfire.net 時(shí)候會(huì)發(fā)現每次的安全測試結果都(dōu)可能(néng)有差别,一個很大的原因就(jiù)是每次訪問的頁面(miàn)是不同的,就(jiù)是這(zhè)個設置的影響。
分析重複的“腳本參數”
在上面(miàn)的步驟中,分析了“僞靜态頁面(miàn)”,對(duì)其應該通過(guò)“排除路徑或者文件名”的方法設置排除規則;而對(duì)于“業務類型的冗餘路徑”,則需要通過(guò)增加“冗餘路徑顯示”個數等的方法進(jìn)行擴充,以掃描到這(zhè)些 URL。我們在這(zhè)個步驟來分析另外一種(zhǒng)參數,腳本參數。
在“我的應用程序數據”樹狀結構下,鼠标選擇目錄以後(hòu),在右邊視圖中選擇“腳本參數”,然後(hòu)查看是否存在不同頁面(miàn)(URL) 存在相同或者類似參數的情況:如下圖,在不同 URL 中,都(dōu)存在 kbKey 參數,默認的參數值是“請輸入您要搜索的問題”:
訪問這(zhè)些 URL,發(fā)現每個頁面(miàn)内都(dōu)包含了一個搜索功能(néng),這(zhè)就(jiù)是爲什麼(me)在不同頁面(miàn)都(dōu)發(fā)現了該參數。而從業務角度,這(zhè)些搜索頁面(miàn)在一個 URL 中進(jìn)行測試以後(hòu),沒(méi)有必要在另外一個頁面(miàn)也進(jìn)行測試。而且該參數值的變化,可以認爲是冗餘頁面(miàn),沒(méi)有必要進(jìn)行下一步的重新探索和測試。這(zhè)可以通過(guò)上圖中,選擇該參數後(hòu),鼠标右鍵,選擇“添加到‘參數和 Cookie’選項卡中的列表”來實現。選擇後(hòu)彈出下面(miàn)的頁面(miàn):
在該頁面(miàn)中,點擊“其他選項-冗餘調整”,取消選擇任何一個選擇框,則表示無論是否含有該參數,無論該參數值是否發(fā)生變化,都(dōu)不認爲是新頁面(miàn),沒(méi)有必要重新測試,而且不應該因爲該參數的變化去影響其他參數的測試。
我們知道(dào),AppScan 中的測試,是針對(duì)頁面(miàn)的每個參數進(jìn)行的,而且一個參數值的變化會(huì)要求重新測試其他的參數,所以該設置,可以大大減少測試用例數。
選框選中時(shí) ...
隻要添加或除去此參數 /cookie,便再次探索 URL。 在探索階段,如果兩(liǎng)個 URL 的唯一區别在于一個包括此參數,而另一個不包括此參數,那麼(me)將(jiāng)其視爲不同 URL,并且對(duì)兩(liǎng)者都(dōu)進(jìn)行探索。
例如,如果是以下兩(liǎng)個 URL,兩(liǎng)者都(dōu)將(jiāng)進(jìn)行探索:
...page.jsp
...page.jsp?thisParam=Value
如果您取消選中此複選框,那麼(me)在此情況下,將(jiāng)僅發(fā)送一個請求,而其他請求將(jiāng)被廢棄。
隻要此參數 /cookie 的值更改,便再次探索 URL。
在探索階段,如果兩(liǎng)個 URL 的唯一區别在于此參數 /cookie 的值,那麼(me)將(jiāng)其視爲不同 URL,并且對(duì)兩(liǎng)者都(dōu)進(jìn)行探索。
例如,如果是以下兩(liǎng)個 URL,兩(liǎng)者都(dōu)將(jiāng)進(jìn)行探索:
...page.jsp?thisParam=Value1
...page.jsp?thisParam=Value2
如果您取消選中此複選框,那麼(me)在此情況下,將(jiāng)僅發(fā)送一個請求,而其他請求將(jiāng)被廢棄。
隻要添加或除去此參數 /cookie,便重複所有相鄰參數
在測試階段,如果兩(liǎng)個 URL 的唯一區别在已添加或除去了此參數,那麼(me)將(jiāng)其視爲不同 URL,并且再次測試相鄰參數。
/cookie測試
例如,如果是以下兩(liǎng)個 URL,將(jiāng)爲相鄰參數生成(chéng)兩(liǎng)組完整的測試,每個 URL 一組。
...page.jsp?adjacentParam=
...page.jsp?adjacentParam=&thisParam=Value
如果您取消選中此複選框,將(jiāng)爲相鄰參數僅生成(chéng)一組測試。
隻要此參數 /cookie 的值更改,便重複所有相鄰參數在測試階段,如果兩(liǎng)個 URL 的唯一區别在于此參數 /cookie 的值,那麼(me)將(jiāng)其視爲不同 URL,并且再次測試相鄰參數。
/cookie測試
例如,如果是以下兩(liǎng)個 URL,將(jiāng)爲相鄰參數生成(chéng)兩(liǎng)組完整的測試,每個 URL 一組。
...page.jsp?adjacentParam=&thisParam=Value1
...page.jsp?adjacentParam=&thisParam=Value2 如果您取消選中此複選框,將(jiāng)爲相鄰參數僅生成(chéng)一組測試。
查看每個目錄頁面(miàn)個數
如果一個掃描任務,本身的已訪問 URL 數超過(guò) 5000,評估的要運行的安全測試用例數超過(guò) 20,000,則建議進(jìn)行掃描配置的分析,并根據分析結果,決定是否需要進(jìn)一步的任務分解和分工。
我們在“我的應用程序數據”樹狀結構下,鼠标選擇目錄以後(hòu),在右邊視圖中選擇“已訪問的 URL()”,記錄 URL 數目,如果該目錄 URL 數目比較大(超過(guò) 500)則可以考慮爲該目錄單獨建立一個掃描任務,隻掃描該目錄下面(miàn)的鏈接。
執行階段
根據在“計劃階段”确定的掃描策略,和進(jìn)行的掃描設置,重新進(jìn)行探索(掃描菜單依次選擇:重新掃描 - 重新探索);後(hòu)繼續分析頁面(miàn)數和測試用例數目,如果控制頁面(miàn)數 5000 個以内,測試用例數 20,000 個以内,則可以直接進(jìn)行掃描;如果沒(méi)有,建議繼續分析,優化掃描配置。
分階段測試
AppScan 的掃描過(guò)程分爲“探索”和“測試”兩(liǎng)個階段,默認情況下,使用的是完全掃描模式,即是邊探索邊測試的。如果網站比較大,建議考慮先探索後(hòu)測試的模式。
如當 URL 達到 5000,需要進(jìn)行的測試達到 50000 的時(shí)候,可以暫停掃描,手工停止探索,選擇“繼續僅測試”。對(duì)已經(jīng)發(fā)現和分析的頁面(miàn)進(jìn)行測試,測試完畢,再來選擇“繼續僅探索”,即:
繼續僅探索 --- 繼續僅測試—繼續僅探索 - 僅測試的一個循環過(guò)程。
在這(zhè)個過(guò)程,一個階段結束以後(hòu),建議查看下 .Scan 文件的大小,如果大小超過(guò)了 500M,則建議考慮任務分解,可以根據目錄把一個掃描任務分解爲多個,或者根據掃描策略來進(jìn)行分解。
該方法是利用了 AppScan 掃描過(guò)程中,探索測試可以分離,而且支持掃描過(guò)程中斷後(hòu)繼續掃描的特性。
按照業務分解掃描任務
在實際工作中,我們掃描的一個大型網站,往往包含多個頻道(dào),而每個頻道(dào)可能(néng)需要的掃描配置都(dōu)不同,這(zhè)些配置甚至互相沖突。如一個網站的提供了 BBS 論壇功能(néng):
http://www.Test.com/WWW.TEST.COM/showthread?channel=1&thread=1001
http://www.Test.com/WWW.TEST.COM/showthread?channel=30&thread=2001
對(duì)于這(zhè)樣的頁面(miàn),訪問後(hòu)發(fā)現頁面(miàn)結構相同,隻是文本内容不同,則應該使用“冗餘路徑限制”參數,控制掃描次數,沒(méi)有必要多次掃描。
同時(shí),該網站的一個服務頻道(dào)存在如下的頁面(miàn):
http://www.Test.com/default.aspx?content=inside_executives.htm
http://www.Test.com/default.aspx?content=privacy.htm
即上面(miàn)提到的業務類型的“冗餘路徑”,應該多次掃描,配置上要求增大“冗餘路徑限制”參數。
在這(zhè)種(zhǒng)情況下,就(jiù)很有必要根據業務分别建立掃描任務,每個任務采用不同的掃描配置。
檢查階段
在掃描執行過(guò)程中,需要檢查,看是否存在下面(miàn)的情況:
·提示網絡連接不上,或者提示部分頁面(miàn)無法打開(kāi)。則檢查是否是掃描速度過(guò)快,服務器不能(néng)承受不了,根據情況修改掃描配置 - 連接 - 通信和代理,增加“超時(shí)”數,并考慮減少“并發(fā)線程數”,以允許更長(cháng)時(shí)間的等待頁面(miàn)影響并減少對(duì)服務器的訪問連接數。
·發(fā)現掃描出的安全問題,包含我們不關心的安全隐患,則取消掉這(zhè)些規則。如發(fā)現了一個安全隐患,類型是“SQL 注入文件寫入(需要用戶驗證)”,該問題是需要用戶根據提示來檢查的,并且是針對(duì) SQL 數據庫的,如果我們使用的數據庫不是 SQL 數據庫,或用戶确認後(hòu)沒(méi)有發(fā)現線索,則就(jiù)可以在掃描配置 - 測試 - 測試策略中取消選擇該策略。
·執行“計劃階段”的檢查,看是否還(hái)存在“僞靜态頁面(miàn)”,“業務類型的冗餘路徑”等,如果存在,則調整掃描配置。
分析階段
在分析階段,結合業務特點,檢查是否掃描範圍,分析掃描結果,并針對(duì)掃描出來的問題,進(jìn)行分析,産生多種(zhǒng)類型的報告等。
掃描結果檢查
掃描結束後(hòu),建議切換到“應用程序數據”視圖中,對(duì)頁面(miàn)進(jìn)行分析,檢查是否核心頁面(miàn)都(dōu)被測試到了。重點檢查如下部分:
1.交互式 URL:一些頁面(miàn),必須輸入正确的信息,才可以跳轉到下一個頁面(miàn),比如查詢手機欠費的頁面(miàn),必須輸入正确的 11 位手機号碼;查詢身份信息的頁面(miàn),必須輸入 18 位的身份證号才可以進(jìn)入後(hòu)續頁面(miàn)。如果沒(méi)有配置,AppScan 怎麼(me)知道(dào)輸入這(zhè)些信息?所以如果存在“交互式”URL,可以選擇該 URL 以後(hòu),鼠标右鍵,選擇手動探索,在 AppScan 浏覽器中訪問這(zhè)些頁面(miàn),輸入對(duì)應的數據,則 AppScan 會(huì)自動記錄這(zhè)些輸入,并填充到掃描配置 - 自動表單填充中。
2.中斷鏈接:看哪些頁面(miàn)在掃描過(guò)程中,訪問出錯或者無法訪問,如針對(duì) time out 的頁面(miàn),就(jiù)可能(néng)是因爲網絡原因,掃描過(guò)程中沒(méi)有及時(shí)響應,可以選擇“重試所有中斷鏈接”重新進(jìn)行訪問。
報告分析
我們需要對(duì)報告進(jìn)行對(duì)比分析或者報告彙總合并,方法如下:
1.增量分析:在實際工作中,經(jīng)常對(duì)一個網站進(jìn)行定期掃描,那麼(me)我們可以使用報告對(duì)比功能(néng),對(duì)比兩(liǎng)次産生的結果,檢查哪些問題已經(jīng)修改,哪些是新發(fā)現的安全隐患。方法是選擇報告 - 增量分析。
2.報告彙總和合并:而如果我們在執行階段,按照業務或者目錄進(jìn)行了分解,最後(hòu)可能(néng)需要對(duì)多份掃描結果進(jìn)行合并和彙總,合并過(guò)程中重複的問題隻記錄一次,如掃描任務 A 和任務 B 都(dōu)發(fā)現了 apply.jsp 的 ID 參數存在 XSS 安全隐患,則合并後(hòu)隻記錄一次。報告的合并需要使用到 AppScan 企業版,其具有 AppScan 标準版的掃描功能(néng)和強大的報告彙總功能(néng),可以産生儀表盤,報告的對(duì)比分析,趨勢分析等。可以把 AppScan 标準版的報告發(fā)布到 AppScan 企業版中,方法是菜單欄中依次選擇文件 - 導出 - 將(jiāng)結果發(fā)布到 AppScan Enterprise。
案例分析
工作中遇到一個案例,使用 AppScan 掃描掃描了 3*24 小時(shí),掃描的 scan 文件已經(jīng)達到 9G;掃描還(hái)在持續進(jìn)行中,總體進(jìn)度完成(chéng)了 30%,可以想象掃描速度已經(jīng)很緩慢,還(hái)需要多長(cháng)時(shí)間才可以完成(chéng)掃描?掃描完成(chéng)以後(hòu)如此大的結果文件是否可以成(chéng)功打開(kāi)和修改保存 ?
按照我的經(jīng)驗,如果掃描結果文件大于 1G,那就(jiù)很有必要立即停止掃描,進(jìn)行配置分析。我們的分析過(guò)程如下:
1.和用戶讨論,确認關心的安全問題,根據這(zhè)些安全問題制定測試策略;讨論後(hòu)确定選擇“SQL 注入”和“跨站點腳本編制”兩(liǎng)種(zhǒng)類型的安全隐患。
2.确定網站範圍,被掃描應用是典型運營商門戶網站,重點要掃描門戶網站自身和其上面(miàn)提供的“網上營業廳”服務。
3.分析被測網站,使用 AppScan 配置了網站主頁面(miàn),然後(hòu)選擇“僅探索”運行 20 分鍾後(hòu),發(fā)現 30,000 多個頁面(miàn)。停止探索,開(kāi)始分析頁面(miàn)。
4.分析發(fā)現該網站同一個鏈接,存在 http、https 訪問的不同情況,而且兩(liǎng)種(zhǒng)訪問方式訪問到的頁面(miàn)内容相同,則過(guò)濾掉 https 的請求,集中測試 http 請求。
5.分析發(fā)現存在大量的“僞靜态頁面(miàn)”,如:
http://www.Test.com//focus/satisfy/file5.html
http://www.Test.com//focus/satisfy/file6.html
在掃描配置 - 排除路徑和文件中:
排除所有該類型的頁面(miàn);.*file\d+.html
增加“例外”,對(duì)該類型的頁面(miàn)隻掃描 file1.html 和 file20.html
6.同時(shí),發(fā)現了 swf 文件,應該不準備掃描 Flash,所以在“排除文件類型”中,設置根據後(hòu)綴名排除 swf 文件。
7.發(fā)現
http://www.Test.com/service
目錄下存在大量如下類型的頁面(miàn),都(dōu)是 menu 參數值不同,訪問以後(hòu)發(fā)現出現的是頁面(miàn)中有不同的超鏈接:
http://www.Test.com/service/Business.do?menu=Query
http://www.Test.com/service/Business.do?menu=Open
http://www.Test.com/service/Business.do?menu=Service
确認該頁面(miàn)是業務類型的“冗餘路徑”,應該全面(miàn)掃描,則需要把“冗餘路徑設置”調整爲比較大的參數,同時(shí)該頻道(dào)是網上營業廳頻道(dào),也要求用戶先登錄。所以針對(duì)該目錄建立一個單獨的掃描任務,隻掃描該目錄和其下子目錄。
8.分析發(fā)現 index.jsp 在多個目錄下出現,而且每次出現都(dōu)有兩(liǎng)種(zhǒng)格式,即沒(méi)有參數和有固定的三個參數,每次的參數值都(dōu)相同。如:
http://www.Test.com//rdwd/jfmz/jifen/index.htmlhttp://www.Test.com//rdwd/jfmz/jifen/index.html?queryType=common&applyArea=010
&kbKey= 請輸入您要搜索的問題http://www.Test.com//rdwd/txl/rdwdznyd/index.htmlhttp://www.Test.com//rdwd/txl/rdwdznyd/index.html?queryType=common&applyArea=010
&kbKey= 請輸入您要搜索的問題
訪問上面(miàn)的頁面(miàn),發(fā)現内容相同,則說(shuō)明是否帶這(zhè)三個參數不會(huì)影響探索發(fā)現更多的頁面(miàn),則可以設置這(zhè)三個參數每次是否出現,是否有不同值都(dōu)可以認爲是同一個頁面(miàn)。
設置方法:掃描配置中依次選擇“參數和 Cookie”來實現。然後(hòu)增加 queryType,applyArea,kbKey 三個參數,均設置爲“是否有參數”、“參數是否變化”不影響測試的模式。
9.切換到“應用程序視圖”,分析“中斷鏈接”,發(fā)現一些頁面(miàn)存在“範圍内容超過(guò)最大容量的”的情況,在 IE 浏覽器中直接訪問,發(fā)現這(zhè)些頁面(miàn)存在死循環,頁面(miàn)内容無限遞增。則在掃描配置 - 排除路徑和文件中排除這(zhè)些頁面(miàn)。
10.根據以上設置,建立了兩(liǎng)個掃描任務,均掃描“SQL 注入”和“跨站點腳本編制”。重新探索後(hòu),頁面(miàn)總數減少到 4000 多,測試用例數減少到接近 50,000,兩(liǎng)個掃描任務均在 8 個小時(shí)内完成(chéng)。
掃二維碼用手機看
更多資訊