EMBEDDED
59 • FEBBRAIO • 2016
SOFTWARE
|
VIRTUALIZZAZIONE
68
pio del minimo privilegio. Questa
incongruenza è stata messa in luce
per la prima volta da Levin, Irvine e
Nguyen nel documento “Least Privi-
lege in Separation Kernels” (3) .
Nella figura 1 sono riportati i “sog-
getti” del Least Privilege (entità ese-
guibili attive) e le “risorse” sovrappo-
ste sui “blocchi” dell’SK. Dove l’SK
supporta la granularità del controllo
del flusso per soggetto e per risorse,
sono ben pochi i flussi non desiderati
possibili rispetto al caso in cui il con-
trollo del flusso sia gestito blocco per
blocco.
Virtualizzazione dell’hardware
Al giorno d’oggi è molto diffusa la
pratica di ospitare più sistemi ope-
rativi sul medesimo computer utiliz-
zando software commerciale. La virtualizzazione è
una metodologia che permette ai programmi – siste-
mi operativi inclusi – di girare in un ambiente sof-
tware come se fossero in esecuzione sull’hardware
nativo. Questo ambiente è noto come
Virtual Machi- ne Monitor(VMM) o Hypervisor.
In questi domini desktop, il sistema operativo gira
con privilegi di più basso livello rispetto al VMMsot-
tostante (che deve gestire le risorse), mentre la con-
versione del codice binario “disaccoppia” il sistema
operativo dall’hardware sottostante.
In ambiente enterprise, nel frattempo, la sempre
maggiore popolarità della virtualizzazione ha indot-
to le più importanti aziende di semiconduttori (tra
cui Intel, AMD e ARM) ad aumentare gradualmen-
te il numero di core per CPU e mettere a disposi-
zione un supporto avanzato per la virtualizzazione
dell’hardware.
La virtualizzazione assistita dall’hardware (come ad
esempio la tecnologia di virtualizzazione VT-x di In-
tel) permette di affrontare in modo efficace i proble-
mi legati ai privilegi che sorgono utilizzando le tra-
dizionali tecniche di virtualizzazione software, dan-
do la possibilità di sfruttare in modo più semplice i
vantaggi di questa tecnologia nei sistemi embedded.
Una funzionalità di esecuzione della CPU consente
a un hypervisor di girare in “root mode” al disotto
dei livelli di privilegi normali, in modo da garanti-
re che le prestazioni che si ottengono mediante la
virtualizzazione assistita dall’hardware siano molto
simili a quelle native.
Sfruttare la virtualizzazione dell’hardware e l’LPSK
Nella figura 2 è riportato un SKH (Separation Ker-
nel and Hypervisor). Nella configurazione proposta
i “soggetti” includono un RTOS (Real Time Opera-
ting System), un GPOS (General Purpose Opera-
ting System) e un’applicazione “bare metal “sicura
per implementare una funzione estremamente cri-
tica. I soggetti comunicano il meno possibile utiliz-
zando i meccanismi forniti dall’SKH. Il codice sicu-
ro dell’SKH è caratterizzato da ridotte dimensioni
in quanto è stato progettato per sfruttare la
virtualizzazione dell›hardware. Non è necessario
“compromettere” le prestazioni dell’applicazione se
ciascun soggetto è mappato nel proprio core dedica-
to. Mediante le tre tipiche configurazioni descritte di
seguito è possibile illustrare le potenzialità offerte
da questo approccio.
Separazione IoT sicura tra
i mondi OT (Operation Technology) e IT (In-
formation Technology) -
Un SKH rappresenta
una piattaforma ideale per un gateway IoT. Facen-
do riferimento alla figura 2, si faccia l’ipotesi che un
RTOS (Real Time Operating System) sia utilizzato
per controllare un impianto di processo di tipo “safe-
ty critical”. Dedicando un core della CPU al soggetto
RTOS, le sue prestazioni deterministiche non sono
minimamente compromesse.
Nel frattempo un GPOS (General Purpose Opera-
ting System) mette a disposizione un’interfaccia
Fig. 2 – Mediante la combinazione della virtualizzazione dell’har-
dware e dei principi del Least Privilege e del Separtion Kernel è
possibile implementare numerose opzioni di configurazioni reali
e funzionali