Le migliori pratiche per la sicurezza delle app mobili per garantire un'app a prova di hacker
Pubblicato: 2018-11-27La creazione di un'applicazione mobile rivoluzionaria è solo il primo passo nello sviluppo di app mobili. Dopo aver creato un'app, ci sono migliaia di processi obbligatori che seguono lo sviluppo dell'app. Uno di quei tanti passaggi cruciali nella sicurezza delle app mobili.
In questo articolo, esploreremo quali sono le pratiche essenziali per la sicurezza delle app mobili che dovresti implementare una volta finalizzato lo sviluppo.
Nell'ultimo decennio, tutti abbiamo assistito alla crescita del settore dello sviluppo di app mobili, ma anche i crimini informatici. E questi crimini ci hanno portato a una fase in cui non è possibile inviare un'app al Play Store o all'App Store senza adottare determinate misure per proteggerla.
Tuttavia, per capire cosa comportano le misure di sicurezza, dobbiamo prima capire perché è necessario intraprendere queste azioni e quali sono i potenziali problemi di sicurezza delle app che affliggono il settore dello sviluppo di app mobili. Per una stima della vita reale, diamo un'occhiata ai fatti:
C'è ancora di più nella sicurezza delle app mobili che proteggerle da malware e minacce. Per prima cosa identifichiamo alcune delle minacce alla sicurezza delle app mobili OWASP per comprendere meglio le misure di sicurezza.
Perché abbiamo bisogno della sicurezza delle app mobili: potenziali minacce e loro soluzioni
Le minacce che si presentano nel mondo dello sviluppo di app, sebbene siano dannose, possono essere risolte con semplici passaggi per proteggere un'applicazione mobile. Diamo un'occhiata a quali sono i principali problemi di sicurezza delle app mobili.
1. Comandi del server difettosi:
Le comunicazioni che avvengono tra l'app e l'utente al di fuori del dispositivo di telefonia mobile avvengono tramite server. E tali server sono gli obiettivi primari degli hacker in tutto il mondo. Il motivo principale alla base della vulnerabilità di un server è perché a volte gli sviluppatori trascurano la necessaria sicurezza lato server. Ciò può accadere a causa della mancanza di conoscenza delle considerazioni sulla sicurezza per le applicazioni mobili, di budget ridotti per motivi di sicurezza o delle vulnerabilità causate dallo sviluppo multipiattaforma.
Soluzione:
Il passaggio più cruciale per salvaguardare i tuoi server è scansionare le tue app con l'aiuto di scanner automatici. Questi scanner possono, altrimenti, essere utilizzati dagli hacker per scoprire le vulnerabilità nelle tue app e sfruttarle. Gli scanner automatici evidenzieranno problemi e bug comuni che sono facili da risolvere.
2. L'assenza di protezione binaria:
Questo è anche uno dei principali problemi di sicurezza delle app OWASP da affrontare perché se manca la protezione binaria per un'app mobile, qualsiasi hacker o avversario può facilmente decodificare il codice dell'app per introdurre malware. Possono anche ridistribuire un'applicazione piratata della stessa e iniettarla anche con una minaccia. Tutto ciò può portare a problemi critici come il furto di dati e il danneggiamento dell'immagine del marchio e la conseguente perdita di entrate.
Soluzione:
Per salvaguardare i file binari, è importante implementare procedure di protezione binaria. Come parte di questa procedura, i file binari vengono analizzati e di conseguenza modificati per proteggerli dalle comuni minacce alla sicurezza delle app mobili. Questa procedura corregge il codice legacy senza coinvolgere affatto il codice sorgente. È fondamentale garantire la codifica di sicurezza per il rilevamento di jailbreak, controlli del checksum, controllo del rilevamento del debugger e blocco dei certificati mentre si lavora sui processi di sicurezza delle app mobili.
3. Insicurezza nell'archiviazione dei dati:
Un'altra grande scappatoia comune nella sicurezza delle app mobili è l'assenza di un sistema di archiviazione dati sicuro. In effetti, è comune per gli sviluppatori di app mobili fare affidamento sull'archiviazione del client per i dati interni. Tuttavia, durante il possesso di un dispositivo mobile da parte di un rivale, questi dati interni possono essere facilmente consultati, utilizzati o manipolati. Ciò può portare a diversi reati come il furto di identità o PCI (violazione delle politiche esterne).
Soluzione:
Una delle misure di sicurezza dell'app da considerare qui è la creazione di un livello di crittografia aggiuntivo rispetto alla crittografia a livello di base del sistema operativo. Questo dà un enorme impulso alla sicurezza dei dati.
4. Protezione inadeguata per il livello di trasporto:
Il livello di trasporto è il percorso attraverso il quale avviene il trasferimento dei dati tra il client e il server. Se a questo punto non vengono introdotti i giusti standard di sicurezza delle app mobili, qualsiasi hacker può accedere ai dati interni per rubarli o modificarli. Questo porta a gravi crimini come furti di identità e frodi.
Soluzione:
Per rafforzare la sicurezza del livello di trasporto, dovresti incorporare il blocco SSL nelle app iOS e Android. Insieme a questo, puoi utilizzare suite di crittografia standard del settore anziché quelle normali. Inoltre, evitare l'esposizione dell'ID di sessione dell'utente a causa di sessioni SSL miste, avvisare l'utente in caso di certificato non valido, utilizzare versioni SSL di analisi di terze parti sono pratiche comuni che possono salvare gli utenti da una pericolosa violazione della sicurezza.
5. Fuga involontaria di dati:
La perdita involontaria di dati si verifica quando le applicazioni mobili critiche vengono archiviate in posizioni vulnerabili sul dispositivo mobile. Ad esempio, un'app viene archiviata dove può essere facilmente accessibile da altre app o dispositivi, il che si traduce in ultima analisi nella violazione dei dati dell'app e nell'utilizzo non autorizzato dei dati.
Soluzione:
Monitoraggio dei punti di fuga di dati comuni come registrazione, sfondo dell'app, memorizzazione nella cache, oggetti cookie del browser e archiviazione dei dati HTML5.
Oltre a queste 5 minacce alla sicurezza dello sviluppo mobile, ci sono altri ostacoli che si verificano comunemente nel modo di creare app mobili sicure. Eccoli:
- Assenza di autenticazione a più fattori: il processo fornisce più livelli di sicurezza prima di consentire a una persona di accedere all'applicazione. Potrebbe rispondere a una domanda personale, OTP, configurazione SMS o altre misure. L'assenza dell'autenticazione a più fattori può portare a diversi problemi che la rendono una parte cruciale della risposta a come rendere sicura un'app.
- Incapacità di crittografare correttamente: un elemento importante delle migliori pratiche di sicurezza delle applicazioni mobili è garantire una crittografia adeguata. La sua impossibilità può portare a furto di codice, furto di proprietà intellettuale, violazione della privacy e molti altri problemi.
- Iniezione di codice dannoso: i contenuti generati dagli utenti, come i moduli, sono spesso trascurati come una minaccia. Supponiamo che un utente aggiunga il proprio ID e password, l'app abbia quindi comunicato con i dati lato server per autenticare le informazioni. Ora le app che non limitano il carattere immesso da un utente si aprono al rischio di iniettare codice per accedere al server.
- Reverse engineering – È l'incubo di ogni sicuro sviluppo di applicazioni mobili. L'approccio può essere utilizzato per mostrare come funziona un'app nel back-end e rivelare gli algoritmi di crittografia durante la modifica del codice sorgente, ecc.
- Archiviazione dei dati non sicura: l'archiviazione dei dati non sicura può avvenire in più punti all'interno di un'app: cookie, archivio di dati binari, database SQL, ecc. Se un hacker accede al database o al dispositivo, può alterare le app legittime per trasferire informazioni alle macchine .
Dopo aver visto le minacce generali che affliggono tutte le applicazioni mobili e alcune delle migliori pratiche di sicurezza delle app mobili da seguire per evitare questi problemi , passiamo alle specifiche sulla sicurezza delle applicazioni mobili Android e iOS.
Come rendere sicure le app Android?
Alcune delle migliori pratiche efficaci per la sicurezza delle app Android da scegliere sono: -
Crittografia dei dati su memoria esterna –
In genere, la capacità di archiviazione interna di un dispositivo è limitata. E questo inconveniente spesso costringe gli utenti a utilizzare dispositivi esterni come hard disk e unità flash per la custodia dei dati. E questi dati, a volte, sono anche dati sensibili e riservati. Poiché i dati archiviati sul dispositivo di archiviazione esterno sono facilmente accessibili da tutte le app del dispositivo, è molto importante salvare i dati in un formato crittografato. Uno degli algoritmi di crittografia più utilizzati dagli sviluppatori di app mobili è AES o Advanced Encryption Standard.
Utilizzo della memoria interna per i dati sensibili –
Tutte le applicazioni Android hanno una directory di archiviazione interna. E i file archiviati in questa directory sono estremamente sicuri perché utilizzano la modalità MODE_PRIVATE per la creazione dei file. In poche parole, questa modalità garantisce che i file di una particolare app non siano accessibili da altre applicazioni salvate sul dispositivo. Pertanto, è una delle migliori pratiche di autenticazione delle app mobili su cui concentrarsi.
Utilizzo di HTTPS –
Le comunicazioni che avvengono tra l'app e il server dovrebbero avvenire tramite una connessione HTTPS. Numerosi utenti Android sono spesso connessi a diverse reti WiFi aperte in aree pubbliche e l'utilizzo di HTTP anziché HTTPS può rendere il dispositivo vulnerabile a molti hotspot dannosi che possono facilmente alterare i contenuti del traffico HTTP e far sì che le app del dispositivo si comportino in modo imprevisto.
Utilizzo di GCM invece di SMS –
Ai tempi in cui Google Cloud Messaging o GCM non esistevano, gli SMS venivano utilizzati per inviare i dati dai server alle app, ma oggi GCM è ampiamente utilizzato. Ma se non hai ancora effettuato il passaggio da SMS a GCM, devi. Questo perché il protocollo SMS non è né sicuro né crittografato. Inoltre, gli SMS possono essere letti e letti da qualsiasi altra app sul dispositivo dell'utente. Le comunicazioni GCM sono autenticate da token di registrazione che vengono regolarmente aggiornati sul lato client e vengono autenticate utilizzando una chiave API univoca sul lato server.
Altre importanti procedure consigliate per la sicurezza dello sviluppo di app mobili possono includere la convalida dell'input dell'utente, l'eliminazione della necessità di dati personali e l'utilizzo di ProGuard prima della pubblicazione dell'app. L'idea è di proteggere gli utenti delle app da quanto più malware possibile.
Come rendere sicure le app iOS?
Alcune delle best practice per la sicurezza delle app iOS da seguire sono:-
Conservazione dei dati –
Per semplificare notevolmente l'architettura dell'app e migliorarne la sicurezza, il modo migliore è archiviare i dati dell'app in memoria invece di scriverli su disco o inviarli a un server remoto. Sebbene se la memorizzazione dei dati in locale sia la tua unica opzione, ci sono diversi modi per procedere: -
Portachiavi:
Il posto migliore per archiviare piccole quantità di dati sensibili che non richiedono un accesso frequente è Portachiavi. I dati archiviati nei portachiavi sono gestiti dal sistema operativo ma non sono accessibili da nessun'altra applicazione. – Cache: se non è necessario eseguire il backup dei dati su iCloud o iTunes, è possibile archiviare i dati nella directory Cache della sandbox dell'applicazione. – Sistema predefinito: il sistema predefinito è un metodo conveniente per archiviare grandi quantità di dati.
Sicurezza della rete:
Apple è nota per le sue politiche di sicurezza e privacy e per anni ha lavorato per raggiungere questo livello. Alcuni anni fa, Apple aveva introdotto App Transport Security che impone alle app mobili di terze parti di inviare richieste di rete su una connessione più sicura, ad esempio HTTPS.
Sicurezza delle informazioni sensibili –
La maggior parte delle app mobili utilizza dati utente sensibili come rubrica, posizione, ecc. Ma come sviluppatore, devi assicurarti che tutte le informazioni che stai chiedendo all'utente siano effettivamente necessarie per accedere e altro ancora importante, da conservare. Pertanto, se è possibile accedere alle informazioni necessarie tramite un framework nativo, è ridondante duplicare e archiviare tali informazioni.
Ora abbiamo visto le pratiche di sicurezza delle app mobili sia Android che iOS per un'app a prova di hack. Ma nessuno sviluppo può essere così facile come è scritto. Ci sono sempre alcune sfide che devono essere affrontate durante un processo. Andiamo avanti e impariamo a conoscere le sfide che vengono affrontate e risolte da quasi tutte le principali società di sviluppo di app negli Stati Uniti.
Sfide associate alla sicurezza delle app mobili
Esiste una comprovata esperienza di quanto possano essere vulnerabili le app mobili se non vengono prese misure sufficienti per la loro sicurezza dal malware esterno. Di seguito sono elencate le sfide che possono sorgere in qualsiasi momento se il test di sicurezza dell'app mobile non viene completato secondo il requisito.
Frammentazione del dispositivo –
Ci sono processi essenziali da seguire prima del rilascio di un'applicazione sugli app store. È necessario diversificare i dispositivi che coprono risoluzioni, funzionalità, caratteristiche e limitazioni diverse nelle strategie di test delle app mobili . Il rilevamento di vulnerabilità specifiche del dispositivo può portare gli sviluppatori di app un passo avanti nelle misure di sicurezza delle app. Non solo i dispositivi, ma diverse versioni dei sistemi operativi più diffusi è un passaggio importante da coprire prima del rilascio dell'app per coprire tutte le possibili scappatoie.
Crittografie deboli –
In caso di crittografia debole , un dispositivo mobile è vulnerabile ad accettare dati da qualsiasi dispositivo disponibile. Gli aggressori con malware sono alla continua ricerca di un sistema open-end nei dispositivi mobili pubblici e la tua app può essere tale se non segui un solido processo di crittografia. Quindi, investire i tuoi sforzi in una crittografia avanzata è anche uno dei modi migliori per creare un'app mobile a prova di hacker.
Controlli di hosting più deboli –
Succede principalmente durante lo sviluppo della prima app mobile di un'azienda, che di solito lascia i dati esposti ai sistemi lato server. Pertanto, i server utilizzati per ospitare la tua app devono disporre di misure di sicurezza dell'app sufficienti per evitare che utenti non autorizzati accedano a dati importanti.
Elenco di controllo per le linee guida per la sicurezza delle applicazioni mobili
Ci sono una serie di cose che ogni azienda di sviluppo di app mobili segue quando crea applicazioni sicure. Ecco una lista di controllo che comunemente seguiamo:
- Usa l'autenticazione lato server
- Usa algoritmi crittografici
- Garantire che gli input dell'utente soddisfino gli standard di controllo
- Crea algoritmi di minaccia per il backup dei dati
- Offuscamento per fermare il reverse engineering
Esistono molti modi per creare un'app mobile a prova di hacking, attraverso un audit di sicurezza dell'app mobile, contro gli attacchi provenienti da fonti sconosciute e nessuna quantità di misure di sicurezza può mai essere sufficiente. L'esame delle best practice per la sicurezza dello sviluppo di app mobili è un modo per farlo. Oggi, il mondo digitale è allo scoperto per l'uso di tutti e nessun utente è mai abbastanza al sicuro da malware e violazioni della sicurezza, ma queste misure assicurano che i tuoi dati personali siano al sicuro nei tuoi dispositivi digitali.