Protezione del server Web

In questa pagina
Argomenti del moduloArgomenti del modulo
ObiettiviObiettivi
Ambito di applicazioneAmbito di applicazione
Utilizzo del moduloUtilizzo del modulo
Cenni preliminariCenni preliminari
Pericoli e contromisurePericoli e contromisure
Metodologia per proteggere un server WebMetodologia per proteggere un server Web
Considerazioni sull'installazione di IIS e .NET FrameworkConsiderazioni sull'installazione di IIS e .NET Framework
Raccomandazioni di installazioneRaccomandazioni di installazione
Procedura per proteggere un server WebProcedura per proteggere un server Web
Passaggio 1. Patch e aggiornamentiPassaggio 1. Patch e aggiornamenti
Passaggio 2. IISLockdownPassaggio 2. IISLockdown
Passaggio 3. ServiziPassaggio 3. Servizi
Passaggio 4. ProtocolliPassaggio 4. Protocolli
Passaggio 5. AccountPassaggio 5. Account
Passaggio 6. File e directoryPassaggio 6. File e directory
Passaggio 7. CondivisioniPassaggio 7. Condivisioni
Passaggio 8. PortePassaggio 8. Porte
Passaggio 9. Registro di sistemaPassaggio 9. Registro di sistema
Passaggio 10. Controllo e registrazionePassaggio 10. Controllo e registrazione
Passaggio 11. Siti e directory virtualiPassaggio 11. Siti e directory virtuali
Passaggio 12. Mapping degli scriptPassaggio 12. Mapping degli script
Passaggio 13. Filtri ISAPIPassaggio 13. Filtri ISAPI
Passaggio 14. Metabase IISPassaggio 14. Metabase IIS
Passaggio 15. Certificati serverPassaggio 15. Certificati server
Passaggio 16. Machine.ConfigPassaggio 16. Machine.Config
Passaggio 17. Protezione dall'accesso di codicePassaggio 17. Protezione dall'accesso di codice
Riepilogo delle caratteristiche di un server Web protettoRiepilogo delle caratteristiche di un server Web protetto
Mantenimento della protezioneMantenimento della protezione
Amministrazione remotaAmministrazione remota
Semplificazione e automatizzazione della protezioneSemplificazione e automatizzazione della protezione
RiepilogoRiepilogo
Ulteriori risorseUlteriori risorse

Argomenti del modulo

Il server Web si trova sul front-end dell'infrastruttura di hosting. È direttamente connesso a Internet ed è responsabile del ricevimento delle richieste dai client, della creazione di pagine Web dinamiche e della risposta contenente i dati richiesti.

Un server Web protetto rappresenta una solida base per l'ambiente di hosting, dove la sua configurazione svolge un ruolo cruciale per la protezione generale delle applicazioni Web. È opportuno chiedersi però quali sono le caratteristiche di un server Web protetto. Per proteggere il server Web è di fondamentale importanza comprendere con precisione l'obiettivo. Una volta stabilito cosa si intende con server Web protetto, è possibile apprendere come applicare le impostazioni di configurazione richieste per realizzarlo.

In questo modulo viene presentato un metodo sistematico e ripetibile, che è possibile adottare per configurare un server Web protetto. Viene illustrata la metodologia per proteggere il server Web che consiste nel separarne la configurazione in dodici aree di protezione. A ognuna di queste aree viene dedicata una serie di procedure di alto livello. Le procedure sono modulari e spiegano come applicare la metodologia.

Inizio paginaInizio pagina

Obiettivi

Il modulo consente di:

Sapere quali sono le caratteristiche di un server Web protetto.

Proteggere i server Web utilizzando una metodologia sperimentata.

Sapere cosa, per impostazione predefinita, viene installato in Windows 2000 Server da un'installazione completa di IIS e .NET Framework.

Sapere quali servizi possono essere disattivati in sicurezza su un server Web protetto.

Configurare in modo protetto il server Web, inclusi i protocolli del sistema operativo, gli account, i file, le directory, le condivisioni, le porte, il Registro di sistema, il controllo e la registrazione.

Configurare in modo protetto i componenti applicativi del server Web (in questo caso IIS), inclusi i siti Web, le directory virtuali, i mapping degli script, i filtri ISAPI, la metabase e i certificati server.

Configurare in modo protetto le impostazioni di .NET Framework, inclusi Machine.config e la protezione dall'accesso di codice.

Installare e utilizzare in modo protetto Servizi terminal per l'amministrazione remota.

Sapere quali contromisure applicare per affrontare i pericoli comuni che interessano i server Web, inclusi profiling, Denial of Service, accesso non autorizzato, esecuzione arbitraria di codice, aumento del livello di privilegi, virus, worm e cavalli di Troia.

Inizio paginaInizio pagina

Ambito di applicazione

Le informazioni contenute in questo modulo sono valide per i seguenti prodotti e tecnologie:

Microsoft Windows Server 2000 e 2003

Microsoft .NET Framework 1.1 e ASP.NET 1.1

Microsoft Internet Information Services (IIS) 5.0 e 6.0

Inizio paginaInizio pagina

Utilizzo del modulo

Per trarre il massimo vantaggio dal modulo:

Leggere il modulo 2 "Pericoli e contromisure". Vengono illustrati più dettagliatamente i potenziali pericoli a cui sono sottoposte le applicazioni Web.

Utilizzare la tabella riepilogativa. Nella sezione "Riepilogo delle caratteristiche di un server Web protetto" sono elencati e spiegati gli attributi di un server Web protetto. Questi attributi riflettono le indicazioni giunte da numerose fonti, tra cui i clienti, gli esperti del settore e i team di sviluppo e supporto interni di Microsoft. Utilizzare la tabella come riferimento al momento di configurare il server.

Utilizzare l'elenco di controllo."Elenco di controllo: Protezione del server Web" nella sezione "Elenco di controllo" di questa guida è una scheda di supporto alle operazioni, stampabile e di rapida consultazione. L'elenco di controllo basato sulle attività permette di valutare rapidamente l'ambito complessivo delle procedure necessarie e assiste nell'esecuzione delle singole fasi.

Utilizzare la sezione "Procedure". La sezione "Procedure" di questa guida include gli articoli seguenti:

"Procedura: Utilizzo di URLScan"

"Procedura: Utilizzo di Microsoft Baseline Security Analyzer"

"Procedura: Utilizzo di IISLockdown"

Inizio paginaInizio pagina

Cenni preliminari

È opportuno chiedersi quali sono le caratteristiche di un server Web protetto. Per proteggere il server Web è di fondamentale importanza comprendere con precisione l'obiettivo. Una volta stabilito cosa si intende con server Web protetto, è possibile apprendere come applicare le impostazioni di configurazione richieste per realizzarlo. In questo modulo viene presentato un metodo sistematico e ripetibile, che è possibile adottare per configurare un server Web protetto.

All'inizio vengono passati in rassegna i pericoli più comuni che interessano i server Web. Quindi, su questa base viene creata la metodologia. Successivamente, si passa alla messa in pratica della metodologia e a illustrare dettagliatamente come migliorare la protezione del server Web. Anche se la metodologia di base può essere riutilizzata per varie tecnologie, questo modulo è dedicato a illustrare la protezione di un server Web con il sistema operativo Microsoft Windows 2000 e che ospita Microsoft .NET Framework.

Inizio paginaInizio pagina

Pericoli e contromisure

Il fatto che un pirata informatico possa colpire da una posizione remota fa di un server Web un bersaglio attraente. Capire quali sono i pericoli per un server Web ed essere in grado di identificare le contromisure appropriate permette di prevenire molti attacchi e sventare le intenzioni del gruppo sempre più numeroso di pirati informatici.

I principali pericoli per un server Web sono:

Profiling

Denial of Service

Accesso non autorizzato

Esecuzione arbitraria di codice

Incremento dei privilegi

Virus, worm e cavalli di Troia

Nella Figura 16.1 sono riassunti gli attacchi principali e le vulnerabilità comuni.

Pericoli principali per un server Web e vulnerabilità comuni

Figura 16.1
Pericoli principali per un server Web e vulnerabilità comuni

Profiling

Il profiling, o enumerazione host, è un processo esplorativo utilizzato per raccogliere informazioni su un sito Web. Un pirata informatico si serve di queste informazioni per attaccare i punti deboli conosciuti.

Vulnerabilità

Le vulnerabilità comuni che rendono il server soggetto al profiling sono:

Protocolli non necessari

Porte aperte

Server Web che forniscono informazioni di configurazione nelle intestazioni

Attacchi

Gli attacchi comuni utilizzati per il profiling sono:

Scansioni delle porte

Ping sweep

Enumerazione SMB (Server Message Block) e NetBIOS

Contromisure

Le contromisure includono il blocco di tutte le porte non necessarie, il blocco del traffico Internet Control Message Protocol (ICMP) e la disattivazione dei protocolli non necessari quali NetBIOS e SMB.

Denial of Service (Negazione del servizio)

Gli attacchi Denial of Service si verificano quando il server è sovraccarico di richieste di servizio. Il pericolo è dato dal fatto che, a causa di questo sovraccarico, il server Web non potrà rispondere alle richieste client legittime.

Vulnerabilità

Le vulnerabilità che fanno aumentare il rischio di attacchi DoS sono:

Configurazione inadeguata dello stack TCP/IP

Server senza patch

Attacchi

Gli attacchi DoS più comuni sono:

SYN flood a livello di rete

Overflow del buffer

Sovraccarico del server Web con richieste da posizioni distribuite

Contromisure

Le contromisure includono il rafforzamento della protezione dello stack TCP/IP e l'applicazione coerente delle ultime patch software e degli aggiornamenti al software di sistema.

Accesso non autorizzato

L'accesso non autorizzato si verifica quando un utente senza le autorizzazioni corrette accede a informazioni riservate o effettua un'operazione vietata.

Vulnerabilità

Le vulnerabilità comuni che portano a un accesso non autorizzato sono:

Controlli inadeguati dell'accesso Web di IIS, comprese autorizzazioni Web

Autorizzazioni NTFS inadeguate

Contromisure

Le contromisure includono l'utilizzo di autorizzazioni Web protette, autorizzazioni NTFS e meccanismi di controllo dell'accesso .NET Framework compresa l'autorizzazione URL.

Esecuzione arbitraria di codice

Gli attacchi di esecuzione di codice si verificano quando un pirata informatico esegue codice dannoso sul server per comprometterne le risorse o per organizzare ulteriori attacchi contro i sistemi a valle.

Vulnerabilità

Le vulnerabilità che possono portare all'esecuzione di codice dannoso sono:

Configurazione IIS inadeguata

Server senza patch

Attacchi

Gli attacchi comuni di esecuzione di codice sono:

Attraversamento del percorso

Overflow del buffer con conseguente introduzione di codice

Contromisure

Le contromisure includono la configurazione di IIS in maniera che respinga gli URL con "../" per impedire l'attraversamento del percorso, il blocco dei comandi di sistema e delle utilità con ACL (Access Control List) con restrizioni e l'installazione di nuove patch e di nuovi aggiornamenti.

Aumento del livello dei privilegi

Gli attacchi che mirano a elevare i privilegi si verificano quando un pirata informatico esegue codice utilizzando un account di processo con privilegi.

Vulnerabilità

Le vulnerabilità comuni che espongono il server Web agli attacchi di aumento del livello dei privilegi sono:

Account di processi con più privilegi del necessario

Account di servizi con più privilegi del necessario

Contromisure

Le contromisure includono l'esecuzione di processi tramite account con privilegi minimi e l'utilizzo di account utente e di servizio con privilegi minimi.

Virus, worm e cavalli di Troia

Il codice dannoso può essere introdotto in vari modi, tra cui:

Virus. Programmi progettati per eseguire azioni dannose e manomettere un sistema operativo o le applicazioni.

Worm. Programmi che si autoreplicano e si autosostengono.

Cavalli di Troia. Programmi che sembrano utili ma che di fatto causano dei danni.

In molti casi, la presenza di codice dannoso non viene notata finché non consuma le risorse di sistema e non rallenta o interrompe l'esecuzione di altri programmi. Il worm Code Red, ad esempio, è stato uno dei codici più dannosi che abbiano colpito IIS e faceva affidamento su una vulnerabilità relativa all'overflow del buffer in un filtro ISAPI.

Vulnerabilità

Le vulnerabilità comuni che espongono a virus, worm e cavalli di Troia sono:

Server senza patch

Esecuzione di servizi non necessari

Estensioni e filtri ISAPI non necessari

Contromisure

Le contromisure includono la sollecita applicazione delle ultime patch software, la disattivazione delle funzionalità inutilizzate quali i filtri e le estensioni ISAPI e l'esecuzione di processi con account con privilegi minimi per ridurre i danni in caso di attacco.

Inizio paginaInizio pagina

Metodologia per proteggere un server Web

Per proteggere un server Web, è necessario applicare molte impostazioni di configurazione per ridurre la vulnerabilità del server agli attacchi. Per sapere da dove iniziare e quando il processo di protezione può dirsi concluso, l'approccio migliore consiste nell'organizzare in categorie le precauzioni da prendere e le impostazioni da configurare. L'utilizzo di categorie consente di percorrere sistematicamente l'intero processo di protezione dall'alto in basso o di scegliere una particolare categoria e di completare la procedura specifica.

Categorie di configurazione

La metodologia di protezione illustrata in questo modulo è stata suddivisa nelle categorie riportate nella Figura 16.2.

Categorie di configurazione di un server Web

Figure 16.2
Categorie di configurazione di un server Web

Questa categorizzazione si basa sui seguenti presupposti:

Patch e aggiornamenti
Molti pericoli per la protezione sono causati da vulnerabilità ampiamente pubblicizzate e ben note. In molti casi, quando viene scoperta una nuova vulnerabilità il codice per sfruttarla viene pubblicato nei bulletin board di Internet entro poche ore dal successo del primo attacco. Se non si provvede a installare le patch o ad aggiornare il server, ci si espone agli attacchi dei pirati informatici e a codice dannoso. L'installazione delle patch e l'aggiornamento del software del server rappresentano la prima azione fondamentale per proteggere il server Web.

Servizi
I servizi sono i principali punti di vulnerabilità. I pirati informatici possono infatti sfruttare i privilegi e le capacità di un servizio per accedere al server Web locale o ad altri server a valle. Se un servizio non è necessario per il funzionamento del server Web, non eseguirlo nel server. Se invece è necessario, proteggerlo e gestirlo. Tenere sotto controllo ogni servizio per assicurare la disponibilità. Se il software del servizio non è protetto ma il servizio è necessario, cercare un'alternativa sicura.

Protocolli
Evitare di utilizzare protocolli che sono intrinsecamente non protetti. Se non si può fare a meno di questi protocolli, adottare le misure appropriate per fornire un'autenticazione e una comunicazione protette, utilizzando ad esempio i criteri IPSec. Esempi di protocolli non protetti e non crittografati sono Telnet, POP3 (Post Office Protocol), SMTP (Simple Mail Transfer Protocol) e FTP (File Transfer Protocol).

Account
Gli account concedono l'accesso autenticato al computer e devono essere controllati. A cosa serve un account utente? Che livello di accesso deve possedere? Si tratta di un account comune che può essere preso di mira dagli attacchi? Si tratta di un account di servizio che può essere compromesso e deve pertanto essere contenuto? Configurare gli account con privilegi minimi per impedire l'aumento del livello dei privilegi. Rimuovere tutti gli account di cui non si ha bisogno. Rallentare gli attacchi di tipo "brute force" e basati sull'utilizzo di un dizionario con criteri per password complesse, quindi controllare e attivare gli avvisi sugli accessi non riusciti.

File e directory
Proteggere tutti i file e le directory con autorizzazioni NTFS con restrizioni che permettano di accedere esclusivamente ai servizi e agli account utente di Windows necessari. Utilizzare il controllo di Windows per individuare quando ha luogo un'attività sospetta o non autorizzata.

Condivisioni
Rimuovere tutte le condivisioni di file non necessarie, incluse quelle di amministrazione predefinite se non sono richieste. Proteggere tutte le altre condivisioni con autorizzazioni NTFS con restrizioni. Sebbene le condivisioni possano non essere esposte direttamente a Internet, una strategia difensiva con condivisioni limitate e protette riduce il rischio nel caso in cui il funzionamento di un server venga compromesso.

Porte
I servizi che vengono eseguiti nel server ascoltano porte specifiche per poter rispondere alle richieste in ingresso. Controllare regolarmente le porte sul server per accertarsi che nel server Web non sia attivo un servizio non protetto o non necessario. Se viene rilevata una porta attiva che non è stata aperta da un amministratore, questo è un segno sicuro di accesso non autorizzato e di pericolo per la protezione.

Registro di sistema
Molte impostazioni legate alla protezione sono archiviate nel Registro di sistema e, di conseguenza, è necessario proteggere questo registro. A questo fine è possibile applicare ACL di Windows con restrizioni e bloccare l'amministrazione remota del Registro di sistema.

Controllo e registrazione
Il controllo è uno degli strumenti più importanti per identificare i pirati informatici, gli attacchi in corso e la prova di quelli già avvenuti. Utilizzare una combinazione di funzionalità di controllo di Windows e di IIS per configurare il controllo sul server Web. Anche i registri eventi e di sistema aiutano a individuare e risolvere i problemi di protezione.

Siti e directory virtuali
I siti e le directory virtuali sono esposti direttamente a Internet. Anche se una configurazione firewall protetta e filtri di difesa ISAPI quali URLScan (in dotazione con lo strumento IISLockdown) possono bloccare le richieste di file eseguibili o di configurazione con restrizioni, si consiglia una strategia di difesa a più livelli. Spostare i siti e le directory virtuali in partizioni non di sistema e utilizzare le autorizzazioni Web di IIS per limitare ulteriormente l'accesso.

Mapping degli script
Rimuovere tutti i mapping di script di IIS non necessari per estensioni di file opzionali per impedire a un pirata informatico di sfruttare gli errori presenti nelle estensioni ISAPI che gestiscono questi tipi di file. I mapping delle estensioni inutilizzate spesso vengono trascurati e rappresentano un'importante vulnerabilità della protezione.

Filtri ISAPI
I pirati informatici sono riusciti a sfruttare le vulnerabilità insite nei filtri ISAPI. Rimuovere dal server Web i filtri ISAPI non necessari.

Metabase IIS
La metabase IIS conserva le impostazioni di configurazione di IIS. Controllare che le impostazioni relative alla protezione siano configurate correttamente e che l'accesso al file metabase sia limitato con autorizzazioni NTFS rafforzate.

Machine.config
Nel file Machine.config sono archiviate le impostazioni di configurazione a livello di computer applicate alle applicazioni .NET Framework, comprese le applicazioni Web ASP.NET. Modificare le impostazioni in Machine.config per essere certi che a qualsiasi applicazione ASP.NET installata nel server vengano applicate impostazioni predefinite protette.

Protezione dall'accesso di codice
Limitare le impostazioni dei criteri di protezione dall'accesso di codice per essere certi che il codice scaricato da Internet o dalla Intranet non disponga di autorizzazioni e, di conseguenza, ne venga impedita l'esecuzione.

Inizio paginaInizio pagina

Considerazioni sull'installazione di IIS e .NET Framework

Prima di poter proteggere il server Web, è necessario conoscere quali sono i componenti presenti in un server Windows 2000 dopo l'installazione di IIS e .NET Framework. In questa sezione viene spiegato quali sono i componenti installati.

Componenti installati da IIS

IIS installa diversi servizi, account, cartelle e siti Web. Alcuni potrebbero non essere utilizzati dalle proprie applicazioni Web e, se sono presenti nel server, potrebbero renderlo vulnerabile agli attacchi. Nella Tabella 16.1 sono elencati i servizi, gli account e le cartelle creati da un'installazione completa di IIS in Windows 2000 Server con tutti i componenti selezionati.

Tabella 16.1 Installazioni predefinite di IIS

VoceDettagliImpostazione predefinita

Servizi

Servizio amministrazione di IIS (per l'amministrazione di servizi Web e FTP)
Servizio Pubblicazione sul Web
Servizio Pubblicazione FTP
SMTP (Simple Mail Transport Protocol)
NNTP (Network News Transport Protocol)

Installato

Installato
Installato
Installato
Installato

Account e gruppi

IUSR_MACHINE (utenti Internet anonimi)

IWAM_MACHINE (applicazioni Web ASP out-of-process; non utilizzato per applicazioni ASP.NET tranne quelle in esecuzione in un controller di dominio; il server Web non deve essere un controller di dominio)

Aggiunto al gruppo Guest

Aggiunto al gruppo Guest

Cartelle

%windir%\system32\inetsrv (file di programma di IIS)
%windir%\system32\inetsrv\iisadmin (file utilizzati per l'amministrazione remota di IIS)
%windir%\help\iishelp (file della Guida di IIS)
%systemdrive%\inetpub (cartelle principali Web, FTP e SMTP)

 

Siti Web

Sito Web predefinito – porta 80: %SystemDrive%\inetpub\wwwroot
Sito Web di amministrazione – porta 3693: %SystemDrive%\System32\inetsrv\iisadmin

Accesso anonimo consentito
Solo accesso computer locale e amministratori

Elementi installati da .NET Framework

Quando si installa .NET Framework in un server che ospita IIS, .NET Framework registra ASP.NET. Come parte del processo, viene creato un account locale con privilegi minimi chiamato ASPNET. Questo account esegue il processo di lavoro di ASP.NET (aspnet_wp.exe) e il servizio sullo stato sessione (aspnet_state.exe), che possono essere utilizzati per gestire lo stato della sessione utente.

Nota: su computer server con Windows 2000 e IIS 5.0, tutte le applicazioni Web ASP.NET vengono eseguite in un'istanza singola del processo di lavoro di ASP.NET e l'isolamento è offerto dai domini di applicazioni. Su Windows Server 2003, IIS 6.0 offre l'isolamento a livello di processo tramite l'utilizzo di pool di applicazioni.

Nella Tabella 16.2 sono riportati i servizi, gli account e le cartelle creati da un'installazione predefinita della versione 1.1 di .NET Framework.

Tabella 16.2 Installazioni predefinite di .NET Framework

VoceDettagliImpostazione predefinita

Servizi

ASP.NET State Service: Fornisce il supporto per lo stato sessione out-of-process per ASP.NET.

Avvio manuale

Account e gruppi

ASPNET: Account utilizzato per l'esecuzione del processo di lavoro di ASP.NET (Aspnet_wp.exe) e il servizio sullo stato sessione (Aspnet_state.exe).

Aggiunto al gruppo Users

Cartelle

%windir%\Microsoft.NET\Framework\{versione}
\1033
\ASP.NETClientFiles
\CONFIG
\MUI
\Temporary ASP.NET Files

 

Estensioni ISAPI

Aspnet_isapi.dll: Gestisce le richieste per i tipi di file ASP.NET. Inoltra le richieste al processo di lavoro di ASP.NET (Aspnet_wp.exe).

 

Filtri ISAPI

Aspnet_filter.dll: Utilizzato solo per supportare lo stato sessione senza cookie. Viene eseguito all'interno del processo Inetinfo.exe (IIS).

 

Mapping delle applicazioni

ASAX, ASCX, ASHX, ASPX, AXD, VDISCO, REM, SOAP, CONFIG, CS, CSPROJ, VB, VBPROJ, WEBINFO, LICX, RESX, RESOURCES

\WINNT\Microsoft.NET\Framework\{versione} Aspnet_isapi.dll

Inizio paginaInizio pagina

Raccomandazioni di installazione

Per impostazione predefinita, il programma di installazione di Windows 2000 Server installa IIS. Si consiglia tuttavia di non installare IIS come parte dell'installazione del sistema operativo ma in un secondo momento, dopo aver aggiornato e installato le patch del sistema operativo di base. Una volta installato IIS, è necessario riapplicare le sue patch e rafforzare la sua configurazione per accertasi che sia totalmente protetta. Solo a questo punto la connessione del server alla rete sarà protetta.

Raccomandazioni di installazione di IIS

Se si installa e si configura un nuovo server Web, attenersi alla procedura riportata qui di seguito.

Per creare un nuovo server Web

1.

Installare Windows 2000 Server, ma non installare IIS come parte dell'installazione del sistema operativo.

2.

Applicare le patch e i service pack più aggiornati al sistema operativo. (Se si configura più di un server, vedere "Inclusione di service pack con un'installazione di base", più avanti in questa sezione.)

3.

Installare IIS a parte scegliendo Installazione applicazioni nel Pannello di controllo.

Se non si ha necessità dei seguenti servizi, non installarli assieme a IIS:

Server FTP (File Transfer Protocol)

Estensioni del server di Microsoft FrontPage® 2000 (FPSE)

Internet Service Manager (HTML)

Servizio NNTP

Servizio SMTP

Supporto per la distribuzione remota di RAD di Visual InterDev

Nota: l'installazione di IIS in un sistema operativo completamente aggiornato e provvisto di patch può impedire gli attacchi che sfruttano le vulnerabilità note (ad esempio NIMDA) per le quali sono state applicate le patch.

Raccomandazioni di installazione di .NET Framework

Non installare il Software Development Kit (SDK) di .NET Framework in un server di produzione. L'SDK contiene utilità che non sono richieste dal server. Se un pirata informatico ottiene l'accesso a un server, può utilizzare alcuni di questi strumenti come supporto per altri tipi di attacchi.

Installare invece il pacchetto ridistribuibile, che può essere scaricato dal collegamento "Downloads" del sito .NET Framework di Microsoft.com all'indirizzo http://www.microsoft.com/net/ (in inglese).

Inclusione di service pack con un'installazione di base

Se è necessario creare più server, è possibile incorporare i service pack direttamente nelle installazioni di Windows. I service pack includono un programma chiamato Update.exe per combinare un service pack con i file di installazione di Windows.

Per combinare un service pack con un'installazione di Windows

1.

Scaricare il service pack più recente.

2.

Estrarre Update.exe dal service pack avviando il programma di installazione del service pack con l'opzione -x, come segue:

w3ksp3.exe -x

3.

Integrare il service pack con l'origine di installazione di Windows, eseguendo update.exe con l'opzione -s, specificando il percorso della cartella dell'installazione di Windows come segue:

update.exe -s c:\OrigineInstallazioneDiWindows

Per ulteriori informazioni, vedere l'articolo di MSDN, "Customizing Unattended Win2K Installations" all'indirizzo http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnw2kmag01/html/custominstall.asp (in inglese).

Inizio paginaInizio pagina

Procedura per proteggere un server Web

Nelle prossime sezioni viene illustrato dettagliatamente il processo di protezione di un server Web, tramite le categorie di configurazione introdotte nella sezione "Metodologia per proteggere un server Web" di questo modulo. Ogni procedura di livello elevato contiene una o più azioni per proteggere una particolare area o funzionalità.

Passaggio 1

Patch e aggiornamenti

Passaggio 10

Controllo e registrazione

Passaggio 2

IISLockdown

Passaggio 11

Siti e directory virtuali

Passaggio 3

Servizi

Passaggio 12

Mapping degli script

Passaggio 4

Protocolli

Passaggio 13

Filtri ISAPI

Passaggio 5

Account

Passaggio 14

Metabase IIS

Passaggio 6

File e directory

Passaggio 15

Certificati server

Passaggio 7

Condivisioni

Passaggio 16

Machine.config

Passaggio 8

Porte

Passaggio 17

Protezione dall'accesso di codice

Passaggio 9

Registro di sistema

 

 

Inizio paginaInizio pagina

Passaggio 1. Patch e aggiornamenti

Aggiornare il server con i service pack e le patch più recenti. È necessario aggiornare e implementare le patch per tutti i componenti del server Web, compresi Windows 2000 (e IIS), .NET Framework e Microsoft Data Access Components (MDAC).

In questo passaggio verrà descritto come:

Individuare e installare le patch e gli aggiornamenti richiesti.

Aggiornare .NET Framework.

Individuare e installare patch e aggiornamenti

Utilizzare Microsoft Baseline Security Analyzer (MBSA) per individuare le patch e gli aggiornamenti che potrebbero non essere presenti nell'installazione corrente. MBSA confronta l'installazione con un elenco degli aggiornamenti correntemente disponibili mantenuto in un file XML. MBSA può scaricare il file XML quando effettua la scansione del server, oppure il file può essere scaricato manualmente nel server o essere reso disponibile in un server di rete.

Per individuare e installare patch e aggiornamenti

1.

Scaricare e installare MBSA.

Questa operazione può essere effettuata dalla Home Page MBSA all'indirizzo http://www.microsoft.com/technet/treeview/default.asp?url=/technet/security/tools/mbsahome.asp (in inglese).

Se non si ha accesso a Internet quando si esegue MBSA, non sarà possibile recuperare il file XML che contiene le impostazioni di protezione più recenti fornite da Microsoft. Sarà comunque possibile scaricarlo utilizzando un altro computer e quindi copiarlo nella directory del programma MBSA. Il file XML è disponibile da http://download.microsoft.com/download/xml/security/1.0/nt5/en-us/mssecure.cab (in inglese).

2.

Eseguire MBSA facendo doppio clic sull'icona dal desktop o scegliendo la relativa voce dal menu Programmi.

3.

Fare clic su Scan a computer. Per impostazione predefinita viene eseguita l'analisi del computer locale.

4.

Deselezionare tutte le caselle di controllo tranne Check for security updates. L'opzione consente di individuare quali patch e aggiornamenti non sono stati installati.

5.

Fare clic su Start scan. Viene eseguita l'analisi del server. Al termine dell'analisi viene visualizzato un report sulla protezione, che viene salvato nella directory %userprofile%\SecurityScans.

6.

Scaricare e installare gli aggiornamenti mancanti.
Fare clic sul collegamento Result details accanto ai controlli non riusciti per visualizzare l'elenco degli aggiornamenti della protezione mancanti. Verrà visualizzata una finestra di dialogo con il numero di riferimento del bollettino sulla sicurezza Microsoft. Fare clic sul riferimento per visualizzare ulteriori informazioni sul bollettino sulla sicurezza e scaricare l'aggiornamento.

Per ulteriori informazioni sull'utilizzo di MBSA, vedere "Procedura: Utilizzo di Microsoft Baseline Security Analyzer (MBSA)", nella sezione "Procedure" di questa guida.

Aggiornare .NET Framework

Al momento della stesura del presente modulo (maggio 2003), MBSA non è in grado di rilevare gli aggiornamenti e le patch di .NET Framework. Pertanto è necessario individuarli manualmente.

Per aggiornare manualmente .NET Framework versione 1.0

1.

Stabilire quale service pack di .NET Framework è installato nel server Web.
A questo scopo vedere l'articolo della Microsoft Knowledge Base 318785 "INFO: Determining Whether Service Packs Are Installed on the .NET Framework" (in inglese).

2.

Confrontare la versione installata di .NET Framework con il service pack corrente.
A questo fine, utilizzare le versioni di .NET Framework elencate nell'articolo della Microsoft Knowledge Base 318836, "INFO: How to Obtain the Latest .NET Framework Service Pack" (in inglese).

Inizio paginaInizio pagina

Passaggio 2. IISLockdown

Lo strumento IISLockdown aiuta ad automatizzare determinati passaggi relativi alla protezione. IISLockdown riduce moltissimo la vulnerabilità di un server Web Windows 2000. Consente di selezionare uno specifico tipo di ruolo server e di utilizzare quindi modelli personalizzati per migliorare la protezione per quel particolare server. I modelli disattivano o proteggono varie funzionalità. Inoltre, IISLockdown installa il filtro ISAPI URLScan. URLScan consente agli amministratori dei siti Web di limitare il tipo di richieste HTTP che il server può elaborare, in base a una serie di regole controllate dagli amministratori. Bloccando specifiche richieste HTTP, il filtro URLScan impedisce che richieste potenzialmente dannose raggiungano il server e provochino problemi.

In questo passaggio verrà descritto come:

Installare ed eseguire IISLockdown.

Installare e configurare URLScan.

Installare ed eseguire IISLockdown

IISLockdown è disponibile come download Internet dal sito Web Microsoft all'indirizzo http://download.microsoft.com/download/iis50/Utility/2.1/NT45XP/EN-US/iislockd.exe (in inglese).

Salvare IISlockd.exe in una cartella locale. IISlockd.exe è la procedura guidata di IISLockdown e non un programma di installazione. È possibile annullare qualsiasi modifica effettuata da IISLockdown eseguendo IISlockd.exe una seconda volta.

Se si blocca un computer basato su Windows 2000 che ospita pagine ASP.NET, selezionare il modello Dynamic Web Server quando richiesto dallo strumento IISLockdown. Se si seleziona Dynamic Web Server, IISLockdown effettua le azioni seguenti:

Disattiva i seguenti servizi Internet non protetti:

FTP (File Transfer Protocol)

SMTP (servizio posta elettronica)

NTTP (servizio news)

Disattiva i mapping degli script mappando le seguenti estensioni di file a 404.dll:

Index Server

Interfaccia Web (idq, htw, ida)

File di inclusione lato server (shtml, shtm, stm)

Internet Data Connector (idc)

Script HTR (htr), stampa Internet (printer)

Vengono eliminate le directory virtuali seguenti: IIS Samples, MSADC, IISHelp, Scripts e IISAdmin.

Limita l'accesso anonimo all'utilità di sistema e la capacità di scrivere in directory con contenuto Web utilizzando autorizzazioni Web.

Viene disabilitato WebDAV (Web Distributed Authoring and Versioning).

Viene installato il filtro ISAPI URLScan.

Nota: se non si utilizza ASP classico, non utilizzare il modello di server Web statico. Questo modello rimuove le funzionalità di base di cui hanno bisogno le pagine ASP.NET, quale il supporto per il comando POST.

File registro

IISLockdown crea due report in cui sono elencate le modifiche che ha applicato:

%windir%\system32\inetsrv\oblt-rep.log. Contiene informazioni generali.

%windir%\system32\inetsrv\oblt-log.log. Contiene informazioni più dettagliate, ad esempio quali file di programma sono configurati con una voce di controllo di accesso (ACE) di tipo Nega accesso per impedire l'accesso da parte di account utente Internet anonimi. Questo file registro viene utilizzato anche per supportare la funzionalità Undo Changes di IISLockdown.

Gruppi Web Anonymous Users e Web Application

IISLockdown crea il gruppo Web Anonymous Users e il gruppo Web Application. Il gruppo Web Anonymous Users contiene l'account IUSR_MACHINE. Il gruppo Web Application contiene l'account IWAM_MACHINE. Le autorizzazioni vengono assegnate alle utilità di sistema e alle directory contenuto sulla base di questi gruppi, non direttamente agli account IUSR e IWAM. Per esaminare le autorizzazioni specifiche visualizzare il registro IISLockdown, %windir%\system32\inetsrv\oblt-log.log.

404.dll

IISLockdown installa 404.dll, alla quale è possibile mappare le estensioni dei file che non devono essere eseguiti dal client. Per ulteriori informazioni, vedere "Passaggio 12: Mapping degli script".

URLScan

Se si installa il filtro ISAPI URLScan come parte di IISLockdown, le impostazioni di URLScan sono integrate con il ruolo server selezionato al momento dell'esecuzione di IISLockdown. Se si seleziona ad esempio un server Web statico, URLScan blocca il comando POST.

Annullamento delle modifiche di IISLockdown

Per annullare le modifiche effettuate da IISLockdown, eseguire IISLockd.exe una seconda volta. Questa azione non comporta la rimozione del filtro ISAPI URLScan. Per ulteriori informazioni, vedere "Rimozione di URLScan" nel prossimo argomento.

Ulteriori informazioni

Per ulteriori informazioni su IISLockdown, vedere gli articoli seguenti:

Per ulteriori informazioni sull'esecuzione di IISLockdown, vedere "Procedura: Utilizzo di IISLockdown" nella sezione "Procedure" di questa guida.

Per ulteriori informazioni sull'individuazione e risoluzione dei problemi di IISLockdown, vedere l'articolo della Microsoft Knowledge Base 325864, "How To: Install and Use the IIS Lockdown Wizard" (in inglese). (Il problema più comune è quello della ricezione di messaggi di errore "404 File Not Found" imprevisti dopo l'esecuzione di IISLockdown.)

Per ulteriori informazioni sull'automatizzazione di IISLockdown, vedere l'articolo della Microsoft Knowledge Base 310725, "How To: Run the IIS Lockdown Wizard Unattended in IIS" (in inglese).

Installare e configurare URLScan

URLScan viene installato quando si esegue IISLockdown, sebbene possa essere scaricato e installato separatamente.

Per installare URLScan senza eseguire IISLockdown

1.

Scaricare IISlockd.exe da http://download.microsoft.com/download/iis50/Utility/2.1/NT45XP/EN-US/iislockd.exe (in inglese).

2.

Eseguire il seguente comando per estrarre il programma di installazione di URLScan:

iislockd.exe /q /c

URLScan blocca le richieste che contengono caratteri non sicuri (ad esempio quelli che sono stati utilizzati per sfruttare le vulnerabilità, quale ".." utilizzato per l'attraversamento delle directory). URLScan registra le richieste che contengono questi caratteri nella directory %windir%\system32\inetsrv\urlscan.

Configurare URLScan utilizzando le impostazioni nel file ini %windir%\system32\inetsrv\urlscan\urlscan.ini.

Oltre a bloccare le richieste dannose, è possibile utilizzare URLScan per difendere il server da attacchi di tipo Denial of Service prima che le richieste raggiungano ASP.NET. A questo fine, impostare il limite negli argomenti MaxAllowedContentLength, MaxUrl e MaxQueryString nel file URLScan.ini. Per ulteriori informazioni, vedere "Procedura: Utilizzo di URLScan" nella sezione "Procedure" di questa guida.

Annullamento delle modifiche di URLScan

Non esiste alcuna operazione automatica per rimuovere URLScan. Se si hanno problemi con URLScan, è possibile rimuoverlo da IIS o analizzare il problema registrando le richieste che vengono respinte. A questo fine, utilizzare l'opzione RejectResponseUrl=/~* nel file ini di URLScan.

Per ulteriori informazioni sulla rimozione dei filtri ISAPi, vedere "Passaggio 13: Filtri ISAPI" più avanti in questo modulo.

Ulteriori informazioni

Per ulteriori informazioni sullo strumento URLScan, vedere gli articoli seguenti:

Per informazioni sull'esecuzione di URLScan, vedere "Procedura: Utilizzo di URLScan" nella sezione "Procedure" di questa guida.

Per informazioni sulla configurazione di URLScan e le impostazioni del file URLScan.ini, vedere l'articolo della Microsoft Knowledge Base 326444, "How To: Configure the URLScan Tool" (in inglese).

Inizio paginaInizio pagina

Passaggio 3. Servizi

I servizi che non autenticano i client, i servizi che utilizzano protocolli non protetti o i servizi che vengono eseguiti con un numero eccessivo di privilegi, comportano dei rischi. Evitare di eseguire i servizi che non sono necessari. Disattivando i servizi non necessari si riduce rapidamente e facilmente la superficie di attacco. Si riduce inoltre il sovraccarico in termini di manutenzione (patch, account di servizio e così via).

Se si esegue un servizio, controllare che sia protetto e gestito. A questo fine, eseguirlo tramite un account con privilegi minimi e tenerlo aggiornato applicando le patch.

In questo passaggio verrà descritto come:

Disattivare i servizi non necessari.

Disattivare FTP, SMTP e NNTP, a meno che non siano necessari.

Disattivare ASP.NET State Service, a meno che non sia necessario.

Disattivare i servizi non necessari

I servizi di Windows sono vulnerabili agli attacchi dei pirati informatici che possono sfruttare i loro privilegi e le loro capacità e ottenere l'accesso alle risorse di sistema remote e locali. Come misura difensiva, disattivare i servizi di Windows che non sono richiesti dai propri sistemi e dalle proprie applicazioni. Per disattivare i servizi di Windows, utilizzare lo snap-in MMC Servizi che si trova nel gruppo di programmi Strumenti di amministrazione.

Nota: prima di disattivare un servizio, testare l'impatto in un ambiente di test o temporaneo.

Nella maggior parte dei casi, in un server Web i seguenti servizi predefiniti di Windows non sono necessari: Avvisi, Browser del computer, Messenger, Accesso rete (richiesto solo per i controller di dominio), Servizi TCP/IP semplificati e Spooler di stampa.

Il servizio Telnet è installato con Windows, ma per impostazione predefinita non è attivato. Gli amministratori di IIS spesso attivano Telnet. Si tratta tuttavia di un protocollo non protetto e quindi esposto agli attacchi. Servizi terminal offre un'opzione di amministrazione remota più protetta. Per ulteriori informazioni sull'amministrazione remota, vedere "Amministrazione remota" più avanti in questo modulo.

Disattivare FTP, SMTP e NNTP, a meno che non siano necessari

FTP, SMTP e NNTP sono esempi di protocolli non protetti e quindi esposti a un utilizzo improprio. Evitare di eseguire i servizi che non sono necessari. Se sono utilizzati, cercare un'alternativa sicura. Se è necessario eseguirli, proteggerli.

Nota: IISLockdown fornisce opzioni per disattivare FTP, SMTP e NNTP.

Per eliminare la possibilità che FTP venga sfruttato, disattivare il servizio FTP se non è utilizzato. Se FTP è attivato ed è disponibile per le connessioni in uscita, un pirata informatico può utilizzarlo per caricare i file e gli strumenti del suo sistema remoto in un server Web. Una volta che file e strumenti si trovano nel server Web, il pirata informatico può attaccare il server Web o altri sistemi connessi.

Se si utilizza il protocollo FTP, né il nome utente e la password utilizzati per accedere al sito FTP né i dati che vengono trasferiti sono codificati o crittografati. IIS non supporta SSL per FTP. Se le comunicazioni protette sono importanti e si utilizza FTP come protocollo di trasferimento, invece del protocollo WebDAV (World Wide Web Distributed Authoring and Versioning) su SSL, considerare la possibilità di utilizzare FTP su un canale crittografato quale una rete privata virtuale (VPN, Virtual Private Network) che sia protetta con PPTP (Point-to-Point Tunneling Protocol) o IPSec (Internet Protocol Security).

Disattivare ASP.NET State Service, a meno che non sia necessario

.NET Framework installa ASP.NET State Service (aspnet_state.exe) per gestire lo stato sessione utente out-of-process per applicazioni Web ASP.NET e servizi Web. Per impostazione predefinita, questo servizio è configurato per l'avvio manuale e viene eseguito come account ASPNET locale con privilegi minimi. Se nessuna delle applicazioni archivia lo stato utilizzando questo servizio, disattivarlo. Per ulteriori informazioni sulla protezione dello stato sessione ASP.NET, vedere la sezione "Stato sessione" nel modulo 19 "Protezione dell'applicazione ASP.NET e dei servizi Web".

Inizio paginaInizio pagina

Passaggio 4. Protocolli

Impedendo l'utilizzo dei protocolli non necessari si riducono i potenziali attacchi. .NET Framework fornisce un controllo granulare dei protocolli tramite le impostazioni nel file Machine.config. È ad esempio possibile controllare se i servizi Web possono utilizzare HTTP GET, POST o SOAP. Per ulteriori informazioni sulla configurazione dei protocolli in Machine.config, vedere "Passaggio 16: Machine.config".

In questo passaggio verrà descritto come:

Disattivare o proteggere WebDav.

Rafforzare la protezione dello stack TCP/IP.

Disattivare NetBIOS e SMB.

Disattivare o proteggere WebDav

IIS supporta il protocollo WebDAV, un'estensione standard a HTTP 1.1 per la pubblicazione collaborativa del contenuto. Disattivare questo protocollo sui server di produzione, se non è utilizzato.

Nota: IISLockdown fornisce un'opzione per rimuovere il supporto per WebDAV.

WebDAV è preferibile a FTP dal punto di vista della protezione, ma deve essere protetto. Per ulteriori informazioni, vedere l'articolo della Microsoft Knowledge Base 323470, "How To: Create a Secure WebDAV Publishing Directory" (in inglese).

Se non si ha necessità di WebDAV, vedere l'articolo della Microsoft Knowledge Base 241520, "How To: Disable WebDAV for IIS 5.0" (in inglese).

Rafforzare la protezione dello stack TCP/IP

Windows 2000 supporta il controllo granulare di molti parametri che configurano la sua implementazione TCP/IP. Alcune impostazioni predefinite sono configurate per fornire la disponibilità server e altre funzionalità specifiche.

Per informazioni su come rafforzare la protezione dello stack TCP/IP vedere "Procedura: Rafforzamento delle protezioni dello stack TCP/IP" nella sezione "Procedure" di questa guida.

Disattivare NetBIOS e SMB

Disattivare tutti i protocolli non necessari, inclusi NetBIOS e SMB. I server Web non richiedono NetBIOS o SMB nelle loro schede di interfaccia di rete (NIC) connesse a Internet. Disattivare questi protocolli per contrastare il pericolo dell'enumerazione host.

Nota: il protocollo SMB può restituire moltissime informazioni su un computer a utenti non autenticati su una sessione Null. Per bloccare le sessioni Null, impostare la chiave del Registro di sistema RestrictAnonymous come descritto nel "Passaggio 9: Registro di sistema".

Disattivazione di NetBIOS

NetBIOS utilizza le porte seguenti:

Porta TCP e UDP (User Datagram Protocol) 137 (servizio nomi NetBIOS)

Porta TCP e UDP 138 (servizio datagrammi NetBIOS)

Porta TCP e UDP 139 (servizio sessioni NetBIOS)

La sola disattivazione di NetBIOS non è sufficiente a impedire le comunicazioni SMB perché se non è disponibile una porta NetBIOS standard, SMB utilizza la porta TCP 445, nota come SMB Direct Host. Di conseguenza, è necessario intraprendere le azioni di disattivazione di NetBIOS e SMB separatamente.

Per disattivare NetBIOS su TCP/IP

Nota: questa procedura disattiva il driver Nbt.sys e richiede il riavvio del sistema.

1.

Nel desktop, fare clic con il pulsante destro del mouse su Risorse del computer, quindi scegliere Gestisci.

2.

Espandere Utilità di sistema, quindi selezionare Gestione periferiche.

3.

Fare clic con il pulsante destro del mouse su Gestione periferiche, scegliere Visualizza, quindi Mostra periferiche nascoste.

4.

Espandere Driver non Plug and Play.

5.

Fare clic con il pulsante destro del mouse su NetBios su Tcpip, quindi fare clic su Disattiva.

Questa procedura determinerà la disattivazione del listener dell'host diretto NetBIOS su TCP 445 e UDP 445.

Disattivazione di SMB

SMB utilizza le porte seguenti:

Porta TCP 139

Porta TCP 445

Per disattivare SMB, utilizzare la finestra di dialogo delle proprietà TCP/IP nelle proprietàConnessione alla rete locale per disattivare SMB dalla porta connessa a Internet.

Per disattivare SMB dalla porta connessa a Internet

1.

Scegliere Impostazioni dal menu Start, quindi Rete e connessioni remote.

2.

Fare clic con il pulsante destro del mouse sulla connessione Internet, quindi scegliere Proprietà.

3.

Deselezionare la casella di controllo Client per reti Microsoft.

4.

Deselezionare la casella di controllo Condivisione file e stampanti per reti Microsoft.

Nota: la scheda WINS della finestra di dialogo Impostazioni avanzate TCP/IP contiene l'opzione Disabilita NetBIOS su TCP/IP. La selezione di questa opzione consente di disattivare il servizio sessione NetBIOS che utilizza la porta TCP 139. Non consente di disattivare completamente SMB. A tal fine, utilizzare la procedura illustrata in precedenza.

Inizio paginaInizio pagina

Passaggio 5. Account

Gli account inutilizzati dovrebbero essere rimossi, perché un pirata informatico potrebbe individuarli e utilizzarli. Richiedono password complesse. Password vulnerabili aumentano la probabilità di un attacco di tipo "brute force" o del dizionario. Utilizzare privilegi minimi. Questa precauzione consente di evitare che un pirata informatico possa utilizzare un account dotato di privilegi elevati per accedere a risorse non autorizzate.

In questo passaggio verrà descritto come:

Eliminare o disattivare gli account non utilizzati.

Disattivare l'account Guest.

Rinominare l'account Administrator.

Disattivare l'account IUSR.

Creare un account Web anonimo personalizzato.

Applicare criteri per password complesse.

Limitare gli accessi remoti.

Disattivare le sessioni Null (accessi anonimi).

Eliminare o disattivare gli account non utilizzati

Gli account inutilizzati e i relativi privilegi possono essere utilizzati da un pirata informatico per ottenere l'accesso a un server. Controllare gli account locali sul server e disattivare quelli inutilizzati. Se la disattivazione dell'account non causa problemi, eliminarlo. (Gli account eliminati non possono essere ripristinati.) Disattivare gli account in un server di test prima di disattivarli in un server di produzione. Controllare che la disattivazione di un account non pregiudichi il funzionamento dell'applicazione.

Nota: l'account Administrator e l'account Guest non possono essere eliminati.

Disattivare l'account Guest

L'account Guest viene utilizzato per le connessioni anonime al computer. Disattivandolo, è possibile limitare le connessioni anonime al computer. L'account Guest è disattivato per impostazione predefinita in Windows 2000. Per controllare se è attivato o disattivato, visualizzare la cartella Users nello strumento Gestione computer. L'account Guest deve essere visualizzato con un'icona barrata da una croce. Se non è disattivato, visualizzare la relativa finestra di dialogo Proprietà e selezionare Account disabilitato.

Rinominare l'account Administrator

L'account locale predefinito Administrator è un bersaglio per i malintenzionati a causa dei privilegi elevati di cui dispone. Per migliorare la protezione, rinominare l'account Administrator predefinito e assegnargli una password complessa.

Se si ha intenzione di effettuare operazioni di amministrazione locale, configurare l'account in maniera che neghi i diritti di accesso in rete e chieda all'amministratore di accedere interattivamente. Questa configurazione impedisce agli utenti (sia ben intenzionati che non) di utilizzare l'account Administrator per accedere al server da una postazione remota. Se un criterio di amministrazione locale è troppo rigido, implementare una soluzione di amministrazione remota protetta. Per ulteriori informazioni, vedere "Amministrazione remota" più avanti in questo modulo.

Disattivare l'account IUSR

Disattivare l'account utente Internet anonimo, IUSR_MACHINE. Questo account viene creato durante l'installazione di IIS. MACHINE è il nome NetBIOS del server al momento dell'installazione di IIS.

Creare un account Web anonimo personalizzato

Se l'applicazione supporta l'accesso anonimo (ad esempio perché utilizza un meccanismo di autenticazione personalizzato quale l'autenticazione Form), creare un account anonimo personalizzato con privilegi minimi. Se si esegue IISLockdown, aggiungere l'utente personalizzato al gruppo Web Anonymous Users che viene creato. IISLockdown nega al gruppo Web Anonymous Users l'accesso alle utilità di sistema e la capacità di scrivere nelle directory con contenuto Web.

Se il server Web ospita più applicazioni Web, potrebbe essere utile utilizzare più account anonimi, uno per ogni applicazione, per proteggerle e controllarne il funzionamento in maniera indipendente l'una dall'altra.

Per ulteriori informazioni sull'hosting di più applicazioni Web, vedere il modulo 20 "Hosting di più applicazioni ASP.NET".

Applicare criteri per password complesse

Per contrastare gli attacchi di tipo "brute force" e di violazione delle password sull'applicazione, applicare criteri per password complesse. Per applicare un criterio per password complesse:

Impostare la lunghezza e la complessità delle password. Richiedere password complesse per ridurre il pericolo di attacchi di violazione delle password o al dizionario. Le password complesse sono lunghe otto caratteri o più e devono includere caratteri sia alfabetici che numerici.

Impostare la scadenza delle password. Le password che scadono regolarmente riducono le probabilità che una vecchia password possa essere utilizzata per un accesso non autorizzato. La frequenza della scadenza in genere dipende dalla politica di protezione di un'azienda.

Nella Tabella 16.4 sono riportate le impostazioni predefinite e consigliate per i criteri per le password.

Tabella 16.4. Impostazioni predefinite e consigliate per i criteri per le password

Criterio passwordImpostazione predefinitaImpostazione minima consigliata

Imponi cronologia delle password

1 password memorizzata.

24 password memorizzate.

Validità massima password

42 giorni

42 giorni

Validità minima password

0 giorni

2 giorni

Lunghezza minima password

0 caratteri

8 caratteri

Le password devono essere conformi ai requisiti di complessità.

Disattivato

Attivato

Consenti archiviazione password con crittografia reversibile per tutti gli utenti del dominio.

Disattivato

Disattivato

Registrare inoltre i tentativi di accesso non riusciti in maniera da poter rilevare e tener traccia di situazioni pericolose. Per ulteriori informazioni, vedere "Passaggio 10: Controllo e registrazione".

Limitare gli accessi remoti

Rimuovere il privilegio Accedi al computer dalla rete dal gruppo Everyone per limitare il numero di coloro che possono accedere al server in modalità remota.

Disattivare le sessioni Null (accessi anonimi)

Per impedire gli accessi anonimi è necessario disattivare le sessioni Null. Si tratta di sessioni non autenticate o anonime stabilite tra due computer. Se le sessioni Null non sono disattivate, un pirata informatico può connettersi al server in forma anonima senza essere autenticato.

Stabilendo una sessione Null un pirata informatico ha a disposizione una serie di possibili attacchi, comprese le tecniche di enumerazione utilizzate per raccogliere dal computer aggredito informazioni relative al sistema e che potranno agevolare successivi attacchi. Le informazioni che possono essere restituite in una sessione Null includono dettagli su domini e attendibilità, condivisioni, informazioni sugli utenti, compresi diritti utente e gruppi e chiavi del Registro di sistema.

Limitare le sessioni Null impostando RestrictAnonymous su 1 nel Registro di sistema nella sottochiave seguente:

HKLM\System\CurrentControlSet\Control\LSA\RestrictAnonymous=1

Per ulteriori informazioni, vedere l'articolo della Microsoft Knowledge Base 246261 "How To: Use the RestrictAnonymous Registry Value in Windows 2000" (in inglese).

Considerazioni aggiuntive

Qui di seguito è riportato un elenco di altri passaggi da applicare per migliorare ulteriormente la protezione del server Web:

Richiedere l'approvazione per la delega degli account.
Non contrassegnare gli account di dominio in Active Directory come attendibili (trusted) per la delega a meno di non ottenere prima un'approvazione speciale in questo senso.

Non utilizzare account condivisi.
Evitare di creare account condivisi per più persone. Gli utenti autorizzati devono disporre di account propri. È possibile controllare separatamente le attività delle singole persone e assegnare i gruppi e i privilegi idonei.

Limitare il numero degli appartenenti al gruppo amministratori locali.
Limitare a due il numero degli account amministrativi. Questo contribuisce a definire in modo chiaro le responsabilità. Inoltre, ai fini della responsabilità, le password non devono essere condivise.

Chiedere all'amministratore di accedere in modalità interattiva.
Se si effettuano solo attività amministrative locali, è possibile richiedere all'account Administrator di accedere in modalità interattiva rimuovendo il privilegio Accedi al computer dalla rete.

Inizio paginaInizio pagina

Passaggio 6. File e directory

Installare Windows 2000 in partizioni formattate con il file system NTFS in maniera da beneficiare delle autorizzazioni NTFS per limitare l'accesso. Per proteggere file e directory riservati è necessario utilizzare controlli di accesso avanzati. Nella maggior parte delle situazioni, l'approccio più efficace non consiste nel negare l'accesso a specifici account, ma nel consentirlo solo a specifici account. Se possibile, impostare l'accesso a livello di directory. Poiché i file aggiunti alla cartella ne erediteranno le autorizzazioni, non saranno necessarie ulteriori impostazioni.

In questo passaggio verrà descritto come:

Imporre restrizioni al gruppo Everyone.

Imporre restrizioni agli account Web anonimi.

Proteggere o rimuovere strumenti, utilità e SDK.

Rimuovere i file di esempio.

Imporre restrizioni al gruppo Everyone

Le autorizzazioni NTFS predefinite per Windows 2000 concedono ai membri del gruppo Everyone l'accesso con controllo completo a numerosi percorsi chiave, inclusa la directory principale, \inetpub e \inetpub\scripts.

Concedere innanzitutto il CONTROLLO COMPLETO all'account Administrator sulla directory principale (\), quindi rimuovere i diritti di accesso per il gruppo Everyone dalle directory seguenti.

Directory principale (\)

Directory di sistema (\WINNT\system32)

Directory degli strumenti di .NET Framework (\WINNT\Microsoft.NET\Framework\{versione})

Directory principale del sito Web e tutte le directory contenuto (l'impostazione predefinita è \inetpub\*)

Limitare l'accesso all'account anonimo di IIS

L'account anonimo è molto noto. I pirati informatici attaccano questo account per effettuare azioni dannose. Per proteggere l'account anonimo:

Negare l'accesso in scrittura alle directory con contenuto Web.
Controllare che questo account non possa scrivere nelle directory contenuto, ad esempio per infettare i siti Web.

Limitare l'accesso agli strumenti di sistema. Limitare in particolare l'accesso agli strumenti della riga di comando che si trovano in \WINNT\System32.

Assegnare autorizzazioni ai gruppi invece che a singoli account.
L'assegnazione di utenti ai gruppi e l'applicazione di autorizzazioni ai gruppi invece che ad account individuali è una pratica consigliata. Per l'account anonimo, creare un gruppo e aggiungervi l'account anonimo, quindi negare esplicitamente al gruppo l'accesso ai file e alle directory più importanti. L'assegnazione di autorizzazioni a un gruppo permette di cambiare con maggior facilità l'account anonimo o di crearne altri, perché non è necessario ricreare le autorizzazioni.

Nota: IISLockdown nega l'accesso in scrittura alle directory contenuto per l'account anonimo applicando una voce di controllo di accesso (ACE) di tipo Nega accesso in scrittura per i gruppi Web Anonymous Users e Web Applications. Aggiunge inoltre un ACL di tipo Nega esecuzione negli strumenti della riga di comando.

Utilizzare account separati per applicazioni separate.
Se il server Web ospita più applicazioni, utilizzare un account anonimo separato per ognuna di esse. Aggiungere gli account a un gruppo di utenti Web anonimi, ad esempio il gruppo Web Anonymous Users creato da IISLockdown, quindi configurare le autorizzazioni NTFS utilizzando questo gruppo.

Per ulteriori informazioni sull'utilizzo di più account anonimi e sull'host di più applicazioni, vedere il modulo 20 "Hosting di più applicazioni ASP.NET".

Proteggere o rimuovere strumenti, utilità e SDK

SDK e Resource Kit non devono essere installati in un server Web di produzione. Se presenti, rimuoverli.

Controllare che nel server sia installato solo il pacchetto .NET Framework Redistributable e che non siano installate utilità SDK. Non installare Visual Studio .NET nei server di produzione.

Verificare che l'accesso a strumenti e utilità di sistema potenti, quali quelli presenti nella directory \Programmi, sia limitato. Questa verifica viene effettuata da IISLockdown.

Nel server Web non devono essere disponibili strumenti di debug. Se è necessario effettuare il debug della produzione, creare un CD che contenga gli strumenti di debug appropriati.

Rimuovere i file di esempio

Le applicazioni di esempio in genere non sono configurate con livelli di protezione elevati. Un pirata informatico potrebbe sfruttare una debolezza intrinseca dell'applicazione di esempio o della sua configurazione per attaccare un sito Web. Rimuovere le applicazioni di esempio per ridurre le aree in cui il server Web può essere attaccato.

Considerazioni aggiuntive

Valutare inoltre la rimozione dei nomi origine dati (DSN, Data Source Names) non necessari. Questi nomi contengono dettagli sulle connessioni non crittografate utilizzate dalle applicazioni per connettersi alle origini dati OLE DB. Nel server Web devono essere installati solo i DSN richiesti dalle applicazioni Web.

Inizio paginaInizio pagina

Passaggio 7. Condivisioni

Rimuovere le condivisioni inutilizzate e proteggere ulteriormente le autorizzazioni NTFS su qualsiasi condivisione essenziale. Per impostazione predefinita, tutti gli utenti hanno il controllo totale sulle condivisioni di file appena create. Rafforzare la protezione di queste autorizzazioni predefinite in maniera che solo gli utenti autorizzati possano accedere ai file esposti dalla condivisione. Oltre alle autorizzazioni di condivisione esplicite, utilizzare ACL NTFS per i file e le cartelle esposti dalla condivisione.

In questo passaggio verrà descritto come:

Rimuovere le condivisioni non necessarie.

Limitare l'accesso alle condivisioni necessarie.

Rimuovere le condivisioni non necessarie

Rimuovere tutte le condivisioni non necessarie. Per visualizzare le condivisioni e le autorizzazioni associate, eseguire lo snap-in MMC Gestione computer e selezionare Condivisioni sotto Cartelle condivise come illustrato nella Figura 16.3.

Condivisioni dello snap-in MMC Gestione computer

Figura 16.3
Condivisioni dello snap-in MMC Gestione computer

Limitare l'accesso alle condivisioni necessarie

Rimuovere il gruppo Everyone e concedere autorizzazioni specifiche. Il gruppo Everyone è utilizzato quando non vi sono restrizioni su chi può accedere alla condivisione.

Considerazioni aggiuntive

Se non è necessario consentire l'amministrazione remota del server, rimuovere le condivisioni amministrative inutilizzate, ad esempio C$ e Admin$.

Nota: per alcune applicazioni potrebbero essere necessarie condivisioni amministrative, ad esempio per Microsoft Systems Management Server (SMS) e Microsoft Operations Manager (MOM). Per ulteriori informazioni, vedere l'articolo della Microsoft Knowledge Base 318751 "How To: Remove Administrative Shares in Windows 2000 or Windows NT 4.0" (in inglese).

Inizio paginaInizio pagina

Passaggio 8. Porte

I servizi che vengono eseguiti nel server utilizzano porte specifiche in maniera da poter servire le richieste in ingresso. Chiudere tutte le porte non necessarie ed effettuare controlli regolari per individuare lo stato delle nuove porte in ascolto, al fine di scoprire gli eventuali accessi non autorizzati e i pericoli per la protezione.

In questo passaggio verrà descritto come:

Limitare le porte connesse a Internet a TCP 80 e 443.

Crittografare o limitare il traffico Intranet.

Limitare le porte connesse a Internet a TCP 80 e 443

Limitare il traffico in ingresso alla porta 80 per HTTP e alla porta 443 per HTTPS (SSL).

Per le NIC in uscita (connesse a Internet), utilizzare IPSec o i filtri TCP. Per ulteriori informazioni, vedere "Procedura: Utilizzo di IPSec per filtrare le porte e l'autenticazione" nella sezione "Procedure" di questa guida.

Crittografare o limitare il traffico Intranet

Nel caso di NIC in ingresso (connesse alle reti Intranet), se non si dispone di un centro dati protetto e tra i computer vengono passate informazioni riservate, valutare la possibilità di crittografare il traffico o di limitare le comunicazioni tra il server Web e i server a valle (ad esempio un server per applicazioni o un server di database). La crittografia del traffico di rete permette di eliminare il pericolo rappresentato dall'ascolto e intercettazione di rete non autorizzati. Se il rischio viene giudicato sufficientemente basso, è possibile scegliere di non crittografare il traffico.

Dal tipo di crittografia utilizzata dipendono anche i tipi di pericoli contrastati. SSL, ad esempio, è una crittografia a livello di applicazione, mentre IPSec è una crittografia a livello di trasporto. Di conseguenza, oltre al pericolo dell'ascolto e intercettazione di rete non autorizzati, SSL contrasta anche quello della manomissione dei dati o della divulgazione di informazioni da un altro processo sullo stesso computer, specie se in esecuzione sotto un account diverso.

Inizio paginaInizio pagina

Passaggio 9. Registro di sistema

Il Registro di sistema è l'archivio in cui vengono memorizzate molte impostazioni di configurazione importanti. Di conseguenza, è indispensabile assicurarsi che possano accedervi solo gli amministratori autorizzati. Se un pirata informatico è in grado di modificare il Registro di sistema, può riconfigurare e compromettere la protezione del server.

In questo passaggio verrà descritto come:

Limitare l'amministrazione remota del Registro di sistema.

Proteggere il database di Gestione account di protezione (solo server autonomi).

Limitare l'amministrazione remota del Registro di sistema

Dalla chiave Winreg dipende la disponibilità delle chiavi del Registro di sistema per l'accesso remoto. Per impostazione predefinita, questa chiave è configurata per impedire agli utenti di vedere in modalità remota la maggior parte delle chiavi presenti nel Registro di sistema e permettere solo agli utenti con privilegi elevati di modificarle. In Windows 2000, l'accesso remoto al Registro di sistema è limitato per impostazione predefinita ai membri dei gruppi Administrators e Backup operators. Gli amministratori hanno il controllo completo, mentre gli operatori di backup hanno solo l'accesso in lettura.

Il tipo di utenti che possono accedere in modalità remota al Registro di sistema dipende dalle autorizzazioni associate nel seguente percorso del Registro di sistema.

HKLM\SYSTEM\CurrentControlSet\Control\SecurePipeServers\winreg

Per visualizzare le autorizzazioni per questa chiave del Registro di sistema, eseguire Regedt32.exe, portarsi sulla chiave e scegliere Autorizzazioni dal menu Protezione.

Nota: alcuni servizi necessitano dell'accesso remoto al Registro di sistema. Fare riferimento all'articolo della Microsoft Knowledge Base 153183, "How to Restrict Access to the Registry from a Remote Computer" (in inglese), per vedere se la situazione corrente richiede un accesso remoto limitato al Registro di sistema.

Proteggere il database di Gestione account di protezione (solo server autonomi)

Nei server autonomi sono archiviati i nomi account e hash delle password unilaterali (non reversibili) (LMHash) nel database di Gestione account di protezione (SAM, Security Account Manager)locale. SAM fa parte del Registro di sistema. In genere, solo i membri del gruppo Administrators hanno accesso alle informazioni dell'account.

Anche se le password non sono di fatto archiviate in SAM e gli hash delle password non sono reversibili, se un pirata informatico riesce a ottenere una copia del database SAM può utilizzare le tecniche di tipo "brute force" sulla password per ottenere nomi utente e password validi.

Limitare l'archiviazione LMHash in SAM creando la chiave (non il valore) NoLMHash nel Registro di sistema come indicato qui di seguito:

HKLM\System\CurrentControlSet\Control\LSA\NoLMHash

Per ulteriori informazioni, vedere l'articolo della Microsoft Knowledge Base 299656 "How to Prevent Windows from Storing a LAN Manager Hash of Your Password in Active Directory and Local SAM Databases" (in inglese).

Inizio paginaInizio pagina

Passaggio 10. Controllo e registrazione

Il controllo non impedisce gli attacchi al sistema, anche se è una precauzione importante per identificare gli intrusi e gli attacchi in corso e per agevolare la diagnosi delle tracce degli attacchi. Attivare un livello minimo di controllo sul server Web e utilizzare le autorizzazioni NTFS per proteggere i file registro in maniera che un pirata informatico non possa coprire le sue tracce eliminando o aggiornando questi file. Utilizzare il controllo del formato di file registro W3C esteso di IIS.

In questo passaggio verrà descritto come:

Registrare tutti i tentativi di accesso non riusciti.

Registrare tutte le azioni non riuscite nel file system.

Spostare e proteggere i file registro di IIS.

Archiviare i file registro per l'analisi non in linea.

Controllare l'accesso al file MetaBase.bin.

Registrare tutti i tentativi di accesso non riusciti

Per poter individuare e tenere traccia di un comportamento sospetto, è necessario registrare i tentativi di accesso non riusciti.

Per controllare i tentativi di accesso non riusciti

1.

Avviare Criteri di protezione locali dal gruppo di programmi Strumenti di amministrazione.

2.

Espandere Criteri locali, quindi selezionare Criteri di controllo

3.

Fare doppio clic su Controlla eventi accesso account.

4.

Fare clic su Operazioni non riuscite e scegliere OK.

I tentativi di accesso vengono registrati come eventi nel registro eventi di protezione di Windows. Gli ID evento riportati di seguito sono sospetti:

531. È stato eseguito un tentativo di accesso con un account disattivato.

529. È stato eseguito un tentativo di accesso utilizzando un account utente sconosciuto oppure un account utente valido con una password non valida. L'aumento anomalo del numero degli eventi di controllo potrebbe indicare il tentativo di scoprire le password in vigore.

Registrare tutte le azioni non riuscite nel file system

Utilizzare le funzioni di controllo NTFS nel file system per individuare tentativi potenzialmente dannosi. Questo è un processo in due passaggi.

Per attivare la registrazione

1.

Avviare Criteri di protezione locali dal gruppo di programmi Strumenti di amministrazione.

2.

Espandere Criteri locali, quindi selezionare Criteri di controllo

3.

Fare doppio clic su Controlla accesso agli oggetti.

4.

Fare clic su Operazioni non riuscite e scegliere OK.

Per controllare le azioni non riuscite nel file system

1.

Avviare Esplora risorse e spostarsi sulla cartella principale del file system.

2.

Fare clic con il pulsante destro del mouse e quindi scegliere Proprietà.

3.

Fare clic sulla scheda Protezione.

4.

Fare clic su Avanzate, quindi scegliere la scheda Controllo.

5.

Scegliere Aggiungi, quindi immettere Everyone nel campo Nome.

6.

Scegliere OK, quindi selezionare tutte le caselle di controllo Non riuscito per controllare tutti gli eventi non riusciti.

Per impostazione predefinita, ciò vale per la cartella corrente e per tutte le sottocartelle e i file che vi sono contenuti.

7.

Scegliere OK tre volte per chiudere tutte le finestre di dialogo aperte.
Gli eventi di controllo non riusciti sono registrati nel registro eventi di protezione di Windows.

Spostare e proteggere i file registro di IIS

Lo spostamento e l'assegnazione di un nuovo nome ai file registro di IIS rendono più difficile per un pirata informatico coprire le proprie tracce. Prima di poter alterare i file registro, il pirata informatico deve individuarli. Per contrastare ulteriormente le intenzioni di un pirata informatico, utilizzare autorizzazioni NTFS per proteggere i file registro.

Rinominare la directory dei file registro di IIS e spostarla in un volume che non sia il proprio sito Web. Non utilizzare il volume di sistema. Applicare quindi le seguenti autorizzazioni NTFS alla cartella dei file registro e alle sottocartelle.

Administrators: Controllo completo

System: Controllo completo

Backup Operators: Lettura

Archiviare i file registro per l'analisi non in linea

Per facilitare l'analisi non in linea dei file registro di IIS, è possibile utilizzare uno script per automatizzarne la rimozione protetta da un server IIS. I file registro devono essere rimossi almeno ogni 24 ore. Uno script automatizzato può utilizzare FTP, SMTP, HTTP o SMB per trasferire i file registro da un computer server. Se però si attiva uno di questi protocolli, farlo in maniera protetta per evitare di aprire altre opportunità di attacco. Utilizzare un criterio IPSec per proteggere porte e canali.

Controllare l'accesso al file MetaBase.bin

Controllare tutti i tentativi non riusciti, da parte del gruppo Everyone, di accedere al file metabase.bin di IIS posto in \WINNT\System32\inetsrv\. Ripetere il controllo sulla cartella di backup \Metabase per le copie di backup della metabase.

Considerazioni aggiuntive

È inoltre possibile configurare il controllo del formato di file registro W3C esteso di IIS. Selezionare Formato di file registro esteso W3C nella scheda Sito Web della finestra di dialogo delle proprietà del sito Web. Quindi scegliere Proprietà estese quali Origine URI e Query URI.

Inizio paginaInizio pagina

Passaggio 11. Siti e directory virtuali

Spostare le directory Web principali e virtuali in una partizione non di sistema per proteggersi dagli attacchi di attraversamento delle directory che consentono a un pirata informatico di eseguire programmi e utilità del sistema operativo. Non è possibile attraversare le unità. Questo approccio provoca il fallimento di qualsiasi futuro worm canonicalization che permette a un pirata informatico di accedere ai file di sistema. Se il pirata informatico formula, ad esempio, un URL che contiene il seguente percorso, la richiesta non riesce:

/scripts/..%5c../winnt/system32/cmd.exe

In questo passaggio verrà descritto come:

Spostare il sito Web in un volume non di sistema.

Disattivare l'impostazione dei percorsi principali.

Rimuovere le directory virtuali potenzialmente pericolose.

Rimuovere o proteggere RDS.

Impostare autorizzazioni Web.

Rimuovere o proteggere Estensioni server FrontPage.

Spostare il sito Web in un volume non di sistema

Non utilizzare la directory predefinita \inetpub\wwwroot. Se ad esempio il sistema è installato nell'unità C:, è possibile spostare il sito e la directory con il relativo contenuto nell'unità D:. Si riducono così i rischi associati a problemi imprevisti di canonicalization e attacchi di attraversamento delle directory.

Disattivare l'impostazione dei percorsi principali

Questa impostazione della metabase di IIS impedisce di utilizzare ".." nello script e impedisce alle chiamate di applicazioni di fungere da MapPath. Contribuisce quindi a proteggere da attacchi di attraversamento delle directory.

Per disattivare i percorsi principali

1.

Avviare IIS.

2.

Fare clic con il pulsante destro del mouse sulla directory principale del sito Web, quindi scegliere Proprietà.

3.

Fare clic sulla scheda Home Directory.

4.

Fare clic su Configurazione.

5.

Fare clic sulla scheda Opzioni applicazione.

6.

Deselezionare Abilita percorsi principali.

Nota: se si utilizza Application Center 2002 Administration Site, vedere l'articolo della Microsoft Knowledge Base 288309, "PRB: Disabling Parent Paths Breaks User Interface" (in inglese).

Rimuovere le directory virtuali potenzialmente pericolose

Le applicazioni di esempio non sono installate per impostazione predefinita e non devono essere installate nei server Web di produzione. Rimuovere tutte le applicazioni di esempio, comprese quelle alle quali è possibile accedere solo dal computer locale con http://localhost o http://127.0.0.1.

Rimuovere le seguenti directory virtuali dai server di produzione: IISSamples, IISAdmin, IISHelp e Scripts.

Nota: IISLockdown fornisce un'opzione per rimuovere le directory virtuali Scripts, IISSamples, IISAdmin e IISHelp.

Rimuovere o proteggere RDS

Remote Data Services (RDS) è un componente che permette l'accesso Internet controllato alle risorse dei dati remoti tramite IIS. L'interfaccia RDS viene fornita da Msadcs.dll, che si trova nella directory seguente: Programmi\File comuni\System\msadc.

Rimozione di RDS

Se l'applicazione non utilizza RDS, rimuoverlo.

Per rimuovere il supporto RDS

1.

Rimuovere il mapping della directory virtuale /MSADC da IIS.

2.

Rimuovere i file e le sottodirectory di RDS dal percorso seguente:
\Programmi\File comuni\System\msadc

3.

Rimuovere la chiave del Registro di sistema seguente:
HKLM\System\CurrentControlSet\Services\W3SVC\Parameters\ADCLaunch

Nota: IISLockdown fornisce un'opzione per rimuovere la directory virtuale MSADC. Tenere presente che IISLockdown rimuove solo la directory virtuale, non i file o la chiave del Registro di sistema.

Protezione di RDS

Se l'applicazione richiede RDS, proteggerlo.

Per proteggere RDS

1.

Eliminare gli esempi dal percorso seguente:
\Programmi\File comuni\System\msadc\Samples

2.

Rimuovere la chiave del Registro di sistema seguente:
HKLM\System\CurrentControlSet\Services\W3SVC\Parameters\ADCLaunch\VbBusObj.VbBusObjCls

3.

Disattivare l'accesso anonimo per la directory virtuale MSADC in IIS.

4.

Creare una chiave del Registro di sistema HandlerRequired nel percorso seguente:
HKLM\Software\Microsoft\DataFactory\HandlerInfo\

5.

Creare un nuovo valore DWORD e impostarlo su 1 (1 indica la modalità protetta, 0 la modalità non protetta).

Nota: è possibile utilizzare il file script del Registro di sistema Handsafe.reg per cambiare la chiave del Registro di sistema. Il file script si trova nella directory msadc:

\Programmi\File comuni\System\msadc

Per ulteriori informazioni sulla protezione di RDS, vedere quanto segue:

MS99-025 Microsoft Security Program: Unauthorized Access to IIS Servers through ODBC Data Access with RDS, all'indirizzo http://www.microsoft.com/technet/security/bulletin/ms99-025.asp (in inglese).

MS99-025 Microsoft Security Program: Microsoft Security Bulletin: Unauthorized ODBC Data Access with RDS and IIS, all'indirizzo http://www.microsoft.com/technet/treeview/default.asp?url=/technet/security/bulletin/MS98-004.asp (in inglese).

Articolo della Microsoft Knowledge Base 184375, "PRB: Security Implications of RDS 1.5, IIS 3.0 or 4.0, and ODBC" (in inglese).

Impostare autorizzazioni Web

Le autorizzazioni Web sono configurate tramite lo snap-in IIS e sono conservate nella metabase IIS. Non si tratta di autorizzazioni NTFS.

Utilizzare le autorizzazioni Web seguenti:

Autorizzazioni di lettura. Limitare le autorizzazioni di lettura sulle directory di inclusione.

Autorizzazioni di scrittura ed esecuzione. Limitare le autorizzazioni di scrittura ed esecuzione sulle directory virtuali che permettono l'accesso anonimo.

Accesso origine script. Configurare le autorizzazioni di accesso origine script solo sulle cartelle che permettono la creazione di contenuti.

Scrittura. Configurare le autorizzazioni di scrittura solo sulle cartelle che permettono la creazione di contenuti. Concedere l'accesso in scrittura solo agli autori del contenuto.

Nota: le cartelle che supportano la creazione di contenuti devono essere configurate in maniera da richiedere l'autenticazione e SSL per la crittografia.

Rimuovere o proteggere Estensioni server FrontPage

Se non si utilizza Estensioni server FrontPage (FPSE, FrontPage Server Extensions), disattivarlo. Se si utilizza FPSE, prendere le seguenti precauzioni per migliorare la protezione:

Aggiornare le estensioni server. Esaminare i problemi relativi alla protezione trattati nell'articolo di MSDN, "Microsoft FrontPage Server Extensions 2002 for Windows" all'indirizzo http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnservext/html/fpse02win.asp (in inglese).

Limitare l'accesso utilizzando la protezione di FrontPage. FPSE installa gruppi ai quali vengono concesse autorizzazioni sui siti Web per i quali sono configurate le estensioni server. Questi gruppi sono utilizzati per limitare l'accesso disponibile in base al ruolo dell'utente. Per ulteriori informazioni, visitare l'Assistance Center all'indirizzo http://office.microsoft.com/assistance/2002/articles/fp_colmanagesecurity.aspx (in inglese).

Inizio paginaInizio pagina

Passaggio 12. Mapping degli script

I mapping degli script associano una particolare estensione file, ad esempio asp, all'estensione ISAPI che la gestisce, ad esempio Asp.dll. IIS è configurato per supportare un intervallo di estensioni incluse asp, shtm, hdc e altre ancora. I gestori HTTP di ASP.NET equivalgono approssimativamente alle estensioni ISAPI. In IIS, estensioni file quali aspx, vengono prima di tutto mappate in IIS a Aspnet_isapi.dll, che inoltra la richiesta al processo di lavoro di ASP.NET. Il gestore HTTP effettivo che elabora l'estensione file viene quindi stabilito dal mapping <HttpHandler> in Machine.config o Web.config.

Qui di seguito sono riportati i principali problemi relativi alla protezione associati ai mapping degli script:

Un pirata informatico potrebbe sfruttare una vulnerabilità riscontrata in un'estensione,
cosa che potrebbe accadere se la vulnerabilità rimane senza patch. Le estensioni inutilizzate aumentano l'area esposta a potenziali attacchi. Se non si utilizza una particolare estensione, ad esempio, si potrebbe non prestare attenzione agli aggiornamenti pertinenti.

Le risorse lato server potrebbero essere scaricate dal client,
cosa che potrebbe accadere quando un'estensione file non viene mappata correttamente. I file che non devono essere accessibili direttamente da parte del client, devono essere mappati al gestore appropriato, in base alla sua estensione, oppure rimossi.

In questo passaggio verrà descritto come:

Mappare le estensioni file di IIS.

Mappare le estensioni file di .NET Framework.

Mappare le estensioni file di IIS

In Windows 2000, le estensioni file di IIS da prendere in considerazione sono: asp, asa, cer, cdx, htr, idc, shtm, shtml, stm e printer.

Se non si utilizza una qualsiasi di queste estensioni, mapparla a 404.dll, fornito da IISLockdown. Se, ad esempio, non si desidera fornire le pagine ASP ai client, mappare asp a 404.dll.

I mapping modificati da IISLockdown dipendono dal modello server scelto:

Static Web Server. Se si esegue IISLockdown e si sceglie l'opzione Static Web Server, tutte le estensioni riportate in precedenza vengono mappate a 404.dll.

Dynamic Web Server. Se si sceglie l'opzione Dynamic Web Server, che è l'opzione preferita quando si forniscono pagine ASP.NET, le estensioni htr, idc, shtm, shtml, stm e printer vengono mappate a 404.dll, mentre le estensioni asp, cer, cdx e asa no. In questo caso, è necessario mappare manualmente le estensioni cer, cdx e asa a 404.dll. Se non si fornisce asp, è possibile mappare anche questa estensione.

Ragioni del mapping a 404.dll

Il mapping delle estensioni file a 404.dll impedisce ai file di essere restituiti e scaricati su HTTP. Se si richiede un file con un'estensione mappata a 404.dll, viene visualizzata una pagina Web con il messaggio "HTTP 404 - File not found". Si consiglia di mappare le estensioni non utilizzate a 404.dll, invece di eliminare il mapping. Se si elimina un mapping e per errore nel server viene lasciato o messo un file, il file può essere visualizzato non crittografato quando viene richiesto perché IIS non sa come elaborarlo.

Per mappare un'estensione file a 404.dll

1.

Avviare IIS.

2.

Fare clic con il pulsante destro del mouse sul nome server nella finestra di sinistra, quindi scegliere Proprietà.

3.

Controllare che nell'elenco a discesa Proprietà master sia selezionato WWWService, quindi scegliere il pulsante Modifica accanto.

4.

Fare clic sulla scheda Home Directory.

5.

Fare clic su Configurazione. Viene visualizzata la pagina a schede illustrata nella Figura 16.4.

Mapping delle estensioni delle applicazioni

Figura 16.4
Mapping delle estensioni delle applicazioni

6.

Selezionare una delle estensioni dall'elenco, quindi scegliere Edit.

7.

Fare clic su Browse e portarsi su \WINNT\system32\inetsrv\404.dll.

Nota: questo passaggio presume che in precedenza sia stato eseguito IISlockd.exe, dato che 404.dll è installato dallo strumento IISLockdown.

8.

Fare clic su Open, quindi scegliere OK.

9.

Ripetere i passaggi 6, 7 e 8 per tutte le altre estensioni file.

Mappare le estensioni file di .NET Framework

Le seguenti estensioni file di .NET Framework vengono mappate ad aspnet_isapi.dll: asax, ascx, ashx, asmx, aspx, axd, vsdisco, jsl, java, vjsproj, rem, soap, config, cs, csproj, .vb, vbproj, webinfo, licx, resx e resources.

.NET Framework protegge le estensioni file che non devono essere chiamate direttamente dai client associandole con System.Web.HttpForbiddenHandler in Machine.config. Le seguenti estensioni file vengono mappate a System.Web.HttpForbiddenHandler, per impostazione predefinita: asax, ascx, config, cs, csproj, vb, vbproj, webinfo, asp, licx, resx e resources.

Per ulteriori informazioni sui gestori HTTP, vedere "Passaggio 16: Machine.config".

Considerazioni aggiuntive

Dato che IIS elabora per prima una richiesta Web, le estensioni file di .NET Framework che non si desidera vengano chiamate dai client potrebbero essere mappate direttamente a 404.dll. In questo caso avvengono due operazioni:

404.dll gestisce e respinge le richieste prima che vengano passate ad ASP.NET e prima che vengano elaborate dal processo di lavoro di ASP.NET. Così facendo si eliminano le operazioni di elaborazione non necessarie da parte del processo di lavoro di ASP.NET. Inoltre, bloccare quanto prima le richieste rappresenta una buona pratica di protezione.

404.dll restituisce il messaggio "HTTP 404 - File not found" e System.Web.HttpForbiddenHandler restituisce il messaggio "This type of page is not served". Verosimilmente, il messaggio "File not found" rivela un numero minore di informazioni e pertanto potrebbe essere considerato più sicuro.

Inizio paginaInizio pagina

Passaggio 13. Filtri ISAPI

In passato, le vulnerabilità nei filtri ISAPI erano fonte di grave sfruttamento di IIS. Non vi sono filtri ISAPI non necessari dopo una normale installazione di IIS, sebbene .NET Framework installi il filtro ISAPI di ASP.NET (Aspnet_filter.dll), che viene caricato nello spazio dell'indirizzo di processo di IIS (Inetinfo.exe) ed è utilizzato per supportare la gestione dello stato sessione senza cookie.

Se le applicazioni non devono supportare lo stato sessione senza cookie e non impostano l'attributo cookieless su true nell'elemento <sessionState>, questo filtro può essere rimosso.

Durante questo passaggio si rimuovono i filtri ISAPI non utilizzati.

Rimuovere i filtri ISAPI non utilizzati

Rimuovere tutti i filtri ISAPI non utilizzati come spiegato nella sezione seguente.

Per visualizzare i filtri ISAPI

1.

Per avviare IIS, selezionare Gestione servizi Internet dal gruppo di programmi Strumenti di amministrazione.

2.

Fare clic con il pulsante destro del mouse sul computer (non sul sito Web, perché i filtri sono a livello di computer), quindi scegliere Proprietà.

3.

Fare clic su Modifica.

4.

Fare clic sulla scheda Filtri ISAPI.
Viene visualizzata la pagina a schede illustrata nella Figura 16.5:

Rimozione dei filtri ISAPI inutilizzati

Figura 16.5
Rimozione dei filtri ISAPI inutilizzati

Inizio paginaInizio pagina

Passaggio 14. Metabase IIS

Le impostazioni di protezione e altre impostazioni di configurazione di IIS vengono mantenute nel file metabase IIS. Rafforzare le protezioni delle autorizzazioni NTFS sulla metabase IIS (e sul file metabase di backup) per evitare che i pirati informatici possano modificare in qualche modo la configurazione di IIS, ad esempio per disattivare l'autenticazione per una particolare directory virtuale.

In questo passaggio verrà descritto come:

Limitare l'accesso alla metabase utilizzando le autorizzazioni NTFS.

Limitare le informazioni di intestazione restituite da IIS.

Limitare l'accesso alla metabase utilizzando le autorizzazioni NTFS

Impostare le seguenti autorizzazioni NTFS sul file metabase IIS (Metabase.bin) nella directory \WINNT\system32\inetsrv.

Local System: Controllo completo

Administrators: Controllo completo

Limitare le informazioni di intestazione restituite da IIS

Le informazioni di intestazione possono rivelare le versioni software e altri dati che possono agevolare gli attacchi da parte di utenti malintenzionati. Possono rivelare ad esempio il software in esecuzione, permettendo a un pirata informatico di sfruttarne le vulnerabilità conosciute.

Quando si recupera una pagina statica, ad esempio un file htm o gif, alla risposta viene aggiunta un'intestazione con il percorso del contenuto. Per impostazione predefinita, questa intestazione con il contenuto fa riferimento all'indirizzo IP e non al nome di dominio completo (FQDN, Fully Qualified Domain Name). Questo significa che l'indirizzo IP interno viene involontariamente esposto. La seguente intestazione di risposta HTTP, ad esempio, mostra l'indirizzo IP in grassetto:

HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Content-Location: http://10.1.1.1/Default.htm
Date: Thu, 18 Feb 1999 14:03:52 GMT
Content-Type: text/html
Accept-Ranges: bytes
Last-Modified: Wed, 06 Jan 1999 18:56:06 GMT
ETag: "067d136a639be1:15b6"
Content-Length: 4325

Per nascondere il percorso del contenuto restituito nelle intestazioni di risposta HTTP, modificare un valore nella metabase IIS per cambiare il funzionamento predefinito e far sì che invece dell'esposizione degli indirizzi IP venga inviato l'FQDN.

Per ulteriori informazioni sull'occultamento del percorso del contenuto nelle risposte HTTP, vedere l'articolo della Microsoft Knowledge Base 218180, "Internet Information Server Returns IP Address in HTTP Header (Content-Location)" (in inglese).

Inizio paginaInizio pagina

Passaggio 15. Certificati server

Se l'applicazione Web supporta HTTPS (SSL) sulla porta 443, è necessario installare un certificato server. Questa installazione è richiesta come parte del processo di negoziazione della sessione che ha luogo quando un client stabilisce una sessione HTTPS protetta.

Un certificato valido fornisce un'autenticazione protetta, per cui un client può dare attendibilità al server con cui comunica, e protegge le comunicazioni in maniera che i dati riservati rimangano tali e non possano essere manomessi in rete.

Durante questo passaggio, viene convalidato il certificato server.

Convalidare il certificato server

Controllare i quattro punti seguenti per verificare la validità del certificato server Web:

Controllare che le date "valido da" e "valido fino a" siano comprese nell'intervallo corretto.

Controllare che il certificato venga utilizzato in maniera corretta. Se è stato emesso come certificato server, non deve essere utilizzato per la posta elettronica.

Controllare che le chiavi pubbliche nella catena dei certificati siano tutte valide fino a una directory principale attendibile.

Controllare che non sia stato revocato. Non deve trovarsi in un elenco di revoche di certificati (CRL, Certificate Revocation List) del server che ha emesso il certificato.

Inizio paginaInizio pagina

Passaggio 16. Machine.Config

In questa sezione vengono date informazioni su come rafforzare la protezione delle impostazioni a livello di computer valide per tutte le applicazioni. Per impostazioni specifiche di protezione avanzata per le applicazioni, vedere il modulo 19 "Protezione dell'applicazione ASP.NET e dei servizi Web".

Il file Machine.config mantiene numerose impostazioni a livello di computer per .NET Framework, molte delle quali influiscono sulla protezione. Machine.config si trova nella directory seguente:

%windir%\Microsoft.NET\Framework\{versione}\CONFIG

Nota: per modificare i file di configurazione XML è possibile utilizzare qualsiasi editor di testo o XML (Blocco note, ad esempio). I tag XML distinguono tra maiuscole e minuscole, pertanto è necessario controllare che questa distinzione venga rispettata.

In questo passaggio verrà descritto come:

Mappare le risorse protette a HttpForbiddenHandler.

Controllare che le funzionalità di analisisiano disattivate.

Controllare che le compilazioni di debug siano disattivate.

Controllare che al client non vengano restituiti errori ASP.NET.

Controllare le impostazioni dello stato sessione.

Mappare le risorse protette a HttpForbiddenHandler

I gestori HTTP si trovano in Machine.config sotto l'elemento <httpHandlers>. I gestori HTTP consentono l'elaborazione delle richieste Web relative a estensioni file specifiche. Il Remoting non deve essere attivato sui server Web front-end. Attivarlo solo sui server per applicazioni che sono isolati da Internet.

In Machine.config le seguenti estensioni file sono mappate ai gestori HTTP:

aspx viene utilizzata per le pagine ASP.NET

rem e soap vengono utilizzate per il Remoting.

asmx viene utilizzata per i servizi Web.

asax, ascx, config, cs, csproj, vb, vbproj, webinfo, asp, licx, resx e resources rappresentano risorse protette e sono mappate a System.Web.HttpForbiddenHandler.

Per le risorse di .NET Framework, se non si utilizza un'estensione file mapparla a System.Web.HttpForbiddenHandler in Machine.config, come mostrato nell'esempio seguente:

<add verb="*" path="*.vbproj" type="System.Web.HttpForbiddenHandler" />

In questo caso l'estensione file vbproj è mappata a System.Web.HttpForbiddenHandler. Se un client richiede un percorso che termina con vbproj, ASP.NET restituisce il messaggio "This type of page is not served".

Per la gestione delle estensioni file di .NET Framework vengono applicate le linee guida seguenti:

Mappare le estensioni inutilizzate a HttpForbiddenHandler. Se non vengono fornite pagine ASP.NET, mappare l'estensione aspx a HttpForbiddenHandler. Se non si utilizzano i Servizi Web, mappare l'estensione asmx a HttpForbiddenHandler.

Disattivare il Remoting sui server Web connessi a Internet. Mappare le estensioni di Remoting (soap e rem) nei server Web connessi a Internet a HttpForbiddenHandler.

Disattivare .NET Remoting

Per disattivare .NET Remoting, disattivare le richieste di estensioni rem e soap utilizzando i seguenti elementi sotto <httpHandlers>:

<add verb="*" path="*.rem" type="System.Web.HttpForbiddenHandler"/>
<add verb="*" path="*.soap" type="System.Web.HttpForbiddenHandler"/>

Nota: ciò non impedisce il collegamento di un'applicazione Web residente su un server Web a un oggetto a valle mediante l'infrastruttura di Remoting. Impedisce però ai client di connettersi agli oggetti nel server Web.

Controllare che le funzionalità di analisi siano disattivate

Per configurare le funzionalità di analisi in Machine.config, utilizzare l'elemento <trace>. Anche se la funzionalità di analisi è utile sui server di sviluppo e di test, non attivarla sui server di produzione, perché le informazioni di analisi a livello di sistema possono essere di grande aiuto a un pirata informatico per il profiling di un'applicazione e per sondarne i punti deboli.

Sui server di produzione, utilizzare la configurazione seguente:

<trace enabled="false" localOnly="true" pageOutput="false" 
	 requestLimit="10" traceMode="SortByTime"/>

Impostare enabled="false" sui server di produzione. Se è indispensabile analizzare i problemi delle applicazioni installate, simulare il problema in un ambiente di test oppure, se necessario, attivare la funzionalità di analisi e impostare localOnly="true" per evitare che i dettagli dell'analisi vengano restituiti ai client remoti.

Controllare che le compilazioni di debug siano disattivate

È possibile controllare se il compilatore produce build di debug che includono i simboli di debug utilizzando l'elemento <compilation>. Per disattivare le compilazioni di debug, impostare debug="false" come indicato qui di seguito:

<compilation debug="false" explicit="true" defaultLanguage="vb" />

Controllare che al client non vengano restituiti errori ASP.NET

È possibile utilizzare l'elemento <customErrors> per configurare messaggi di errore generici personalizzati che devono essere restituiti al client qualora si verifichi una condizione di eccezione dell'applicazione.

Controllare che l'attributo di tipo mode sia impostato su "RemoteOnly" come indicato nell'esempio seguente:

<customErrors mode="RemoteOnly" />

Dopo aver installato un'applicazione ASP.NET, è possibile configurare l'impostazione in modo che indirizzi alla pagina di errori personalizzata, come illustrato nell'esempio seguente:

<customErrors mode="On" defaultRedirect="YourErrorPage.htm" />

Controllare le impostazioni dello stato sessione

Se non si utilizza lo stato sessione, controllare che sia disattivato in Machine.config come illustrato nell'esempio seguente:

<sessionState mode="Off" . . . />

Controllare inoltre che ASP.NET State Service sia disattivato. La modalità dello stato sessione predefinita è "InProc" e ASP.NET State Service è impostato su manuale. Per ulteriori informazioni sulla protezione dello stato sessione se si installa un'applicazione ASP.NET che la richiede, vedere "Stato sessione" nel modulo 19 "Protezione dell'applicazione ASP.NET e dei servizi Web".

Inizio paginaInizio pagina

Passaggio 17. Protezione dall'accesso di codice

Il criterio di protezione dall'accesso di codice a livello di computer è determinato dalle impostazioni nel file Security.config che si trova nella directory seguente:
%windir%\Microsoft.NET\Framework\{versione}\CONFIG

Eseguire il comando seguente per essere certi che nel server sia attivata la protezione dall'accesso di codice:

caspol -s On

Per ulteriori informazioni sulla configurazione della protezione dall'accesso di codice per le applicazioni Web ASP.NET, vedere il modulo 9 "Utilizzo della protezione dall'accesso di codice con ASP.NET".

In questo passaggio verrà descritto come:

Rimuovere tutte le autorizzazioni per l'area Intranet locale.

Rimuovere tutte le autorizzazioni per l'area Internet.

Rimuovere tutte le autorizzazioni per l'area Intranet locale

L'area Intranet locale applica le autorizzazioni al codice eseguito da condivisioni UNC o siti Web interni. Riconfigurare quest'area per non concedere autorizzazioni associandola all'autorizzazione Nothing impostata.

Per rimuovere tutte le autorizzazioni per l'area Intranet locale

1.

Avviare lo strumento Microsoft .NET Framework Configuration 1.1 dal gruppo di programmi Strumenti di amministrazione.

2.

Espandere Runtime Security Policy, Machine, quindi Code Groups.

3.

Espandere All_Code quindi selezionare LocalIntranet_Zone.

4.

Fare clic su Edit Code Group Properties.

5.

Fare clic sulla scheda Permission Set.

6.

Selezionare Nothing dall'elenco a discesa Permission.

7.

Scegliere OK.
Viene visualizzata la finestra di dialogo illustrata nella Figura 16.6.

Impostazione delle autorizzazioni del codice LocalIntranet_Zone su Nothing

Figura 16.6
Impostazione delle autorizzazioni del codice LocalIntranet_Zone su Nothing

Rimuovere tutte le autorizzazioni per l'area Internet

L'area Internet applica le autorizzazioni di accesso al codice, al codice scaricato via Internet. Sui server Web, riconfigurare quest'area per non concedere autorizzazioni associandola al set di autorizzazioni Nothing.

Ripetere i passaggi illustrati nella sezione precedente, "Rimuovere tutte le autorizzazioni per l'area Intranet locale" ma impostare Internet_Zone sul set di autorizzazioni Nothing.

Inizio paginaInizio pagina

Riepilogo delle caratteristiche di un server Web protetto

Il riepilogo degli attributi di un server Web protetto permette di confrontare rapidamente e facilmente le impostazioni con quelle del proprio server Web. Le impostazioni riportate nella Tabella 16.5 sono basate su server Web che ospitano siti Web che si sono rivelati molto resistenti agli attacchi e dimostrano pratiche di protezione efficaci. Seguendo i passaggi precedenti è possibile generare un server configurato in maniera identica, rispetto alla protezione.

Tabella 16.5: Riepilogo delle caratteristiche di un server Web protetto

ComponenteCaratteristiche

Patch e aggiornamenti

Vengono applicati i service pack e le patch più aggiornate per Windows, IIS e .NET Framework.

 

Servizi

I servizi non necessari vengono disattivati.
NNTP, SMTP e FTP vengono disattivati, se non sono necessari.
WebDAV viene disattivato o protetto, se utilizzato.
Gli account per i servizi vengono eseguiti con privilegi minimi.
ASP.NET Sessione State Service è disattivato, se non è richiesto.

 

Protocolli

I protocolli NetBIOS e SMB non sono attivati sul server.
La protezione dello stack TCP è stata rafforzata.

 

Account

Gli account inutilizzati vengono rimossi.
L'account Guest viene disattivato.
L'account amministrativo predefinito viene rinominato e possiede una password complessa.
L'account anonimo predefinito (IUSR_Machine) viene disattivato.
Per l'accesso anonimo viene utilizzato l'account anonimo personalizzato.
Vengono applicati criteri per password complesse.
Gli accessi remoti vengono limitati.
Le sessioni Null (accessi anonimi) vengono disattivate.
Per la delega degli account è richiesta l'approvazione.
Gli account condivisi non vengono utilizzati.
I membri del gruppo administrators locale vengono limitati (idealmente a due).
Gli amministratori devono accedere interattivamente (oppure viene implementata una soluzione di amministrazione remota protetta).

 

File e directory

Il gruppo Everyone non dispone di diritti sul sistema, sul Web o sulle directory degli strumenti. L'account anonimo non ha accesso alle directory contenuto del sito Web e alle utilità di sistema.
Strumenti, utilità e SDK vengono rimossi o protetti.
I file di esempio vengono rimossi.
I DSN non necessari vengono rimossi.

 

Condivisioni

Le condivisioni inutilizzate vengono rimosse dal server.
L'accesso alle condivisioni richieste viene protetto (non sono attivate condivisioni per il gruppo "Everyone", a meno che non siano necessarie).
Le condivisioni di amministrazione (C$ e Admin$) vengono rimosse, se non sono richieste.

 

Porte

Tutte le porte, tranne la 80 e la 443 (SSL) vengono bloccate, specie le 135 – 139 e 445 che sono particolarmente vulnerabili.

 

Registro di sistema

L'amministrazione remota del Registro di sistema viene impedita.
Il database di Gestione account di protezione (SAM) è stato protetto (solo server autonomi).

 

Controllo e registrazione

I tentativi di accesso non riusciti vengono registrati.
I tentativi di accesso agli oggetti da parte del gruppo Everyone vengono registrati.
I file registro vengono spostati da %systemroot%\system32\LogFiles e protetti con ACL: Administrators e System hanno il controllo completo.
La registrazione IIS viene attivata.
I file registro vengono regolarmente archiviati per l'analisi non in linea.
L'accesso al file metabase.bin viene controllato.
IIS viene configurato per il controllo del formato di file registro W3C esteso.

 

IIS

 

 

Siti e directory virtuali

Le directory principali Web e le directory virtuali vengono messe in volumi separati dal volume di sistema.
L'impostazione dei percorsi principali viene disattivata.
Le directory virtuali pericolose vengono rimosse (IIS Samples, MSADC, IISHelp, Scripts e IISAdmin).
RDS viene rimosso o protetto.
Le autorizzazioni Web limitano l'accesso non appropriato.
Le directory di inclusione limitano le autorizzazioni Web di lettura.
Le cartelle con accesso anonimo limitano le autorizzazioni Web di scrittura ed esecuzione.
Le cartelle protette che consentono la creazione di contenuti permettono autorizzazioni Web di accesso origine script, tutte le altre non lo permettono.
FPSE viene rimosso, se non è richiesto.

 

Mapping script

I mapping degli script inutilizzati vengono mappati a 404.dll: idq, htw, ida, shtml, shtm, stm, idc, htr, printer.
Nota: 404.dll viene installato quando si esegue IISLockdown (lo strumento di blocco IIS).

 

Filtri ISAPI

I filtri ISAPI inutilizzati vengono rimossi.

 

Metabase IIS

L'accesso alla metabase IIS è limitato con le autorizzazioni NTFS.
Le informazioni di intestazione vengono limitate; il percorso del contenuto nelle intestazioni di risposta HTTP viene nascosto.

 

Machine.config

 

 

HttpForbiddenHandler

Le risorse protette vengono mappate a System.Web.HttpForbiddenHandler

 

Remoting

.NET Remoting viene disattivato.

<httpHandlers>
<add verb="*" path="*.rem" 
	type="System.Web.HttpForbiddenHandler"/>  
<add verb="*" path="*.soap"       
	 type="System.Web.HttpForbiddenHandler"/>
 </httpHandlers>

 

analisi

Le informazioni di analisi e le informazioni dettagliate sugli errori non vengono restituite al client:

<trace  enabled="false">

 

compilazione

Le compilazioni di debug vengono disattivate

<compilation debug="false"/>

 

customErrors

I dettagli sugli errori non vengono restituiti al client:

<customErrors mode="On" /> 

Una pagina di errori generici scrive gli errori nel registro eventi.

 

sessionState

Stato sessione viene disattivato, se non è necessario:

<sessionState  mode="Off" />

 

Protezione dall'accesso di codice

 

 

Protezione dall'accesso di codice

La protezione dall'accesso di codice viene attivata per il computer.
caspol -s On

 

LocalIntranet_Zone

L'area Intranet locale non dispone di autorizzazioni:
PermissionSet=Nothing

 

Internet_Zone

L'area Internet non dispone di autorizzazioni:
PermissionSet=Nothing

 

Inizio paginaInizio pagina

Mantenimento della protezione

È necessario controllare lo stato di protezione del server e aggiornarlo regolarmente per impedire che vengano sfruttate le vulnerabilità scoperte di recente. Per proteggere il server:

Controllare l'appartenenza ai gruppi.

Monitorare i registri di controllo.

Disporre di service pack e di patch aggiornati.

Eseguire verifiche della protezione.

Utilizzare il servizio Security Notification Service.

Controllare l'appartenenza ai gruppi

Tenere traccia dell'appartenenza ai gruppi utenti, in particolar modo per gruppi privilegiati quale Administrators. Nel comando seguente sono elencati i membri del gruppo Administrators:

net localgroup administrators

Monitorare i registri di controllo

Monitorare regolarmente i registri di controllo e analizzare i file registro visualizzandoli manualmente oppure utilizzare la tecnica descritta nell'articolo della Microsoft Knowledge Base 296085, "How To: Use SQL Server to Analyze Web Logs" (in inglese).

Disporre di service pack e di patch aggiornati

Impostare un programma per analizzare il software per i server e iscriversi agli avvisi per la protezione. Utilizzare MBSA per eseguire periodicamente la scansione del server alla ricerca di patch mancanti. Gli ultimi aggiornamenti sono disponibili tramite i collegamenti seguenti:

Service Pack Windows 2000. I service pack più recenti sono elencati a questo indirizzo: http://www.microsoft.com/windows2000/downloads/servicepacks/default.asp (in inglese)

.NET Framework Service Pack. Per informazioni su come ottenere gli ultimi aggiornamenti .NET Framework, vedere l'articolo di MSDN, "How to Get the Microsoft .NET Framework" all'indirizzo http://msdn.microsoft.com/netframework/downloads/howtoget.asp (in inglese).

Aggiornamenti critici. Tali aggiornamenti contribuiscono alla soluzione di problemi noti e alla protezione del computer da vulnerabilità di protezione accertate. Per gli ultimi aggiornamenti importanti, vedere "Aggiornamenti critici" all'indirizzo http://www.microsoft.com/windows2000/downloads/critical/default.asp (in inglese).

Aggiornamenti sulla protezione avanzata. Per ulteriori aggiornamenti sulla protezione, vedere "Advanced Security Updates" all'indirizzo http://www.microsoft.com/windows2000/downloads/security/default.asp (in inglese).

Questi aggiornamenti aiutano anche a proteggere il computer dalle vulnerabilità note della protezione.

Eseguire verifiche della protezione

MBSA può essere utilizzato per verificare periodicamente la presenza di vulnerabilità di protezione e per identificare le patch e gli aggiornamenti mancanti. È consigliabile pianificarne l'esecuzione quotidiana e analizzare i risultati in modo da poter adottare le misure necessarie. Per ulteriori informazioni sull'automazione di MBSA, vedere "Procedura: Utilizzo di Microsoft Baseline Security Analyzer" nella sezione "Procedure" di questa Guida.

Utilizzare il servizio Security Notification Services

Utilizzare i servizi Microsoft elencati nella Tabella 16.3 per ottenere i bollettini sulla sicurezza con la notifica delle possibili vulnerabilità del sistema.

Tabella 16.3 Security Notification Services

ServizioPercorso

Sito Web TechNet Security

http://www.microsoft.com/technet/treeview/default.asp?url=/technet/security/current.asp (in inglese)
Utilizzare questa pagina Web per visualizzare i bollettini sulla sicurezza disponibili per il proprio sistema.

Microsoft Security Notification Service

http://register.microsoft.com/subscription/subscribeme.asp?ID=135 (in inglese)
Utilizzare questo servizio per iscriversi e ricevere tramite posta elettronica i normali bollettini in cui viene comunicata la disponibilità delle nuove correzioni e dei nuovi aggiornamenti.

Inoltre, iscriversi ai servizi di gestione degli avvisi per la protezione industriale mostrati nella Tabella 16.4. Ciò consente di valutare il pericolo di una vulnerabilità per la quale non è ancora disponibile una patch.

Tabella 16.4 Industry Security Notification Services

ServizioPercorso

CERT Advisory Mailing List

http://www.cert.org/contact_cert/certmaillist.html (in inglese)
Invio di consigli e informazioni di consulenza in seguito alla scoperta di vulnerabilità.

Windows e .NET Magazine Security UPDATE

http://email.winnetmag.com/winnetmag/winnetmag_prefctr.asp (in inglese)
Annuncia le violazioni della protezione più recenti e identifica i rimedi.

NTBugtraq

http://www.ntbugtraq.com/default.asp?pid=31&sid=1#020 (in inglese)
Discussione aperta delle vulnerabilità della protezione di Windows e di come possono essere sfruttate. Vengono illustrate le vulnerabilità per le quali al momento non esistono patch.

Inizio paginaInizio pagina

Amministrazione remota

Spesso gli amministratori devono essere in grado di amministrare più server. Accertarsi che i requisiti della soluzione di amministrazione remota adottata non compromettano la protezione. Se sono richieste capacità di amministrazione remota, ai fini di una migliore protezione possono risultare utili le raccomandazioni seguenti:

Limitare il numero degli account di amministrazione. Limitare sia il numero degli account di amministrazione sia gli account che possono connettersi in modalità remota.

Limitare il numero di strumenti disponibili. Le opzioni principali sono Gestione servizi Internet e Servizi terminal. Un'altra opzione è costituita dall'amministrazione Web (tramite la directory virtuale IISAdmin) ma non è consigliata, per cui viene rimossa da IISLockdown.exe. Sia Gestione servizi Internet che Servizi terminal utilizzano la protezione di Windows. In questo caso, le considerazioni principali riguardano la limitazione degli account di Windows e le porte utilizzate.

Limitare il numero di computer da cui è possibile amministrare il server. IPSec può essere utilizzato per limitare il numero di computer che possono connettersi al sito Web.

Protezione di Servizi terminal

È possibile utilizzare Servizi terminal di Microsoft in maniera protetta per amministrare in modalità remota il proprio server Web.

Servizi terminal è basato sul protocollo proprietario RDP (Remote Desktop Protocol, Protocollo desktop remoto) Microsoft. Il protocollo RDP utilizza la porta 3389 TCP e supporta due utenti simultanei. Nelle sezioni seguenti vengono descritte le procedure di installazione e configurazione di Servizi terminal per usufruire di funzioni di amministrazione protette:

Installare Servizi terminal.

Configurare Servizi terminal.

Installare Servizi terminal

Per installare Servizi terminal:

1.

Installare Servizi terminal scegliendo Installazione applicazioni nel Pannello di controllo. Utilizzare l'opzione Installazione componenti di Windows. Per l'amministrazione remota non è necessario installare il servizio Licenze Servizi terminal.

2.

Configurare Servizi terminal per la modalità di amministrazione remota.

3.

Rimuovere l'account TsInternetUser che viene creato durante l'installazione di Servizi terminal. Questo account viene utilizzato per il supporto dell'accesso Internet anonimo a Servizi terminal, che non dovrebbe essere attivato sul server.

Configurare Servizi terminal

Utilizzare lo snap-in MMC Configurazione di Servizi terminal disponibile nel gruppo di programmi Strumenti di amministrazione per configurare quanto segue:

1.

Per le connessioni a Servizi terminal sono disponibili tre livelli di crittografia (Bassa, Media e Alta). Impostare la crittografia sulla chiave a 128 bit. Tenere presente che sia il server che il client devono disporre del pack Windows con livello di crittografia più elevato.

2.

Configurare la sessione di Servizi terminal per la disconnessione automatica una volta trascorso il limite di tempo di connessione inattiva. Selezionare l'impostazione di conclusione di una sessione disconnessa. Una sessione viene considerata disconnessa se l'utente chiude l'applicazione client Servizi terminal senza disconnettersi entro dieci minuti.

3.

Limitare infine le autorizzazioni di accesso a Servizi terminal. Utilizzare la scheda RDP permissions nella finestra di dialogo RDP. Per impostazione predefinita tutti i membri del gruppo Administrators possono accedere a Servizi terminal. Se non si desidera che tutti i membri del gruppo Administrators possano accedere a Servizi terminal, rimuovere il gruppo e aggiungere i singoli account che hanno bisogno dell'accesso. Tenere presente che l'account SYSTEM deve essere incluso nell'elenco.

Per usufruire di funzioni di protezione avanzate, utilizzare una connessione VPN protetta tra il client e il server oppure le funzioni di tunneling IPSec. Questo approccio fornisce un'autenticazione reciproca e il payload RDP viene crittografato.

Copia di file con il protocollo RDP

In Servizi terminal non sono disponibili funzioni incorporate per il trasferimento dei file. È tuttavia possibile installare l'utilità File Copy dal Resource Kit di Windows 2000 Server per aggiungere le funzionalità di trasferimento alla funzione di reindirizzamento clipboard di Servizi terminal. Per ulteriori informazioni sull'utilità e sulle istruzioni di installazione, vedere l'articolo della Microsoft Knowledge Base 244732, "How To: Install the File Copy Tool Included with the Windows 2000 Resource Kit" (in inglese).

Inizio paginaInizio pagina

Semplificazione e automatizzazione della protezione

In questo modulo è stato illustrato come configurare manualmente le impostazioni di protezione per un server Web ASP.NET. Il processo manuale aiuta a capire la configurazione ma può richiedere molto tempo. Per meglio automatizzare i passaggi presentati in questo modulo, utilizzare le risorse seguenti:

Per informazioni sull'automatizzazione di IISLockdown, vedere l'articolo della Microsoft Knowledge Base 310725, "How To: Run the IIS Lockdown Wizard Unattended in IIS" (in inglese).

È possibile creare e distribuire criteri di protezione utilizzando i modelli di protezione. Per ulteriori informazioni, consultare i seguenti articoli della Microsoft Knowledge Base:

313434, "How To: Define Security Templates in the Security Templates Snap-in in Windows 2000" (in inglese).

309689, "How To: Apply Predefined Security Templates in Windows 2000" (in inglese).

321679, "How To: Manage Security Templates in Windows 2000 Server" (in inglese).

Per indicazioni dettagliate sulla personalizzazione e automatizzazione dei modelli di protezione, vedere patterns & practices, Microsoft Solution for Securing Windows 2000 Server di Microsoft all'indirizzo http://www.microsoft.com/technet/treeview/default.asp?url=/technet/security/prodtech/windows/secwin2k/default.asp (in inglese).

In Microsoft Solution for Securing Windows 2000 Server vengono spiegati i ruoli server più comuni, compresi i controller di dominio, i server DNS, i server DHCP, i server Web IIS e i file server e server di stampa. L'approccio adottato in questa guida permette di prendere un'installazione predefinita di Windows 2000 e di creare poi un server protetto, la cui configurazione esatta varia a seconda del suo ruolo. Gli amministratori potranno poi ridurre consapevolmente la protezione per soddisfare le esigenze del loro particolare ambiente. In questa guida vengono fornite le raccomandazioni fondamentali per una protezione di base che abbraccia servizi, account, criteri di gruppo e altro ancora. Queste raccomandazioni possono servire da punto di partenza per i tipi comuni di ruoli server.

Inizio paginaInizio pagina

Riepilogo

Un server Web protetto rappresenta una base sicura per ospitare le applicazioni Web. In questo modulo sono stati illustrati i pericoli principali che possono avere ripercussioni sul server Web ASP.NET e sono stati indicati i passaggi di protezione richiesti per ridurre questi pericoli. Seguendo queste indicazioni è possibile creare una piattaforma protetta e ospitare un'infrastruttura per supportare applicazioni Web ASP.NET e servizi Web.

La metodologia utilizzata in questo modulo consente di creare un server Web protetto partendo da zero e di rafforzare la configurazione di protezione di un server Web esistente. Il passaggio successivo consiste nel controllare che tutte le applicazioni distribuite siano configurate in maniera corretta.

Inizio paginaInizio pagina

Ulteriori risorse

Per ulteriori informazioni, consultare le risorse seguenti:

Per informazioni sulla protezione della workstation di sviluppo, vedere "Procedura: Protezione delle workstation degli sviluppatori" nella sezione "Procedure" di questa guida.

Per ulteriori informazioni su come proteggere le applicazioni Web ASP.NET e i servizi Web, vedere il modulo 19 "Protezione dell'applicazione ASP.NET e dei servizi Web".

Per informazioni sulla configurazione dell'applicazione Open Hack, vedere l'articolo di MSDN "Building and Configuring More Secure Web Sites" all'indirizzo http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnetsec/html/openhack.asp (in inglese).

Per le risorse legate alla protezione disponibili in TechNet, vedere la pagina TechNet Security, http://www.microsoft.com/technet/security/default.asp (in inglese).

Per un elenco di controllo stampabile, vedere "Elenco di controllo: Protezione del server Web" nella sezione "Elenchi di controllo" di questa guida.


Inizio paginaInizio pagina