Extending Layered Attestation into ARM Application Run-Times
Questo articolo presenta ARA, un'ancora di runtime applicativo basata su ARM che estende l'attestazione supportata dall'hardware dal tempo di caricamento all'esecuzione, sfruttando le Permission Overlay Extensions per creare un dominio attestato e protetto per la verifica dell'integrità del runtime e la protezione dei segreti con un overhead prestazionale minimo.
Articolo originale sotto licenza CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Questa è una spiegazione generata dall'IA dell'articolo qui sotto. Non è stata scritta né approvata dagli autori. Per precisione tecnica, consulta l'articolo originale. Leggi il disclaimer completo
Nel mondo dell'informatica moderna, la fiducia viene spesso stabilita proprio nel momento in cui un programma si avvia. Quando apri un'app sul tuo telefono, il dispositivo controlla che il software sia genuino e non sia stato manomesso prima ancora che inizi a girare. Questo processo, noto come attestazione, si basa su una "radice di fiducia" (root of trust) supportata dall'hardware, una base sicura integrata nel chip stesso che verifica l'identità del software. Tuttavia, una volta superato quel controllo iniziale e che l'applicazione inizia il suo lavoro, questo alto livello di sicurezza spesso svanisce. Il dispositivo assume che il programma si stia comportando correttamente, lasciando un vuoto dove attori malintenzionati potrebbero potenzialmente alterare il comportamento dell'app, rubare segreti o manipolare i dati senza che il sistema se ne accorga. Per anni, la soluzione a questo problema è stata quella di spostare i compiti sensibili in ambienti separati e isolati, ma farlo richiedeva al computer di cambiare continuamente marcia tra diverse zone di sicurezza, un processo che era lento e consumava molta batteria.
Un team di ricercatori dell'Università di Zurigo e di Huawei ha sviluppato un nuovo approccio per colmare questa lacuna, permettendo alla sicurezza di persistere durante l'intera vita di un'applicazione senza l'elevato costo delle prestazioni. Hanno creato un sistema chiamato ARA, che stabilisce una zona sicura e protetta direttamente all'interno dello spazio di memoria della stessa applicazione. Utilizzando una funzione hardware recentemente introdotta nei moderni processori ARM, i ricercatori hanno permesso all'applicazione di ospitare la propria guardia del corpo di sicurezza che può sorvegliare le azioni del programma e proteggere le chiavi sensibili in tempo reale. Il loro lavoro dimostra che è possibile mantenere un alto livello di sicurezza e verificare che un'app si stia comportando correttamente mentre è in esecuzione, operando al contempo quasi alla stessa velocità di un'applicazione non protetta.
La sfida principale che i ricercatori hanno affrontato è stata come mantenere un sistema di sicurezza affidabile isolato da un'applicazione potenzialmente compromessa senza costringerli a comunicare attraverso un confine lento e distante. I metodi tradizionali spesso si affidano all'esecuzione del servizio di sicurezza in un processo completamente separato o in un enclave hardware specializzato. Sebbene questi metodi siano sicuri, richiedono al computer di interrompere l'applicazione principale, cambiare contesto e comunicare attraverso barriere complesse ogni volta che è necessario un controllo di sicurezza. Questo continuo cambio di contesto crea un ritardo significativo, rendendo impraticabili compiti che richiedono decisioni frequenti e rapidissime, come il monitoraggio di ogni passaggio di un programma o la decriptazione di uno streaming video in tempo reale. I ricercatori si sono resi conto che la soluzione risiedeva in una nuova capacità hardware chiamata Permission Overlay Extensions, che consente a un singolo programma di dividere la propria memoria in stanze distinte e isolate con diverse regole di accesso, tutte gestite dal processore stesso.
Utilizzando questa tecnologia, il team ha costruito ARA affinché agisse come un'ancora sicura all'interno dello spazio di indirizzamento dell'applicazione. Quando l'applicazione si avvia, un loader fidato prepara prima l'ambiente, dividendo la memoria in tre aree distinte: una per il codice non fidato dell'applicazione, una per un punto di ingresso controllato e una per i servizi di sicurezza. Al processore viene quindi ordinato di far rispettare regole rigorose su queste aree. L'applicazione principale può leggere e scrivere i propri dati, ma le è completamente vietato toccare la memoria dove risiedono i servizi di sicurezza. Fondamentalmente, l'applicazione non può cambiare queste regole da sola. Anche se un hacker riuscisse a iniettare codice malevolo nell'applicazione, quel codice sarebbe fisicamente incapace di raggiungere l'area sicura o di alterare i permessi che la mantengono al sicuro. L'unico modo in cui l'applicazione può interagire con i servizi di sicurezza è attraverso una porta specifica e pre-approvata che il sistema di sicurezza controlla.
I ricercatori hanno testato questo sistema in due scenari distinti per vedere come si comportasse nel mondo reale. Nel primo caso, hanno simulato un servizio di streaming multimediale che aveva bisogno di decriptare contenuti video utilizzando una chiave segreta. Hanno confrontato il loro nuovo sistema con il metodo standard di utilizzare un processo separato per la decriptazione. I risultati hanno mostrato che il nuovo sistema era drasticamente più veloce. Per un file video di due ore, il metodo tradizionale aggiungeva diversi secondi di ritardo a causa del continuo cambio tra i processi, mentre il nuovo sistema aggiungeva solo una frazione di secondo. Nel secondo caso, hanno testato un sistema che monitora costantemente il comportamento dell'applicazione per garantire che stia seguendo il percorso corretto, un compito che richiede migliaia di controlli di sicurezza al secondo. In questo caso, il nuovo sistema era circa trenta o cinquantaquattro volte più veloce del metodo tradizionale. Il guadagno di velocità derivava dall'eliminazione della necessità di passare tra diversi processi o chiedere aiuto al sistema operativo; i controlli di sicurezza avvenivano direttamente nel flusso dell'applicazione, protetti dall'hardware.
Lo studio ha anche affrontato il modo in cui questo sistema si inserisce nel panorama della sicurezza esistente dei dispositivi mobili. Gli smartphone moderni utilizzano già l'hardware per verificare che un'app sia legittima quando viene installata o avviata per la prima volta. I ricercatori hanno progettato il loro sistema per estendere questa catena di fiducia esistente. Quando l'app si avvia, il dispositivo verifica i servizi di sicurezza proprio come verifica l'app stessa. Ciò significa che un server remoto può essere certo che i controlli di sicurezza in corso all'interno dell'app siano genuini e non siano stati manomessi. Il sistema include anche un metodo per consegnare in modo sicuro le chiavi segrete all'applicazione. Un server può inviare una chiave criptata che solo la specifica istanza verificata dell'applicazione può sbloccare, garantendo che anche se l'applicazione è in esecuzione su un dispositivo compromesso, il segreto rimanga al sicuro all'interno della zona di memoria protetta.
Sebbene il sistema mostri grande potenziale, i ricercatori hanno osservato che la funzione hardware richiesta non è ancora disponibile in alcun dispositivo commerciale. Hanno costruito il loro prototipo utilizzando un ambiente simulato e un processore fisico modificato per dimostrare che il concetto funziona. Hanno anche ammesso che il loro design attuale presuppone che l'applicazione giri su un singolo thread, e che supportare più thread simultanei richiederebbe ulteriori interventi di ingegneria per garantire che le regole di sicurezza siano mantenute correttamente per ogni thread. Nonostante queste limitazioni, il lavoro fornisce una tabella di marcia pratica per un futuro in cui le applicazioni possano essere sia veloci che sicure. Suggerisce che il lungo periodo di compromesso tra prestazioni e protezione non sia inevitabile e che, con il giusto supporto hardware, possiamo avere applicazioni che proteggono i propri segreti e verificano la propria integrità senza rallentare l'esperienza dell'utente.
Sommerso dagli articoli nel tuo campo?
Ricevi digest giornalieri degli articoli più recenti corrispondenti alle tue parole chiave di ricerca — con riassunti tecnici, nella tua lingua.