Come creare software sicuro su dispositivi mobili e desktop

Pubblicato: 2019-03-06

Nel mondo moderno, i problemi di sicurezza attirano più attenzione che mai. Vari hacker e truffatori hanno iniziato a prosperare con l'ascesa di criptovalute che valgono centinaia e migliaia di dollari per moneta. Dati sensibili di celebrità, credenziali bancarie, informazioni su trasferimenti di denaro o nuove tecnologie: i ladri online traggono vantaggio da tutto perché le persone tendono a ignorare le misure di protezione chiave.

Tuttavia, un pesce puzza dalla testa in giù. Senza adeguate funzionalità di sicurezza progettate dagli sviluppatori di software, è impossibile proteggere i dati dal lato client. Considerando il fatto che i dispositivi mobili guadagnano sempre più popolarità grazie alle funzionalità in costante aumento mentre le piattaforme desktop/web rimangono le migliori, vogliamo scoprire come gli autori possono rendere i loro prodotti compatibili e sicuri. Troverai suggerimenti per gli utenti nell'ultima sezione.

La sicurezza in poche parole

Per prima cosa, distinguiamo tra sicurezza delle applicazioni e software di sicurezza. Questi termini possono sembrare sinonimi ma sono correlati a diversi aspetti in cui la prima definizione sta per la sicurezza generale del prodotto rilasciato e la seconda copre sia le fasi post-implementazione che pre-implementazione.

Fondamentalmente, le applicazioni software sono semplici strumenti che aiutano gli utenti a interagire con i dati, tramite gadget mobili o piattaforme desktop. Ad esempio, se desideri controllare una cartella clinica o ottenere informazioni sulle tue transazioni recenti, è molto più conveniente utilizzare uno smartphone o un sito Web di un ospedale/banca invece di chiamare o visitare questi luoghi.

Il problema è che il software non riconosce i tipi di dati classificati in base alla sua sensibilità. Senza categorie e accessi programmati manualmente, le app non possono distinguere il tuo nome dai numeri CVV/CVC della tua carta di credito. Pertanto, è importante iniziare a costruire un sistema di sicurezza adeguato sin dalle prime fasi di sviluppo. Ecco alcuni suggerimenti su questo processo:

  • Eseguire una codifica sicura.
  • Classifica i dati e imposta i requisiti di autorizzazione.
  • Individua i bug ed eliminali.
  • Valuta la sicurezza in ogni fase di sviluppo.
  • Verifica l'affidabilità di materiale di terze parti.
  • Educare gli sviluppatori sulle tecniche di truffa.
  • Richiedi 2FA dai dipendenti.
  • Aggiorna regolarmente il software dopo il suo rilascio.

Problemi di sicurezza noti

È a malapena possibile creare una solida app protetta senza capire come le piattaforme mobili e desktop siano vulnerabili per gli hacker. In parole povere, esistono alcuni approcci tradizionali all'irruzione in dispositivi con architettura diversa, quindi proponiamo di verificarli in questo momento. Questi punti dovrebbero aiutare durante la fase di progettazione quando si pianificano le migliori misure di sicurezza per i prodotti mobili e desktop.

Smartphone e Tablet

Lo stile di vita in movimento include dispositivi mobili obbligatori. Pertanto, molte persone ora trasferiscono i propri dati di base dai computer agli smartphone o almeno sincronizzano le informazioni tra due piattaforme. Di conseguenza, otteniamo un altro punto in cui i truffatori possono accedere a dati preziosi. Tecnicamente, ci sono tre aspetti vulnerabili:

  • Hardware del dispositivo.
  • Software stesso.
  • Reti pubbliche.

Ad esempio, i ladri possono facilmente rubare il tuo telefono in mezzo alla folla, eseguirne il root e ottenere l'accesso a tutto ciò che si trova all'interno del sistema. L'hardware può anche essere truccato se acquisti gadget da distributori non ufficiali. A parte questo punto debole, è noto che gli hacker entrano in smartphone e tablet tramite reti Wi-Fi pubbliche non protette. Infine, non vale nulla installare malware tramite un normale gioco o un'applicazione multimediale se viene scaricato dallo store non ufficiale.

Web e desktop

Sia i browser che il software scaricato di solito funzionano in modo simile se richiedono una connessione a Internet. Qui, l'applicazione funge da lato client che invia richieste e ottiene risultati mentre il database principale (e le interfacce se si utilizza un browser per navigare tra i siti Web) si trova sul server connesso. Pertanto, le sfide alla sicurezza si dividono in tre parti:

  • Dalla parte del cliente.
  • Lato server.
  • Processo di scambio dati.

Il problema più pericoloso è legato al software legacy poiché i ladri online possono facilmente entrare in vecchie interfacce che non sono più protette da sistemi aggiornati. Inoltre, la memorizzazione nella cache delle pagine, i servizi di crittografia difettosi e gli indirizzi/informazioni sensibili esposti dai cookie sono potenziali collegamenti deboli che possono essere utilizzati dagli hacker.

Sviluppo di software sicuro

Ora, la domanda è: come creare un sistema affidabile per entrambe le piattaforme se presentano debolezze così diverse? In generale, ci sono tre approcci. Puoi scegliere il più adatto, ma assicurati di considerare i pro ei contro di ogni esempio.

Mobile E Desktop

In questo caso, gli sviluppatori dovrebbero creare due prodotti (per piattaforme mobili e per browser/desktop) separatamente l'uno dall'altro. Le app non sono interconnesse o sincronizzate, quindi preparati a spese elevate sia in denaro che in tempo perché il tuo team dovrà investire il doppio delle risorse. Di conseguenza, verranno rilasciate due app separate, ciascuna con la propria protezione progettata specificamente per le piattaforme di destinazione.

Mobile CON Desktop

Questa opzione prevede l'avvio di un sito Web altamente adattivo, quindi visualizzerà tutti gli elementi correttamente per gli utenti Web e mobili. Di conseguenza, ottieni un'unica piattaforma con un solo punto debole basato sulle vulnerabilità web descritte sopra. Tuttavia, il prodotto finale sarà meno funzionale rispetto alle piattaforme mobili native, i contenuti verranno caricati più lentamente e le funzionalità complessive saranno limitate.

Mobile PLUS Desktop

Invece di creare progetti separati o progettare un sito Web con compatibilità mobile, c'è l'opzione più efficiente e sicura. Vari team, inclusi gli sviluppatori di Diceus.com, utilizzano questo approccio. È necessario creare un'unica piattaforma back-end ma installare due diversi sistemi front-end su di essa.

Ad esempio, il software di base può essere realizzato utilizzando l'API RESTful che supporta l'architettura scalabile sia per dispositivi mobili che desktop. Inoltre, React.js è una buona scelta per il front-end Web, mentre i framework Xamarin o Cordova soddisferanno le esigenze degli sviluppatori multipiattaforma mobili.

Passando alle misure di sicurezza, ci sono alcuni metodi collaudati per l'approccio mobile-desktop:

  • Fornisci crittografia di prim'ordine. Per le versioni web, è necessario disporre di una tecnologia di crittografia effettiva che prevenga gli hack.
  • Include rilevamenti. Sarai in grado di individuare il malware in qualsiasi momento se i sistemi front-end hanno una forte connessione con la piattaforma back-end.
  • Includere l'autoprotezione. Le applicazioni possono utilizzare funzionalità di runtime come l'abbandono delle sessioni inattive o le notifiche di errore.
  • Testare regolarmente il software. Usa SAST per il test del codice, DAST per app e infrastrutture e IAST per i controlli dei dati.
  • Aggiorna e supporta i prodotti. Poiché i ladri inventano nuovi attacchi, è meglio rispondere rapidamente con nuove misure difensive.

Il modello di sviluppo descritto è il più equilibrato in termini di risorse, caratteristiche e sicurezza. Devi creare e proteggere tre punti (un back-end e due front-end) invece di quattro elementi di prodotti separati, ma ottieni quasi le stesse funzionalità.

Protezione guidata dall'utente

Alla fine della giornata, non dimenticare la sicurezza lato client. Gli sviluppatori possono creare il miglior sistema possibile, ma la negligenza degli utenti rovina tutto. Quando utilizzi un software specifico, indipendentemente dal suo tipo, ricorda l'igiene di Internet: non fidarti delle e-mail sospette, ricontrolla i certificati di crittografia dei siti Web, utilizza antivirus ecc. Abilita sempre 2FA per ottenere codici di verifica aggiuntivi tramite SMS o app di autenticazione. Utilizza strumenti di identificazione biometrica come impronte digitali o rilevamento del volto per smartphone e tablet.

Nel complesso, non è difficile proteggere i dati quando sia gli sviluppatori che gli utenti sanno come farlo. Gli hacker perderebbero il lavoro se tutti noi seguissimo rigorosamente le regole di sicurezza.

Hai qualche idea su questo? Fatecelo sapere in basso nei commenti o trasferite la discussione sul nostro Twitter o Facebook.

Raccomandazioni della redazione:

  • Intervista a Stu Grubbs, CEO della società di software di streaming Lightstream
  • 10 sviluppatori di software da seguire nel 2019
  • 5 dei più famosi fornitori di software di gioco
  • Ecco i fornitori di software iGaming più grandi e di maggior successo
  • Il tuo software antivirus può rallentare la velocità di Internet?