Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Come rendere sicura la tua app Flutter

Avatar for fedecarroz fedecarroz
December 03, 2022

Come rendere sicura la tua app Flutter

Un errore comune quando si sviluppa un'app è quello di pensare solo al suo corretto funzionamento e non a questioni come l'ottimizzazione o la sicurezza. In questo talk scopriremo quali sono gli strumenti che ci mette a disposizione Flutter per rendere sicura la nostra app, le possibili vulnerabilità e le relative soluzioni.

Avatar for fedecarroz

fedecarroz

December 03, 2022

More Decks by fedecarroz

Other Decks in Programming

Transcript

  1. Flutter Framework open-source creato da Google per lo sviluppo di

    applicazioni Android, iOS, Web, Windows, MacOS, Linux e Fuchsia, a partire da una singola codebase
  2. VULNERABILITÀ E MINACCE • Sistema operativo compromesso • Code injections

    • Reverse engineering • Accesso non autorizzato/autenticato • Leak di dati sensibili • Canali di comunicazione non sicuri • Identità sviluppatore compromessa
  3. flutter_jailbreak_detection Package che consente di verificare se il sistema operativo

    del dispositivo ha subito alterazioni, quali: • Root (Android) • Jailbreak (iOS) Consente inoltre di verificare se è attiva la modalità sviluppatore su Android
  4. VULNERABILITÀ E MINACCE • Sistema operativo compromesso ✅ • Code

    injections • Reverse engineering • Accesso non autorizzato/autenticato • Leak di dati sensibili • Canali di comunicazione non sicuri • Identità sviluppatore compromessa
  5. VULNERABILITÀ E MINACCE • Sistema operativo compromesso ✅ • Code

    injections ✅ • Reverse engineering • Accesso non autorizzato/autenticato • Leak di dati sensibili • Canali di comunicazione non sicuri • Identità sviluppatore compromessa
  6. OFFUSCAMENTO DEL CODICE • --obfuscate: offusca il codice sostituendo gli

    identificatori con stringhe randomiche • --split-debug-info: memorizza i dati (symbols) necessari per deoffuscare il codice nella cartella indicata dal path Attraverso l’ultimo comando possibile leggere un file stack trace offuscato
  7. VULNERABILITÀ E MINACCE • Sistema operativo compromesso ✅ • Code

    injections ✅ • Reverse engineering ✅ • Accesso non autorizzato/autenticato • Leak di dati sensibili • Canali di comunicazione non sicuri • Identità sviluppatore compromessa
  8. AUTORIZZAZIONI APP LATO UTENTE Attenzione alle autorizzazioni concesse alle app

    LATO SVILUPPATORE Attenzione alle autorizzazioni richieste
  9. VULNERABILITÀ E MINACCE • Sistema operativo compromesso ✅ • Code

    injections ✅ • Reverse engineering ✅ • Accesso non autorizzato/autenticato ✅ • Leak di dati sensibili • Canali di comunicazione non sicuri • Identità sviluppatore compromessa
  10. VULNERABILITÀ E MINACCE • Sistema operativo compromesso ✅ • Code

    injections ✅ • Reverse engineering ✅ • Accesso non autorizzato/autenticato ✅ • Leak di dati sensibili ✅ • Canali di comunicazione non sicuri • Identità sviluppatore compromessa
  11. TLS - Transport Security Layer • Protocollo standard IETF •

    Certificati X509 • Crittografia e2e • Hash functions • HMAC APPLICATION (HTTP) SESSION (TLS) TRANSPORT (TCP) NETWORK (IP) DATA LINK PHYSICAL
  12. SecurityContext Il SecurityContext contiene i certificati di cui fidarsi quando

    si effettua una connessione client sicura, la catena di certificati e la chiave privata utili a stabilire una connessione sicura al server
  13. VULNERABILITÀ E MINACCE • Sistema operativo compromesso ✅ • Code

    injections ✅ • Reverse engineering ✅ • Accesso non autorizzato/autenticato ✅ • Leak di dati sensibili ✅ • Canali di comunicazione non sicuri ✅ • Identità sviluppatore compromessa
  14. Qualsiasi file che può esporre l’identità dello sviluppatore, come il

    key.jks o il keystore.properties deve essere cifrato prima di essere caricato su un repository (es. GitHub) PROTEZIONE IDENTITÀ SVILUPPATORE
  15. VULNERABILITÀ E MINACCE • Sistema operativo compromesso ✅ • Code

    injections ✅ • Reverse engineering ✅ • Accesso non autorizzato/autenticato ✅ • Leak di dati sensibili ✅ • Canali di comunicazione non sicuri ✅ • Identità sviluppatore compromessa ✅
  16. BEST PRACTICES • Il team di Flutter rilascia regolarmente aggiornamenti

    per risolvere le falle di sicurezza rilevate nelle versioni precedenti, quindi è consigliato mantenere la versione dell’SDK di Flutter sempre aggiornata • Aggiornare le dipendenze delle app, ed evitare di fissare una specifica versione