Il ruolo di fiducia nella sicurezza del
calcolatore
Il ruolo di fiducia è cruciale a capire la natura
di sicurezza del calcolatore. Gli articoli presentano le teorie
ed i meccanismi per analizzare e l'aumento della sicurezza del
calcolatore, ma tutti i teorie o meccanismi si riposano su determinati
presupposti. Quando qualcuno capisce i presupposti le sue
politiche di sicurezza, meccanismi e le procedure si riposano sopra,
avrà una comprensione molto buona di quanto efficace quei politiche,
meccanismi e procedure sono. Esaminiamo le conseguenze di questo
massimo.
Un coordinatore di sistema riceve una zona di sicurezza
per il sistema operativo del suo calcolatore. Lo installa.
Ha migliorato la sicurezza del suo sistema? Ha
effettivamente, dato la precisione di determinati presupposti:
-
Sta supponendo che la zona è venuto dal fornitore e non
è stata alterata in transito, piuttosto che da un attacker che prova
ad ingannarla nell'installazione della zona bogus che realmente
aprirebbe i fori di sicurezza.
-
Sta supponendo che il fornitore ha esaminato completamente
la zona. I fornitori sono spesso sotto pressione considerevole
pubblicare rapidamente le zone ed a volte esaminarle soltanto contro
un attacco particolare. La vulnerabilità può essere più
profonda, tuttavia ed altri attacchi possono riuscire. Quando
qualcuno ha liberato un'impresa di un codice del sistema operativo del
fornitore, il fornitore ha liberato una zona correggente in 24 ore.
Purtroppo, la zona ha aperto un secondo foro, uno che era ben
più facile da sfruttare. La zona seguente (liberata 48 ore più
successivamente) ha riparato correttamente entrambi i problemi.
-
Sta supponendo che l'ambiente della prova del fornitore
corrisponde al suo ambiente. Altrimenti, la zona non può
funzionare come previsto. Come esempio, la zona del fornitore ha
ripristinato una volta le proprietà dei executables alla radice
dell'utente. Ad alcune installazioni, le procedure di
manutenzione hanno richiesto che questi executables sono posseduti
dallo scomparto dell'utente. La zona del fornitore ha dovuto
undone e riparata per la configurazione locale. Questo
presupposto inoltre riguarda i conflitti possibili fra le zone
differenti, così come le zone che sono in conflitto tra loro (quali
le zone dai fornitori differenti di software che il sistema sta
usando).
-
Sta supponendo che la zona è installata correttamente.
Alcune zone sono semplici installare, perché sono lime
semplicemente eseguibili. Altri sono complesso, richiedente al
coordinatore di sistema di modificare le proprietà network-oriented,
aggiungono un utente, modificano il contenuto di una registrazione,
danno i diritti ad un certo insieme degli utenti ed allora reboot il
sistema. Un errore in c'è ne di questi punti potrebbe impedire
la zona correggere i problemi, come potrebbe una contraddizione fra
gli ambienti in cui la zona è stata sviluppata ed in quale la zona è
applicata. Ancora, la zona può sostenere richiedere i privilegi
specifici, quando in realtà i privilegi sono inutili ed in effetti
pericoloso
Questi presupposti sono ragionevolmente ad alto
livello, ma invalidanti loro c'è ne marche la zona un problema
potenziale di sicurezza.
I presupposti presentano inoltre ad un molto livello più
basso. Consideri la verifica convenzionale, una panacea
oft-oft-touted per i problemi di sicurezza. La funzione
importante è che la verifica convenzionale fornisce una prova
matematica convenzionale che un dato programma P è correctthat è,
dato affatto regolato degli input i, J, K, il programma P produrrà
l'uscita x che la relativa specifica richiede. Questo livello di
assicurazione è più grande di la maggior parte dei programmi attuali
forniscono e quindi rende a P un programma desiderabile.
Supponga che un programma sicurezza-relativo S è stato
verificato formalmente per il sistema operativo O. Che
presupposti sarebbero fatti quando è stato installato?
-
La verifica convenzionale della S è correctthat è, la
prova non ha errori. Poiché la verifica convenzionale conta sui
provers automatizzati di teorema così come analisi umana, i provers
di teorema devono essere programmati correttamente.
-
I presupposti fatti nella verifica convenzionale della S
sono corretti; specificamente, i presupposti tengono
nell'ambiente in cui il programma deve essere eseguito. Questi
presupposti sono dati tipicamente ai provers di teorema così come il
programma S. Una funzione implicita di questo presupposto è che
la versione della O nell'ambiente in cui il programma deve essere
eseguito è la stessa della versione della O usata per verificare la
S.
-
Il programma sarà trasformato in un eseguibile di cui le
azioni corrispondono a quelle indicate dal codice sorgente;
cioè il compilatore, il linker, il caricatore e tutte le
biblioteche sono corretti. Un esperimento con una versione del
sistema operativo di UNIX ha dimostrato come devastare un compilatore
attrezzato potrebbe essere ed i attackers hanno sostituito le
biblioteche con altre che effettuassero le funzioni supplementari,
quindi aumentando i rischi di sicurezza.
-
I fissaggi eseguiranno il programma come previsto.
Un programma che conta sui calcoli della virgola mobile dare i
risultati errati su alcuni circuiti integrati del CPU del calcolatore,
senza riguardo a tutta la verifica convenzionale del programma, a
causa di un difetto in questi circuiti integrati. Similmente, un
programma che conta sugli input da fissaggi suppone che le circostanze
specifiche causano quegli input
Il punto è che tutto il politica, meccanismo, o
procedura di sicurezza è basata sui presupposti che, se errati,
distruggono la sovrastruttura su cui è sviluppata. Gli
analisti ed i progettisti (ed utenti) devono sopportare questo in
mente, perché a meno che capiscano che cosa la politica, il
meccanismo, o la procedura di sicurezza è basata sopra, saltano da un
presupposto ingiustificato ad una conclusione errata. ciò è un articolo aggiunto da Meden Reece
|