Smartphone e tablet gestiscono informazioni riservate, agenda, foto, video, documenti personali o professionali e abilitano operazioni finanziarie. Tutte attività che comportano l’uso di dati di grande valore per i cyber criminali. Per questo è necessario adottare tecniche che consentano di mettere in sicurezza i device.
Tra tali tecniche, l’ethical hacking risulta particolarmente efficace nella prevenzione perché permette di stabilire in modo preciso e puntuale i punti deboli del device attraverso analisi di vulnerabilità e penetration test.
Indice degli argomenti
Cos’è l’ethical hacking
L’ethical hacking (o hacking etico) è una componente fondamentale per il processo di analisi e test della sicurezza informatica, volto a garantire la data protection e l’implementazione di misure preventive contro hacker o attività malevole.
I dispositivi mobili hanno abilitato il concetto di “informatica ovunque e in qualsiasi momento”, tanto da accrescere la diffusione e l’utilizzo degli smart device a livello planetario.
Questo incremento nell’utilizzo ha stimolato il cybercrime, che crea attacchi mobile su misura, al fine di lucrare ricattando direttamente le vittime oppure di ottenere informazioni personali da rivendere nel Dark Web. Bersagli preferiti sono le app che possono abilitare il controllo di smartphone e tablet a distanza, assicurando libero accesso a tutto “il mondo informativo” della vittima.
Per questo motivo, è diventato cruciale garantire la sicurezza digitale nello sviluppo delle app e negli store e le aziende devono colmare le lacune di sicurezza per impedire accessi illeciti.
Le insidie della minaccia contro le app mobile
Con l’innovazione tecnologica, i dispositivi mobili sono costantemente al centro di una grande evoluzione. L’introduzione di funzionalità e app, e l’aumento della potenza di calcolo, hanno gradualmente reso tablet e smartphone sempre più simili a computer, tanto da causare l’estensione della domanda e della fruizione a un sempre maggior numero di utenti, che oggi li usano per scopi sia personali sia lavorativi.
Ne è conseguito un aumento della potenziale superficie di attacco delle aziende, che hanno perciò dovuto applicare prassi di sicurezza informatica sia ai dispositivi sia alle app installate.
In particolare, si è fatto un ampio ricorso a tecniche di ethical hacking per effettuare analisi di vulnerabilità e penetration test. In pratica, sono stati usati i medesimi metodi di attacco impiegati dai cybercriminali con l’obiettivo di trovare errori, cattive configurazioni e/o vulnerabilità che potrebbero consentire all’attaccante l’escalation dei privilegi o il controllo da remoto del device. Il fine ultimo è, naturalmente, di introdurre misure di sicurezza che riducano il rischio di attacco e di furto delle informazioni.
In generale, le maggiori minacce per un dispositivo mobile riguardano:
- vulnerabilità API;
- autorizzazione e autenticazione deboli;
- injection di codice malevolo lato cliente;
- controlli lato server deboli;
- archiviazione dati non sicura;
- protezione del livello di trasporto insufficiente;
- perdita di dati;
- gestione impropria della sessione;
- rottura della crittografia;
- decisioni di sicurezza tramite input non attendibili;
- mancanza di protezioni binarie.
Per approfondire l’argomento abbiamo chiesto il contributo di un ethical hacker rivolgendoci a PanDigital, azienda di cyber sicurezza consociata a Quanture S.p.A..
L’esperto spiega che, dal punto di vista dell’ethical hacking, in relazione alla sicurezza delle informazioni digitalizzate, si dovrebbero distinguere due aspetti che presentano vettori di attacco specifici: la sicurezza del fruitore dell’app mobile e la sicurezza di chi eroga il contenuto e sviluppa l’app.
Alcuni di questi vettori sono comuni a entrambi e sono causati dalle interazioni tra gli elementi architetturali: app e web server o API lato server. Se si guarda alle app mobile, le minacce sono tanto più credibili quanto più approfondite e minano la riservatezza e la disponibilità delle informazioni: si può verificare il furto dei dati se non si usa la crittografia o senza accorgimenti specifici, le app su app store possono sembrare applicazioni lecite (mimic di applicazione reale come una variante dello Spoofing applicato alle app n.d.r.), senza dimenticare che si può sempre cadere vittima di phishing.
Se si guarda invece al dispositivo, secondo l’esperto di PanDigital la sua violazione dipende dal comportamento di un’app capace di accedere ai dati di un’altra per estrarre informazioni. Le app risultano vulnerabili perché, nella maggior parte dei casi, non c‘è l’integrazione della componente di sicurezza dal punto di vista architetturale e dello sviluppo del codice. In pratica, la sicurezza non è inclusa nel ciclo di vita del software (Software Development Life Cicle – SDLC). E siccome mancano i cybersecurity engineer nelle fasi di progettazione, realizzazione e rilascio dell’app, non si ottengono risultati di qualità in termini di sicurezza.
Capire i gap di sicurezza mediante i test e intervenire per risolverli
Nell’ambito delle analisi di sicurezza, sul device mobile si rende necessario testare l’architettura client-server implementata, il livello di protezione dei dati del dispositivo, delle comunicazioni, dei sistemi di autenticazione, della piattaforma server. Inoltre, è chiaramente necessario valutare la presenza di vulnerabilità nel codice delle API e dei servizi di backend utilizzati dall’applicazione.
Infatti, rendere sicura un’app richiede di intervenire durante lo sviluppo del codice e di effettuare test di sicurezza continui. L’OWASP (Open Web Application Security Project, progetto con lo scopo di divulgare i principi del codice sicuro nelle fasi di sviluppo di un software n.d.r.) ha sviluppato una prima versione della Guida ai test di sicurezza mobile, la Mobile Security Testing Guide, un manuale per la programmazione sicura di applicazioni e per il relativo penetration testing. Una prima distinzione importante risiede nelle modalità di Test.
L’OWASP indica tre possibili modalità:
- il test in black-box, condotto senza che il tester abbia alcuna informazione sull’app in fase di test. Talvolta chiamato “test a conoscenza zero”, consente di comportarsi come un vero aggressore e di esplorare i possibili usi di informazioni pubblicamente disponibili e rilevabili;
- il test in white-box è l’esatto opposto: il tester ha piena conoscenza dell’app. La conoscenza può comprendere codice sorgente, documentazione e diagrammi. Questo approccio consente test molto più rapidi rispetto ai test black-box e test case molto più sofisticati e granulari;
- i test gray-box rientrano nelle due tipologie precedentemente menzionate: alcune informazioni vengono fornite al tester (di solito solo credenziali), mentre altre devono essere scoperte. Questo tipo di verifica rappresenta un compromesso interessante per quanto riguarda il numero di casi di test, il costo, la velocità e l’ambito del test – per questo è il più comune (Fonte OWASP).
Le analisi di sicurezza iniziano dai test di vulnerabilità in un’app attraverso scanner automatici. Sono suddivise in analisi statica e dinamica del codice. La Static Application Security Testing (SAST) implica l’esame dei componenti di un’applicazione senza eseguirli, mentre il test dinamico della sicurezza delle applicazioni (DAST) prevede l’esame dell’app durante il runtime.
L’ethical hacker di PanDigital spiega che l’analisi statica del codice sorgente dovrebbe essere inserita nella pipeline di sviluppo in modo automatizzato per garantire un’adeguata implementazione dei controlli di sicurezza. Dovrebbe, inoltre, essere integrata con l’analisi dinamica del codice nel contesto della continuous integration. L’analisi dinamica, invece, è svolta sia a livello mobile, sia rispetto ai servizi di back-end e alle API.
Queste due prassi costituiscono “misure minime” di sicurezza. A causa della frammentazione nelle versioni di Android e IOS, è opportuno analizzare anche la sicurezza dello stack web.
È bene effettuare test di sicurezza periodicamente e/o nelle “major release”, svolgendo VA/PT (Vulnerability Assessment e Penetration Testing). Per evitare di procedere con valutazioni di “falsi positivi”, è opportuno esaminare le vulnerabilità in relazione ai nuovi exploit, che però dipendendo dagli ambienti dei singoli vendor di piattaforma mobile.
Evitare falsi positivi significa, infatti, non considerare pericolosi quegli exploit che in certi ambienti non potrebbero essere eseguiti in relazione alle corrispondenti vulnerabilità. In generale, quando si sviluppa un’app, vale la regola “la sicurezza deve sempre considerare il dispositivo utente come untrusted”.
Ethical hacking come punto di partenza
Lo scopo dell’hacking etico è imitare le azioni degli attaccanti e identificare le vulnerabilità esistenti e potenziali che potrebbero sorgere in futuro. Per raggiungere questo obiettivo, un hacker etico intraprende più fasi di valutazione per acquisire una conoscenza approfondita del sistema oggetto di studio.
Nello svolgimento dei test, l’ethical hacker segue quattro principi fondamentali:
- accetta i termini e le condizioni stabiliti in materia di rispetto della privacy e riservatezza dei dati;
- concorda ambito e perimetro di attacco, in modo che le valutazioni rimangano entro i limiti legali approvati;
- mantiene gli exploit legali ottenendo l’approvazione del cliente prima di condurre la valutazione della vulnerabilità;
- segnala tutte le vulnerabilità rilevate e fornisce consigli per la risoluzione gli amministratori del sistema.
Un tipico test di penetrazione richiede all’hacker etico di aggirare i meccanismi di autorizzazione e autenticazione – quindi dovrà sondare il device alla ricerca di potenziali violazioni dei dati e minacce alla sicurezza, tenendo conto del panorama mutevole delle minacce e delle nuove Tecniche, Tattiche e Procedure (TTPs) degli attaccanti.
Per evitare che, sebbene testate per la sicurezza, le app mobile possano essere comunque violate, l’ethical hacker di PanDigital suggerisce alcune buone prassi da seguire.
- Verificare che i dispositivi non siano “jailbreacked o rooted”. Il jailbreaking indica procedure per installare, sui dispositivi a marchio Apple, applicazioni e pacchetti alternativi rispetto a quelli presenti nell’App Store online. In ambito Android, il rooting fa invece riferimento all’acquisizione di quei privilegi amministrativi che non sono mai messi a disposizione dell’utente che acquista il telefono.
- Controllare il “patch level” (in ambiente Android significa capire se il sistema è aggiornato o meno n.d.r.) e, quindi, non permettere installazioni se il dispositivo è non più aggiornato End of Support (EOS).
- Usare solo comunicazioni crittografate con gestione del pinning del certificato per tutte le comunicazioni in entrata e in uscita dall’app
- Utilizzare la crittografia nei chip hardware se presenti. In alternativa, i dati sensibili devono essere crittografati.
- Consentire all’utente di proteggere l’app con il security pin o con il controllo biometrico, (riconoscimento impronta o facciale).
- Gestire i componenti di access token e refresh token salvati su dispositivo, in modo da temporizzare le richieste di autenticazione all’utente da parte delle App sul dispositivo.
- Formare sempre gli sviluppatori secondo lo standard OWASP testing guide v.4.2.
Un ultimo tipo di controllo sulle app nell’ambito della brand protection e contrasto al Pharming riguarda l’analisi degli store via OSINT (Open Source Intelligence), per verificare chi abbia usato applicazioni simili a quelle di brand leciti.
Questo fa scattare una serie di “warning” al vendor che ha, in questo modo, le leve di proprietà intellettuale e di “copyright infringement” per interagire con gli store online, chiedendo la rimozione delle app malevole.
Questa prassi evita la distribuzione di applicazioni dannose che potrebbero ingannare e danneggiare gli utenti e il brand stesso.
Contributo editoriale sviluppato in collaborazione con Quanture