qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請?jiān)L問 http://qaseven.github.io/

          Web安全測試-----AppScan掃描工具

          安全測試應(yīng)該是測試中非常重要的一部分,但他常常最容易被忽視掉。

            盡管國內(nèi)經(jīng)常出現(xiàn)各種安全事件,但沒有真正的引起人們的注意。不管是開發(fā)還是測試都不太關(guān)注產(chǎn)品的安全。當(dāng)然,這也不能怪我們苦B的“民工兄弟”。因?yàn)楣镜乃o我們的時間與精力只要求我們對產(chǎn)品的功能的實(shí)現(xiàn)以及保證功能的正常運(yùn)行。一方面出于僥幸心理。誰沒事會攻擊我?

            關(guān)于安全測試方面的資料也很少,很多人所知道的就是一本書,一個工具。

            一本書值《web安全測試》,這應(yīng)該是安全測試領(lǐng)域維數(shù)不多又被大家熟知的安全測試書,我曾看過前面幾個章節(jié),唉,鄙視一下自己,做事總喜歡虎頭蛇尾。寫得非常好,介紹了許多安全方面的工具和知識。我覺得就算你不去做專業(yè)的安全開發(fā)\測試人員。起碼可以開闊你的視野,使你在做開發(fā)或測試時能夠考慮到產(chǎn)品安全方面的設(shè)計(jì)。防患于未然總是好的,如果你想成為一個優(yōu)秀的人。

            一個工具,其實(shí)本文也只是想介紹一下,這個工具----AappScan,IBM的這個web安全掃描工具被許多人熟知,相關(guān)資料也很多,因?yàn)槲乙裁嗣钠っ砸瞾砣苏f兩句,呵呵!說起sappScan,對它也頗有些感情,因?yàn)椋弦环?a target="_self" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important; ">工作的時候,我摸過于測試相關(guān)的許多工具,AappScan是其它一個,當(dāng)時就覺得這工具這么強(qiáng)大,而且還這么傻瓜!!^_^! 于是,后面在面試的簡歷上寫了這個工具,應(yīng)聘現(xiàn)在的這家公司,幾輪面試下來都問到過這個工具,因?yàn)楝F(xiàn)在這家公司一直在使用這個工具做安全方面的掃描。我想能來這家公司和我熟悉AappScan應(yīng)該有一點(diǎn)點(diǎn)的關(guān)系吧!呵呵

            AappScan下載與安裝

            IBM官方下載;http://download2.boulder.ibm.com ... 2-AppScan_Setup.exe

            本連接為7.8 簡體中文版本的

            破解補(bǔ)丁;http://www.vdisk.cn/down/index/4760606A4753

            破解補(bǔ)丁中有相應(yīng)的注冊機(jī)與破解步驟,生成注冊碼做一下替換就OK了,這里不細(xì)說。

            AppScan其實(shí)是一個產(chǎn)品家族,包括眾多的應(yīng)用安全掃描產(chǎn)品,從開發(fā)階段的源代碼掃描的AppScan source edition,到針對WEB應(yīng)用進(jìn)行快速掃描的AppScan standard edition.以及進(jìn)行安全管理和匯總整合的AppScan enterprise Edition等,我們經(jīng)常說的AppScan就是指的桌面版本的AppScan,即AppScan standard edition.其安裝在Windows操作系統(tǒng)上,可以對網(wǎng)站等WEB應(yīng)用進(jìn)行自動化的應(yīng)用安全掃描和測試。

            使用AppScan來進(jìn)行掃描

            我們按照PDCA的方法論來進(jìn)行規(guī)劃和討論; 建議的AppScan使用步驟:PDCA: Plan,Do,check, Action and Analysis.

            計(jì)劃階段:明確目的,進(jìn)行策略性的選擇和任務(wù)分解。

            1)明確目的:選擇合適的掃描策略

            2)了解對象:首先進(jìn)行探索,了解網(wǎng)站結(jié)構(gòu)和規(guī)模

            3)確定策略:進(jìn)行對應(yīng)的配置

            a)按照目錄進(jìn)行掃描任務(wù)的分解

            b)按照掃描策略進(jìn)行掃描任務(wù)的分解



            執(zhí)行階段:一邊掃描一遍觀察

            4)進(jìn)行掃描

            5)先爬后掃(繼續(xù)僅測試)

            檢查階段(Check)

            6)檢查和調(diào)整配置

            結(jié)果分析(Analysis)

            7)對比結(jié)果

            8)匯總結(jié)果(整合和過濾)

            AppScan的工作原理

            當(dāng)我們單擊“掃描”下面的小三角,可以出現(xiàn)如下的三個選型“繼續(xù)完全掃描”,“繼續(xù)僅探索”,“繼續(xù)僅測試“,有木有?什么意思? 理解了這個地方,就理解了AppScan的工作原理,我們慢慢展開:

            還沒有正式開始,所以先不管“繼續(xù)“,直接來討論’完全掃描”,“僅探索”,“僅測試”三個名詞:

            AppScan是對網(wǎng)站等WEB應(yīng)用進(jìn)行安全攻擊,通過真刀真槍的攻擊,來檢查網(wǎng)站是否存在安全漏洞;既然是攻擊,肯定要有明確的攻擊對象吧,比如北約現(xiàn)在的對象就是卡扎菲上校還有他的軍隊(duì)。對網(wǎng)站來說,一個網(wǎng)站存在的頁面,可能成千上萬。每個頁面也都可能存在多個字段(參數(shù)),比如一個登陸界面,至少要輸入用戶名和密碼吧,這就是一個頁面存在兩個字段,你提交了用戶名密碼等登陸信息,網(wǎng)站總要有地方接受并且檢查是否正確吧,這就可能存在一個新的檢查頁面。這里的每個頁面的每個參數(shù)都可能存在安全漏洞,所有都是被攻擊對象,都需要來檢查。

            這就存在一個問題,你領(lǐng)命來檢查一個網(wǎng)站的安全性,這個網(wǎng)站有多少個頁面,有多少個參數(shù),頁面之間如何跳轉(zhuǎn),你可能很不明確,如何知道這些信息? 看起來很復(fù)雜,盤根錯節(jié);那就更需要找到那個線索,提綱挈領(lǐng); 那就想一想,訪問一個網(wǎng)站的時候,我們需要知道的最重要的信息是哪個?網(wǎng)站主頁地址吧? 從網(wǎng)站地址開始,很多其他頻道,其他頁面都可以鏈接過去,對不對,那么可不可以有種技術(shù),告訴了它網(wǎng)站的入口地址,然后它“順藤摸瓜”,找出其他的網(wǎng)頁和頁面參數(shù)? OK,這就是”爬蟲” 技術(shù),具體說,是”網(wǎng)站爬蟲“,其利用了網(wǎng)頁的請求都是用http協(xié)議發(fā)送的,發(fā)送和返回的內(nèi)容都是統(tǒng)一的語言HTML,那么對HTML語言進(jìn)行分析,找到里面的參數(shù)和鏈接,紀(jì)錄并繼續(xù)發(fā)送之,最終,找到了這個網(wǎng)站的眾多的頁面和目錄。這個能力AppScan就提供了,這里的術(shù)語叫“探索”,explorer,就是去發(fā)現(xiàn),去分析,了解未知的,記錄。

            在使用AppScan的時候,要配置的第一個就是要檢查的網(wǎng)站的地址,配置了以后,AppScan就會利用“探索”技術(shù)去發(fā)現(xiàn)這個網(wǎng)站存在多少個目錄,多少個頁面,頁面中有哪些參數(shù)等,簡單說,了解了你的網(wǎng)站的結(jié)構(gòu)。

            “探索”了解了,測試的目標(biāo)和范圍就大致確定了,然后呢,利用“軍火庫”,發(fā)送導(dǎo)彈,進(jìn)行安全攻擊,這個過程就是“測試”;針對發(fā)現(xiàn)的每個頁面的每個參數(shù),進(jìn)行安全檢查,檢查的彈藥就來自AppScan的掃描規(guī)則庫,其類似殺毒軟件的病毒庫,具體可以檢查的安全攻擊類型都在里面做好了,我們?nèi)ナ褂眉纯伞?/p>

            那么什么是“完全測試呢”,完全測試就是把上面的兩個步驟整合起來,“探索”+ “測試”;在安全測試過程中,可以先只進(jìn)行探索,不進(jìn)行測試,目的是了解被測的網(wǎng)站結(jié)構(gòu),評估范圍; 然后選擇“繼續(xù)僅測試”,只對前面探索過的頁面進(jìn)行測試,不對新發(fā)現(xiàn)的頁面進(jìn)行測試。“完全測試”就是把兩個步驟結(jié)合在一起,一邊探索,一邊測試。

            上圖更容易理解:

            步驟1:探索(爬行,爬網(wǎng))

            步驟2:真對找到的頁面進(jìn)行測試,生成安全攻擊


          AppScan掃描大型網(wǎng)站

            經(jīng)常有客戶抱怨,說AppScan無法掃描大型的網(wǎng)站,或者是掃描接近完成時候無法保存,甚至保存后的結(jié)果文件下次無法打開?;同時大家又都很奇怪,作為一款業(yè)界出名的工具,如此的脆弱?是配置使用不當(dāng)還是自己不太了解呢?我們今天就一起來討論下AppScan掃描大型網(wǎng)站會遇到的問題以及應(yīng)對。

            什么叫大型網(wǎng)站,顧名思義,網(wǎng)站規(guī)模大,具體說是頁面很多,內(nèi)容很全。比如www.sina.com.cn,比如http://music.10086.cn/,都包括上萬個頁面。而且除了這個,可能還有一個特點(diǎn)---頁面參數(shù)多,即要填寫的地方多,和用戶的交互多;比如一個網(wǎng)站如果都是靜態(tài)頁面(.html,.jpg等),沒有讓用戶輸入的地方,那么可以利用,可以作為攻擊點(diǎn)的地方也就不多。如果頁面到處都是有輸入,有查詢,要求用戶來參與的,你輸入的越多,可能泄露的信息也越多,可能被別人利用的攻擊點(diǎn)也就越多,所以和頁面參數(shù)也是有關(guān)系的。AppScan聲稱測試用例的時候,也是根據(jù)每個參數(shù)來產(chǎn)生的,簡單說,如果一個參數(shù),對應(yīng)了200個安全攻擊測試用例,那么一個登陸界面至少就對應(yīng)400個了,為什么?登陸界面至少有用戶名和密碼兩個字段吧? 每個字段200個攻擊用例。

            這個簡單吧,還可以更復(fù)雜:如果遇到下面的兩個地址,那要掃描多少次呢?

            http://www.cnblogs.com/fnng/focus/satisfy/file.jsp?id=1

            http://www.cnblogs.com/fnng/focus/satisfy/file.jsp?id=2

            上面的兩個地址有類似的,“?”號以前的URL地址完全一樣,”?”號后面帶的參數(shù)不同,這種可以認(rèn)為是重復(fù)頁面,那么對于重復(fù)頁面,是否要重復(fù)測試呢?

            這取決于“冗余路徑設(shè)置”,默認(rèn)的是最多測試5次;即,這種類型URL出現(xiàn)的前5次,那么就是要測試1000個攻擊用例了。

            如果再繼續(xù)修改下:遇到下面的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個參數(shù),測試的次數(shù)就更多了。想象下,如果這個網(wǎng)頁里面的參數(shù)如果是10個,或者更多的呢?比如很多網(wǎng)站提交注冊信息的時候,要填寫的內(nèi)容足夠多吧?

            要進(jìn)行的安全測試用例也就隨之不斷增加…

            這是網(wǎng)站規(guī)模的影響,還有一個問題,就出在“每個參數(shù),發(fā)送200個安全測試用例”這個假設(shè)上。這個假設(shè)的前提來源于哪里? 來源于我們選擇的掃描規(guī)則庫。即你關(guān)心那些安全威脅,這個需要在測試策略里面選擇。同樣來參照殺毒軟件,你會用殺毒軟件來查找一些專用的病毒嗎,比如CIH,比如木馬;應(yīng)用安全掃描也是一樣的道理,如果有明確的安全指標(biāo)或者安全規(guī)則范圍,那么就選擇之。這些可能來源于企業(yè)的規(guī)范,來源于政府的法律法規(guī)。就要根據(jù)你的理解,在這里選擇。

            很多時候,我們也很難在最開始的階段,就把掃描規(guī)范制定下來,按照項(xiàng)目經(jīng)理們的口頭禪“漸進(jìn)明細(xì)”,“滾動式規(guī)劃”,在實(shí)踐中,更多時候也是摸著石頭過河,選擇了一個掃描策略,然后根據(jù)結(jié)果分析,看是否需要調(diào)整,不斷優(yōu)化。比如選擇默認(rèn)的“缺省值’掃描策略,對網(wǎng)站進(jìn)行掃描,發(fā)現(xiàn)其”敏感信息“里面會去檢查頁面上是否含有Email地址,是否含有信用卡號碼等,如果我們覺得這些信息,顯示在頁面上是正常的業(yè)務(wù)需要, 我們就可以取消掉這些規(guī)則,所以掃描規(guī)則也很大程度上影響著我們的掃描效率。

          posted on 2012-06-11 09:46 順其自然EVO 閱讀(685) 評論(0)  編輯  收藏 所屬分類: 測試學(xué)習(xí)專欄管理方向defalut managerment system 缺陷管理系統(tǒng)

          <2012年6月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          1234567

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 承德县| 许昌市| 礼泉县| 兴城市| 金寨县| 光山县| 宜阳县| 克山县| 无棣县| 奉化市| 崇州市| 姚安县| 杨浦区| 眉山市| 唐海县| 万荣县| 天长市| 观塘区| 东丽区| 肥东县| 淮南市| 平遥县| 彩票| 阿图什市| 福海县| 甘洛县| 清镇市| 诸暨市| 陕西省| 九龙县| 土默特右旗| 邵阳市| 东辽县| 琼海市| 讷河市| 来宾市| 九龙城区| 商城县| 金秀| 左云县| 肇源县|