Dopo una breve introduzione del progetto BackBox, illustreremo le caratteristiche principali di questa nuova versione della Distribuzione con particolare riferimento alla sezione “Mobile Analysis”.
Introdurremo tools e best practices per condurre penetration test su applicazioni Android.
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...Mattia De Bernardi
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamento al sistema di controllo TANGO, tramite l'ausilio del framework Apache Cordova
CCI 2019 - SQL Injection - Black Hat Vs White Hatwalk2talk srl
Knock Knock?
Who's There?
'OR 1=1; /*
<door opens>
SQL Injection mantiene inalterata la prima posizione nella OWASP Top 10.
Scopriamo cos'è e come mitigarla.
By Mirko Strozzi
Dopo una breve introduzione del progetto BackBox, illustreremo le caratteristiche principali di questa nuova versione della Distribuzione con particolare riferimento alla sezione “Mobile Analysis”.
Introdurremo tools e best practices per condurre penetration test su applicazioni Android.
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...Mattia De Bernardi
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamento al sistema di controllo TANGO, tramite l'ausilio del framework Apache Cordova
CCI 2019 - SQL Injection - Black Hat Vs White Hatwalk2talk srl
Knock Knock?
Who's There?
'OR 1=1; /*
<door opens>
SQL Injection mantiene inalterata la prima posizione nella OWASP Top 10.
Scopriamo cos'è e come mitigarla.
By Mirko Strozzi
La sicurezza non è un prodotto, ma un processo. IL CONCETTO DI SICUREZZA INFORMATICA La sicurezza informatica ha come obiettivi: • il controllo del diritto di accesso alle informazioni; • la protezione delle risorse da danneggiamenti volontari o involontari; • la protezione delle informazioni mentre esse sono in transito sulla rete; • la verifica dell'identità dell'interlocutore, in particolare la certezza che sia veramente chi dice di essere. Per creare sicurezza bisogna prima studiare: • chi può attaccare il sistema, perché lo fa e cosa cerca; • quali sono i punti deboli del sistema; • quanto costa la sicurezza rispetto al valore da proteggere e rispetto al valore dei danni causati; • con quale cadenza gli apparati/sistemi di sicurezza vengono aggiornati. Il ciclo di vita della sicurezza informatica prevede: 1. Prevention: è necessario implementare delle misure per prevenire lo sfruttamento delle vulnerabilità del sistema. 2. Detection: è importante rilevare prontamente il problema; prima si rileva il problema, più semplice è la sua risoluzione. 3. Response: è necessario sviluppare un piano appropriato di intervento in caso di violazione con individuazione delle responsabilità e le azioni da intraprendere. Occorre tenere ben presente l'importanza del documento di Auditing del sistema: il documento analizza la struttura del sistema e individua le operazioni atte a verificare lo stato di salute del sistema con varie tipologie di verifica della sicurezza. Gli elementi da considerare in un progetto di sicurezza informatica sono, nell'ordine: 1. beni da proteggere 2. minacce 3. agenti 4. vulnerabilità 5. vincoli 6. misure di protezione Gli elementi elencati sono raccolti nel documento di Risk Analysis. Questo documento permette di conoscere qual è il rischio di subire danni al proprio sistema informatico e, di conseguenza, di preparare una mappa delle possibili contromisure da adottare. Il Vulnerability Assesment permette di raccogliere informazioni sul sistema informatico tramite la registrazione dei potenziali problemi di sicurezza individuati. Si decide poi di proseguire con il Penetration Test per controllare la sicurezza del sistema informatico con una serie di attacchi mirati alla ricerca di problemi di sicurezza. La nascita di nuovi problemi per la sicurezza informatica.
https://www.vincenzocalabro.it
Intervento Carlo Mauceli a International Business Forum: le nuove frontiere dell'IT in Puglia" 7 - 8 novembre 2019 - Grand Hotel Masseria Santa Lucia di Ostuni. Carlo Mauceli, National Digital Officer, MICROSOFT
Event: Giffoni Open Makers Day 2013
Speaker: Valentina Pelliccia
Android è un sistema operativo open-source basato su kernel Linux e progettato per dispositivi mobili come smartphone e tablet. Il progetto Open Source Android guidato da Google dispone di una vasta comunità di sviluppatori divenendo in pochi anni uno dei leader nel mercato mobile.
Go Passwordless_La piattaforma FIDO2 per l’autenticazione multifattore SafeAc...Bit4id1
Adottando la multifactor authentication sarai in grado di:
garantire la privacy di utenti e collaboratori
ottimizzare le risorse del tuo dipartimento IT
irrobustire le tue soluzioni contro le maggiori vulnerabilità informatiche
Scopri come sostituire le password con alternative più sicure.
Intervento a cura di Andrea Ceresoni, Responsabile Cybersecurity, nel corso dell'evento "Completiamo insieme il sistema operativo del Paese", organizzato a Roma il 2 luglio 2019 dal Team per la Trasformazione Digitale per condividere visione, strumenti e obiettivi del processo di digitalizzazione, con i partner tecnologici della Pubblica Amministrazione.
A seguire intervento di Stefano Orciari (Reply).
La sicurezza non è un prodotto, ma un processo. IL CONCETTO DI SICUREZZA INFORMATICA La sicurezza informatica ha come obiettivi: • il controllo del diritto di accesso alle informazioni; • la protezione delle risorse da danneggiamenti volontari o involontari; • la protezione delle informazioni mentre esse sono in transito sulla rete; • la verifica dell'identità dell'interlocutore, in particolare la certezza che sia veramente chi dice di essere. Per creare sicurezza bisogna prima studiare: • chi può attaccare il sistema, perché lo fa e cosa cerca; • quali sono i punti deboli del sistema; • quanto costa la sicurezza rispetto al valore da proteggere e rispetto al valore dei danni causati; • con quale cadenza gli apparati/sistemi di sicurezza vengono aggiornati. Il ciclo di vita della sicurezza informatica prevede: 1. Prevention: è necessario implementare delle misure per prevenire lo sfruttamento delle vulnerabilità del sistema. 2. Detection: è importante rilevare prontamente il problema; prima si rileva il problema, più semplice è la sua risoluzione. 3. Response: è necessario sviluppare un piano appropriato di intervento in caso di violazione con individuazione delle responsabilità e le azioni da intraprendere. Occorre tenere ben presente l'importanza del documento di Auditing del sistema: il documento analizza la struttura del sistema e individua le operazioni atte a verificare lo stato di salute del sistema con varie tipologie di verifica della sicurezza. Gli elementi da considerare in un progetto di sicurezza informatica sono, nell'ordine: 1. beni da proteggere 2. minacce 3. agenti 4. vulnerabilità 5. vincoli 6. misure di protezione Gli elementi elencati sono raccolti nel documento di Risk Analysis. Questo documento permette di conoscere qual è il rischio di subire danni al proprio sistema informatico e, di conseguenza, di preparare una mappa delle possibili contromisure da adottare. Il Vulnerability Assesment permette di raccogliere informazioni sul sistema informatico tramite la registrazione dei potenziali problemi di sicurezza individuati. Si decide poi di proseguire con il Penetration Test per controllare la sicurezza del sistema informatico con una serie di attacchi mirati alla ricerca di problemi di sicurezza. La nascita di nuovi problemi per la sicurezza informatica.
https://www.vincenzocalabro.it
Intervento Carlo Mauceli a International Business Forum: le nuove frontiere dell'IT in Puglia" 7 - 8 novembre 2019 - Grand Hotel Masseria Santa Lucia di Ostuni. Carlo Mauceli, National Digital Officer, MICROSOFT
Event: Giffoni Open Makers Day 2013
Speaker: Valentina Pelliccia
Android è un sistema operativo open-source basato su kernel Linux e progettato per dispositivi mobili come smartphone e tablet. Il progetto Open Source Android guidato da Google dispone di una vasta comunità di sviluppatori divenendo in pochi anni uno dei leader nel mercato mobile.
Go Passwordless_La piattaforma FIDO2 per l’autenticazione multifattore SafeAc...Bit4id1
Adottando la multifactor authentication sarai in grado di:
garantire la privacy di utenti e collaboratori
ottimizzare le risorse del tuo dipartimento IT
irrobustire le tue soluzioni contro le maggiori vulnerabilità informatiche
Scopri come sostituire le password con alternative più sicure.
Intervento a cura di Andrea Ceresoni, Responsabile Cybersecurity, nel corso dell'evento "Completiamo insieme il sistema operativo del Paese", organizzato a Roma il 2 luglio 2019 dal Team per la Trasformazione Digitale per condividere visione, strumenti e obiettivi del processo di digitalizzazione, con i partner tecnologici della Pubblica Amministrazione.
A seguire intervento di Stefano Orciari (Reply).
Extended Summary of "Sok: The Evolution of Trusted UI on Mobile"
1. UNIVERSITÀ DEGLI STUDI DI TRIESTE
Dipartimento di Ingegneria e Architettura
Tesi di Laurea Triennale
Ingegneria Elettronica e Informatica
Extended Summary of
"SOK: The Evolution of Trusted
UI on Mobile"
Relatore: Chiar.mo Prof. Eric Medvet
Laureando: Simone Cossaro
Anno Accademico 2021-2022
1
3. 1 Introduzione
L’interfaccia utente è il mezzo con cui l’uomo interagisce con una macchina, sia
essa un computer o uno smartphone.
Attualmente, il concetto di interfaccia utente affidabile non è universalmente
implementato sui dispositivi mobili di consumo.
Sui computer sono presenti vari indicatori che consentono di riconoscere un’app
specifica, mentre le interfacce dei dispositivi mobili, sebbene offrano numerose
funzionalità, nascondono molti dettagli. Gli utenti infatti non sono in grado
di identificare in modo affidabile quale contenuto dello schermo sia autentico e
quale potenzialmente manipolato.
I dispositivi mobili sono centrali nella vita quotidiana delle persone e
all’interno vengono trasferite sempre maggiori informazioni. La loro sicurezza
risulta quindi estremamente importante per evitare che incidenti fortuiti possano
causare gravi danni.
In questo documento vengono elencati i problemi dell’interfaccia utente che
minacciano la sicurezza dei dispositivi con sistema operativo Android e le contro-
misure per arginarli. Vengono inoltre presentate alcune questioni da considerare
per futuri sforzi di ricerca.
2 Background
Il sistema Android si basa sulle funzionalità del kernel Linux.
Un elemento fondamentale è l’Android Application Sandbox, meccanismo di
sicurezza che vieta alle app di accedere a dati o codice di altre app. In pratica,
ogni applicazione viene eseguita nel proprio spazio di memoria.
Il sistema operativo offre però un modello basato su permessi per concedere
l’accesso a risorse specifiche. La verifica di queste autorizzazioni effettuata dal
sistema garantisce che nessuna app esponga involontariamente i propri dati.
I TEE (Trusted Execution Environment) sono una funzionalità della CPU
che offre un ambiente isolato per l’elaborazione dei dati, allo scopo di eseguire
in sicurezza applicazioni specifiche, dette trustlet, anche in presenza di un
sistema operativo compromesso. Queste applicazioni trustlet sono responsabili
dell’esecuzione di operazioni critiche come la crittografia e l’autenticazione.
Nella maggior parte dei dispositivi Android è implementato ARM TrustZone,
un meccanismo che presenta due domini di sicurezza: ‘Normal World’ e
‘Secure World’. Nel primo è in esecuzione il normale sistema operativo, mentre il
secondo esegue un sistema operativo con TEE aggiuntivo. Il Normal World non
può accedere direttamente al Secure World, la comunicazione avviene effettuando
una chiamata SMC (Secure Monitor Call) ad un software detto Secure Monitor.
3
4. Figura 1: L’architettura software di un dispositivo Android con TrustZone
In un sistema esistono tre livelli di privilegio, in ordine crescente:
• utente
• OS
• TEE
Se in uno di essi un attaccante può scrivere del codice arbitrario, tale livello
risulta non attendibile insieme ai sottostanti.
Una difesa può essere utilizzata solo a un livello superiore rispetto a quello
considerato non attendibile.
3 Problemi di progettazione
I principali difetti di progettazione del sistema operativo Android riguardano la
gestione delle finestre e i servizi di accessibilità.
Nella gestione delle finestre si riscontrano i seguenti problemi:
1. Indicatori mancanti
Qualsiasi applicazione può impersonare un’altra app legittima, in quanto
può utilizzare interfacce utente a schermo intero per coprire il display e
il sistema operativo non offre alcuna identificazione dei contenuti dello
schermo.
Gli utenti possono accedere alla schermata “Informazioni app”, dalla quale
però ottengono solamente informazioni di base come nome e icona dell’app,
niente che aiuti a distinguere un’app legittima da una dannosa o di
indirizzamento errato.
2. Overlay
Gli overlay sono finestre che si sovrappongono ad altre finestre sullo schermo.
4
5. Figura 2: Alcuni esempi di come gli overlay possano sovrapporsi [1]
Possono essere utilizzate da qualsiasi app attiva e non vengono trattate
come finestre normali: non compaiono nel selettore di app e sono prive di
barra del titolo e layout obbligatorio.
Gli overlay possono essere sfruttati per attacchi di clickjacking e context
hiding.
Il clickjacking consiste nel reindirizzare un click verso un oggetto diverso
da quello atteso. Un utente crede di consultare una pagina normale ma in
realtà naviga su una "trasparente" in sovrapposizione. I rischi derivanti dai
click vanno dal semplice invio di spam, al download di file, fino all’ordinare
prodotti da siti di e-commerce. [2]
Il context hiding, invece, consiste nell’utilizzare un overlay per nascondere
il contenuto dello schermo attorno ai controlli dell’interfaccia utente come
i pulsanti, rimuovendo quindi qualsiasi indicazione sulla finestra a cui
appartiene il controllo. In una finestra di dialogo di conferma, nascondere
il testo e sostituirlo con uno diverso potrebbe indurre l’utente ad accettare
tutto ciò che vuole un malintenzionato.
3. Reindirizzamento
In generale, Android associa un’attività a un task specifico, in modo da
non rimuovere dalla memoria una finestra fino al completamento del task.
Nelle app di terze parti, le attività possono definire un attributo
taskAffinity, che indica al sistema operativo a quale task preferiscono
appartenere. Un secondo attributo, allowTaskReparenting, permette ad
un’attività di trasferirsi da un task ad un altro. Entrambi sono controllati
dallo sviluppatore, perciò possono essere combinati per consentire a un’app
dannosa di essere associata a un’app legittima. Ciò significa che l’app
dannosa può posizionarsi sopra l’app legittima o reindirizzare l’utente a
un’altra attività per eseguire vari attacchi, come il furto di credenziali, il
blocco del dispositivo o il monitoraggio delle azioni dell’utente.
Per quanto riguarda i servizi di accessibilità, il loro scopo è migliorare l’espe-
rienza degli utenti diversamente abili. Possono monitorare le azioni dell’utente,
eseguirle per lui e sono in grado di recuperare i contenuti di altre finestre.
Sono quindi progettati per avere accesso ad azioni privilegiate che interessano
l’intero sistema operativo, aggirando le limitazioni imposte dal sandboxing.
Le loro potenzialità possono essere sfruttate da attaccanti per abilitare altri
servizi, concedere autorizzazioni aggiuntive alle app e accedere a dati sensibili.
Utilizzando l’input simulato, possono installare app aggiuntive per acquisire
maggior controllo del dispositivo e per aumentare la persistenza possono moni-
torare il sistema per rilevare e prevenire tentativi di rimozione del malware.
5
6. Una volta che un servizio di accessibilità dannoso è attivo, l’utente può perdere
il controllo del dispositivo.
4 Contromisure
Le difese contro i problemi elencati sono per lo più implementate a livello di
sistema operativo e nello spazio del kernel, con poche eccezioni che fanno uso di
soluzioni TEE basate su hardware.
Nel corso degli anni, Google ha migliorato le proprie misure di sicurezza per
contrastare gli overlay:
• introducendo dei flag per rilevarli e ignorare input indesiderati
• impedendogli di coprire il menù e la barra di stato delle applicazioni
• suddividendoli in classi di priorità per stabilire quale finestra possa collocarsi
sopra le altre
• facendoli scomparire durante i dialoghi critici
• attivando notifiche al momento della loro creazione e attivazione
Figura 3: tipico messaggio di notifica
L’introduzione di Android Protected Confirmation ha offerto un metodo
per ottenere una decisione dell’utente verificabile attraverso l’uso di metodi
crittografici consolidati. Dal punto di vista dell’utente, si tratta di una schermata
visualizzata a schermo intero contenente un piccolo messaggio che non può essere
manipolato e la conferma viene eseguita premendo un pulsante.
Un meccanismo difensivo realizzato nei confronti del clickjacking è ClickShield.
Si basa sul deblending, ovvero un algoritmo che confronta ciò che un utente vede
e ciò che dovrebbe vedere.
Quando un utente preme un bottone sensibile si attiva ClickShield, il quale
verifica la presenza di overlay. Se ne rileva almeno uno al centro dello schermo,
attiva il deblending che si occupa di stabilire se l’overlay è in grado di ingannare
l’utente. In caso affermativo, viene mostrata una finestra di dialogo che consente
all’utente di rimuovere l’applicazione dannosa oppure appare solamente un avviso
che lascia libertà su come proseguire. [3]
Ricerche hanno esplorato soluzioni difensive che consistono nello spostamento
dell’intero stack dell’interfaccia utente nel TEE. Questo meccanismo richiede
molte modifiche al TEE e al sistema operativo Android sottostante.
Il Trusted Computing Base (TCB) corrisponde al numero di righe di codice
6
7. eseguite nell’ambiente attendibile e va minimizzato in modo da ridurre la pos-
sibilità di bug. Lo spostamento dello stack nel TEE comporta un aumento
significativo del TCB, oltre ad un peggioramento delle prestazioni. Quindi la
soluzione non risulta vantaggiosa.
Altre soluzioni introducono il concetto di indicatori “LED sicuri”, il cui
accesso è possibile solo dal mondo attendibile (Secure World).
Il LED attivo potrebbe ad esempio informare l’utente che lo schermo corrente
è sicuro. Questo però comprometterebbe una funzionalità di Android, ovvero
la possibilità delle app di utilizzare il LED per notifiche o come indicatore della
batteria.
5 Sfide Future
L’autore ritiene che alcuni campi come la ricerca di Root Of Trust e percorsi
attendibili nei dispositivi mobili siano meritevoli di un’approfondimento più
accurato.
Gli attacchi attribuiti agli indicatori mancanti potrebbero essere mitigati con
un semplice indicatore aggiuntivo che mostri l’origine dell’app, in modo simile
ai certificati dei browser.
Deve essere ulteriormente esplorato il passaggio ad hardware di sicurezza
dedicato e mancano architetture open source che potrebbero contribuire signi-
ficativamente all’affidabilità dei dispositivi.
Ma il punto cruciale è la considerazione degli utenti finali. Non sempre
possiedono conoscenze approfondite sui meccanismi dell’interfaccia utente e
alcune funzioni potrebbero confonderli. In fase di progettazione occorre pre-
diligere l’usabilità per consentire un utilizzo efficace dei dispositivi. È stata
dimostrata una correlazione tra usabilità e sicurezza: diminuire l’usabilità può
portare a una minore sicurezza.
6 Conclusione
I problemi principali presentati sono gli overlay e il controllo dell’interfaccia
utente, per i quali sono riportate delle efficienti contromisure che possono però
solamente limitare i danni e non estinguere completamente i problemi.
Occorre mantenere il giusto equilibrio tra sicurezza e funzionalità, cercando
di non eccedere nella seconda.
La ricerca nel campo della mobile security ha fatto enormi passi avanti, ma
rimangono ancora molte questioni da approfondire.
L’uso costantemente crescente dei dispositivi mobili non fa altro che aumentare
l’esposizione a questi rischi di sicurezza informatica e un piccolo errore può
portare a danni come fughe di dati, violazioni della privacy e perdite di denaro.
Data la delicatezza del tema, risultano indispensabili ulteriori ricerche e
perfezionamenti.
7
8. Riferimenti bibliografici
[1] Yuxuan Yan, Zhenhua Li, Qi Alfred Chen, Christo Wilson, Tianyin
Xu, Ennan Zhai, Yong Li, Yunhao Liu. Understanding and Detecting
Overlay-based Android Malware at Market Scales. 2019.
URL: https://www.ics.uci.edu/ alfchen/yuxuan_mobisys19.pdf
[2] Wikipedia. Clickjacking. 2022. URL: https://it.wikipedia.org/wiki/Clickjacking
(visitato in data 07/06/2022)
[3] Andrea Possemato, Andrea Lanzi, Simon Pak Ho Chung, Wenke Lee, Yanick
Fratantonio. ClickShield: Are You Hiding Something? Towards Eradicating
Clickjacking on Android. 2018.
URL: https://reyammer.io/publications/2018_ccs_clickshield.pdf
8