Guida Mobile Security

Checklist sicurezza mobile per app AI-built

L'analisi statica trova rischi presto ma richiede modello dati e altri test.

LaunchLint Academy

18 min di letturaRevisionato dal team editoriale di LaunchLint
Analisi statica di file, dati, rete e permessi di un'app
La sicurezza mobile parte dal modello di dati e minacce, non da un singolo scanner.
TL;DR

La risposta breve

  • La sicurezza mobile parte dal modello di dati e minacce, non da un singolo scanner.
  • L'analisi statica trova segnali precoci ma non sostituisce runtime, backend o pentest.
  • Non rimandare questa checklist al giorno dell'invio. Usala come gate di release, collega ogni punto al commit o al campo dello store responsabile e ripeti i controlli coinvolti dopo modifiche a dipendenze, permessi, ambiente o metadata. Le prove non devono contenere secret o dati personali di test. Sviluppo, prodotto e la persona con accesso alla console devono approvare lo stesso identico artefatto. In questo modo la verifica diventa riproducibile e permette di spiegare quale versione è stata controllata dopo un rifiuto o durante l'aggiornamento successivo.

1. Mappare dati e minacce

Classifica credenziali, contenuti, posizione, pagamenti, attaccanti e impatto.

Non trattare mappare dati e minacce come una casella isolata. Collegalo al build esatto, a un responsabile e a una prova verificabile. Ripeti il percorso su un dispositivo pulito e documenta ogni differenza prima di proseguire con l'invio.

Prove per accettare la release

  • Valore di produzione di mappare dati e minacce registrato
  • File o impostazione dello store collegati
  • Risultato previsto e osservato confrontati
  • Differenze iOS e Android verificate
  • Ogni dubbio ha responsabile e scadenza
  • La release si ferma davanti a una contraddizione bloccante

2. Togliere segreti dal client

Chiavi private, credenziali e firma non devono finire nel bundle.

Non trattare togliere segreti dal client come una casella isolata. Collegalo al build esatto, a un responsabile e a una prova verificabile. Ripeti il percorso su un dispositivo pulito e documenta ogni differenza prima di proseguire con l'invio.

Prove per accettare la release

  • Valore di produzione di togliere segreti dal client registrato
  • File o impostazione dello store collegati
  • Risultato previsto e osservato confrontati
  • Differenze iOS e Android verificate
  • Ogni dubbio ha responsabile e scadenza
  • La release si ferma davanti a una contraddizione bloccante

3. Storage sicuro

Token e valori sensibili usano Keychain o Keystore, non log o testo chiaro.

Non trattare storage sicuro come una casella isolata. Collegalo al build esatto, a un responsabile e a una prova verificabile. Ripeti il percorso su un dispositivo pulito e documenta ogni differenza prima di proseguire con l'invio.

Prove per accettare la release

  • Valore di produzione di storage sicuro registrato
  • File o impostazione dello store collegati
  • Risultato previsto e osservato confrontati
  • Differenze iOS e Android verificate
  • Ogni dubbio ha responsabile e scadenza
  • La release si ferma davanti a una contraddizione bloccante

4. Auth e autorizzazione

Il server valida sessione e diritti; nascondere la UI non autorizza.

Non trattare auth e autorizzazione come una casella isolata. Collegalo al build esatto, a un responsabile e a una prova verificabile. Ripeti il percorso su un dispositivo pulito e documenta ogni differenza prima di proseguire con l'invio.

Prove per accettare la release

  • Valore di produzione di auth e autorizzazione registrato
  • File o impostazione dello store collegati
  • Risultato previsto e osservato confrontati
  • Differenze iOS e Android verificate
  • Ogni dubbio ha responsabile e scadenza
  • La release si ferma davanti a una contraddizione bloccante

5. Proteggere la rete

TLS, certificati, endpoint e blocco cleartext coincidono sulle piattaforme.

Non trattare proteggere la rete come una casella isolata. Collegalo al build esatto, a un responsabile e a una prova verificabile. Ripeti il percorso su un dispositivo pulito e documenta ogni differenza prima di proseguire con l'invio.

Prove per accettare la release

  • Valore di produzione di proteggere la rete registrato
  • File o impostazione dello store collegati
  • Risultato previsto e osservato confrontati
  • Differenze iOS e Android verificate
  • Ogni dubbio ha responsabile e scadenza
  • La release si ferma davanti a una contraddizione bloccante

6. Controllare i confini

Deep link, componenti, scheme, WebView, clipboard e screenshot possono esporre dati.

Non trattare controllare i confini come una casella isolata. Collegalo al build esatto, a un responsabile e a una prova verificabile. Ripeti il percorso su un dispositivo pulito e documenta ogni differenza prima di proseguire con l'invio.

Prove per accettare la release

  • Valore di produzione di controllare i confini registrato
  • File o impostazione dello store collegati
  • Risultato previsto e osservato confrontati
  • Differenze iOS e Android verificate
  • Ogni dubbio ha responsabile e scadenza
  • La release si ferma davanti a una contraddizione bloccante

7. Dipendenze e update

Package, SDK e build vengono inventariati, aggiornati e limitati.

Non trattare dipendenze e update come una casella isolata. Collegalo al build esatto, a un responsabile e a una prova verificabile. Ripeti il percorso su un dispositivo pulito e documenta ogni differenza prima di proseguire con l'invio.

Prove per accettare la release

  • Valore di produzione di dipendenze e update registrato
  • File o impostazione dello store collegati
  • Risultato previsto e osservato confrontati
  • Differenze iOS e Android verificate
  • Ogni dubbio ha responsabile e scadenza
  • La release si ferma davanti a una contraddizione bloccante

8. Gate di sicurezza

Finding, runtime, backend, privacy e incidenti condividono una decisione.

Non trattare gate di sicurezza come una casella isolata. Collegalo al build esatto, a un responsabile e a una prova verificabile. Ripeti il percorso su un dispositivo pulito e documenta ogni differenza prima di proseguire con l'invio.

Prove per accettare la release

  • Valore di produzione di gate di sicurezza registrato
  • File o impostazione dello store collegati
  • Risultato previsto e osservato confrontati
  • Differenze iOS e Android verificate
  • Ogni dubbio ha responsabile e scadenza
  • La release si ferma davanti a una contraddizione bloccante

Domande frequenti

MASVS è solo per banche?

No, si adatta al rischio di ogni app.

Lo scan trova tutto?

No. Runtime, server e logica richiedono altri test.

Una API key pubblica può restare?

Solo se progettata e limitata come identificatore pubblico.

LaunchLint fa un pentest?

No. È un'analisi statica di release.

Fonti ufficiali

Questo articolo usa le seguenti fonti primarie ufficiali. Le regole possono cambiare: verifica sempre la versione corrente prima dell’invio.