Il sistema operativo Windows XP - Apogeo
Il sistema operativo Windows XP - Apogeo
Il sistema operativo Windows XP - Apogeo
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Poiché il gestore dell'oggetto è l'unica entità che genera handle dell'oggetto, è il posto naturale<br />
per controllare la sicurezza; il gestore dell'oggetto controlla se un processo ha i diritti di accedere<br />
ad un oggetto quando il processo cerca di aprirlo. Inoltre, il gestore fa rispettare le quote, come la<br />
quantità massima di memoria che un processo può usare, caricando un processo per la memoria<br />
occupata da tutti gli oggetti referenziati e rifiutando di allocare più memoria quando i carichi<br />
accumulati superano la quota del processo.<br />
Quando il processo di login autentica un utente, viene associato un token al processo utente. <strong>Il</strong><br />
token di accesso contiene informazioni quali l'identificatore di sicurezza, l’identificatore di gruppo,<br />
i privilegi, il gruppo primario e la lista di default di controllo dell’accesso. I servizi e gli oggetti, a cui<br />
un utente può accedere, sono determinati da questi attributi.<br />
<strong>Il</strong> token che controlla l'accesso è associato con il thread che esegue l'accesso. Normalmente il<br />
token del thread è mancante e commuta sul token di processo, ma i servizi devono spesso eseguire<br />
codice a nome del loro client. <strong>Windows</strong> <strong>XP</strong> permette ai thread di usare una personalità temporanea<br />
mediante il token del client e, di conseguenza, il token del thread non è necessariamente lo stesso del<br />
processo.<br />
In <strong>Windows</strong> <strong>XP</strong>, ogni oggetto è protetto da una lista di controllo degli accessi contenente gli<br />
identificatori di sicurezza ed i diritti di accesso rilasciati. Quando un thread tenta di accedere ad un<br />
oggetto, il <strong>sistema</strong> paragona l'identificatore con il token di accesso del thread per stabilire se è<br />
consentito l'accesso; il controllo avviene solo quando si apre un oggetto, in modo da non sia<br />
possibile negare l'accesso dopo l'apertura. I componenti del <strong>sistema</strong> <strong>operativo</strong> che operano in<br />
modalità kernel evitano il controllo di accesso, poiché il codice in modalità kernel si presume che<br />
sia affidabile e, di conseguenza, deve evitare le vulnerabilità di sicurezza, come il lasciare i controlli<br />
disabilitati mentre si crea un handle accessibile in modalità utente in un processo non affidabile.<br />
Generalmente, il creatore dell'oggetto stabilisce la lista di controllo di acceso per l'oggetto e se<br />
non ne viene data una esplicitamente, si può porre al valore di default mediante la procedura open<br />
del tipo oggetto, oppure si può ottenere una lista di default dall’oggetto dal token di acceso<br />
dell’utente.<br />
<strong>Il</strong> token di accesso ha un campo che controlla la verifica degli accessi all'oggetto; le operazioni<br />
verificate sono annotate nel log di sicurezza del <strong>sistema</strong> con un identificativo dell'utente. Un<br />
amministratore controlla il log per scoprire i tentativi di violazione del <strong>sistema</strong> o di accesso ad<br />
oggetti protetti.<br />
3.3.2 Gestore di memoria virtuale<br />
<strong>Il</strong> componente di codice eseguibile che controlla lo spazio d'indirizzo virtuale, l’allocazione della<br />
memoria fisica e la paginazione è il gestore della memoria virtuale (virtual-memory manager:<br />
VM). <strong>Il</strong> progetto di gestore di VM presuppone che l’hardware sottostante supporti la mappatura da<br />
memoria virtuale a quella fisica, un meccanismo di paginazione e la coerenza trasparente della cache<br />
nei sistemi multiprocessore e che permetta elementi multipli nella tabella di pagina da mappare nello<br />
stesso frame di pagina fisica. <strong>Il</strong> gestore di VM in <strong>Windows</strong> <strong>XP</strong> usa uno schema di gestione basato<br />
sulla pagina di dimensione di 4 Kb nei processori IA32 compatibili, e di 8 Kb in quelli IA64. Le<br />
pagine dei dati allocate ad un processo che non sono in memoria fisica sono memorizzate o nei<br />
file di paginazione (paging files) su disco, o mappate direttamente in un file normale nel file<br />
system locale o remoto. Le pagine possono anche essere marcate come zero-on-demand (zero a<br />
richiesta).<br />
15