CSRF в мобильных приложениях

Ситуация:

Алиса использует веб-сайт онлайн-банкинга, в котором хранится файл cookie ее учетных данных.

До истечения срока действия файла cookie Eve отправляет Алисе злонамеренный URL-адрес, который впоследствии заставляет Алису снимать деньги со своего банковского счета и отправлять его в Eve.

Это общий пример CSRF для веб-приложений, но насколько это возможно сделать в мобильном приложении?


Что делать, если Алиса использует банковское приложение на своем телефоне, где хранится файл cookie, а затем посещает сайт от Eve, который имеет аналогичный результат?

Будет ли cookie на мобильном устройстве Alice из родного (или гибридного) приложения уязвимым для манипуляции или эти куки обычно как-то песка помещаются на устройстве?

Я бы предположил, что файлы cookie на iOS, Android и т.д. работают так же, как обычный браузер, но на самом деле это так?

EDIT:

Первоначально этот вопрос должен был быть общим для всех мобильных устройств. Я думаю, что даже что-то вроде создания cookie в JavaScript, а затем с помощью PhoneGap или Titanium. Прочитав больше в этом, мне также интересно, если компиляция JavaScript с использованием одной из этих других технологий повлияет на куки файлы собственных устройств и их сохранение.

Основным моментом использования файлов cookie было бы поддерживать учетные данные пользователя, чтобы им не приходилось каждый раз выходить из системы и регистрироваться в своем банковском счете. Прочитав больше об этой проблеме, кажется, что для каждого конкретного устройства существуют разные сценарии, и на самом деле это возможно для CSRF-приложения. Например, Общие предпочтения в Android помечены в песочнице, чтобы другие приложения не обращались к значениям.

Ответы

Ответ 1

Будет ли cookie на мобильном устройстве Alice из родного (или гибридного) приложения уязвимым для манипуляции или эти куки обычно как-то песка помещаются на устройстве?

Атака CSRF включает одно приложение: браузер. Предлагаемая атака включает в себя два отдельных приложения: банковское приложение и браузер.

Вообще говоря, отдельные приложения являются отдельными. Safari не делит данные с Firefox, даже если оба установлены на одном компьютере OS X. Теперь могут быть ошибки в том или ином, которые могут позволить JS иметь неограниченный доступ к файловой системе ОС и, следовательно, разрешить веб-сайту в Safari получать доступ к данным Firefox (или наоборот), но это не связано с CSRF.c

То же самое относится к любым отдельным приложениям на любой современной ОС.

Даже такое, как создание cookie в JavaScript, а затем использование PhoneGap или Titanium может быть релевантным, я считаю.

На самом деле, не более того, Safari, где есть файлы cookie и Firefox с кукисами, каким-то образом связаны.

на самом деле возможно CSRF приложение

Вы можете представить доказательства своих заявлений или предоставить свое личное определение CSRF, которое будет охватывать такие сценарии, как Safari, атакующие Firefox.

В качестве примера, Shared Preferences на Android помечены в песочнице, чтобы другие приложения не могли получить доступ к значениям.

Правильно. Это имеет мало общего с CSRF.

В случае Android, похоже, что то, как вы создаете и храните файлы cookie, имеет значение в атаке и может иметь уязвимости.

Опять же, вы можете предоставить доказательства своих заявлений или предоставить свое личное определение CSRF, которое будет охватывать такие сценарии, как Safari, атакующие Firefox.

хотя физический доступ к устройству приводит к проблеме безопасности

Имея технологию телепортера, которая позволила бы CSRF заставить мобильное устройство физически изменять свое местоположение и, следовательно, оказывать влияние на физический доступ, еще не разработана.

Ответ 2

Веб-браузеры и приложения не используют один и тот же хранилище файлов cookie, поэтому атаки CSRF таким образом не могут быть возможными. Приложения также могут использовать веб-представление, но каждый веб-просмотр имеет свой собственный магазин 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