1. 程式人生 > >安全性測試:OWASP ZAP使用入門指南

安全性測試:OWASP ZAP使用入門指南

web應用 站點 spa style bsp 格式 自動 repo ack

免責聲明:

本文意在討論使用工具來應對軟件研發領域中,日益增長的安全性質量測試需求。本文涉及到的工具不可被用於攻擊目的。

1.  安全性測試

前些天,一則12306用戶賬號泄露的新聞迅速發酵,引起了購票用戶的一片恐慌。

且不論這次賬號泄露的漏洞究竟是發生在哪裏,網絡安全性這個話題再次引起了我們的關註。

做為IT從業人員,我們的研發產品是否具有足夠的安全性,是不是能夠在億萬用戶的?我們是不是應該更多的關註產品安全性,投入更多的安全性測試資源?

從行業發展的趨勢來看,答案是肯定的。

2.  OWASP

OWASP是一個開源的、非盈利的全球性安全組織,致力於應用軟件的安全研究。其使命是使應用軟件更加安全,使企業和組織能夠對應用安全風險作出更清晰的決策。目前OWASP全球擁有220個分部近六萬名會員,共同推動了安全標準、安全測試工具、安全指導手冊等應用安全技術的發展。

近幾年,OWASP峰會以及各國OWASP年會均取得了巨大的成功,推動了數以百萬的IT從業人員對應用安全的關註以及理解,並為各類企業的應用安全提供了明確的指引。

OWASP被視為web應用安全領域的權威參考。2009年發布的美國國家和國際立法、標準、準則、委員會和行業實務守則參考引用了OWASP。美國聯邦貿易委員會(FTC)強烈建議所有企業需遵循OWASP十大WEB弱點防護守則。

OWASP 頒布並且定期維護更新的web安全漏洞TOP 10,也成為了web安全性領域的權威指導標準,同時也是IBM APPSCAN、HP WEBINSPECT等掃描器漏洞參考的主要標準。

3.  ZAP

OWASP ZAP,全稱:OWASP Zed Attack Proxy攻擊代理服務器是世界上最受歡迎的免費安全工具之一。ZAP可以幫助我們在開發和測試應用程序過程中,自動發現 Web應用程序中的安全漏洞。另外,它也是一款提供給具備豐富經驗的滲透測試人員進行人工安全測試的優秀工具。

3.1  ZAP的工作原理

在安全性測試領域,安全性測試主要可以由以下幾種測試策略來覆蓋:

    • 漏洞分析  -  對系統進行掃描來發現其安全性隱患
    • 滲透測試  -  對系統進行模擬攻擊和分析來確定其安全性漏洞
    • 運行時測試  -  終端用戶對系統進行分析和安全性測試(手工安全性測試分析)
    • 代碼審計  -  通過代碼審計分析評估安全性風險(靜態測試,評審)

ZAP主要是用於應用上述的第二種測試,即滲透性測試。

ZAP以架設代理的形式來實現滲透性測試,類似於fiddler抓包機制。他將自己置於用戶瀏覽器和服務器中間,充當一個中間人的角色,瀏覽器所有與服務器的交互都要經過ZAP,這樣ZAP就可以獲得所有這些交互的信息,並且可以對他們進行分析、掃描,甚至是改包再發送。

3.2  ZAP下載

下載地址:github: https://github.com/zaproxy/zaproxy/wiki/Downloads

現在的穩定版本是2.7.0版,推薦下載windows64位安裝包來初試安全性掃描機制。

3.3  ZAP安裝

本文推薦的windows64位版的ZAP安裝非常簡單,跟普通的安裝程序過程沒有太大不同,本文不再贅述。

當然遺憾的是,現階段ZAP的中文支持做得還不是很好,基本的操作界面以英文為主。

3.4  初步使用ZAP

進程保留:

初次打開ZAP時,會看到以下對話框,詢問是否要保持ZAP進程。

保存進程則可以讓你的操作得到保留,下次只要打開歷史進程就可以取到之前掃描過的站點以及測試結果等。

一般來說,如果對固定的產品做定期掃描,應該保存一個進程做為長期使用,選第一或者第二個選項都可以。

如果只是想先簡單嘗試ZAP功能,可以選擇第三個選項,那麽當前進程暫時不會被保存。

技術分享圖片

設置代理:

打開ZAP以後看到的是如下界面:

技術分享圖片

在開始使用他進行滲透測試之前,如前文所述,首先需要將他設為我們的瀏覽器代理。

ZAP的默認地址和端口是標準的localhost:8080,如下圖:

技術分享圖片

如果端口可用,接下來我們只需要去修改瀏覽器代理,以火狐為例:

在設置-常規-連接設置裏,選擇手動代理,並將http代理設為與ZAP一致:

技術分享圖片

完成這一設置以後,我們再用這個瀏覽器去訪問站點時,都會通過ZAP這個中間人,於是這就給ZAP提供了抓包、分析、滲透測試的可能性。

快速測試:

ZAP右上方區域是快速測試窗口,可以開啟非常傻瓜式的滲透測試:

技術分享圖片

輸入網址,點擊‘Attack’,搞定,so easy。

在快速攻擊過程中,ZAP做了以下幾件事:

  • 使用爬蟲抓取被測站點的所有頁面
  • 在頁面抓取的過程中被動掃描所有獲得的頁面
  • 抓取完畢後用主動掃描的方式分析頁面,功能和參數

結果分析:

等待上述快速測試完成以後,我們就可以拿到ZAP提供的測試結果進行分析。

快速測試中,ZAP會產出以下一些產物:

  • 被測站點地圖及頁面資源
  • 所有請求、反饋記錄
  • 安全性風險項目列表

其中我們最關註的當然是安全性風險項,ZAP將做出以下標識:

技術分享圖片

由上到下分別為:高、中、低、信息、通過

在窗口最底部,切換到Alert界面,可以看到所有掃描出的安全性風險:

技術分享圖片

其中的所有風險項可以展開,ZAP在右側窗口會對該風險項提供說明和解釋,並且在右上部response區域高亮展示具體風險項由來(從反饋中分析得出的)。

如果只是簡單的安全性測試需求,或者只是為了學習安全性測試知識,到這一步為止ZAP給出的風險項分析和報告,已經可以一定程度滿足要求了。

通過主菜單Report選項,可以選擇輸出HTML、XML等多種格式安全性測試報告。

主動爬取網站

之前介紹了使用ZAP做為瀏覽器代理,配置好代理的情況下,使用瀏覽器進行任何站點的訪問都會經過ZAP,這時就會在ZAP的context記錄裏留下該站點記錄,如圖:

技術分享圖片

右鍵點擊需要測試的站點,選擇Attack->Spider,彈出的選項窗口點擊Start Scan,則會開始手動爬取網站。

主動掃描

與節操作類似,右鍵點擊目標站點,選擇Attack->Active Scan,就可以觸發主動掃描:

技術分享圖片

掃描完畢後,同樣可以切換到Alert界面,查看安全風險項,或者輸出測試報告。

關於ZAP的入門使用就介紹到這裏,學會以上使用技巧,就已經可以應付初級的安全測試需求了。

安全性測試:OWASP ZAP使用入門指南