Table of Contents Table of Contents
Previous Page  73 / 84 Next Page
Information
Show Menu
Previous Page 73 / 84 Next Page
Page Background

73

EMBEDDED

63 • FEBBRAIO • 2017

CONNECTED CAR |

SOFTWARE

SK - Separation Kernel

I principi prima delineati non rappresentano cer-

to una novità. L’introduzione della virtualizza-

zione assistita dall’hardware (Intel VT, ARMv7

& v8, estensioni della virtualizzazione NXP, vir-

tualizzazione MIPS e così via) ha permesso di eli-

minare gli oneri aggiuntivi legati alla loro imple-

mentazione pratica, trasferendo questo processo

dal software all’hardware.

Il Separation Kernel abbina i principi del minimo

privilegio e degli SK con questa tecnologia di vir-

tualizzazione dell’hardware in modo consentire

l’implementazione di ogni “soggetto” teorico sotto

forma di VM. Quindi, contro i 19,5 milioni di linee

di codice sorgente (SLOC – Source Line of Code)

richieste dal KVM dell’hypervisor di tipo 1, un ap-

proccio come quello appena descritto dà luogo a un

SK che richiede circa 25.000 SLOC, che rappresen-

ta una risorsa condivisa senza dubbio più semplice.

I principi del minimo privilegio sono soddisfatti

assicurando che l’SK non includa nulla che pos-

sa essere gestito logicamente nello spazio uten-

te (User Space) compresi driver dei dispositivi,

VMM (VM monitor) e stack di I/O critici.

Per quanto riguarda le funzionalità dell’hypervi-

sor non vi è spazio per i compromessi, in quanto

ciascuna VM è dotato di una “Virtual Motherbo-

ard” che fornisce le risorse previste dall’architet-

À

-

-

seguenza, ciascun sistema operativo supportato

dall’hardware sottostante può essere ospitato

dall’SKH (Separation Kernel Hypervisor).

Microkernel

A questo punto val la pena segnalare che il prin-

cipio del minimo privilegio non riguarda solo l’SK.

La tecnologia microkernel, che sfrutta tale princi-

pio di essenzialità,

4

À

’era prece-

dente a quella della virtualizzazione dell’hardwa-

re e ha rappresentato una soluzione senza dubbio

valida considerando l’hardware allora disponibile.

A quei tempi gli architetti che si occupavano della

realizzazione del microkernel potevano prendere

in considerazione due livelli di privilegi (livello su-

pervisore e livello privilegi dell’utente) e molti di

essi hanno sfruttato in modo egregio tali privilegi

facendo girare il codice potenzialmente vulnerabi-

le (come ad esempio i driver dei dispositivi) nello

spazio utente (User Space) piuttosto che nello spa-

zio supervisore (Supervisor Space).

L’avvento della virtualizzazione dell’hardware è

stato accompagnato da un livello di privilegio per il

VMM (Virtual Machine Monitor) che ha comporta-

to l’insorgere di un dilemma per quel che riguarda

l’architettura del microkernel. Nel caso venga igno-

rato il livello di privilegio più elevato, si viene a cre-

À

1

non è tenuto assolutamente conto. Per contro, nel

caso i privilegi del codice relativo al precedente spa-

zio supervisore siano trasferiti a questo nuovo livel-

lo di privilegio, vi sarebbe una notevole quantità di

codice che gira a un livello più alto rispetto a quello

necessario per lo svolgimento della sua funzione.

Nella fattispecie, il progetto del microkernel ha su-

bito un’evoluzione per gestire la virtualizzazione

dell’hardware e i livelli di privi-

legio associati e alcuni microker-

nel possono persino utilizzare la

virtualizzazione dell’hardware.

È comunque inevitabile che uno

sviluppo di questo tipo abbiamo

portato all’adozione di un com-

promesso in virtù del quale par-

te del codice girerà a un livello

di privilegio più elevato rispetto

a quanto previsto dal principio

del minimo privilegio. Nei casi in

cui la sicurezza rivesta un’impor-

tanza critica, un compromesso di

questo tipo non è accettabile.

Una soluzione di separazione per

applicazioni “security critical” ca-

pace di minimizzare in modo ot-

Fig. 3 – La sovrapposizione dei principi del minimo privilegio (Least

Provilege) sui blocchi dell’SK garantisce una granularità molto fine

per quanto riguarda il controllo a livello di risorse e soggetto