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

EMBEDDED

58 • novembre • 2015

software

|

SAFETY & SECURITY

76

ne, ha senso consegui-

re un obiettivo comune

che contempli anche il

concetto di sicurezza

utilizzando le migliori

procedure di protezione

per garantire la difesa

richiesta. Laddove ad

esempio è richiesta la

possibilità per un’appli-

cazione “safety-critical”

di accedere a Internet,

l’adozione di un kernel di

tipo LPSK (Least Privi-

lege Separation Kernel),

rappresenta l’approccio ideale per garantire che

questo accesso non possa compromettere la pro-

tezione e di conseguenza la sicurezza del sistema.

Un SK (Separation Kernel) tradizionale è pro-

gettato per poter ospitare applicazioni e rendere

disponibile un framework di sviluppo in modo da

consentire agli architetti di sistema di realizzare

sistemi di natura modulare adottando il classico

approccio “boxes and arrows”.

L’SK assicura che ciascuna applicazione giri

all’interno di una partizione protetta (box) con

risorse hardware isolate ed è disponibile un mec-

canismo per comunicare (arrow) tra le partizioni

e i dispositivi esterni in modo tale che i flussi di

informazione in un sistema siano esplicitamente

definiti e mediati. Grazie alla protezione dell’in-

tegrità della logica eseguibile e al controllo della

comunicazione del sistema, i progettisti sono in

grado di realizzare sistemi che possono garantire

la sicurezza e la protezione del software, in vir-

tù del fatto che alcune componenti critiche del

software non possono essere corrotte o spiate da

software dannoso o difettoso. Tutto ciò contribui-

sce a semplificare notevolmente sia lo sviluppo di

sistemi critici sia i processi di certificazione per

gli sviluppatori e per coloro preposti alla valuta-

zione del sistema.

Un kernel LPSK si differenzia da un SK tradizio-

nale per il fatto gli accessi tra i componenti del

kernel host e le interfacce delle partizioni delle

applicazioni esterne sono limitati a quelli stret-

tamente necessari.

Si faccia riferimento ad esempio alla figura 1.

L’obbiettivo in questo caso è garantire la prote-

zione delle applicazioni “safety critical” in modo

tale che queste possano girare in un RTOS oppu-

re sotto forma di applicazioni “bare metal” come

la “trusted app” riportata nella medesima figura.

Le applicazioni come il sistema operativo Linux

possono interagire liberamente con Internet per-

ché il partizionamento tra quest’ultimo e la “tru-

sted app” fa in modo che ogni attacco condotto

con successo contro Linux OS non abbia nessun

impatto sulla “trusted app”.

Una configurazione di questo tipo è efficace se le

due partizioni sono in grado di comunicare, ma

la natura stessa del kernel LPSK assicura che

una comunicazione di questo tipo è attentamen-

te regolata, con conseguente minimizzazione dei

rischi per la sicurezza.

Un’altra caratteristica di rilievo è l’adozione del-

la virtualizzazione completa all’interno di ogni

partizione piuttosto che nel kernel, in modo da

esludere un potenziale punto di accesso per even-

tuali minacce.

Questo tipo di approccio permette anche di mini-

mizzare le dimensioni dell’SK, mentre l’assoluta

indipendenza di qualsiasi driver dei dispositivi

dal kernel si riflette favorevolmente sulle dimen-

sioni – si può arrivare a soli 25k linee di codice.

Più ridotto è il footprint (ovvero la quantità mi-

nima di memoria richiesta dal sistema operativo

ed eventualmente dalle applicazioni) minore è la

quantità di codice condiviso e di spazio dei dati

tra le partizioni, con conseguente riduzione delle

opportunità per eventuali attacchi.

In uno scenario “reale” (Fig. 2) ciò significa che

l’SK regola in maniera accurata i percorsi di

Fig. 2 – L’utilizzo di un SK e di un hypervisor garantisce la sicurezza

funzionale di un sistema di controllo “safety critical” dotato di accesso

a Internet