2013-08-05 42 views
18

現狀CSRF在移動應用

Alice使用的網上銀行網站存儲了她的憑據的cookie。

在cookie過期之前,Eve向Alice發送一個惡意URL,隨後導致Alice從她的銀行賬戶中提取錢並將其發送給Eve。

這是一個常見的CSRF Web應用程序示例,但在移動應用程序內執行此操作有多可行?


如果Alice使用存儲一個cookie她的手機上的銀行應用程序,然後訪問從夏娃的網站中也有類似的結果是什麼?

Alice的移動設備上的cookie來自本機(或混合)應用程序是否容易被操縱,或者這些cookie通常以某種方式在設備上進行了裝箱?

我認爲在iOS,Android等的工作方式與普通瀏覽器的工作方式相同,但實際情況如何?

編輯:

這個問題本來意思是所有移動設備通用。甚至諸如在JavaScript中創建cookie,然後使用PhoneGap或Titanium都可能與我相信。在閱讀更多內容之後,我也很好奇,如果使用其中一種技術編譯JavaScript,會影響本機設備的Cookie以及它們如何存儲它們。

使用cookie的主要目的是維護用戶的憑據,以便他們不必每次都用他們的銀行賬戶註銷並重新登錄。在閱讀了關於這個問題的更多信息之後,似乎每個特定設備都有不同的場景,並且事實上可能是CSRF應用程序。舉例來說,Android中的Shared Preferences是沙盒,以防止其他應用程序訪問這些值。

+1

應用一般沒有餅乾,至少在Android。您可能希望更詳細地解釋您的攻擊情況。特別是,要精確**,說明您是指本地應用程序,移動網站還是其他內容。 – CommonsWare

+1

我在這裏談論的是原生應用程序。我很確定你可以在iOS和Android上創建cookie,但是我可能在後者上寫錯了。是什麼讓攻擊場景混淆?考慮Alice在手機上使用銀行應用程序(本機),然後在iOS上切換到Safari。然後,她在網上瀏覽時遇到了CSRF - 這是否可以讓她的銀行應用程序的cookies通過電話進行? –

+1

「什麼讓攻擊情況混亂?」 - 除此之外,您還沒有說明您的「銀行應用程序」是如何創建和使用cookie的。 – CommonsWare

回答

12

Alice的移動設備上來自本機(或混合)應用程序的Cookie是否容易被操縱,或者這些cookie通常以某種方式在設備上裝箱?

CSRF攻擊涉及一個應用程序:瀏覽器。您提出的攻擊涉及兩個獨立的應用程序:銀行應用程序和瀏覽器。

一般來說,單獨的應用程序是分開的。 Safari不會與Firefox共享數據,即使它們都安裝在同一臺OS X計算機上。現在,可能會出現一些錯誤,這些錯誤可能允許JS無限制地訪問OS文件系統,因此允許Safari中的網站訪問Firefox的數據(反之亦然),但這與CSRF無關.c

在任何現代操作系統上,對於任何單獨的應用程序都是一樣的。

即使是在JavaScript中創建cookie,然後使用PhoneGap或Titanium的東西也是相關的,我相信。

不是真正的,只有Safari瀏覽器具有Cookie和Firefox具有Cookie有某種程度的聯繫。

它實際上是可能的CSRF應用

歡迎您提供您的索賠的證據,或者提供CSRF您個人的定義,這將包括如Safari攻擊Firefox的場景。

作爲一個示例,Android中的共享首選項是用沙箱裝箱的,以防止其他應用程序訪問這些值。

正確。這與CSRF沒什麼關係。

就Android而言,似乎您創建和存儲Cookie的方式在攻擊中確實存在,並且可能存在漏洞。

同樣,歡迎您提供您的聲明的證據,或者提供您的CSRF個人定義,其中包括Safari攻擊Firefox等場景。

雖然對設備的物理訪問導致安全問題

有傳送點技術,這將允許CSRF成使移動設備物理地改變其位置,因此對物理訪問的影響,尚未開發。

3

網絡瀏覽器和應用程序不共享相同的cookie存儲,因此不應該以這種方式進行CSRF攻擊。應用程序也可以使用Web視圖,但每個Web視圖都有自己的Cookie存儲[1],因此兩個應用程序之間的CSRF攻擊也是不可能的。

從閱讀本文[2]看來,它可能會將cookie存儲在文件系統上,該文件系統可能通過其他應用程序用作攻擊媒介,但不通過網絡瀏覽器。

[1] http://developer.appcelerator.com/question/123991/cookie-sharing-between-defaultnative-browser-and-webviews-in-an-app

[2] http://developer.android.com/reference/android/webkit/CookieManager.html