Paros OWASP

抓程式漏洞 Paros鞏固web安全

2012-04-30
隨著電子商務的興起,各式各樣的商務網站也如雨後春筍般出現,帶給消費者極大的便利,也替公司廠商燃起了無限的商機,但便利與安全常是如影隨形,如何確保網站程式沒有安全漏洞將是成功關鍵所在。本文將說明OWASP發表的十大安全漏洞,然後講解如何透過程式碼檢視軟體Paros找出網站本身程式的漏洞,防範於未然。
不安全的組態設定

不安全的組態設定(Security Misconfiguration)漏洞是較偏向於管理方面的問題,例如在安裝網站資料庫的時候,通常資料庫都會有一個預設的帳號及密碼,如果資料庫正式上線後沒有將預設的帳號和密碼改掉,那麼其他人便可以輕易地入侵此台資料庫。

另外,還包括未即時地更新系統安全修正程式,或者在正式上線的系統內設定為「偵錯模式(Debug)」(在此種模式之下,惡意攻擊者往往可以經由錯誤訊息而取得更多關於系統的相關資訊),這些不適當的組態設定都會造成系統安全性潛在的危害。

未適當限制的URL存取

所謂未適當限制的URL存取(Failure to Restrict URL Access)指的是,一般網站通常會分成前端程式和後端管理程式,前端程式為一般網際網路上使用者所看到的網頁,而後端程式即為管理程式,如會員管理系統等等。

基於安全的考量,後端管理程式不應該讓網際網路上的使用者能夠直接查詢,而必須限制僅有某些管理者可查詢及存取,例如限制只有某些IP或主機可以查詢,並以帳號及密碼的認證機制控管。

如果網站未限制,而讓網際網路上的其他的使用者也能正常使用後端的管理程式,就可能造成潛在的安全漏洞。

未驗證的網頁重新導向

未驗證的網頁重新導向(Unvalidated Redirects and Forwards)漏洞又稱為轉址漏洞。在網站中常見許多超連結,或者利用事件觸發的方式幫忙重新導向至其他網站,或是前往其他頁面的功能。

如果程式未對此參數進行驗證,可能會導致惡意攻擊者將惡意的網址置入到重新導向的參數內,而讓不知情的使用者連結到惡意的網站上,甚至直接下載惡意的攻擊Script碼。

不安全的加密儲存

不安全的加密儲存(Insecure Cryptographic Storage)網站並未對機敏的資料做加密處理或是使用不嚴謹的加密演算法,而導致攻擊者在取得相關的機敏資料後,可以輕易地取得相關的資訊。

不安全的傳輸防護

不安全的傳輸防護(Insufficient Transport Layer Protection)指的是,網頁程式在傳輸機敏資料時,未採用適當的加密方法傳送,而依舊使用正常的HTTP通訊協定來傳送。

由於HTTP通訊協定均是採用未加密(明碼)的方式來連線,在此情況下,惡意的攻擊者在資料傳輸的任何一個節點中,均可利用Sniffer(竊聽)的方式來取得傳輸資料,如果網站採用HTTP通訊協定來傳遞資訊,來往的封包均以明碼方式傳輸,攻擊者即可輕易取得相關的機敏資訊。

安裝Paros

Paros是以Java語言開發而成的網站應用程式資訊安全掃描工具(Web Application Security Assessment Tool),以Proxy的形式運作,介於瀏覽器與受測網站之間,攔截雙方HTTP通訊協定,從中注入相關的測試封包,並觀察程式回覆的狀況,來確認程式是否有安全上的漏洞。

接下來,安裝Paros軟體。Paros需要1.4版本以上的Java Run Time(JRE),若尚未安裝,可至「http://java.sun.com/j2se」網頁下載。

確認電腦已經安裝正確的Java執行環境之後,連接至Paros網站(http://www.parosproxy.org/download.shtml)取得最新版本安裝。以Windows系統版本為例,安裝過程僅須依照所指示的安裝步驟即可完成。

Paros預設使用8080埠,如果想更改預設埠,可點選「Options」→「Local proxy」來調整預設埠,如下圖所示。


此工具有提供相關的介面來來操作,使用上僅需下列幾個步驟即可完成:

STEP 1:啟動Paros。可在命令介面上執行netstat指令查看是否有成功啟動。若有8080埠(Paros預設服務的埠)正在運作,即表示啟動成功。


STEP 2:調整使用者的瀏覽器。以IE8為例,設定瀏覽器使用Proxy,則點選功能表【工具】→【網際網路選項】,然後切換至〔連線〕活頁標籤內,按下〔區域網路設定〕按鈕,就會開啟如圖的設定視窗。在此,即可設定瀏覽器使用8080埠(必須與Paros的設定埠相同)的Proxy連線。


STEP 3:利用瀏覽器瀏覽欲掃描的網站。此時在Paros上的區域上即會出現所瀏覽網站的URL。

STEP 4:利用Spider功能,將欲掃描網站內的所有URL資訊抓進來,準備進行掃描。


STEP 5:利用「Scan All」功能掃描該網站內所有的URL網頁,掃描完成之後,即會產生掃描報表。

STEP 6:最後,可利用Report功能查看掃描結果報表。報表內會詳細列出Web程式可能具有那些漏洞以及提出相關修補的建議。至此,即可參考相關掃描報表來修正Web程式的漏洞。

以上步驟是一般使用者最常用的功能,簡單的幾個步驟:利用瀏覽器瀏覽欲掃描的網址、利用Spider取得該網站內所有URL的資訊、利用「Scan All」功能對所有的網址進行掃描、取得完整的掃描報表,即可完成Web程式的弱點掃描。

此外,Paros軟體也針對進階使用者提供Trap功能,如下圖示。Paros可攔截往來的Request封包(如下A區),待使用者修改完相關資料後,再送出來測試是否有相關的漏洞。


這個功能若用在Injection的測試上會相當便利,但這往往也是許多資安工具的宿命,它用在正途是一個可幫助管理者找到漏洞的資安工具,但用在另一個方向即是駭客的便利工具,可幫助駭客快速地找到別人系統上的漏洞。

結語

在本文中,筆者提出Paros這套Web安全漏洞的掃描工具,利用Proxy的方式,注入相關的測試封包來檢驗程式是否具有安全的漏洞。

其實在開源碼社群中,相關的Web測試軟體還不少,除了Paros外,比較著名的有Wikto(著名的Web掃描工具,是Nikto的Windows版,官方網址為http://www.sensepost.com/labs/tools/pentest/wikto,可結合GHDB資料庫對受測網站進行安全漏洞的測試),或是標榜測試速度最快的SkyFish(http://code.Google.com/p/skipfish/),都是在程式設計師完成程式後用來測試程式是否內含安全漏洞的最好選擇。


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!