Segurança
Mobile
App
OWASP
Proteção
Desenvolvimento

Sicurezza delle applicazioni: guida alla protezione mobile

Le app mobili sono frequenti bersagli di attacchi. Dati sensibili, pagamenti, informazioni personali, tutto ha bisogno di protezione. Questa guida presenta le pratiche essenziali per la sicurezza mobile.

Perché la sicurezza mobile è importante

Dati sensibili

Le app memorizzano informazioni preziose.

Attacchi in aumento

Il mobile è un vettore sempre più esplorato.

Regolamento

LGPD, la conformità richiede protezione.

Reputazione

La perdita distrugge la fiducia.

OWASP Mobile Top 10

M1: utilizzo improprio della piattaforma

Utilizzo errato delle funzionalità di sicurezza del sistema operativo.

M2: archiviazione dati non sicura

Dati sensibili in luoghi non sicuri.

M3: Comunicazione non sicura

Trasmissione senza protezione.

M4: Autenticazione non sicura

Autenticazione debole o aggirabile.

M5: Crittografia insufficiente

Crittografia mal implementata.

M6: Autorizzazione non sicura

Controllo degli accessi non riuscito.

M7: Qualità del codice cliente

Bug e vulnerabilità nel codice.

M8: Manomissione del codice

Modifica dell'app.

M9: Ingegneria inversa

L'app può essere analizzata.

M10: Funzionalità estranea

Codice di debug in produzione.

Archiviazione sicura

Portachiavi (iOS)

Per credenziali e token.

Archivio chiavi (Android)

Sicurezza supportata dall'hardware.

Preferenze condivise crittografate

Dati crittografati.

Non utilizzare

File di testo semplice, registri, UserDefaults senza crittografia.

Comunicazione sicura

###HTTPS

Obbligatorio, sempre.

Blocco del certificato

Previene gli attacchi MITM.

###TLS 1.3

Versione più sicura.

Configurazione sicurezza di rete

Android: dichiarare le regole di sicurezza.

Autenticazione

Password complesse

Requisiti di complessità.

###AMF

Autenticazione a più fattori.

Biometria

Face ID, Touch ID, impronta digitale.

Gestione delle sessioni

Token sicuri, scadenza.

Autorizzazione

Privilegio minimo

Accesso minimo richiesto.

Lato server

Convalidare sempre sul server.

Basato sui ruoli

Autorizzazioni per ruolo.

Crittografia

Algoritmi

AES-256, RSA-2048+.

###Chiavi

Non codificato. Utilizza portachiavi/archivio chiavi.

###Salatura

Per gli hash delle password.

IV Unico

Per le modalità crittografia.

Protezione del codice

Offuscamento

Rendere difficile il reverse engineering.

ProGuard/R8 (Android)

Offuscamento del codice.

Anti-manomissione

Rileva modifiche.

Rilevamento root/jailbreak

Identificare i dispositivi compromessi.

Sicurezza dell'API

Autenticazione

Basato su token, OAuth 2.0.

Limitazione della velocità

Prevenire gli abusi.

Convalida dell'input

Convalida tutto sul server.

Codifica dell'output

Prevenire l'iniezione.

Protezione dei dati

Data di riposo

Crittografia nell'archivio.

Dati in transito

HTTPS/TLS.

Minimizzazione dei dati

Raccogli solo il necessario.

Conservazione

Non tenere più del necessario.

Test di sicurezza

SAST

Test statici di sicurezza delle applicazioni.

DAST

Test dinamico.

Test di penetrazione

Test degli hacker etici.

Scansione delle vulnerabilità

Dipendenze fallite.

Strumenti

###MobSF

Quadro di sicurezza mobile. Analisi automatizzata.

Frida

Strumentazione dinamica.

###Suite Rutto

Intercettare il traffico.

OWASP ZAP

Scansione delle vulnerabilità.

Dipendenze

Controllo NPM/Gradle

Verifica le vulnerabilità.

Aggiornamento

Mantieni aggiornate le dipendenze.

Filiera

Fai attenzione a cosa includi.

Specifico per iOS

App Sicurezza dei trasporti

Forza HTTPS.

Servizi portachiavi

Conservazione sicura.

Protezione dei dati

Protezione basata sulla schermata di blocco.

Specifico per Android

Integrità di SafetyNet/Gioco

Controlla l'integrità del dispositivo.

Configurazione sicurezza di rete

Dichiarare le politiche di rete.

Preferenze condivise crittografate

Dati crittografati.

Sviluppo sicuro

###Formazione

Sviluppatori addestrati alla sicurezza.

Revisione del codice

Revisione con particolare attenzione alla sicurezza.

Modellazione delle minacce

Identificare tempestivamente i rischi.

Campioni della sicurezza

Rappresentanti della squadra.

Conformità

LGPD

Protezione dei dati personali.

PCI-DSS

Per le app a pagamento.

HIPAA

Per le app sanitarie (Stati Uniti).

Errori comuni

Segreti codificati

Chiavi nel codice sorgente.

Log in eccesso

Dati sensibili nei log.

Validazione solo sul Client

Il server deve convalidare.

###HTTP

Comunicazione non crittografata.

Conclusione

La sicurezza mobile richiede un approccio a più livelli. Proteggi i dati, comunica in modo sicuro, autenticati correttamente e testa continuamente. La sicurezza non è una caratteristica, è un requisito.

##Domande frequenti

1) È necessario il blocco del certificato? Altamente consigliato per app con dati sensibili.

2) L'offuscamento è sufficiente? No. È uno strato, non una protezione completa.

3) Come testare la sicurezza? Strumenti automatizzati + test manuale della penna.

4) È possibile aggirare il rilevamento della radice? Sì. Utilizzare come strato, non come unica protezione.

5) HTTPS risolve tutto? No. È basilare. Hai bisogno di più strati.

Leggi anche