Meglio noto con l'acronimo di IIS, Internet Information Service è oggi tra i
web server più utilizzati e diffusi. La versione 5 ha subito un sostanziale
restyling dal punto di vista dell'architettura tanto da essere divenuta un
componente strettamente integrato con i sistemi operativi Windows 2000 Advanced
Server, Server e, sia pure con qualche limitazione Professional.
La prima
conseguenza di un così grande successo è che tale sistema risulta essere un
oggetto di un'attenzione particolare da parte dell'universo hacker e di
conseguenza risulta molto sensibile alle problematiche inerenti la sicurezza
informatica.
In questa sezione ci occuperemo pertanto degli aspetti
concernenti l'installazione,la configurazione e l'amministrazione di IIS 5.0
dedicando una attenzione particolare alle precauzioni da adottare per garantire
un adeguato livello di sicurezza del sistema.
Al server IIS sono
generalmente associati,oltre al servizio WWW, altri servizi standard quali FTP,
SMTP, NNTP ed altri specifici non presi in considerazione in quest'articolo,
quali Certificate Server, Index Sever e Microsoft Transaction Server. L'insieme
di questi servizi costituisce una piattaforma integrata e completa per le
applicazioni di e-business.
Installazione
È un luogo comune errato quello secondo cui la sicurezza informatica consiste
unicamente nell'adozione di misure idonee a proteggersi contro gli attacchi
esterni.
Non è possibile infatti sapere con esattezza da che cosa
proteggersi e con quali mezzi se non viene condotta una attenta analisi delle
problematiche la quale oltretutto è di grande ausilio per evitare di incorrere
in scelte sbagliate di cui poi ci si può pentire.
Questo discorso, sia
pure adattato, ha una sua rilevanza anche per ciò che concerne l'installazione
di componenti software ed, in particolare, di quelli che in qualche modo possono
impattare sulla sicurezza intrinseca di un sistema operativo come per l'appunto
un server web. Pertanto di seguito vengono elencati per semplicità di
trattazione i passi da compiere per giungere ad una corretta installazione di
IIS 5:
- leggere con molta attenzione la "Windows 2000 Security Guide" e
in generale la documentazione a corredo del server. Non si può infatti pensare
di rendere sicuro un sistema senza conoscerlo con attenzione. Trattandosi di una
prima installazione non sarebbe da escludere neppure una fase preventiva di
installazioni di prova; - verificare e controllare attentamente le politiche di sicurezza riguardanti
il filesystem, il registro di configurazione, la gestione delle password, i
diritti degli utenti e tutti quegli ulteriori aspetti che sono in relazione
diretta od indiretta con la sicurezza del sistema; - documentarsi su tutte le vulnerabilità che hanno colpito in passato IIS 5 e
scaricare le patch rese disponibili da Microsoft (http://www.microsoft.com/security/); - scegliere con cura l'hardware su cui installare IIS affinchè il server
sia realmente adeguato alla criticità del servizio da gestire. Questo implica
una attenzione particolare sia per ciò che riguarda il dimensionamento
(CPU, RAM etc) sia per le scelte dirette a garantire la salvaguardia dei dati
(dispositivi di backup, R.A.I.D., etc) e la continuità del servizio
(U.P.S.,cluster, etc); Dopo aver attentamente analizzato la problematica da un
punto di vista solo teorico, bisogna infatti ora decidere dove installare il
nostro server web - non trascurare gli aspetti logistici che devono essere, anch'essi, correlati
alla reale criticità del servizio. In linea di massima può essere preferibile un
ambiente a temperatura controllata munito di dispositivi anti-incendio e con
misure volte a garantire l'accesso alle sole persone autorizzate; - scegliere la configurazione del sistema operativo più idonea. Questo
comporta la necessità di utilizzare server configurati in modalità standalone
che non facciano parte di un dominio Windows 2000 e non abbiano quindi relazioni
di fiducia con altri server. Questa precauzione vale ad evitare alcuni tipi
attacchi basati sulla scalata dei privilegi o sull'approfittamento delle
relazioni di fiducia; - oltre al servizio WWW ed eventualmente FTP eseguire soltanto gli altri
servizi effettivamente necessari (link alla sezione di configurazione dei
servizi); - verificare che sul sistema sia stato disattivato l'IP-routing per impedire
accessi indesiderati da Internet sulla Intranet e rimuovere a livello di sistema
operativo tutti i protocolli non strettamente necessari con la sola eccezione
del TCP/IP; - in caso di installazione di IIS su un sistema direttamente raggiungibile da
Internet bloccare a livello di router e/o di firewall il traffico in ingresso e,
soltanto dopo il completamento della fase di configurazione, riabilitare
nuovamente il traffico. Tale accorgimento è molto importante poiché, prima di
aver predisposto tutte le necessarie difese, il server contattato potrebbe
essere facilmente compromesso.
Configurazione e Amministrazione
Dopo l'installazione si passa alla fase di gestione del sistema che comprende
all'inizio quella di prima configurazione e poi a regime quella di
amministrazione. Anche in questo caso per chiarezza di trattazione descriviamo
il percorso da seguire per rendere sicura una installazione standard di IIS
5.0:
- configurare l'utente per gli accessi anonimi creato in automatico durante la
fase di installazione. Generalmente il nome di quest'ultimo è
IUSR_computername dove computername è il nome dell'host che ospita
IIS. Questo utente deve avere il minimo livello di privilegi possibile;
inoltre è necessario verificare che nella scheda delle proprietà siano
selezionate le opzioni User Cannot Change Password e Password Never Expires
(Figura 1). L'account inoltre deve essere un utente locale e non richiede
diritti quali Access this computer from network e quello di Log on as
a batch job. Inoltre se il sito non contempla modalità di accesso anonimo la
cosa migliore è disabilitare l'account IUSR_computername;
- creare almeno due nuovi gruppi di utenti da usare con IIS. Il primo
gruppo comprenderà gli utenti con funzioni di amministrazione del sistema.
Infatti se il server gestisce diversi siti e/o servizi (WWW,FTP,etc) allora sarà
necessario creare un account amministrativo per ciascun sito/servizio. Il
secondo gruppo, invece, comprenderà gli utenti con privilegi non amministrativi
e sarà quello tenuto in considerazione per la definizione dei permessi NTFS. In
ogni caso l'utente IUSR_computername deve essere associato esclusivamente
a quest'ultimo gruppo e quindi rimosso dal gruppo Guest al quale viene associato
automaticamente; - disattivare mediante il pannello di amministrazione il sito di default
creato durante la fase di installazione. L'operazione va eseguita non soltanto
con riferimento al servizio WWW ma anche per gli altri (FTP,SMTP;NNTP); - creare mediante l'apposito wizard (Figura 2) un nuovo sito differente
da quello di Default. Durante questa fase occorre selezionare il nome,
l'indirizzo IP e la porta di ascolto e definire la directory root che dovrebbe
risiedere preferibilmente su una partizione differente da quella che ospita il
sistema operativo. Altrettanto importante è che su questa directory sia
impostato il livello minimo di accesso (vedi Figura...);
- modificare i permessi relativi alla directory di installazione in modo tale
che né i gruppi Everyone e Guests né l'account Guest abbiano privilegi di
accesso. Non va dimenticato infatti che dopo l'installazione il gruppo
Everyone possiede automaticamente il privilegio di Full Control sulla home di
default (ad es. C:Inetpub) e ciò potrebbe causare una situazione in cui gli
utenti appartenenti a questi gruppi sono usati per compiere accessi
indesiderati; - cancellare o spostare tutte le directory contenenti script di esempio che di
regola vengono installate automaticamente (anche se è possibile rinunciare
all'installazione degli esempi). Al riguardo c'è da dire che, anche se l'accesso
agli esempi è limitato all'indirizzo di loopback (localhost – 127.0.0.1), è
sempre preferibile l'eliminazione o lo spostamento delle directory menzionate.
Qualora invece questa soluzione non voglia essere adottata allora su queste
ultime andranno impostati degli opportuni permessi da concedere soltanto agli
utenti amministratori. Di seguito è fornita una tabella con i permessi
consigliati per le varie directory di IIS:
Tipo |
Directory di esempio |
Dati di esempio |
Permssi NTFS |
Permessi IIS 5 |
Contenuto Statico |
Inetpubwwwroothome Inetpubwwwrootimages Inetpubftprootftpfiles |
HTML, immagini, download FTP, etc. |
Administrators (Full Control); |
Read |
FTP Upload |
Inetpubftprootdropbox |
Directory used as a place for users to store documents |
Administrators (Full Control); WebAdmins or FTPAdmins (Read & Execute, Write, Modify); Specified Users (Write) |
Write |
Script |
Inetpubwwwrootscripts |
.asp |
Administrators (Full Control); |
Read &Script |
Altri eseguibili e file include |
Inetpubwwwroot Inetpubwwwrootinclude |
.exe, .dll, .cmd, .pl .inc, .shtml, .shtm |
Administrators (Full Control); |
Read & Scripts, Executables |
- configurare le funzionalità di auditing necessarie ad un corretto
monitoraggio del sistema. IIS memorizza tutti gli eventi HTTP/FTP/SMTP del
traffico in entrata ed uscita dal server mentre un logging generale – senza
possibilità di essere esteso – è offerto invece per il servizio NNTP. - scegliere con cura il tipo di dati da registrare nei file di log in modo
tale che da una analisi possano essere tratte alcune informazioni importanti
quali: -
- una serie di comandi falliti eseguiti in sequenza;
- il tentativo di scaricare files particolari da o verso directory contenenti
gli eseguibili; - i tentativi di accedere a file interni con estensione .bat e .cmd;
- le richieste provenienti da un identico indirizzo IP che hanno la
caratteristiche tali da risultare tentativi di attacco D.o.S. (Denial of
Service);
L'attività di logging è attiva di default ma in relazione ad essa conviene
comunque:
- ridefinire il percorso ed il nome del file di log in modo da rendere più
difficoltoso un eventuale tentativo di alterarlo per mascherare attività
sospette (Figura 3); - consentire un accesso completo alla directory dei log solo ed esclusivamente
agli utenti amministratori; - monitorare tramite l'auditing di Windows 2000 gli eventi del tipo Create
Files / Write Data, Create Folders / Append Data, Delete
Subfolders e Files, Delete, Change Permissions, e Take
Ownership che hanno una loro criticità per quanto concerne un server
web; - studiare in base alle reali necessità delle regole opportune di
rotazione del log (ad es. un nuovo file al giorno). Inoltre potrebbe essere
utile estendere le informazioni memorizzate nel file dalla funzione
Extended Logging Properties.
- eliminare tutti le estensioni ISAPI non strettamente necessarie. Il
meccanismo fornito da queste estensioni è particolarmente potente e flessibile
poiché fa sì che risorse web diverse siano gestite in modo del tutto trasparente
utilizzando differenti applicazioni (in pratica si tratta di librerie dll o a
collegamento dinamico). Tuttavia queste applicazioni hanno in alcuni casi
evidenziato particolari vulnerabilità (nella specie buffer overflows) per cui
quando esse non hanno un utilizzo reale si consiglia di disabilitarne la
relativa estensione in modo da eliminare alla radice i rischi citati. La tabella
sottostante riporta un elenco di estensioni ISAPI tipiche di IIS con
l'indicazione del loro campo di utilizzo:
Tipo di estensione |
Funzione |
.htr |
Web Password Reset <AZZERAMENTO delle="" |
.idc |
Internet Database Connector |
.stm,.shtm,.shtml |
Server Side Include<MECCANISMI di="" |
.printer |
Internet printing<GESTIONE delle="" via="" |
.cer |
Represents a certificate |
.cdx |
Active Channel File Definition<FILE di="" |
.asa |
Active Server Application<APPLICAZIONE active="" |
.htw,.ida,.idq |
Index Server<SERVIZI di="" indicizzazione=""></SERVIZI> |
- scaricare e utilizzare gli strumenti che sono a disposizione sul sito dell
Microsoft che possono essere di ausilio nelle fasi di configurazione e/o di
messa in esercizio di IIS (iisperm, hisecweb.inf, iislock);