EMB_78

EMBEDDED NOVEMBRE 62 SOFTWARE | HYPERVISOR sponibilità del codice o dei dati. Per questo moti- vo, il sistema di virtualizzazione deve essere in grado di garantire la separazione tra i guest e le partizioni. L’architettura a microkernel di alcuni kernel a separazione, come il sistema in operati- vo in tempo reale (RTOS) INTEGRITY di Gre- en Hills Software, garantisce che la dimensione del kernel resti piccola e sia quindi più facile da À À - curezza. Nelle architetture a microkernel, solo i servizi di base fanno parte del kernel: supporto per la comunicazione tra le partizioni (IPC), ge- stione della memoria virtuale e scheduling. Esistono altri approcci per supportare più con- testi del sistema operativo rispetto all’utilizzo di un kernel a separazione o di un hypervisor di tipo 1 classico. Linux Containers, in breve LXC, è un metodo per eseguire più sistemi Linux isolati (contenitori) su un host di controllo, utilizzando un singolo kernel Linux. Le jail di FreeBSD uti- lizzano uno schema simile di contenitori con uno userland compatibile con BSD. Ma i contenitori non risolvono gli attacchi a livello di kernel, in particolare ai driver dei dispositivi, che sono in esecuzione con privilegi su Linux/BSD. I con- tenitori sono meno sicuri degli hypervisor con kernel a separazione perché il kernel che ospita À più grande di un kernel a separazione. La mino- À F ! probabilità che un attacco tramite escalation dei privilegi consenta a un utente malintenzionato di compromettere la sicu- rezza di una macchina vir- Á componenti del sistema. Consideriamo lo scenario À Q cui una generica applica- zione security-critical deve scambiare messaggi riser- vati su Internet, archivia- À presentare un’interfaccia uomo-macchina all’utente À - nerabilità di Linux e/o in- stallando un programma malware, un utente malin- tenzionato può potenzialmente assumere il con- trollo dell’intero sistema. Per contro, utilizzando un kernel a separazione sicuro che fornisce anche la virtualizzazione, è possibile migliorare la sicurezza del sistema illu- À Q À [ security-critical dell’applicazione Linux sono sta- ti convertiti in applicazioni native per il kernel a separazione e isolati in partizioni diverse. I com- ponenti software di diverse partizioni possono interagire utilizzando sistemi protetti IPC (Inter Partition Communication). In questo scenario le funzionalità di sicurezza saranno gestite da un’applicazione nativa del kernel a separazione "& À [@ uno spazio di indirizzamento diverso da quello dove risiede il sistema operativo ospite (Linux). Per poter utilizzare le features di sicurezza (es. À À @ - nux sfrutterà uno degli IPC messi a disposizione dal kernel a separazione in modo da poter inviare le richieste all’applicazione nativa “Secure Servi- ces”. Inoltre l’applicazione nativa Network Stack/ _ # ~ À - chetti fondamentali nei sistemi sicuri. In questo schema, il kernel a separazione ga- rantisce la sicurezza in modo equivalente a un sistema ARM TrustZone o ad altri meccanismi di isolamento supplementari, utilizzando però una tecnologia di virtualizzazione assistita dall’hard- # Á `5 ƒ% K ƒ‚ Fig. 1 – Applicazione security-critical in esecuzione su sistema operativo Embedded Linux

RkJQdWJsaXNoZXIy MTg0NzE=