Segurança da Informação
Aplicativos
LGPD
Privacidade
Boas Práticas

Quando creare un'app: i principianti della sicurezza non possono ignorarlo

Il momento per pensare alla sicurezza non è dopo la prima fuga di notizie, ma prima della prima riga di codice.

La domanda "devo creare un'app?" È quasi sempre accompagnato da schede costi, idee su tela e sogni di crescita. Raramente è accompagnato da una domanda così importante come: "sono disposto a salvare i dati delle persone che li utilizzeranno?".

Questa assenza non è un male. È ignoranza. Chi inizia vede la sicurezza come qualcosa che si risolverà poi, quando il prodotto crescerà. Ma la sicurezza non è una caratteristica che viene aggiunta alla fine, è un fondamento. E non aggiungi fondamenta all'edificio già costruito.

Questo testo è per chi sta decidendo di creare un'app e vuole capire, senza termini gergali, cosa deve avere in testa fin dal primo giorno. Non per diventare un esperto, ma per evitare di prendere decisioni costose in futuro.

Perché la sicurezza è importante ancor prima del codice

Ogni applicazione che fa qualcosa di utile memorizza i dati. Nome, e-mail, telefono, posizione, cronologia di utilizzo, talvolta documenti e dettagli di pagamento. Nel momento in cui raccogli i primi dati di una persona, ti assumi una responsabilità legale ed etica.

In Brasile ha un nome: LGPD, Legge generale sulla protezione dei dati. Non è un suggerimento. Definisce che sei responsabile dei dati che raccogli, che hai bisogno di una base legale per raccoglierli e che devi proteggerli. Un'app per startup e un'app per grandi aziende sono soggette alla stessa legge.

La conseguenza pratica: non sei tu a decidere se preoccuparti della sicurezza. Decidi solo se ti preoccuperai prima o dopo il problema. E poi costa sempre di più, in denaro, in reputazione e, talvolta, in multe.

La tesi: la sicurezza è una decisione architetturale, non di manutenzione

L’idea centrale di questo articolo è semplice. La sicurezza non è uno strato da mettere sopra il prodotto finito. È un insieme di decisioni che determinano il modo in cui il prodotto viene costruito fin dall'inizio.

Dove vengono archiviati i dati. Come vengono gestite le password. Chi può vedere cosa. Come l'applicazione comunica con il server. Ognuna di queste scelte viene fatta in anticipo, e rifarle in un secondo momento significa riscrivere intere parti del sistema.

Ecco perché il momento migliore per un principiante per pensare alla sicurezza non è quando è già avanzato. È proprio adesso, all'inizio, che le decisioni sono ancora economiche da prendere.

Gli aspetti fondamentali che nessuno dovrebbe tralasciare

Non è necessario padroneggiare la crittografia per iniziare in modo responsabile. È necessario rispettare una manciata di principi che risolvono la maggior parte dei rischi iniziali.

Non memorizzare mai la password in formato testo normale

Le password non dovrebbero mai essere salvate mentre l'utente le ha digitate. Passano attraverso un processo chiamato hash, che li trasforma in qualcosa di irreversibile. Anche se qualcuno ruba il database, non può leggere le password. I framework moderni lo fanno già per te, l'errore del principiante è disabilitare o bypassare questa protezione in fretta.

Metti in atto l'autenticazione e l'autorizzazione fin dall'inizio

L'autenticazione sta confermando chi è la persona. L'autorizzazione definisce cosa può fare. Entrambi sono diversi ed entrambi contano. Un errore comune è proteggere la schermata di accesso dimenticandosi di verificare, in ogni azione, se l'utente ha il permesso di farlo. Il risultato è il classico: cambiare un numero nell'URL e accedere ai dati di qualcun altro.

Tutte le comunicazioni devono essere crittografate

I dati che viaggiano tra l'applicazione e il server devono viaggiare protetti, utilizzando HTTPS. Senza questo, chiunque su una rete condivisa, ad esempio il Wi-Fi di un bar, può intercettare ciò che viene inviato. Oggi questo è standard ed economico. Non ci sono scuse per non farlo.

Raccogli solo ciò che ti serve

I dati più sicuri sono quelli che non conservi. Prima di chiedere informazioni chiediti: ne ho davvero bisogno? Raccogliere tutto "perché un giorno potrebbe tornarti utile" aumenta ciò che devi proteggere e il tuo rischio di fronte alla LGPD. La minimizzazione dei dati è allo stesso tempo una buona pratica di sicurezza e un requisito legale.

Un esempio concreto: l'app che è trapelata senza essere hackerata

Immagina una piccola app di pianificazione creata da un imprenditore in erba. Funziona bene, cresce, guadagna utenti. Un giorno qualcuno scopre che, modificando il numero identificativo riportato sulla richiesta, può vedere gli appuntamenti di qualunque altro cliente, compresi nome, numero di telefono e indirizzo.

Non c’è stata alcuna invasione sofisticata. Non c'era nessun hacker geniale. C'è stata una mancata autorizzazione: il sistema ha confermato chi eri, ma non ha verificato se quei dati fossero tuoi. Si tratta di uno dei difetti più comuni che esistano, catalogato da OWASP tra i principali rischi applicativi.

La lezione per i principianti: la maggior parte delle fughe di notizie non provengono da attacchi cinematografici. Deriva da sviste di base che avrebbero potuto essere evitate applicando semplici principi fin dall'inizio.

Usa ciò che già esiste invece di inventare

C’è un istinto comprensibile in chi inizia: voler costruire tutto da zero per capire come funziona. Nella sicurezza, questo istinto è pericoloso. Crittografia, gestione delle password e autenticazione sono aree in cui anche gli esperti commettono errori e in cui un errore sottile apre un enorme buco.

Il percorso responsabile per il principiante è quello di utilizzare biblioteche e servizi consolidati, mantenuti da comunità che hanno già affrontato e risolto problemi che non puoi nemmeno immaginare. Non scrivere il tuo algoritmo per la password. Non inventare il tuo schema di accesso. Utilizza ciò che è stato testato da migliaia di persone e viene aggiornato quando si verifica un errore.

Questo vale anche per mantenere aggiornate le dipendenze. La maggior parte degli attacchi sfrutta difetti già noti e già corretti nelle versioni più recenti, che la vittima semplicemente non ha installato. L'aggiornamento è una delle difese più economiche e trascurate in circolazione.

##La riflessione che separa il dilettante dal professionista

C'è una pericolosa trappola mentale: "la mia app è troppo piccola per essere presa di mira". E' esattamente il contrario. Le app di piccole dimensioni spesso hanno le protezioni più deboli, il che le rende facili bersagli per attacchi automatizzati che scansionano Internet alla ricerca di difetti noti. Non è necessario che nessuno voglia attaccarti specificatamente, basta che un robot trovi la porta aperta.

La maturità qui non è tecnica, è postura. È capire che, quando chiedi i dati di qualcuno, hai promesso di prenderti cura di te. Infrangere quella promessa, anche involontariamente, ha conseguenze reali per le persone reali.

E c'è un punto nel mondo degli affari che i principianti sottovalutano: la fiducia è la risorsa più difficile da ricostruire. Un prodotto può riprendersi da un errore di funzionalità. Recuperarsi da una violazione che ha esposto i clienti è molto più difficile.

Inizia in modo semplice, ma inizia nel modo giusto

Non hai bisogno di una fortezza per lanciare la tua prima app. Ha bisogno di solidi fondamenti: password protette, comunicazione crittografata, autorizzazione verificata e raccolta dati minima. Questo ti mette già davanti a un numero enorme di prodotti sul mercato.

La sicurezza per i principianti non significa sapere tutto. Si tratta di non commettere gli errori che sai evitare. Il resto lo si può imparare col tempo, a patto che le basi siano giuste.

Se stai per creare un'applicazione e vuoi capire come costruire la sicurezza fin dalla progettazione, ci sono altri articoli sul blog su LGPD, autenticazione e architettura sicura che approfondiscono ciascuno di questi punti. Se si tratta di un momento decisionale nella tua organizzazione, vale la pena discuterne prima di scrivere la prima riga.

Leggi anche