SECURING IIS 5.0 WINDOWS 2000 SERVER Branca Enrico stu1015 @ libero.it.

27
SECURING IIS 5.0 WINDOWS 2000 SERVER Branca Enrico stu1015 @ libero.it

Transcript of SECURING IIS 5.0 WINDOWS 2000 SERVER Branca Enrico stu1015 @ libero.it.

Page 1: SECURING IIS 5.0 WINDOWS 2000 SERVER Branca Enrico stu1015 @ libero.it.

SECURING IIS 5.0 WINDOWS 2000 SERVER

Branca Enrico stu1015 @ libero.it

Page 2: SECURING IIS 5.0 WINDOWS 2000 SERVER Branca Enrico stu1015 @ libero.it.

CopyrightQuesto insieme di trasparenze è protetto dalle leggi sul copyright e dalle disposizioni dei trattati internazionali. Il titolo ed i copyright relative alle trasparenze (ivi inclusi, ma non limitatamente a, ogni immagine, fotografia, animazione, video e testo) sono di proprietà degli autori indicati.Le trasparenze possono essere riprodotte ed utilizzate liberamente dagli istituti di ricerca, scolastici ed universitari afferenti al Ministero della Pubblica Istruzione per scopi istituzionali, non a fine di lucro.Ogni altro utilizzo o riproduzione (ivi incluse, ma non limitatamente a, le riproduzioni a mezzo stampa, su supporti magnetici o su reti di calcolatori) in toto o in parte è vietata, se non esplicitamente autorizzata per iscritto, a priori, da parte dell’autore.L’informazione contenuta in queste trasparenze è ritenuta essere accurata alla data della pubblicazione. Essa è fornita per scopi meramente didattici e non per essere utilizzata in progetti di impianti, prodotti, ecc.L’informazione contenuta in queste trasparenze è soggetta a cambiamenti senza preavviso. Gli autori non si assumono alcuna responsabilità per il contenuto di queste trasparenze (ivi incluse, ma non limitatamente a, la correttezza, completezza, applicabilità ed aggiornamento dell’informazione).In ogni caso non può essere dichiarata conformità all’informazione contenuta in queste trasparenze.In ogni caso questa nota di copyright non deve mai essere rimossa e deve essere riportata anche in utilizzi parziali.

Page 3: SECURING IIS 5.0 WINDOWS 2000 SERVER Branca Enrico stu1015 @ libero.it.

Introduzione● In questo workshop vedremo alcune linee guida per

installare e configurare una macchina Windows 2000SERVER che funga da bastion host

● Per bastion host si intende una macchina che è esposta su internet e che quindi è soggetta a molteplici tipi di attacchi

● Per Server si intende una macchina dedicata all'erogazione con continuita di vari serviziEsempio: server web, server FTP, server mail, ecc..

● L'insieme di procedure necessarie per configurare un bastion host va sotto il nome di HARDENING

Page 4: SECURING IIS 5.0 WINDOWS 2000 SERVER Branca Enrico stu1015 @ libero.it.

Considerazioni generali● Installare un server che fornisca un servizio agli utenti non è come installare un personal computer

● Installare un server significa installare una macchina che ha bisogno di costanti attenzioni

● Installare un server che sia esposto in internet comporta l'adozione di tecniche ed accorgimenti particolari, che

rispettino le leggi e proteggano gli utenti

● Installare un server vuol dire soprattutto pianificazione

Page 5: SECURING IIS 5.0 WINDOWS 2000 SERVER Branca Enrico stu1015 @ libero.it.

Come procedere (1 / 2)● Per iniziare con il piede giusto, pianifichiamo!!!

Quali sono le caratteristiche tecniche del server?Che sistema operativo intallare?Che servizi deve fornire ?Quando li deve fornire?A chi li deve fornire e in che modo ?In che punto della rete sarà posizionato ?Con che macchine deve comunicare?Che tipo di dati deve gestire?Quanto sono preziosi i dati?

● Ora le idee sono più chiare, ed è il momento di pensare alla documentazione. Abbiamo tutto il materiale necessario a configurare la macchina?

Page 6: SECURING IIS 5.0 WINDOWS 2000 SERVER Branca Enrico stu1015 @ libero.it.

● Abbiamo deciso cosa vogliamo, quindi adesso serve il software che verrà usato per l'installazione

● Procuriamoci il sistema operativo in INGLESEQuesto perchè potrebbe essere spiacevole che il

server venisse “bucato” perchè la patch in italiano necessaria per risolvere il problema non è stata ancora rilasciata

● Procuriamoci: Service Pack 1 e 2 ; Security Rollup Package 1; Internet Explorer 6

Per adesso abbiamo tutto, quindi

INSTALLIAMO LA MACCHINA

Come procedere (2 / 2)

Page 7: SECURING IIS 5.0 WINDOWS 2000 SERVER Branca Enrico stu1015 @ libero.it.

AVVERTENZE● QUELLO CHE VEDRETE IN QUESTA

SESSIONE NON SI APPLICA IN TUTTE LE SITUAZIONI

● LE CONFIGURAZIONI PROPOSTE IMPEDISCONO A MOLTE APPLICAZIONI DI FUNZIONARE

● NON PROVATE ASSOLUTAMENTE NESSUNA DELLE CONFIGURAZIONI CHE VERRANNO PROPOSTE SU MACCHINE IN PRODUZIONE

● PRIMA FATE I TEST POI EVENTUALMENTE ANDATE IN PRODUZIONE

Page 8: SECURING IIS 5.0 WINDOWS 2000 SERVER Branca Enrico stu1015 @ libero.it.

Installazione di Windows 2000 (1 / 2)● Il principio da seguire è che meno cose saranno

installate, maggiore sarà la sicurezza del sistema● Partiamo con una macchina con i dischi puliti (no

upgrade)● Installiamo con la macchina sconnessa dalla rete, la

riconnetteremo solo ad installazione finita● Formattiamo i dischi ed usiamo come file system solo

NTFS● Non installiamo nella directory \WINNT ma mettiamo un altro nome● Mettiamo solo le applicazioni strettamente necessarie,

per cui all'interno di “Accessories and Utilities” selezioniamo solo “Accessories”, tutto il resto lo deselezioniamo

INSTALLIAMO

Page 9: SECURING IIS 5.0 WINDOWS 2000 SERVER Branca Enrico stu1015 @ libero.it.

Installazione di Windows 2000 (2 / 2)● Come impostazioni di rete lasciamo Typical

● La macchina dovrà essere installata come serverSTANDALONE. Non deve far parte di un dominio

● Dato che Windows 2000 non scrive i dati su disco in modo contiguo ma riempie gli spazi vuoti “a caso” è assolutamente necessario deframmentare per avere un rendimento accettabile

● Abbiamo una macchina molto “leggera” con solo il necessario, quindi applichiamo i Service Packs

Page 10: SECURING IIS 5.0 WINDOWS 2000 SERVER Branca Enrico stu1015 @ libero.it.

Installazione SP1 / SP2 / SRP1 ( 1 / 2)● Se si applica prima l' SP1 e poi l' SP2 il sistema risulta più stabile

● Quindi prendiamo l'SP1 in INGLESE, cioè nella stessa lingua del sistema operativo, e lo installiamo facendo il backup dei dati

● Allo stesso modo installiamo l'SP2 in INGLESE e facciamo il backup dei dati

● A questo punto abbiamo aggiornato circa 160 MB di file di sistema, quindi deframmentiamo per evitare pesanti rallentamenti

Page 11: SECURING IIS 5.0 WINDOWS 2000 SERVER Branca Enrico stu1015 @ libero.it.

Installazione SP1 / SP2 / SRP1 ( 2 / 2)● Installiamo quindi il Security Rollup Package 1 (SRP1)● Adesso la macchina dovrebbe essere aggiornata, ma in

realtà manca ancora una cosa molto importante e si chiama “High Encription Pack”.

INSTALLIAMOLO● Il sistema è aggiornato e supporta la crittografia 3DES a

168-bit, ma il “Windows 2000 Protected Store” è ancora in RC4 a 40-bit

● É necessario usare la patch MS00-032 lanciando l'eseguibile con l'opzione -x per decomprimere il pacchetto ed avere il tool keymigrt.exe, che useremo per recrittografare tutti gli oggetti nel Protected Store

che se non venisse aggiornato il sistema cripterebbe a 168-bit solo i nuovi dati, lasciando a 40-bit la parte di store più vecchia

Page 12: SECURING IIS 5.0 WINDOWS 2000 SERVER Branca Enrico stu1015 @ libero.it.

Installazione di IIS 5.0 e IE 6.0 (1 / 3)● Perchè installare adesso IIS5 ?

Non si poteva installare al'inizio ? E perchè installiamo IE 6.0 ?

● Se si fosse installato IIS all'inizio non si avrebbe la certezza assoluta che tutte le componenti del sistema siano aggiornate all' SRP1

● Installare adesso il server web garantische che si appoggi su componenti aggiornati e su un sistema più stabile

● Installiamo quindi IIS 5.0 dal CD di installazione di Windows 2000 SERVER in inglese

Page 13: SECURING IIS 5.0 WINDOWS 2000 SERVER Branca Enrico stu1015 @ libero.it.

Installazione di IIS 5.0 e IE 6.0 (2 / 3)● Consideriamo una installazione in cui ci viene richiesto un server web ed un server FTP

● Installeremo quindi solo i componenti necessari:- Common Files- File Transfer Protocol (FTP) server- Internet Information Services Snap-In- World Wide Web Server

● Quando si installa un qualsiasi componente dal CD gli eventuali file gia presenti nel sistema vengono sovrascritti, per cui in seguito sarà NECESSARIO riapplicare tutti i service pack, il security rollup package e tutte le patch di sicurezza

Page 14: SECURING IIS 5.0 WINDOWS 2000 SERVER Branca Enrico stu1015 @ libero.it.

Installazione di IIS 5.0 e IE 6.0 (3 / 3)● Perchè installare Internet Explorer 6.0 ?

Essendo il browser integrato il WindowsXP riceve maggiori attenzioni da parte della Microsoft, e le patch vengono rilasciate in minor tempo (forse perchè IE 6.0 è più “bacato” di IE 5.5 SP2 ?????)

● É possibile aggiornare il bowser attraverso patch successive, mentre se avessimo installato IE 5.5 SP2 avremmo dovuto aggiornare tutto il browser, e questo

avrebbe richiesto il riaggiornamento di tutta la macchina

Page 15: SECURING IIS 5.0 WINDOWS 2000 SERVER Branca Enrico stu1015 @ libero.it.

Reapplicazione SP2 e SRP1● Con l'installazione di IIS 5.0 vengono sostituite delle

parti del sistema operativo che avevamo gia aggiornato, con file del cd originale

● Ogni volta che si installano componenti da cd i file sostituiti da SP2 ed SRP1 vengono modificati, per cui è come se la macchina non fosse mai stata aggiornata

● É quindi assolutamente necessario reapplicare SP2 ed SRP1 per avere la certezza che il sistema sia aggiornato e stabile

● Non applicando gli aggiornamenti è come se la macchina fosse stata appena installata, e quindi estremamente vulnerabile

Page 16: SECURING IIS 5.0 WINDOWS 2000 SERVER Branca Enrico stu1015 @ libero.it.

Applicazione security patch (1 / 3)● Il sistema operativo è stato installato ed aggiornato ed

anche il server web è stato installato ed aggiornato, quindi cosa rimane?

ADESSO SI DEVONO TAPPARE TUTTI I BUCHI

● Per scoprire i “buchi” usiamo hfnetchk.exe, ovvero il “Microsoft Network Security Hotfix Checker”

● Il programma ogni volta che viene lanciato si connette alla microsoft per scaricare il file che usa per verificare lo stato della maccina

● Ma come funziona il programma?

Page 17: SECURING IIS 5.0 WINDOWS 2000 SERVER Branca Enrico stu1015 @ libero.it.

Applicazione security patch (2 / 3)HFNETCHK.EXE

● Ad ogni avvio il programma cerca di scaricare dalla microsoft un file CAB firmato digitalmente al cui interno c'è un file XML (mssecure.xml) contente l'elenco di tutte le chiavi di registro relative alle patch

● Controlla prima la versione e il checksum, poi la lingua, il tipo di sistema operativo, i service pack e le applicazioni, ed identifica le patch di sicurezza che sono necessarie al sistema operativo, i service pack mancanti, e le patch per le applicazioni.

● A controllo terminato avrete l'elenco di tutte le patch mancanti

Page 18: SECURING IIS 5.0 WINDOWS 2000 SERVER Branca Enrico stu1015 @ libero.it.

Applicazione security patch (3 / 3)

● Quindi secondo hfnetchk quali sono le patch che ci servono ?

* Win2k MS01-022 Q296441 WebDav ( no Stand-Alone ) Win2k MS02-006 Q314147 Unchecked Buffer in SNMPWin2k MS02-008 Q318203 XMLHTTP ControlIE 6.0 MS02-009 Q318089 Incorrect VBScript HandlingWin2k MS02-013 Q300845 Cumulative VM UpdateWin2k MS02-014 Q313829 Unchecked Buffer in Windows Shell

* Win2k MS02-016 Q318593 Group Policy Files (only for DC)Win2k MS02-017 Q311967 Unchecked Buffer in Multiple UNCIIS 5.0 MS02-018 Q319733 IIS 5.0 Cumulative PatchIE 6.0 MS02-023 Q321232 IE 6.0 Cumulative PatchWin2k MS02-024 Q320206 Windows DebuggerIE 6.0 MS02-027 Q323889 Gopher Protocol HandlerIIS 5.0 MS02-028 Q311599 Heap Overrun in HTR

* Win2k MS02-029 Q318138 Unchecked Buffer in RAS

● Le patch sono gia nell'ordine in ci si dovrebbero installare, cioè nell'ordine in cui sono state rilasciate ( secondo il file mssecure.xml del 12-06-2002 )

* Le patch MS01-022, MS02-016 e MS02-029 non sono da installare in quanto non necessarie per la configurazione proposta

Page 19: SECURING IIS 5.0 WINDOWS 2000 SERVER Branca Enrico stu1015 @ libero.it.

Rimozione componenti superflui (1 / 6)● Adesso che la macchina è aggiornata correttamente

dobbiamo cominciare a renderla sicura, per cui togliamo o rendiamo inaccessibile tutto il superfluo

● Andiamo a disabilitare i servizi che non servono, per cui si va in Run e lanciamo la MMC relativa ai servizi: services.msc

● Lasciamo attivi solo :

- Event Log - IPSec Policy Agent- Network Connections - Plug and Play- Protected Storage - IIS Admin Service- Remote Procedure Call - Security Account Manager- FTP Publishing Service - World Wide Web Publishing Service- Logical Disk Manager - Windows Management Instrumentation ( WMI )- Windows Management Instrumentation Driver Extensions

Page 20: SECURING IIS 5.0 WINDOWS 2000 SERVER Branca Enrico stu1015 @ libero.it.

Rimozione componenti superflui (2 / 6)● Andiamo con notepad ad editare il file:

%systemroot%\inf\sysoc.infche contiene l'elenco dei componenti installati nel sistema e rimuoviamo la parola “hide”

● Adesso andiamo in Add/Remove Programs poi in Add/Remove Windows Components e rimuoviamo “Imaging”

● Dato che abbiamo aggiornato il sistema, andiamo a rimuovere le cartelle che contengono i dati di backup:%systemroot%\$NtServicePackUninstall$%systemroot%\$NtUninstallQ******$%systemroot%\$NtUninstallSP2SRP1$%systemroot%\ServicePackFiles

Page 21: SECURING IIS 5.0 WINDOWS 2000 SERVER Branca Enrico stu1015 @ libero.it.

Rimozione componenti superflui (3 / 6)● Rimuoviamo i sottosistemi OS2 e POSIX:

Prima rimuoviamo le chiavi di registro:

- HKLM\System\CurrentControlSet\Control\Session Manager\Subsystems\Optional REG_BYNARY 00 00Os2 REG_SZ RIMUOVEREPosix REG_SZ RIMUOVERE- HKLM\System\CurrentControlSet\Control\WOW KEY RIMUOVERE- HKLM\System\CurrentControlSet\Control\SessionManager\Environment\Os2LibPath REG_SZ RIMUOVERE- HKLM\Software\Microsoft\OS/2 Subsystem for NT KEY RIMUOVERE

● Dopo andiamo a disabilitare l'uso dei file utilizzati dai sottosistemi, assegnando FULL CONTROL solo ad un gruppo senza membri, escludendo l'accesso ai file anche ad Administrator

ntio.sys ntdos.sys command.com ntvdm.exe krnl386.exeposix.exe psxdll.dll os2.exe os2ss.exe os2srv.exepsxss.exe os2 ( tutta la directory )

Page 22: SECURING IIS 5.0 WINDOWS 2000 SERVER Branca Enrico stu1015 @ libero.it.

Rimozione componenti superflui (4 / 6)● Disabilitiamo NetBIOS:

Network Basic Imput-Output System

consente la comunicazione fra le applicazioni sviluppate per sfruttarlo, fornendo tre servizi di base:name service porta UDP 137datagram service porta UDP 138session service porta TCP 139

● Perchè possa servire a qualcosa ha bisogno di appoggiarsi a un altro protocollo, e cioè:SMB ( server message block )

● windows 2000 ha una versione di SMB without NetBIOS (Direct Host) che ascolta sulla porta TCP 445

Page 23: SECURING IIS 5.0 WINDOWS 2000 SERVER Branca Enrico stu1015 @ libero.it.

Rimozione componenti superflui (5 / 6)● Per disabilitare NetBIOS:

Nella finestra Advanced TCP/IP Settings, andremo a scegliere il menù relativo al WINS, e selezioniamo “Disable NetBIOS over TCP/IP”

Per disabilitare completamente NetBIOS andiamo in Computer Management e negli “Hydden Devices” disabilitiamo il driver “NetBIOS over tcpip” (nbt.sys)

● Condivisione file e stampanti diventa inutile essendo dipendente da NetBIOS e può essere disinstallato.

● Selezioniamo quindi “Client for Microsoft Networks” e deselezioniamo il chek, dato che questo componente serve per il corretto funzionamento di IIS per cui non possiamo rimuoverlo ma ci limitiamo a disabilitarlo

Il motivo per cui teniamo “Client for Microsoft Networks” è che il componente NTLM ( NT/LAN Manager ) Security Support Provider è integrato in questa parte del sistema operativo, e senza questo

componente IIS 5.0 non potrebbe funzionare

Page 24: SECURING IIS 5.0 WINDOWS 2000 SERVER Branca Enrico stu1015 @ libero.it.

Rimozione componenti superflui (6 / 6)● Adesso che abbiamo disabilitato NetBIOS molti file sono

inutili se non pericolosi, quindi andiamo a disabilitarne l'uso assegnando FULL CONTROL ad un gruppo senza membri, escludendo l'accesso anche ad Administrator

rcp.exe, netsh.exe, cscript.exe, regsrv32, cmd.exe, edlin.exe, nbtstat.exe, telnet.exe, runonce.exe,

tracert.exe,debug.exe, regini.exe, regedt32.exe, ftp.exe, calcs.exe, regedit.exe, finger.exe, xcopy.exe, rsh.exe, at.exe, atsvc.exe, attrib.exe, nslookup.exe, ipconfig.exe, edit.com, dialer.exe, netstat.exe, secfixup.exe, qbasic.exe, rdisk.exe, syskey.exe, sysedit.exe, hypertrm.exe, issync.exe, wscript.exe, poledit.exe, tftp.exe, clipsrv.exe, llssrv.exe, netdde.exe, spoolss.exe, tskill.exe, rexec.exe, runas.exe, arp.exe, ping.exe, route.exe, net.exe, srv.sys, rdr.sys, netbt.sys, netbios.sys, tcpsvcs.exe, tapisrv.exe

Page 25: SECURING IIS 5.0 WINDOWS 2000 SERVER Branca Enrico stu1015 @ libero.it.

Criteri di sicurezza e modifiche al registro (1 / 3)● Per modificare i criteri di sicurezza della macchina,

usiamo due snap-in:“Security Configuration and Analisys” “Security Template”

● Con il primo snap-in analizziamo lo stato della macchina e applichiamo i cambiamenti, mentre con il secondo prepariamo i “security templates” che useremo per configurarla

● Per una configurazione di base useremo il security template “hysecweb.inf” rilasciato sul sito della Microsoft, che provvederemo a scaricare e a copiare nella cartella contenente i templates

%systemroot%\security\templates

Page 26: SECURING IIS 5.0 WINDOWS 2000 SERVER Branca Enrico stu1015 @ libero.it.

Criteri di sicurezza e modifiche al registro (2 / 3)● Ma applicare solo il template non basta e si devono cambiare delle chiavi di registro

HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

TcpMaxHalfOpen REG_DWORD 100

TcpMaxHalfOpenRetried REG_DWORD 80

TcpMaxPortsExhausted REG_DWORD 5

HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\[Interface Name]

PerformRouterDiscovery REG_DWORD 0

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa

RestrictAnonymous REG_DWORD 2

RestrictNullSessAccess REG_DWORD 1

Page 27: SECURING IIS 5.0 WINDOWS 2000 SERVER Branca Enrico stu1015 @ libero.it.

Criteri di sicurezza e modifiche al registro (3 / 3)● Cosa abbiamo modificato??

Con la prime tre chiavi impostiamo i parametri che il sistema dovrà usare in caso si SYN FLOOD, per cui

attraverso hysecweb.inf l'abbiamo istruito su come proteggersi, mentre adesso diamo le condizioni necessarie a far scattare la protezione

Con la seconda chiave evitiamo che eventuali pacchetti ICMPInternet Router Discovery Protocol (IRDP) possano variare l'indirizzo del router predefinito

Con le altre due chiavi diciamo al sistema che non deve permettere che utenti anonimi possano enumerare utenti e risorse, e che sia possibile accedere alla macchina tramite “null session”