31.05.2013 Views

Il sistema operativo Windows XP - Apogeo

Il sistema operativo Windows XP - Apogeo

Il sistema operativo Windows XP - Apogeo

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!