I Segreti della Sicurezza Sono la Questione Più Importante per le App Mobili

Recentemente, l’Open Worldwide Application Security Project (OWASP) ha aggiornato i suoi 10 principali rischi per le applicazioni mobili per la prima volta dal 2016. Il rischio di sicurezza al primo posto questa volta? “Uso improprio delle credenziali.”

Questo è un campanello d’allarme per i fornitori di app mobili riguardo al pericolo delle credenziali hardcoded e alla cattiva igiene dei segreti in generale.

Una gestione errata dei segreti che la tua applicazione utilizza, specialmente nelle app mobili, può portare a devastanti violazioni della sicurezza. Diamo un’occhiata più da vicino a questo nuovo focus principale per garantire la sicurezza delle nostre applicazioni e a cosa possiamo fare insieme per affrontare queste preoccupazioni.

La crescente minaccia della gestione impropria dei segreti

L’uso improprio delle credenziali si verifica quando segreti come password o token non sono adeguatamente protetti, rendendoli vulnerabili al furto da parte di attaccanti. Le app mobili, in particolare, sono note per la fuga di segreti. Secondo una ricerca di CyberNews, oltre il 50% delle app mobili su piattaforme come Google Play Store contengono segreti hardcoded, il che significa che questi pezzi sensibili di informazione possono facilmente essere scoperti da attori malintenzionati.

Se guardiamo alla definizione fornita da OWASP, comprendiamo rapidamente perché questo rischio sia particolarmente preoccupante:


Quando i segreti vengono esposti, gli attaccanti possono usarli per ottenere accesso non autorizzato a servizi, dati o addirittura interi sistemi. Questo rende la gestione dei segreti una preoccupazione fondamentale sia per gli sviluppatori di app che per i team di sicurezza.

Perché i segreti sono il bersaglio principale

I segreti sono obiettivi attraenti per gli attaccanti perché forniscono accesso diretto a sistemi critici. A differenza di altre vulnerabilità che richiedono ulteriori sfruttamenti, una volta che un attaccante ottiene accesso a una chiave API o a una password, spesso ha un percorso chiaro verso risorse preziose.

Ad esempio, le chiavi API hardcoded nelle app mobili possono essere estratte tramite strumenti di analisi statica e utilizzate per effettuare richieste API non autorizzate. Ciò non solo compromette i dati degli utenti, ma può anche comportare perdite finanziarie, specialmente se queste chiavi sono legate a servizi che fatturano in base all’uso.

La segretezza lato client è difficile

Un punto chiave per comprendere la gestione dei segreti è che la segretezza lato client è praticamente impossibile. Non importa quanto bene i segreti siano offuscati o crittografati in un’app mobile, gli attaccanti con risorse sufficienti possono ingegnerizzare a ritroso l’app e recuperarli. Questo perché i segreti, a un certo punto, devono essere disponibili nella memoria dell’app per essere utilizzati. Attraverso l’analisi dinamica, gli attaccanti possono recuperare questi segreti e sfruttarli.

Di conseguenza, l’unico modo sicuro per gestire i segreti è tenerli completamente al di fuori del lato client. Invece di incorporare chiavi API o credenziali nell’app, gli sviluppatori dovrebbero spostare queste informazioni sensibili nel backend, dove hanno maggior controllo sull’accesso e sulla sicurezza.

Best Practices per la gestione dei segreti

Per affrontare la sfida della divulgazione di segreti, i team di sviluppo devono implementare una serie delle migliori pratiche.

1. Mai Inserire i Segreti Direttamente nel Codice

I segreti non dovrebbero mai essere memorizzati direttamente nel codice dell’app. Questo include chiavi API, token di autenticazione e qualsiasi altro dato sensibile. Inserire i segreti direttamente nel codice è uno dei modi più comuni in cui avvengono le fughe e può portare a gravi violazioni della sicurezza.

2. Utilizzare API di Archiviazione Sicura

Per i segreti degli utenti (ad esempio, password, token), gli sviluppatori dovrebbero utilizzare meccanismi di archiviazione sicuri forniti dai sistemi operativi mobili. Ad esempio, iOS offre il Keychain e Android ha il Keystore. Queste API consentono l’archiviazione sicura e il controllo dell’accesso dei dati sensibili sul dispositivo.

3. Spostare i Segreti sul Backend

Piuttosto che gestire i segreti sul lato client, le app mobili dovrebbero utilizzare logiche lato server per gestire le chiavi API e altri dati sensibili. Spostare queste operazioni sul backend riduce drasticamente il rischio di divulgazione dei segreti.

4. Ruotare e Invalidare i Segreti Regolarmente

Anche con una corretta gestione dei segreti, è importante ruotare regolarmente i segreti e invalidare immediatamente le chiavi compromesse. Questo garantisce che se un attaccante riesce ad accedere a un segreto, non possa usarlo indefinitamente.

5. Certificate Pinning

Quando i segreti vengono inviati all’app durante l’esecuzione, gli sviluppatori dovrebbero utilizzare il certificate pinning per garantire che la comunicazione sia sicura. Questo aggiunge un ulteriore livello di protezione verificando l’identità del server durante la connessione.

6. Implementare il rilevamento dei segreti lungo l’intero SDLC

Gestire i segreti nel ciclo di sviluppo comporta inevitabilmente errori e fughe in qualche momento. OWASP sottolinea la necessità di “un processo di test di sicurezza completo”. È necessario imporre diversi livelli di rilevamento durante le fasi di commit, push e build e consentire una rimediazione semplificata in caso di incidente.

È cruciale tenere presente che un segreto codificato non deve raggiungere la produzione per costituire una vulnerabilità ad alto impatto.

Le conseguenze delle informazioni riservate divulgate

Quando i segreti vengono divulgati, le conseguenze possono essere gravi. Gli attaccanti possono utilizzare le credenziali esposte per accedere a dati sensibili, manipolare la logica aziendale o persino prendere il controllo di interi sistemi. Ad esempio, se una chiave API collegata a un sistema di pagamento viene divulgata, gli attaccanti potrebbero avviare transazioni fraudolente, con conseguenti perdite finanziarie sia per l’azienda che per i suoi clienti.

“Adversaries can exploit vulnerabilities in both hardcoded credentials and improper credential usage. Once these vulnerabilities are identified, an attacker can use hardcoded credentials to gain unauthorized access to sensitive functionalities of the mobile app. They can also misuse credentials, for instance, by gaining access through improperly validated or stored credentials, thereby bypassing the need for legitimate access.”

Inoltre, i segreti divulgati possono compromettere l’integrità di un’applicazione mobile e portare a costosi danni legali e reputazionali. Ad esempio, se un’applicazione sanitaria divulga chiavi API che consentono l’accesso ai dati dei pazienti, ciò potrebbe comportare significative multe regolamentari e erodere la fiducia dei clienti.

Strumenti di rilevamento dei segreti

Per affrontare il problema della divulgazione dei segreti, gli strumenti di rilevamento dei segreti sono diventati essenziali per lo sviluppo delle app moderne. Questi strumenti esaminano i repository di codice, i flussi di lavoro CI/CD e gli ambienti di produzione alla ricerca di segreti esposti, aiutando i team a individuare vulnerabilità prima che vengano sfruttate.

Questi strumenti e piattaforme consentono il monitoraggio in tempo reale delle modifiche al codice, garantendo che i segreti non siano accidentalmente hardcoded durante il processo di sviluppo. Integrando tali strumenti nel ciclo di vita dello sviluppo, le organizzazioni possono ridurre notevolmente il rischio di perdita di segreti.

La Sicurezza dei Segreti è un Viaggio che Tutti Stiamo Affrontando

La gestione dei segreti non è solo una questione tecnica; è una sfida di sicurezza critica che può avere conseguenze di vasta portata se non gestita correttamente. Le organizzazioni possono proteggere i loro dati sensibili e ridurre la probabilità di costosi violazioni comprendendo i rischi di un uso improprio delle credenziali, implementando le migliori pratiche per la protezione dei segreti e utilizzando strumenti progettati per rilevare perdite.

Poiché gli attacchi informatici e le violazioni continuano a fare notizia, garantire la sicurezza dei segreti è la strategia di protezione più essenziale per mantenere le organizzazioni e i sistemi al sicuro. Grazie al cielo i volontari di OWASP sono lì per aiutarci a tenere il passo con il panorama della cybersicurezza in continua evoluzione. 

Riferimento

Source:
https://dzone.com/articles/secrets-security-important-issue-mobile-apps