Isolamento


  Share  
|


Processi dell'isolato dei sistemi in due sensi. Nel primo, il processo è presentato con un ambiente che sembra essere un calcolatore che funziona soltanto che processo o quei processi da isolare. Nel secondo, un ambiente è fornito in cui le azioni trattate sono analizzate per determinare se fuoriescono le informazioni. Il primo tipo di ambiente impedisce il processo l'accesso a del sistema di elaborazione di fondo e tutti i processi o le risorse che non fanno parte di quell'ambiente. Il secondo tipo di ambiente non emula un calcolatore. Soltanto altera l'interfaccia fra il calcolatore attuale ed il process(es).

Macchine Virtuali

Il primo tipo di ambiente è denominato una macchina virtuale.

Una macchina virtuale è un programma che simula i fissaggi del sistema di elaborazione di a (possibilmente astratta).

Una macchina virtuale usa un sistema operativo speciale denominato un video virtuale della macchina per fornire una macchina virtuale su cui i sistemi operativi convenzionali possono funzionare

Il vantaggio primario di una macchina virtuale è quello sistemi operativi esistenti non deve essere modificato. Funzionano sul video virtuale della macchina. Il video virtuale della macchina fa rispettare la politica voluta di sicurezza. Ciò è trasparente all'utente. Il video virtuale della macchina funziona come nocciolo di sicurezza.

In termini di politica, il video virtuale della macchina tratta con gli oggetti (gli oggetti che sono le macchine virtuali). Anche se una macchina virtuale sta facendo funzionare le centinaia dei processi, il video virtuale della macchina sa soltanto circa la macchina virtuale. Quindi, può applicare i controlli di sicurezza ai relativi oggetti e quei comandi si applicano ai processi che quegli oggetti stanno facendo funzionare. Ciò soddisfa la regola di relegazione transitiva.

ESEMPIO: Il KVM/370 era una versione sicurezza-aumentata del video virtuale della macchina dell'IBM VM/370. Questo sistema ha fornito le macchine virtuali per i relativi utenti ed uno dei relativi obiettivi era di impedire le comunicazioni fra le macchine virtuali dei codici categoria differenti di sicurezza, in modo da gli utenti nei codici categoria differenti di sicurezza potrebbero usare il sistema allo stesso tempo. Come VM/370, ha fornito alle macchine virtuali i minidisks e che ha permesso che i sistemi ripartissero alcune zone del disc. Diverso di VM/370, ha usato una politica di sicurezza per mediare l'accesso alle zone comuni del disc per limitare le comunicazioni fra i sistemi.


ESEMPIO: Karger ed i colleghe alla Digital Equipment Corporation Hanno sviluppato un video virtuale della macchina (VMM) per il dicembre VAX. Il video è un nocciolo di sicurezza e può operare il VMS o il sistema operativo di Ultrix. I funzionamenti VMM sui fissaggi natali di VAX ed è invocato ogni volta che la macchina virtuale esegue un'istruzione privilegiata. La relativa struttura è tipica delle macchine virtuali destinate per fornire la sicurezza.

Il VAX ha quattro livelli del privilegio: utente, soprintendente, esecutivo e modi del nocciolo. Per fornire una macchina virtuale compatibile, le macchine virtuali devono anche avere quattro livelli del privilegio. Tuttavia, il modo del nocciolo permette che un processo accedi direttamente alle istruzioni privilegiate sui fissaggi di VAX. Il soltanto VMM è permesso fare questo. Le macchine virtuali non possono accedere al modo del nocciolo. La soluzione deve fornire i modi virtuali. Questi modi sono utente della VM (che corrispondono al modo dell'utente), modo del soprintendente della VM ed esecutivo della VM e modi del nocciolo della VM (entrambi modo realmente esecutivo).

Gli oggetti VMM sono utenti e macchine virtuali. VMM ha un sistema di lima di base e piana per il relativo proprio uso e divisorii lo spazio di disc restante fra le macchine virtuali. Quelle macchine possono usare tutta la struttura che di lima vogliono ed ogni macchina virtuale ha relativo proprio insieme dei sistemi di lima. Ogni oggetto ed oggetto fa un'etichetta multilivelli di integrità e di sicurezza formare ed i livelli di integrità e di sicurezza un codice categoria di accesso. Due entità hanno lo stesso codice categoria di accesso se e soltanto se la loro sicurezza ed etichette di integrità è la stessa ed un'entità domina un altro se e soltanto se sia i codici categoria di integrità che di sicurezza si dominano.

Un componente integrale del VMM è un meccanismo di verifica. Questo meccanismo registra le azioni per analisi successiva.


Poiché le macchine virtuali forniscono la stessa interfaccia per la comunicazione con altre macchine virtuali che i calcolatori assicurano, quelle scanalature della comunicazione possono essere controllate o hanno diviso. Come accennato più presto, se un singolo ospite fa funzionare le macchine virtuali multiple, quelle macchine virtuali ripartiscono le risorse fisiche in ospite su cui funzionano. (possono anche ripartire le risorse logiche, secondo come il nocciolo virtualizing è effettuato.) Ciò fornisce una terra fertile per le scanalature segrete.

Sandboxes

Un sandbox del campo da giuoco fornisce un ambiente sicuro per i bambini per rimanere dentro. Se i bambini lasciano il sandbox senza controllo, possono fare le cose che non sono supposti di fare. Il sandbox del calcolatore è simile. Fornisce un ambiente sicuro per i programmi per eseguire dentro. Se i programmi "lasciano" il sandbox, possono fare le cose che non sono supposti per fare. Entrambi i tipi di sandboxes limitano le azioni dei loro occupanti.

Un sandbox è un ambiente in cui le azioni di un processo sono conciliarsi limitato ad una politica di sicurezza.

I sistemi possono fare rispettare le limitazioni in due sensi. In primo luogo, il sandbox può limitare l'ambiente di esecuzione come stato necessario. Ciò è fatta solitamente aggiungendo i meccanismi dicontrollo del supplemento alle biblioteche o al nocciolo. Il programma in se non è modificato. Per esempio, il nocciolo VMM discusso più presto è un sandbox perché costringe gli accessi dei sistemi operativi (invariati) che funzionano su esso. La macchina virtuale del Java è un sandbox perché il relativo responsabile di sicurezza limita l'accesso dei programmi trasferiti alle risorse di sistema come dettate da una politica di sicurezza.

ESEMPIO: Il nocciolo operativo della parete refrattaria di Sidewinder usa il tipo applicazione per limitare i processi. Ciò è un esempio di un sandbox sviluppato in un nocciolo ed ha la proprietà che il sandbox è definito dal fornitore. Non è inteso per essere alterato al luogo. Un tal disegno è tipico per un sistema di chiave in mano, che è l'uso progettato per una parete refrattaria di Sidewinder.

La macchina virtuale del Java, in cui ha trasferito applet è eseguita, è un altro esempio di un sandbox. Il sandbox limita l'insieme delle lime a che il applet può accedere e degli ospiti a cui il applet può collegare. Altri meccanismi di sicurezza aumentano il sandbox.

Il DTE, il tipo meccanismo di esecuzione per DTEL, è un esempio in cui le modifiche del nocciolo permettono ai coordinatori di sistema di configurare i loro propri sandboxes. Il nocciolo fa rispettare i vincoli.


Il secondo metodo di applicazione deve modificare il programma (o processo) da eseguire. I programmi di messa a punto dinamici ed alcuni profilers usano questa tecnica aggiungendo gli scaglioni di fatturazione al codice e, quando la presa accade, analizzando il dichiarare del processo corrente. Un variabile, conosciuto come individuazione dei difetti del software, aggiunge le istruzioni che effettuano i controlli di accesso di memoria o altra controlla mentre il programma funziona, in modo da tutto il tentativo di violare la politica di sicurezza causa un errore.

ESEMPIO: Janus effettua un sandbox. È un ambiente di esecuzione in cui le chiamate del sistema sono bloccate e controllate. Gli utenti lo eseguono per limitare gli oggetti ed i modi di accesso dell'untrusted il programma. Janus consiste di una struttura, che fa il controllo runtime e dei moduli, che determinano quali accessi devono concedersi.

Janus in primo luogo legge una lima di configurazione. Questa lima gli insegna per caricare determinati moduli. Con il modulo l'identificazione è una lista dei vincoli. La seguente lima di configurazione di esempio definisce lo SFI (statistiche finanziarie internazionali) di variabile di ambiente per il bambino e limita l'accesso del bambino al sistema di lima. Il bambino non può accedere ad alcune lime tranne quelli che sono chiamati sotto. Il bambino può leggere o scrivere a tutta la lima nel sistema di lima di /usr tranne quelli nel /usr/lib ed indici di /usr/local/lib (che sono letti soltanto) ed in /usr/bin (colto ed eseguire). Il bambino può leggere tutta la lima nell'indice di /lib e può leggere ed eseguire qualunque lima negli indici di /bin e di /sbin. Nella lima di configurazione qui sotto, la prima parola in ogni linea di istruzione è il nome del modulo e le altre parole sono le discussioni passate ai moduli ("#" comincia un commento).

# modulo di base di base
# definisca il putenv IFS="\t\n" 
PATH=/sbin:/bin:/usr/bin TZ=PST8PDT di variabili di ambiente di sotto 
processo
# neghi l'accesso a tutto a meno che le lime sotto
il percorso di /usr neghino colto, scrivono * il percorso concede 
indicato, scrive /usr/* # permettono che il sotto processo legga le 
lime negli indici delle biblioteche # avuto bisogno di per il percorso
dinamico di caricamento concedono leggono /lib/* /usr/lib/* 
/usr/local/lib/* # avuto bisogno di in modo da il bambino può 
eseguire i programmi il percorso permette indicato, il exec /sbin/* 
/bin/* /usr/bin/*

Ogni modulo costringe le chiamate del sistema. La struttura utilizza i moduli per sviluppare una lista collegata per ogni chiamata controllata del sistema. La lista definisce le azioni permesse e respinte. Una volta che questa lista è stata costruita, la struttura di Janus esegue il programma im modo tale che tutte le chiamate controllate del sistema sono bloccate.

Quando il programma esegue una chiamata controllata del sistema, le prese di programma e la struttura di Janus è invocata. Ha accesso alle discussioni fornite alla chiamata dello sysem. Convalida che la chiamata del sistema, con questi parametri specifici, è permessa. Se la chiamata del sistema non è permessa, la struttura regola l'ambiente del bambino in modo che la chiamata del sistema sembri venire a mancare. Se la chiamata del sistema è permessa, la struttura restituisce il controllo al bambino, che a sua volta passa il controllo al nocciolo. A ritorno, il controllo va alla struttura, che aggiorna tutto l'interno dichiara e ritorni i risultati al bambino.

Un uso di esempio sarebbe nella posta del MIME della lettura. Uno potrebbe regolare il programma della lettura della posta per passare il controllo ad un motore dell'esposizione del postscript. Alcuni tali motori hanno un meccanismo per l'esecuzione degli ordini system-level inclusi nella lima del postscript. Quindi, un attacker ha potuto mettere un ordine di omissione della lima nella lima del postscript. Il destinatario farebbe funzionare il motore dell'esposizione per leggere la lima ed alcuna di lei lime sarebbe cancellata. Tuttavia, l'utente (o coordinatore di sistema) può installare la lima di configurazione di Janus respinge l'esecuzione di tutti i subprograms. Allora l'ordine incluso sarà rilevato (sulla chiamata del sistema per eseguirla) e sarà rifiutato.


Come un video virtuale della macchina, un sandbox fa della base di calcolo di fiducia. Se il sandbox viene a mancare, assicura meno protezione che si crede per fornire. Quindi, accertare che il sandbox effettui correttamente una politica voluta di sicurezza è critico alla sicurezza del sistema.

ciò è un articolo aggiunto da Fred Foster


Share  

© 2005-2010 E-articles.info All Rights Reserved - Terms and conditions