EMB_78

61 EMBEDDED NOVEMBRE HYPERVISOR | SOFTWARE con i loro kernel e pacchetti software composti da milioni di righe di codice, forniscono un in- teressante set di programmi preconfezionati di frequente utilizzo. Poiché è praticamente impos- À } - tabile che Linux e Android continueranno a pre- sentare vulnerabilità di sicurezza e bug. Inoltre, la natura sempre più interconnessa dei sistemi embedded consente agli hacker di sfruttare det- te vulnerabilità, a volte anche permettendo loro di eseguire attacchi da remoto. Per rendere tali sistemi più sicuri, il primo requisito è quello di isolare e tenere sotto controllo le funzionalità dell’intero dispositivo. L’utilizzo di un metodo di protezione multilivello come MILS (Multiple Independent Levels of Security) è un modo per garantire la sicurezza di apparati che utilizzano sistemi operativi vulnerabili. È qui che entra in gioco la virtualizzazione: la virtualizzazione è la possibilità di eseguire un sistema operativo, detto Guest, su un altro sistema operativo, detto Host. L’hypervisor fornisce l’ambiente di virtualizza- zione al guest. Contestualmente all’esecuzione di diversi guest sul sistema, l’hypervisor si impegna anche a mantenerli isolati, fornendo una sicurez- À Il kernel “a separazione” La migliore architettura di un sistema operativo che garantisca sicurezza e protezione è comune- mente accettato sia quella di un kernel “a sepa- razione”: un sistema in cui solo una quantità mi- nima di codice viene eseguito al massimo livello di privilegi. Il kernel a separazione è costituito da “compartimenti” denominati partizioni, ognuna delle quali è associata all’esecuzione di un singo- lo processo software. All’interno della partizione, la separazione non è garantita: tuttavia, se il co- dice ha errori, o se è stato compromesso, non è possibile per il codice di aver accesso all’esterno À comportamento di altre partizioni o del kernel a separazione stesso. La virtualizzazione, combinata con un kernel a separazione, offre funzionalità avanzate agli svi- luppatori software di sistemi embedded che han- no bisogno di: # siano esenti da interferenze; Á - stema di comunicazione, con la possibilità di ag- À À ove necessario; ! - sitivi, assicurandosi che le risorse non autorizza- te siano inaccessibili. A tale proposito, il kernel a separazione fornisce tutte le funzioni di sicurezza che il guest non rie- sce a garantire. La parte dell’hypervisor che abi- lita il sistema operativo guest viene eseguita nel- lo stesso spazio applicativo del guest e, in effetti, non ha nemmeno bisogno di trovarsi in modalità privilegiata, per cui è in esecuzione come applica- zione sul kernel a separazione. In questo scena- rio, un sistema operativo guest non attendibile, come Linux o Android, viene eseguito all’interno di una partizione. Ciò permette di garantire la protezione delle risorse di memorizzazione e il controllo sicuro degli accessi per dispositivi di I/O e per altri oggetti del sistema, nonché di riparti- À tra i core del processore. Con la separazione dei componenti di sistema in partizioni diverse, un utente malintenzionato dovrebbe compromettere À o accedere ai dati sensibili, e non riuscirebbe co- munque ad avere l’accesso all’intero sistema gra- zie alla compromissione di un solo servizio. Come proteggere i dati sensibili Poiché gli hacker puntano sempre più a violare i dispositivi embedded basati su IoT (Internet of Things), occorre disporre di un’architettura soft- ware robusta per poter mettere in sicurezza i di- spositivi e proteggere i dati sensibili. Tutti i dati sensibili devono essere isolati in partizioni sepa- rate, lasciando le altre applicazioni in esecuzione sul sistema operativo guest, ad esempio Linux o Android. In questo modo, le applicazioni critiche per la sicurezza vengono isolate dalle applicazio- ni meno sicure e connesse, anche se resta comun- que il vantaggio di poter utilizzare infrastrutture Á 4 Tuttavia, un’applicazione dannosa in esecuzione sul sistema operativo guest potrebbe sfruttare i bug del software di virtualizzazione in alcuni tipi di sistemi di virtualizzazione per ostacolare o accedere ad altri guest o ad altre partizioni e quindi violare la riservatezza, l’integrità e la di-

RkJQdWJsaXNoZXIy MTg0NzE=