2013-04-30 89 views
5

我最近接管了一個應用程序,最近我們做了一個應用程序掃描,並且我找到了一個標記爲易受攻擊的項目。報告建議的補救任務是拒絕惡意請求。報告稱AppScan的嘗試:如何拒絕惡意請求

了以下更改應用到原始請求:設置HTTP頭爲「http://bogus.referer.ibm.com

我有這個標記,我們跑了AppScan的第一時間,把代碼檢查是否提供了urlreferer,如果是,請確保它與url中的主機相同,否則殺掉用戶的會話並重定向到登錄頁面。我們再次運行appscan,並再次被標記,我不知道如何處理。

當我查看報告時,它顯示它放在僞引用者中,服務器以302狀態進行響應,重定向,然後請求放入登錄名,服務器用202響應,提供它。 Appscan推理說:

在不同的會話中發送兩次相同的請求,並收到相同的響應。 這表明沒有任何參數是動態的(會話標識符僅在 Cookie中發送),因此應用程序容易受到此問題的影響。

但是答案總是不一樣嗎?如果檢查失敗了302,然後202,重定向和登錄頁面出現,無論用戶。有誰知道如何處理這個?我猜我可以將用戶的會話ID放入重定向url中,這樣appscan會看到是否有不同,但我認爲必須有另一種方式。

這是一個.net 4應用程序。用戶通過Session對象進行跟蹤,如果這很重要,則不使用表單身份驗證。

+1

什麼是「appscan」? – spender 2013-04-30 20:11:41

+0

我認爲:http://www-01.ibm.com/software/awdtools/appscan/ – Darren 2013-04-30 20:22:59

+0

與論壇網站不同,我們不使用「謝謝」或「任何幫助表示讚賞」,或在[so]上簽名, 。請參閱「[應該'嗨','謝謝',標語和致敬從帖子中刪除?](http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be -removed - 從 - 個)。 – 2013-04-30 20:29:03

回答

3

設置視圖狀態的用戶密鑰,REF:https://security.stackexchange.com/questions/19152/how-does-viewstate-protect-against-csrf 這使得難以發送查詢,而不必訪問這兩個最近&頁您的Cookie。

使用HttpException返回403(你可能需要做一些額外的工作也保持它變成一個500)

Throwing an HttpException always sends back HTTP 500 error?

和App掃描有辨識度極高的signature--他們扔100S在同一分鐘內例外。作爲錯誤日誌記錄基礎架構的一部分,您可能希望在同一分鐘內說出5個異常之後提供驗證碼,或者在應用程序掃描引發的應用程序永遠不會拋出的錯誤上呈現驗證碼(如非常長的URL,查詢.jsp .aspx應用程序中的文件)。一旦應用程序掃描器被識別出來,你就會想要通過重定向到一個錯誤頁面來毒害他們的會話,直到他們解決了一個capcha。這種情況的缺點是,在應用程序拋出異常之後,用戶很可能會遇到capcha問題,例如,當用戶在文本框中放入>時出現安全錯誤。您可能希望或可能不希望爲所有應用程序掃描程序實現此功能,可能只是惡意程序,這取決於組織中的激勵措施。

+0

我會嘗試viewstate鍵,這實際上來自我們內部使用的ibm工具,而不是來自外部攻擊者的掃描。該工具雖然我相信作爲用戶登錄,然後與URL和它發送到頁面的請求混淆以嘗試打破某些東西。我會再次檢查報告,如果攻擊不是來自用戶進行會話,我會看看是否修復了這個問題。 – Paritosh 2013-04-30 22:28:44

+0

您可能已經知道了這一點,但問題不在於用戶沒有會話(每個人都會得到一個會話),也沒有認證他們。 CSRF攻擊會欺騙合法用戶執行http GET和POST,其中包括會話和授權cookie,通常使用XHR,但是,XHR不會輕鬆訪問最近請求的頁面。這是一種複雜的攻擊,也是一種複雜的攻擊。至於友善掃描與惡意掃描,我從來不明白爲什麼掃描和修復所有漏洞,除了掃描簡單高效之外。 – MatthewMartin 2013-05-01 00:01:55