Azione di sicurezza preventiva nell'app per Android

5

Attualmente sto sviluppando un'applicazione per Android relativa alla banca. Vorrei condividere le mie conoscenze e forse anche voi ragazzi siete più esperti di me in modo da poter aggiungere le vostre idee alla lista.

La banca è un cliente molto speciale. Sono davvero preoccupati per la sicurezza. Tuttavia, allo stesso tempo, vogliono avere molta flessibilità e grande funzionalità per confortare i propri utenti. Penso davvero che sia la sicurezza che la praticità non siano in relazione tra loro.

Quindi, cosa ho fatto sono:

  • Utilizza SSL per comunicare dall'app e dall'API web.
  • Utilizzo dell'autenticazione token per garantire che la richiesta di API provenga dall'app ufficiale. Molto probabilmente, userò una chiave token condivisa che viene aggiornata ogni mese. Il token si baserà sulla stringa casuale concordata, sull'ID Android e sull'ID dell'applicazione.
  • Per prevenire l'ingegneria inversa, utilizzo proguard per offuscare l'app stessa. Non sono sicuro di quanto siano sicuri i proguard, ma le classi Java sono facilmente reversibili. Speriamo che con proguard possa renderlo più difficile.
  • Uso MCSSID anche da simcard e ID Android per convalidare ogni accesso utente e quando l'applicazione viene avviata. Una volta, la SIM card viene cambiata, l'utente deve registrare nuovamente tutte le informazioni (come il numero CC, il telefono cellulare e l'OTP dalla banca). Inoltre, il server controllerà una volta che l'ID Android non corrisponde. Il server contrassegnerà la transazione con un rischio più elevato. La banca può chiamarli per verificare la loro transazione.
  • L'app non sarà in grado di girare su dispositivi con rooting. Se i dispositivi sono rootati, non consentirà di continuare e terminare l'attività in esecuzione dopo l'avviso.
  • Inoltre, in futuro, sto pianificando di verificare regolarmente l'accesso al comportamento degli utenti (ad esempio, Tempo, Posizione in base) per garantire se eventuali attività insolite saranno contrassegnate come ad alto rischio

Dai passi compiuti sopra, c'è qualche azione preventiva che posso spingere di più nei lati della sicurezza?

Grazie

    
posta William Calvin 07.05.2014 - 06:26
fonte

3 risposte

4

L'offuscamento è una tattica dilatoria, non una soluzione. Devi lavorare sul presupposto che l'applicazione e il telefono saranno compromessi. Tratta come se fosse un browser, utilizza l'app per inviare e visualizzare solo le informazioni:

  • Non memorizzare alcun dato sensibile localmente
  • Gestisci tutta l'elaborazione sui server della banca
  • Non memorizzare nella cache alcuna password, dettagli dell'account o dati di transazione

Incoraggiare la banca a eseguire un'analisi dei rischi sulla funzionalità che desidera che l'app abbia e valutare se la funzionalità debba essere inclusa. Esegui le tue analisi e avvisale di tutto ciò che non sei sicuro di poter proteggere.

Non ha senso bloccarne l'uso sui telefoni rooted, molte persone eseguono il root dei loro telefoni per motivi legittimi e non si vuole negare il servizio su questa base. Se progetti correttamente la tua app, non importa, che è il punto.

    
risposta data 07.05.2014 - 11:50
fonte
0

Dovresti controllare guida allo sviluppo mobile Owasp .

Puoi anche usare Ssl bloccare per l'applicazione mobile.

Come ben sai malware bancario come versioni mobili di Zeus o Spyeye. Quindi puoi implementare un'autenticazione bidirezionale per la tua applicazione come Google Authenticator

    
risposta data 03.06.2014 - 12:48
fonte
0

Pensa a limitare la funzionalità dell'app. Nei Paesi Bassi tutte le banche utilizzano un dispositivo speciale per il normale accesso alla banca. Inserisci la tua carta di credito, quindi inserisci il codice PIN, quindi inserisci un codice sul dispositivo, ottieni un codice e inseriscilo per accedere al sito.

Per un'app questo non funziona, così hanno creato un login speciale per gli smartphone. Colleghi l'app all'account e funziona con un semplice codice PIN. Funzionalità limitata. Puoi trasferire denaro solo su conti bancari a cui hai inviato denaro negli ultimi 18 mesi. È possibile impostare l'importo massimo di denaro da trasferire al giorno tramite il sito normale.

Puoi inviare importi maggiori a account sconosciuti tramite l'app, ma poi hai bisogno del dispositivo di accesso. Immagino che la tua banca non utilizzi un tale dispositivo di accesso. La limitazione della funzionalità è ancora una buona opzione, penso.

    
risposta data 03.06.2014 - 13:47
fonte

Leggi altre domande sui tag