Sicurezza in Windows NT Fabrizio Inguglia. Tratteremo: Struttura generale di Windows NT 4 Gestione...
-
Upload
simone-milano -
Category
Documents
-
view
222 -
download
1
Transcript of Sicurezza in Windows NT Fabrizio Inguglia. Tratteremo: Struttura generale di Windows NT 4 Gestione...
Sicurezza in Windows NT
Fabrizio Inguglia
Tratteremo:
Struttura generale di Windows NT 4
Gestione delle politiche di sicurezza
Com’e Strutturato NT?
NT e’ Object Oriented, in pratica:– Ogni risorsa, servizio, entità e’ un oggetto.– Vantaggi:
Livelli di protezione definiti logicamente: campi e metodi dell’oggetto sono invocati solo da chi ne ha i permessi coerentemente con la nozione di oggetto.
Accesso coerente ad ogni tipo di componente del sistema: non vi è differenza logica tra le varie risorse dai file alle stampanti.
Fornisce nomi leggibili alle risorse del sistema, vedremo
NT e’ multiutente e multithread.– Gestione di più utenti e processi distinti tramite un’ architettura
distribuita.
Oggetti in NT
Il Kernel di NT e’ detto executive, a questo livello abbiamo due tipi di oggetti:– Oggetti executive:sono oggetti visibili ai processi
utente– Oggetti Kernel: oggetti più primitivi, visibili solo
dall’executive
Struttura di un oggetto in NT
Object Name: unico per l’oggetto. Object Directory:Struttura logica di cui
l’oggetto e’ componente. Security Descriptor: implementa
l’auditing dell’oggetto. Quota charges: campo necessario per
il resource accounting. Open Handle counter: numero di
processi che utilizzano l’oggetto. Open Handle Database: quali
processi utilizzano l’oggetto. Type Object pointer: contiene i campi
comuni a tutte le istanze. Reference Count: Indica il numero di
processi kernel che usano l’oggetto.
Object Manager
E la componente che si occupa della gestione degli oggetti, caratteristiche:– Centralizzato: tramite il security descriptor viene
gestito l’auditing da una sola componente.– Riferimento delle risorse ai processi in modo
indiretto tramite l’handling, così i processi utente non hanno accesso diretto alla memoria.
– Gestisce il resource accounting: la contabilità delle risorse in modo che singoli processi utente non monopolizzino il sistema.
Object Manager
Object manager si occupa, su richiesta di un processo utente di:
Allocare memoria per l’oggettoSpecificare il dominio di protezione dell’oggetto
Attaccare all’oggtto un descrtittore di sicurezza e gestire gli accessi dei vari processi utente.
Creare un handle e restituirlo al chiamante
Handling
Ai processi Object Manager fornisce dei riferimenti agli oggetti:
I processi utente non possono interferire con le strutture dati del sistema
Facile monitorare chi e quale oggetto sta utilizzando
Una volta assegnato un handle ad un processo non e’ più necessario conoscerne il nome, riferendosi ad una tabella OM sa per ogni processo quali operazioni gli sono permesse
Handling: esempio
Handling Table del processo A
Handling: algoritmo
Il processo che effettua la richiesta specifica un insieme di diritti desiderati, cioè quello che intende fare con quel oggetto.
Object Manager chiama il monitor dei riferimenti della sicurezza, RSM, spedendo l’insieme dei diritti desiderati dal processo.
RSM, reference sicurity monitor, controlla se il descrittore di sicurezza del processo prevede quei diritti. Se e’ così, viene ritornata a Object Manager la lista dei diritti.
Viene aggiunta un Handle nella handle table del processo dove specifichiamo anche i diritti. In questo modo object Manager li controllerà velocemente.
Resource Accounting
Nell’intestazione degli oggetti esiste un campo che definisce il suo numero di handle aperti → Object Monitor sa in ogni istante qual e’ la disponiblilita’ delle risorse.
Sempre nell’intestazione degli oggetti vi e’ una quota, da sottrarre alla quota totale di memoria che e’ riservata ad un processo di un utente . Questa operazione serve a limitare gli accessi degli utenti alle risorse del sistema.
Domini di protezione:
Un dominio di protezione e’ una coppia:
<nome oggetto,insieme di diritti>.
Specificano quali diritti abbia un processo su un oggetto, in analogia con Unix.
Non necessariamente i domini sono disgiunti.
Domini di Protezione: Esempio
Ogni processo fa parte di un dominio.
Tipicamente i domini sono rappresentati tramite matrici.
La Sicurezza in NT
L’idea che sta dietro la sicurezza in NT:– Creare una porta attraverso la quale ogni utente
delle risorse del sistema deve passare– Le risorse sono gli oggetti– La porta è quindi Object Manager– Le operazioni critiche relative alla sicurezza sono
oggetti kernel
Controllo dell’Accesso
Queste le funzionalità principali che controllano e limitano l’accesso.
– Gli account utente.– Lista di controllo degli accessi.– Descrittore di sicurezza e permessi.
Account Utente
Gli account utente comprendono informazioni su:– Informazioni sull’utente– Appartenenza ai gruppi– Informazioni sulla politica di sicurezza
In questo modo si specificano i “limiti” in cui ad un utente e’ permesso di operare, definendo i diritti dell’utente nel sistema
Account Utenti
Al momento della creazione di un account vengono specificati i diritti di quell’ utente sulle risorse del sistema.
Ad ogni account del sistema è associato un SID (identificatore di sicurezza) univoco.
Quando un utente si collega ogni suo processo ha allegato un Access token che è una sorta di carta di identità dell’utente.
Access Token
Privileges: indica se l’utente può accedere a servizi di sistema particolari, uno di essi potrebbe essere, ad esempio il debug delle applicazioni.
Primary Group: mantiene il SID del gruppo
Default ACL: se l’utente crea un oggetto il campo contiene la lista di utenti e gruppi con i rispettivi diritti di accesso. Collegamento con access control list degli oggetti.
Descrittore di sicurezza e permessi
E’ possibile rendere sicuri tutti gli oggetti denominati in NT. Esiste un descrittore di sicurezza che descrive gli attributi di sicurezza di un oggetto comprende:– Un identificatore di sicurezza (SID) dell’utente o del
proprietario dell’oggetto– Una ACL discrezionale che identifica i diritti di altri
utenti sull’oggetto.– Una ACL di sistema che gestisce i messaggi di
controllo che vengono generati dal sistema.
Descrittore di Sicurezza
E’ proprio grazie all’esistenza dei descrittori di sicurezza che NT implementa l’auditing,cioè tutta quella serie di politiche e soluzioni che permettono di determinare in ogni istante, chi è in possesso di ogni risorsa e che utilizzo ne sta facendo, in modo da impedire abusi o utilizzi non autorizzati.
Questo importante controllo è demandato all’Object Manager e all’ Reference Security Monitor come visto in precedenza.
Lista di controllo degli accessi
Componente principale del security descriptor è gestita dall’utente a sua discrezione.
Abbiamo una Access Control Entry per ogni utente o gruppo che ha diritti sul nostro oggetto. Se l’utente al momento della creazione non la specifica viene utilizzata quella contenuta nel suo token di accesso.
Domini
Dominio di rete è un raggruppamento logico di server di rete e altri computer che condividono informazioni comuni sulla sicurezza e sugli account per ogni utente.
All’interno dei domini gli amministratori creano un account per ogni utente.
Gli utenti si collegano poi al dominio e non ai server singoli del dominio.
Esiste un database che mantiene le informazioni sulla sicurezza e sugli account per ogni dominio.
Al momento del logon questo database viene utilizzato per controllare l’esattezza i dati inseriti.
Tutti gli utenti accedono a una serie di risorse condivise.
Gestire più domini
Un’esigenza importante può essere quella di avere più domini per una singola organizzazione.
In tal caso NT propone soluzioni diverse:– Modello a dominio singolo: ogni dominio è isolato dagli altri,
anche se un utente ha accesso ad un altro dominio non può entrare.
– Modello a Dominio principale: progettato per grosse organizzazioni, ha una struttura gerarchica con un dominio principale.Un utente può appartenere a più domini.
– Modello su fiducia:non vi è alcun dominio principale, ogni dominio gestisce i propri utenti, ma si fida anche degli altri domini, un utente che vi ha accesso e’ autorizzato ad entrare.
Componenti dei domini
Ogni dominio ha delle componenti in modo indipendente dal modello scelto:– Domain Controller– Relazioni di fiducia– Servizio di NetLogon
I Domain Controller
I domain controller sono computer con Windows NT Server, la loro funzione è molteplice:
– Mantengono le informazioni di sicurezza sui domini utilizzando una directory condivisa detta Database Directory
– Gestiscono tutte le relazioni utente/dominio come ad esempio l’autenticazione di un utente che si collega ad un account di dominio.
– Sono Previsti due tipi di domain controller: Primary Domain Controller: tiene traccia dei cambiamenti
effettuati agli account e memorizza le informazioni nella DBdirectory; è unico per ogni dominio
Backup Domain Controller: mantiene un backup del Dbdirectory è sincronizzato regolarmente.
Relazioni di fiducia
Una relazione di fiducia è la politica adottata da due domini in un’unità amministrativa per autorizzare o meno l’accesso alle risorse presenti su entrambi i domini. Possono essere di due tipi:
– Monodirezionale: un dominio concede fiducia agli utenti dell’altro dominio per l’utilizzo delle risorse. Le risorse che si rendono disponibili sono nel dominio che concede fiducia (trusting) e i gli account che possono utilizzarli sono nel dominio che riceve fiducia (trusted).
– Bidirezionale:è costituita da due relazioni di fiducia monodirezionale ogni dominio concede fiducia agli utenti dell’altro dominio.
Il servizio di NetLogon
Le funzionalità offerte dal servizio NetLogon sono:– Autenticazione dell’utente, cioè fornire agli utenti un
singolo punto d’accesso al PDC.– Sincronizzazione dei cambiamenti nel database
directory tra il PDC e il vari domain controller
Se un utente tenta il logon su un computer che non e’ PDC o BDC allora il computer utilizzato elabora le richieste di logon e le passa ad un domain controller..
Autenticazione dell’utente
Il servizio NetLogon autentica la richiesta in tre passaggi:
1. Scoperta: quando il computer viene avviato, deve determinare la posizione di un domain controller all’interno del dominio ad esso si farà riferimento per ogni richiesta di logon. La localizzazione del domain controller e’ detta scoperta.
2. Impostazione del canale di sicurezza: viene utilizzato un account di sicurezza che rende il canale di comunicazione sicuro.
3. Pass-through autentication che viene verificata quando l’utente intende collegarsi ad un dominio che non e’ quello locale, come ad esempio il log di ogni studente al dominio EDUC.
Autenticazione: Pass-through autentication
Pass-through autenticaion: la richiesta perviene al domain controller che controlla che il dominio corrisponda il proprio, se lo e’ convalida il logon altrimenti controlla per i domini trusted. Se esiste un domain controlled trusted che riconosce l’account utente il logon viene accettato.