Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Impostazione delle policies di sistema

Correggere l'installazione standard del sistema operativo
Correggere l'installazione standard del sistema operativo
Link copiato negli appunti

Lo scopo di questa sezione è di fornire delle indicazioni utili per le
impostazioni delle policies di sistema in modo da definire una politica di
accesso alle risorse tale da ridurre al minimo le possibili vulnerabilità o le
lacune derivanti di regola da una installazione standard del sistema
operativo.
Tutte le indicazioni date di seguito fanno riferimento ad una
macchina configurata come server web stand-alone cioè non facente di alcun
dominio Windows 2000.

Local Security Policy

Una volta terminata l'installazione del sistema operativo è possibile
regolamentare molti degli aspetti relativi alla sicurezza del sistema accedendo
alla finestra Local Security Settings e ridefinendo le impostazioni di
default per le varie aree Account, Local, Public Key ed IpSec (Figura 1).

Figura 3. Pannello di controllo delle policies
Pannello di controllo delle policies

Peraltro, oltre all'utilizzo della interfaccia grafica, è possibile impostare
le politiche di sicurezza anche attraverso l'uso di template, definiti mediante
il Security Template snap-in, che rappresentano un modo semplice di
raggruppare tutti gli attributi che complessivamente formano una policy.

Un principio fondamentale da tenere bene a mente è quello del
bilanciamento tra le esigenze di sicurezza e la fruibilità del sistema: in base
a questo principio l'impostazione di regole estremamente rigide non giova al
sistema quando la loro rigidità è tale da renderlo poco fruibile.

Prima di cambiare le impostazioni standard
è sempre una buona idea salvare le impostazioni correnti selezionando la voce di
interesse, cliccando con il pulsante destro del mouse e scegliendo la voce di
menù Export List.

Inoltre tutte le impostazioni suggerite in questa
sezione dovrebbero essere preventivamente valutate in un ambiente di test per
identificare e risolvere eventuali malfunzionamenti e, soltanto al termine di
questa fase, essere riprodotte in un ambiente di
produzione.

Security Accounts Manager (SAM)

Uno dei componenti principali di Windows 2000 è il SAM detto anche Security
Accounts Manager all'interno del quale sono conservati gli account degli utenti
di sistema e gli hash delle loro password.

Per impostazione predefinita
il SAM è criptato usando una chiave di startup memorizzata nel sistema locale.
Questa chiave contiene a sua volta un codice hash che viene processato durante
la fase di avvio in modo che il database degli account sia decifrato e caricato
in memoria dove rimane a disposizione del sistema.

La locazione della
chiave di criptazione può essere cambiata tramite l'utility syskey.exe
scegliendo l'opzione Update. Questo strumento consente in particolare di
memorizzare la chiave in un floppy disk di cui naturalmente vanno create
molteplici copie di backup da conservare in un luogo sicuro considerato che, in
mancanza del floppy, il sistema, non potendo decifrare il SAM, rifiuterà
qualsiasi tipo di operazione e rimarrà pertanto inutilizzabile.

Sui
sistemi che fungono da domain controller Windows 2000 il SAM è contenuto
all'interno di Active Directory mentre su tutti gli altri sistemi il SAM
continua ad essere memorizzato nel registro alla posizione
HKEY_LOCAL_MACHINESAM ed in un file locale, bloccato dal sistema, all'interno
della cartella %systemroot%system32config.
Peraltro va ricordato che anche
in Windows 2000 come nel precedente Windows NT 4 il SAM continua ad essere
soggetto alla stessa tipologia di attacchi che mirano tutti a catturare una
copia di tale database tramite:

  • il boot del sistema con un floppy disk e la lettura del filesystem NTFS con
    programmi del tipo NTFSDOS;
  • l'utilizzo della copia di backup del SAM creata con l'utility Rdisk (ora
    NTBackup) posta dentro la directory %systemroot%repair;
  • l'estrazione diretta degli hash dal file del SAM tramite programmi come
    L0pthcrack;
  • la cattura degli hash scambiati durante i meccanismi di challenge/response
    che presiedono all'autenticazione degli utenti in rete utilizzando il programma
    L0pthcrack

Account utente

La definizione di regole ben precise assume un ruolo chiave per il
mantenimento di adeguati livelli di sicurezza del sistema ed è in grado di
evitare una serie di pericolosi attacchi che tentano di sfruttare debolezze o
lacune concernenti alcuni aspetti della gestione degli account. Le regole minime
da seguire sono le seguenti:

  • disabilitare tutti gli utenti non necessari (es: Guest, TsInternetUser se
    non si utilizza il terminal server);
  • rinominare l'account amministratore con qualunque altro nome che non lasci
    trapelare in alcun modo informazioni sull'importanza dell'account;
  • creare un account chiamato Administrator, senza alcun diritto, da utilizzare
    come esca;
  • creare account differenti per ciascuno degli utenti amministrativi ed
    assegnare ad ognuno di essi soltanto i privilegi strettamente necessari;
  • creare un account per ogni utente ed assegnare ad ognuno di essi soltanto i
    privilegi strettamente necessari;
  • raggruppare gli utenti in gruppi in base alle attività che ciascuno di essi
    deve compiere ed assegnare al gruppo di appartenenza soltanto i privilegi minimi
    indispensabili;

Password

La violazione delle password è senza dubbio il più classico dei modi in cui
un sistema può essere compromesso. Il procedimento che porta alla scoperta di
una password può essere caratterizzato dall'impiego di tecniche differenti
(attacchi a forza bruta, basati su dizionario, ingegneria sociale, etc...) ma
ciò assume rilevanza soltanto per evidenziare due aspetti salienti: l'assoluta
necessità di adottare password caratterizzate da una certa complessità e una
politica che imponga la modifica obbligatoria delle password ad intervalli di
tempo opportuni. Tutte le password dovrebbero comunque rispettare una serie di
requisiti minimi:

  • avere una lunghezza compresa tra 6 a 14 caratteri;
  • contenere numeri e lettere in alternanza ed utilizzare minuscole e maiuscole
    insieme;
  • contenere anche caratteri non alfanumerici (es:
    @,._-/+*=<>;:'"?|`~!#$%^& (){}[]) quanto meno per tutti quegli
    account in possesso di privilegi di sistema delicati (amministratori, backup
    operators, power users);
  • non utilizzare i comuni vocaboli presenti nei dizionari, come nomi di
    persone, posti o date;

Inoltre occorre verificare attentamente le seguenti impostazioni presenti
nella sezione Account Policies | Password Policy del Local Security
Policy:

  • Enforce password history: determina il
    numero di nuove password che l'utente deve cambiare prima di poter utilizzare
    una vecchia password (valori ammessi da 0 a 24 , consigliato 6);
  • Maximum password age: determina dopo
    quanti giorni l'utente viene obbligato dal sistema a cambiare la password
    (valore di default 42 giorni, consigliato da 30 a 60 giorni);
  • Minimun password age: determina il numero
    minimo di giorni prima che il sistema dia la possibilità all'utente di cambiare
    la password (il valore di default pari a 0 è sufficiente ed indica la
    possibilità per l'utente di cambiare la password in qualsiasi momento);
  • Minimum password length: indica il numero
    minimo di caratteri che la password deve contenere (valore consigliato 6
    caratteri);
  • Password must meet complexity
    requirements
    : questo parametro costringe l'utente a scegliere le password in
    modo che esse rispettino requisiti di complessità variabili a seconda della
    libreria utilizzata. La Microsoft stessa mette a disposizione una libreria
    chiamata passfilt.dll che fornisce un livello di sicurezza di base ma possono
    comunque essere utilizzate anche altri librerie sviluppate da terze parti
    (valore di default Disabled, consigliato Enabled);
  • Store password using reversible encryption for
    all user in the domain
    : questo parametro va impostato su Enabled solo quando
    occorre utilizzare il Challenge Handshake Authentication Protocol (ad es. con
    Internet Information Server 5.0 allorquando viene scelta come modalità di
    autenticazione il "Digest Authentication" (il valore di default Disabled);

Per avere un riscontro pratico sulla facilità o meno con la quale è possibile
identificare una password che non rispetta i requisiti appena citati si può far
uso di uno dei tanti strumenti disponibili in rete (ad. es. per le piattaforme
Windows il miglior password cracker è senza dubbio L0phtCrack disponibile
all'indirizzo http://www.atstake.com).

Blocco degli utenti

Una delle caratteristiche del sistema operativo che è possibile utilizzare
contro gli attacchi che tentano di indovinare le password è quella concernente
il blocco degli utenti dopo un certo numero di tentativi falliti di
login.
Le relative impostazioni si trovano nella sezione Account
Policies | Account Lockout Policy
del Local Security Policy e sono:

  • Account lockout duration: indica la durata in minuti del blocco
    dell'utente. Questo parametro va impostato con un valore uguale a 0 solo se si
    vuole che sia l'amministratore a sbloccare l'account (valore consigliato 30
    minuti);
  • Account lockout threshold: indica il numero di tentativi di login
    falliti necessari affinchè l'account sia bloccato. Impostando a 0 questo
    parametro l'Account Lockout Policy viene disabilitato (valore consigliato 5);
  • Reset account lockout counter after: indica i minuti che devono
    trascorrere prima di azzerare il contatore dei tentativi di login (valore
    consigliato 30 minuti);

Filesystem

Windows 2000 supporta oltre ad NTFS anche i file system di tipo FAT e FAT32
ma questi ultimi non consentono un elevato livello di sicurezza per cui è di
fondamentale importanza che tutti i dischi del server siano formattati facendo
uso di NTFS.
Un altro accorgimento consiste nell'installare il sistema
operativo in una directory differente da quelle proposta come default
(WINNT) in modo da rendere più difficoltosa l'esecuzione di attacchi che danno
per scontata la presenza della cartella WINNT.
Subito dopo l'installazione è
opportuno azzerare i privilegi esistenti per tutte le partizioni logiche di
tutti i dischi in modo da rimuovere ogni occorrenza del gruppo Everyone
ed impostare i privilegi così come indicati in tabella, utilizzando l'opzione di
che consente la propagazione dei nuovi privilegi a tutti i file e le
sottocartelle:

Administrators

Authenticated
Users

Creator
Owner

System

Full Control

X

X

X

Modify

X

Read and Execute

X

List Folder Contents

X

Read

X

Write

X

Inoltre è importante rimuovere tutti i permessi per il gruppo
Authenticated User relativi alla directory di sistema ed agli oggetti in
essa contenuti dando invece tale gruppo i permessi sotto elencati per le
relative cartelle:

Full
Control

Modify

Read
and Execute

List
Folder Contents

Read

Write

Documents and Settings

X

X

X

X

X

WinNTInstaller'>

X

X

X

X

X

WinNT System32Spool

X

X

X

X

X

WinNT System32Config

X

X

X

X

X

WinNT Repair

X

X

X

X

X

WinNTSystem32SpoolDrivers

X

X

X

Al termine di queste due fasi è possibile impostare i permessi per le
cartelle dei vari utenti nel modo più appropriato.

Condivisioni amministrative

In Windows 2000 ogni partizione logica di ciascun disco è caratterizzata
dalla presenza di una condivisione sulla root che assume un nome del tipo
<NomeDrive>$ (es: C$ o D$). Inoltre in aggiunta a quelle
appena menzionate esistono altre condivisioni speciali:

  • ADMIN$: è presente per consentire
    l'amministrazione del sistema da remoto e corrisponde al path della root di
    sistema (variabile d'ambiente %SYSTEMROOT%);
  • IPC$: è utilizzata dal sistema per le comunicazioni inter-processo;
  • PRINT$: è utilizzata per l'amministrazione da remoto delle stampanti e corrisponde al percorso %SYSTEMROOT%SYSTEM32SPOOLDRIVERS
  • NETLOGON: è usata dal servizio di Net Logon (solo per i sistemi facenti parte di un dominio);
  • FAX$: è utilizzata dai client come cache durante la spedizione di fax;

Queste sono in realtà condivisioni amministrative e non standard tanto che
esse risultano invisibili all'utente ignaro della loro esistenza ma non ad un
eventuale aggressore che conosca il fatto suo.
In effetti chiunque sia
a conoscenza del nome e della password di un utente appartenente a gruppi con
privilegi amministrativi o elevati (ad es. membro del gruppo Backup Operators)
può connettersi facilmente ad una condivisione di questo genere e guadagnare
accesso agli oggetti in essa contenuti.
Le condivisioni amministrative
possono essere temporaneamente disabilitate: a tal fine è sufficiente cliccare
con il pulsante destro del mouse in corrispondenza della root della partizione
desiderata, selezionare la scheda Sharing e poi la voce Do not share
this folder
.
Nonostante questo accorgimento le condivisioni saranno
nuovamente impostate in modo automatico alla successiva ripartenza del
server.
Un altro modo per disabilitare queste condivisioni consiste nel
disabilitare il servizio di sistema Server in modo da impedire a
chiunque di connettersi da remoto alla risorsa condivisa.
Ovviamente anche se
queste operazioni servono a rendere il sistema più sicuro occorre prestare
particolare attenzione in quanto potrebbe venire compromesso il normale
funzionamento di alcuni programmi.

Creazione di condivisioni

La possibilità di creare delle condivisioni aggiuntive dovrebbe sempre essere
vagliata attentamente. In ogni caso quando una risorsa viene condivisa sulla
stessa viene assegnato il privilegio di Full Control al gruppo
Everyone per impostazione predefinita.
Poichè questa impostazione è
troppo lacunosa in termini di sicurezza è necessario sostituire il gruppo
Everyone con quello Authenticated Users.
La seguente
tabella riepiloga le azioni possibili su di una risorsa condivisa sulla base dei
permessi assegnati:

Azione

Full
Control

Change

Read

Visualizzazione del nome dei file e dei subfolder

X

X

X

Navigazione attraverso i subfolder

X

X

X

Visualizzazione dei dati nei file ed esecuzione degli
eseguibili

X

X

X

Aggiungere file e subfolder al folder condiviso

X

X

Modifica dei files

X

X

Cancellazione dei subfolders e dei files

X

X

Modifica dei permessi

X

Acquisizione della proprietà

X

Registro di configurazione

In linea di massima le impostazioni di default di Windows 2000 per quanto
concerne il registro di configurazione sono sufficienti.
In ogni caso un
ulteriore livello di sicurezza deriva dalla disabilitazione del servizio di
sistema Remote Registry Service in modo da impedire l'accesso da remoto.

Auditing

Una buona politica di sicurezza non può prescindere dall'utilizzo dei
meccanismi di auditing che implicano la registrazione di determinati tipi di
eventi.
L'impostazione di default del sistema operativo non prevede
l'utilizzo di tali meccanismi che vanno dunque abilitati dalla sezione
Security Settings | Local Policies | Audit Policy del Local Security
Policy in modo da riprodurre le seguenti impostazioni:

Azione

Evento

Success

Failure

Audit Account Logon Events

Logon o logoff ad un computer remoto

X

X

Audit Account Management

Creazione,cancellazione, o modifica di uno user account
o un gruppo. Rename di uno user account

X

X

Audit Directory Access

Accesso di un utente ad un oggetto di un Active directory

Audit Logon Events

Logon o logoff / connessione di rete al computer locale

X

X

Audit Object Access

Accesso di un utente ad un oggetto di sistema (es: file,
directory,chiavi di registro, stampanti e ecc..)

X

Audit Policy Change

Modifica delle policies

X

X

Audit Privilege Use

Utilizzo da parte di un utente dei suoi privilegi

X

X

Audit Process Tracking

Attivazione dei processi, chiusura dei processi, etc..

Audit System Events

Restart o Shutdown del sistema

X

X

Gli eventi monitorati vengono aggiunti al Security Log e per
facilitare la loro consultazione può essere utile usare uno dei tanti strumenti
sviluppati da terze parti e disponibili in rete.
Poichè in base alle
impostazioni mostrate il numero degli eventi registrati può diventare molto
numeroso e per evitare di perdere le evidenze di particolari attività sospette è
essenziale aumentare sensibilmente le dimensioni del log di sicurezza in modo da
portarle ad una dimensione di almeno 10 megabyte (il default è 512 Kbyte) ed
abilitare l'opzione Overwrite events older than fissandola ad un valore
di 30 giorni così da poter consultare il registro fino ad un mese
prima.
Altrettanto importante è prevedere delle politiche per il backup
periodico (infrasettimanale se non giornaliero) dei log su supporti sicuri in
modo da poter procedere ad un ripristino delle situazione nel caso di avvenuta
compromissione.
L'abilitazione di attività di auditing è anche possibile in
riferimento al filesystem NTFS purchè sia stato preventivamente attivato l'Audit
Object Access per gli eventi Success e/o Failure.
A tal fine occorre cliccare
con il tasto destro del mouse sul file o la directory desiderata e premere il
pulsante Advanced nella scheda Security.

Figura 4. Impostazione dell'auditing sul filesystem
Impostazione dell'auditing sul filesystem

Successivamente cliccando sul tasto Add sarà possibile scegliere per quali
utenti e per quali eventi eseguire l'auditing.

Figura 5. Utenti ed eventi da monitorare
Utenti ed eventi da monitorare

Un altro elemento importante su cui effettuare l'auditing è la chiave di
registro HKEY_LOCAL_MACHINESAM
(REGEDT.EXE|Security|Permissions|Advanced).

Ti consigliamo anche