2013-08-05 5 views
18

la situazione:CSRF nelle applicazioni mobili

Alice utilizza un sito di online banking che memorizza un cookie delle sue credenziali.

Prima che il cookie scada, Eve invia ad Alice un URL malevolo che in seguito fa prelevare denaro dal proprio conto bancario ad Alice e inviarlo ad Eva.

Questo è un esempio CSRF comune per le applicazioni Web, ma quanto è fattibile farlo all'interno di un'applicazione mobile?


Che cosa succede se Alice utilizza un'applicazione bancaria sul suo telefono che memorizza un cookie e quindi visita un sito da Eva che ha un risultato simile?

Un cookie sul dispositivo mobile di Alice da un'applicazione nativa (o ibrida) può essere soggetto a manipolazioni o, in qualche modo, questi cookie sono in genere inseriti nel dispositivo?

Suppongo che i cookie su iOS, Android, ecc. Funzionino come un normale browser, ma in realtà è questo il caso?

EDIT:

La domanda è stata originariamente pensata per essere generico su tutti i dispositivi mobili. Anche qualcosa come la creazione di un cookie in JavaScript e l'utilizzo di PhoneGap o Titanium potrebbe essere rilevante, credo. Dopo aver letto di più, sono curioso di sapere se la compilazione del codice JavaScript utilizzando una di queste tecnologie influirebbe sui cookie dei dispositivi nativi e su come li memorizzano.

Il punto principale dell'utilizzo dei cookie sarebbe il mantenimento delle credenziali dell'utente in modo che non dovessero disconnettersi e riconnettersi ogni volta con il proprio conto bancario. Dopo aver letto di più su questo problema, sembra che ci siano diversi scenari per ogni particolare dispositivo ed è in effetti possibile a CSRF un'applicazione. Ad esempio, Shared Preferences in Android sono sandbox per impedire ad altre applicazioni di accedere ai valori.

+1

applicazioni in genere non hanno i cookie, almeno su Android. Potresti voler spiegare, in modo molto più dettagliato, il tuo scenario di attacco. In particolare, essere ** preciso ** sul fatto che tu ti stia riferendo ad applicazioni native, siti Web mobili o qualcos'altro. – CommonsWare

+1

Sto parlando di applicazioni native qui. Sono abbastanza sicuro che tu possa creare cookie sia su iOS che su Android, ma potrei sbagliarmi su quest'ultimo. Cosa rende confuso lo scenario di attacco? Considera Alice che utilizza un'app banking (nativa) sul suo telefono, quindi passa a Safari su iOS. Poi viene colpita con un CSRF dalla navigazione online - potrebbe questo prendere i cookie della sua app bancaria che è al telefono? –

+1

"Cosa rende confuso lo scenario di attacco?" - tra l'altro, non hai specificato in che modo, precisamente, la tua "applicazione bancaria" sta creando e utilizzando i cookie. – CommonsWare

risposta

12

Un cookie sul dispositivo mobile di Alice da un'applicazione nativa (o ibrida) è vulnerabile alla manipolazione o in genere questi cookie sono in genere inseriti nel dispositivo?

Un attacco CSRF comprende un'applicazione: il browser. Il tuo attacco proposto coinvolge due applicazioni distinte: l'app bancaria e il browser.

In generale, le applicazioni separate sono separate. Safari non condivide i dati con Firefox, anche se entrambi sono installati sulla stessa macchina OS X. Ora, potrebbero esserci dei bug in uno o nell'altro che potrebbero consentire a JS di avere accesso senza restrizioni al filesystem del sistema operativo e quindi consentire a un sito Web in Safari di accedere ai dati di Firefox (o viceversa), ma questo non è realmente correlato a un CSRF .c

La stessa cosa vale per qualsiasi applicazione separata, su qualsiasi sistema operativo moderno.

Anche qualcosa come la creazione di un cookie in JavaScript e quindi l'utilizzo di PhoneGap o Titanium potrebbe essere rilevante, credo.

In realtà, non più di quanto Safari abbia cookie e Firefox che ha i cookie in qualche modo legati.

esso è infatti possibile CSRF un'applicazione

Si sono invitati a fornire la prova delle sue affermazioni, o fornire la tua personale definizione di CSRF che comprenda scenari come Safari attaccare Firefox.

Ad esempio, le preferenze condivise in Android sono sandbox per impedire ad altre applicazioni di accedere ai valori.

Corretto. Questo ha poco a che fare con CSRF.

Nel caso di Android, sembra che la modalità di creazione e memorizzazione dei cookie sia rilevante nell'attacco e possa presentare vulnerabilità.

Ancora una volta, siete invitati a fornire prove delle vostre affermazioni o fornire la vostra personale definizione di CSRF che includa scenari come Safari che attaccano Firefox.

anche se l'accesso fisico al dispositivo porta ad un problema di sicurezza

Avere la tecnologia teletrasporto, che permetterebbe un CSRF per causare un dispositivo mobile per cambiare fisicamente la sua posizione e quindi avere un impatto sul accesso fisico , deve ancora essere sviluppato.

3

I browser Web e le app non condividono lo stesso archivio di cookie, pertanto gli attacchi CSRF in questo modo non dovrebbero essere possibili. Le app possono anche utilizzare una visualizzazione Web, ma ciascuna vista Web ha il proprio archivio dei cookie [1], pertanto non è possibile nemmeno un attacco CSRF tra due app.

Dalla lettura di questo [2] sembra che sia possibile memorizzare cookie sul file system che potrebbero essere utilizzati come vettore di attacco tramite un'altra app ma non tramite un browser web.

[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