sicurezza Intermediate 4 min

Da dove scarichi le app: store ufficiali, sideloading e cloni

Firma delle app, provenienza, repackaging malevolo, supply chain personale del dispositivo

· 814 parole

Abbiamo dedicato una pillola alla supply chain del codice che scriviamo: dipendenze, librerie, pipeline di build. Il tuo telefono ha la sua versione dello stesso problema: ogni app che installi è un anello di una catena di fiducia, e non tutte le fonti da cui puoi scaricarla offrono le stesse garanzie.

Comprare un farmaco in farmacia significa fidarsi di una filiera controllata: produttore, distributore, farmacista, tutti verificabili. Comprarlo da una bancarella di mercato può funzionare benissimo mille volte, ma quando qualcosa va storto, non c'è nessuno da rintracciare, e nessuno che avesse controllato la scatola prima di te.

1. La firma dell'app: la prova di chi l'ha creata davvero

Ogni app, su entrambe le piattaforme principali, deve essere firmata digitalmente prima di poter essere installata. Su Android, la documentazione ufficiale è chiara: la firma associa in modo univoco l'app allo sviluppatore e alla sua chiave privata ed è anche il motivo per cui, quando aggiorni un'app, Android pretende che la nuova versione sia firmata con la stessa chiave di quella già installata: impedisce a chiunque altro di spacciare un aggiornamento fasullo.

Su iOS il principio è ancora più stringente. Apple lo definisce «mandatory code signing»: ogni app deve essere firmata con un certificato rilasciato da Apple, e prima di rilasciare quel certificato, Apple verifica l'identità reale dello sviluppatore, persona o azienda che sia.

Fonti:
Android Developers — «Sign your app»: la firma dell'APK associa lo sviluppatore alla sua chiave; gli aggiornamenti richiedono la stessa chiave di firma.
Apple — «Platform Security» (support.apple.com): il code signing obbligatorio richiede un certificato Apple, rilasciato solo dopo la verifica dell'identità reale dello sviluppatore.

2. Store ufficiali vs sideloading: perché la provenienza conta

Lo store ufficiale (Play Store, App Store) aggiunge un controllo in più oltre alla firma: una revisione prima della pubblicazione, e su Android, una scansione continua di ogni app installata, indipendentemente dalla fonte, tramite Google Play Protect.

Il sideloading (installare un file APK scaricato direttamente, fuori dallo store), resta una funzionalità legittima di Android, ma salta quel livello di revisione preventiva. Google stessa ha reso pubblico un dato interno: le app installate da fonti sideloaded su Internet mostrano una probabilità di contenere malware oltre 50 volte superiore rispetto a quelle scaricate dal Play Store.

3. Repackaging: quando un'app «vera» nasconde un impostore

Il rischio più insidioso non è un'app inventata dal nulla, ma il repackaging: qualcuno prende un'app popolare e legittima, ne inietta il codice originale in un pacchetto con codice malevolo aggiunto, e lo ridistribuisce con lo stesso nome e la stessa icona, ma firmato con una chiave diversa (l'originale non è nelle sue mani).

È esattamente questo che la firma rende rilevabile: un'app clonata e modificata non può portare la stessa firma dell'originale, perché non possiede la chiave privata del vero sviluppatore. Verificare la firma o, più semplicemente, scaricare solo dallo store ufficiale è la differenza tra notare l'impostore e installarlo senza saperlo.

# Verifica la firma di un file APK prima di installarlo manualmente 
apksigner verify --verbose --print-certs app.apk

Fonte: OWASP Mobile Application Security Testing Guide (MASTG) — «Testing Code Quality and Build Settings»: la firma digitale impedisce che un'app venga manomessa o modificata per includere codice malevolo senza invalidare la firma.

4. La tua supply chain personale del dispositivo

Ogni app installata sul telefono è, a tutti gli effetti, una dipendenza che hai scelto di aggiungere alla tua vita digitale, con gli stessi permessi che tu le concedi, gli stessi dati a cui accede. La domanda da farsi prima di installare qualcosa è la stessa che ci si fa per una libreria di codice: da dove viene, chi l'ha firmata, chi la mantiene?

  • Preferisci sempre lo store ufficiale; se devi fare sideloading, verifica la fonte con la stessa cura con cui verificheresti un pacchetto software.
  • Diffida dei «cloni non ufficiali» di app popolari, un'app di terze parti che replica funzionalità di un servizio noto senza esserne il produttore ufficiale è un rischio di repackaging in forma pulita, non nascosta.
  • Controlla chi ha pubblicato l'app (nome dello sviluppatore, non solo il nome dell'app) prima di installarla: è l'equivalente di controllare la firma di un pacchetto.

Nella vita reale: è lo stesso principio del «sapere cosa gira nel tuo software»: la tua supply chain personale non è fatta di librerie e pipeline, ma di app, permessi e sviluppatori a cui hai deciso di dare fiducia — spesso senza nemmeno accorgertene.

In sintesi

Fonte Cosa garantisce Rischio se salti questo passo
Firma dell'app L'app viene davvero dallo sviluppatore dichiarato Non puoi distinguere un originale da un clone
Store ufficiale Revisione preventiva + scansione continua Nessun filtro prima dell'installazione
Stessa chiave per gli update Blocca aggiornamenti fasulli da terzi Un impostore potrebbe sostituire l'app
Verifica dello sviluppatore Sai chi ha pubblicato davvero l'app Installi un clone travestito da originale

Il principio è lo stesso della supply chain del software professionale, solo applicato alla tasca: la fiducia che dai a un'app non dovrebbe mai essere automatica, vale la pena spenderla solo dove qualcuno ha già verificato chi c'è dall'altra parte.

Accedi o registrati per votare, salvare o commentare la pillola

Commenti (0)

Registrati per commentare, fare domande e proporre l'argomento della prossima pillola (oppure accedi se hai già un account).

Nessun commento. Sii il primo a scrivere qualcosa.

Pillole correlate