TechNet Security Workshop IV Milano, 8 Giugno. Internet Information Server 6.0.

26
TechNet TechNet Security Workshop Security Workshop IV IV Milano, 8 Giugno Milano, 8 Giugno

Transcript of TechNet Security Workshop IV Milano, 8 Giugno. Internet Information Server 6.0.

Page 1: TechNet Security Workshop IV Milano, 8 Giugno. Internet Information Server 6.0.

TechNet TechNet Security Workshop IVSecurity Workshop IV

Milano, 8 GiugnoMilano, 8 Giugno

Page 2: TechNet Security Workshop IV Milano, 8 Giugno. Internet Information Server 6.0.

Internet Information Server 6.0Internet Information Server 6.0

Page 3: TechNet Security Workshop IV Milano, 8 Giugno. Internet Information Server 6.0.

AgendaAgenda

Accounts Built-in IIS 6.0Accounts Built-in IIS 6.0 Autenticazione in IIS:Autenticazione in IIS:

Anonymous AuthenticationAnonymous Authentication Basic AuthenticationBasic Authentication Integrated AuthenticationIntegrated Authentication Client Certificate AuthenticationClient Certificate Authentication

Protezione del Traffic Web Protezione del Traffic Web

Page 4: TechNet Security Workshop IV Milano, 8 Giugno. Internet Information Server 6.0.

Scelta di un Isolation ModeScelta di un Isolation Mode

Mode Applicazioni: Compatibilità: Isolamento:

IIS 5.0 Isolation Mode

Funzionano in Inetinfo.exe, e le applicazioni out-of-process funzionano in DLL host separate

Garantisce la compatibilità per la maggior parte delle applicazioni esistenti

Impedisce che un’applicazione (o un sito) ne danneggi un’altra

Worker Process Isolation Mode

Funzionano in un ambiente isolato

Le applicazioni devono essere scritte per funzionare come un’istanza multipla

Permette agli amministratori di isolare qualunque cosa, da una singola applicazione Web a siti multipli nel loro worker process

Page 5: TechNet Security Workshop IV Milano, 8 Giugno. Internet Information Server 6.0.

L’Autenticazione in IIS 6.0?L’Autenticazione in IIS 6.0?

IIS 4.0IIS 4.0 IIS 5.0IIS 5.0 IIS 6.0IIS 6.0

AuthenticationAuthentication

AnonymousAnonymous

Basic (clear text)Basic (clear text)

Windows NT Windows NT Challenge / Challenge / ResponseResponse

IntegratedIntegrated

DigestDigest

.NET Passport.NET Passport Non Non disponibiledisponibile

Disponibile Disponibile come come

installazione installazione separataseparata

Pienamente Pienamente integrataintegrata

Page 6: TechNet Security Workshop IV Milano, 8 Giugno. Internet Information Server 6.0.

Account Built-in in IIS 6.0Account Built-in in IIS 6.0AccountAccount DescriptionDescription

LocalSystemLocalSystemHa molti diritti di accessoHa molti diritti di accessoEvitare di assegnare LocalSystem come identità di un Evitare di assegnare LocalSystem come identità di un

application poolapplication pool

Network ServiceNetwork Service

Pochi privilegiPochi privilegiIInteragisce attraverso la rete utilizzando il computer IInteragisce attraverso la rete utilizzando il computer

accountaccountE’ l’identità assegnata per default all’application pool E’ l’identità assegnata per default all’application pool

(raccomandata)(raccomandata)

Local ServiceLocal Service

Pochi provilegiPochi provilegiSi collega attraverso la rete in modalità anonimaSi collega attraverso la rete in modalità anonimaDa usare solo per applicazioni Web localiDa usare solo per applicazioni Web locali

IIS_WPGIIS_WPGGruppo di IIS, l’account che assegno come identità Gruppo di IIS, l’account che assegno come identità

dell’Application Pool deve essere membro di questo dell’Application Pool deve essere membro di questo gruppogruppo

IUSR_computernaIUSR_computernameme

Account di IIS utilizzato per l’accesso anonimoAccount di IIS utilizzato per l’accesso anonimo

IWAM_computernIWAM_computernameame

Account di IIS per avviare applicazioni out-of-process in Account di IIS per avviare applicazioni out-of-process in IIS 5.0 isolation modeIIS 5.0 isolation mode

ASPNETASPNETAccount di IIS per avviare il worker process di ASP.NET Account di IIS per avviare il worker process di ASP.NET

in IIS 5.0 isolation modein IIS 5.0 isolation mode

Page 7: TechNet Security Workshop IV Milano, 8 Giugno. Internet Information Server 6.0.

Flusso del Controllo d’accessoFlusso del Controllo d’accesso

1.1. L’indirizzo IP è permesso?L’indirizzo IP è permesso?

2.2. L’utente è permesso? L’utente è permesso? Credenziali valide (Autenticazione)Credenziali valide (Autenticazione) Restrizioni dell’AccountRestrizioni dell’Account

Time, Lockout, Password scaduta, PrivilegiTime, Lockout, Password scaduta, Privilegi

3.3. IIS permette l’accesso ? IIS permette l’accesso ?

4.4. NTFS permette l’accesso ?NTFS permette l’accesso ?

Page 8: TechNet Security Workshop IV Milano, 8 Giugno. Internet Information Server 6.0.

Architettura di AutenticazioneArchitettura di Autenticazione

Client Client IIS IIS Basic, Digest, Basic, Digest,

Windows, Client Windows, Client certificatescertificates

IIS IIS Backend Server Backend Server Delega ?Delega ?

IISIISIEIE SQLSQL

Page 9: TechNet Security Workshop IV Milano, 8 Giugno. Internet Information Server 6.0.

InternetInternet DMZDMZ

Scenario di AutenticazioneScenario di Autenticazione

IISIIS

Web BrowserWeb Browser

Web ProxyWeb Proxy

SQL SQL

ServerServer

ActiveActive

DirectoryDirectory

FirewallFirewall

Page 10: TechNet Security Workshop IV Milano, 8 Giugno. Internet Information Server 6.0.

Anonymous AuthenticationAnonymous Authentication

IISIIS

Web BrowserWeb Browser

ProxyProxy

SQL SQL

ServerServer

ActiveActive

DirectoryDirectory

FirewallFirewall

3

SQL authenticationSELECT * FROM table

2

1

GET dbquery.asp HTTP/1.1

Page 11: TechNet Security Workshop IV Milano, 8 Giugno. Internet Information Server 6.0.

Anonymous AuthenticationAnonymous Authentication

Accesso alle risorse come utente anonimo Accesso alle risorse come utente anonimo (IUSR_<machinename>(IUSR_<machinename>

Identità del Processo: Network Services, Identità del Processo: Network Services, LocalSystem, IWAM_<machinename>LocalSystem, IWAM_<machinename>

L’identità del processo è configurabile L’identità del processo è configurabile tramite COM+tramite COM+ Sicurezza / PrestazioniSicurezza / Prestazioni

Page 12: TechNet Security Workshop IV Milano, 8 Giugno. Internet Information Server 6.0.

Basic AuthenticationBasic Authentication

IISIIS

Web BrowserWeb Browser

ProxyProxy

SQL SQL

ServerServer

ActiveActive

DirectoryDirectory

FirewallFirewall

55

LogonUserLogonUser

(“user1”, “pw”)(“user1”, “pw”)

66 Windows Windows authenticationauthentication

Authorization:Authorization:“Basic” Base64 encoded user/pw“Basic” Base64 encoded user/pw

44

33

401 Unauthorized401 Unauthorized

WWW-Authenticate: Basic realm="spoon"WWW-Authenticate: Basic realm="spoon"

22

11

GET dbquery.asp HTTP/1.1 GET dbquery.asp HTTP/1.1

Page 13: TechNet Security Workshop IV Milano, 8 Giugno. Internet Information Server 6.0.

Basic AuthenticationBasic Authentication

Identità del Processo: Network Services, Identità del Processo: Network Services, LocalSystem, IWAM_<machinename>LocalSystem, IWAM_<machinename>

Accesso alle risorse come authenticated userAccesso alle risorse come authenticated user VantaggiVantaggi

Tutti i client HTTP supportano la basic authTutti i client HTTP supportano la basic auth Supporta delega one hopSupporta delega one hop

SvantaggiSvantaggi Password in chiaro (Base64 Encoded)Password in chiaro (Base64 Encoded)

Su InternetSu Internet Sul ServerSul Server Deve essere protetto tramite SSLDeve essere protetto tramite SSL

Page 14: TechNet Security Workshop IV Milano, 8 Giugno. Internet Information Server 6.0.

Windows Integrated Windows Integrated AuthenticationAuthentication

Security Support Provider (SSPI)-basedSecurity Support Provider (SSPI)-based NTLM o KerberosNTLM o Kerberos IIS chiede al client che protocollo supportaIIS chiede al client che protocollo supporta Il Protocollo può essere forzatoIl Protocollo può essere forzato

NTAuthenticationProvidersNTAuthenticationProvidersNegotiateNegotiateNTLMNTLMKerberosKerberos

Page 15: TechNet Security Workshop IV Milano, 8 Giugno. Internet Information Server 6.0.

NTLM AuthenticationNTLM Authentication

IISIIS

Web BrowserWeb Browser

ProxyProxy

SQL SQL

ServerServer

ActiveActive

DirectoryDirectory

FirewallFirewall

11

GET dbquery.asp HTTP/1.1GET dbquery.asp HTTP/1.1

22

401 Unauthorized401 Unauthorized

WWW-Authenticate: “NTLM” challengeWWW-Authenticate: “NTLM” challenge

Authorization: “NTLM” responseAuthorization: “NTLM” response

33

Page 16: TechNet Security Workshop IV Milano, 8 Giugno. Internet Information Server 6.0.

NTLM AuthenticationNTLM Authentication

IISIIS

Web BrowserWeb Browser

SQL SQL

ServerServer

ActiveActive

DirectoryDirectory

11

1.1. GET dbquery.asp HTTP/1.1GET dbquery.asp HTTP/1.1

22

2. HTTP/1.1 401 Unauthorized2. HTTP/1.1 401 UnauthorizedWWW-Authenticate: NTLM WWW-Authenticate: NTLM

33

3. HTTP GET dbquery.asp HTTP/1.13. HTTP GET dbquery.asp HTTP/1.1Authorization: NTLM {…} Connection: Keep-AliveAuthorization: NTLM {…} Connection: Keep-Alive

44

4. HTTP/1.1 401 Access Denied4. HTTP/1.1 401 Access DeniedWWW-Authenticate: NTLM {…}Connection: Keep-AliveWWW-Authenticate: NTLM {…}Connection: Keep-Alive

55

5. HTTP GET dbquery.asp HTTP/1.15. HTTP GET dbquery.asp HTTP/1.1Authorization: NTLM {hashed challenge} Authorization: NTLM {hashed challenge} Connection: Keep-AliveConnection: Keep-Alive

66

ImpersonateImpersonateSecurityContextSecurityContext

77

SQL Login / COM+SQL Login / COM+SELECT * FROM SELECT * FROM table WHERE table WHERE user=‘user1’user=‘user1’

Page 17: TechNet Security Workshop IV Milano, 8 Giugno. Internet Information Server 6.0.

NTLM AuthenticationNTLM Authentication

VantaggiVantaggi Lavora out-of-the-boxLavora out-of-the-box Fornisce logon automatico / senza logon Fornisce logon automatico / senza logon

dialog boxdialog box

SvantaggiSvantaggi Solo Enterprise– non funziona attraverso i Solo Enterprise– non funziona attraverso i

Proxy Server (richiede keep-alive connection)Proxy Server (richiede keep-alive connection) Non supporta delegaNon supporta delega Configurata per essere compatibile con i client Configurata per essere compatibile con i client

vecchivecchi

Page 18: TechNet Security Workshop IV Milano, 8 Giugno. Internet Information Server 6.0.

Kerberos AuthenticationKerberos Authentication

IISIIS

Web BrowserWeb Browser

ProxyProxy

SQL SQL

ServerServer

ActiveActive

DirectoryDirectory

FirewallFirewall

11

1.1. HTTP GET dbquery.asp HTTP/1.1HTTP GET dbquery.asp HTTP/1.1

33

3. Kerberos Session Ticket Request3. Kerberos Session Ticket Request

2. HTTP/1.1 401 Unauthorized2. HTTP/1.1 401 UnauthorizedWWW-Authenticate: Negotiate, KerberosWWW-Authenticate: Negotiate, Kerberos

22

Page 19: TechNet Security Workshop IV Milano, 8 Giugno. Internet Information Server 6.0.

Kerberos AuthenticationKerberos Authentication

IISIIS

Web BrowserWeb Browser

SQL SQL

ServerServer

ActiveActive

DirectoryDirectory

11

1.1. HTTP GET dbquery.asp HTTP/1.1HTTP GET dbquery.asp HTTP/1.1

44

4. Kerberos Session Ticket Response4. Kerberos Session Ticket Response

55

5. HTTP GET dbquery.asp HTTP/1.15. HTTP GET dbquery.asp HTTP/1.1

22

2. HTTP/1.1 401 Unauthorized2. HTTP/1.1 401 UnauthorizedWWW-Authenticate: Negotiate, NTLM WWW-Authenticate: Negotiate, NTLM

66

ImpersonateImpersonateSecurityContextSecurityContextNTNTAuthenticationAuthentication

6. Delegation 6. Delegation

33

3. Kerberos Session Ticket Request3. Kerberos Session Ticket Request

Page 20: TechNet Security Workshop IV Milano, 8 Giugno. Internet Information Server 6.0.

Kerberos AuthenticationKerberos Authentication

Robusta, scalabile, veloce, supporta delegaRobusta, scalabile, veloce, supporta delega Support client limitatoSupport client limitato

Internet Explorer 5 e Windows 2000Internet Explorer 5 e Windows 2000

CriticitàCriticità Client devono poter accedere ai DCClient devono poter accedere ai DC Delega deve essere abilitataDelega deve essere abilitata

Non vincolata in IIS 5Non vincolata in IIS 5

SetupSetup Vedi “designing secure Web-based applications” Vedi “designing secure Web-based applications”

Page 21: TechNet Security Workshop IV Milano, 8 Giugno. Internet Information Server 6.0.

Client Certificate AuthenticationClient Certificate AuthenticationHandshake phaseHandshake phase

IISIIS

Web BrowserWeb Browser

ProxyProxy

SQL SQL

ServerServer

ActiveActive

DirectoryDirectory

FirewallFirewall

11

Client HelloClient Hello

55

Server finishServer finish

44

Client finishClient finish

Client responseClient responsecertificate, crypto parameterscertificate, crypto parameters

33

22

Server Hello Server Hello certificate, crypto parameterscertificate, crypto parameters

Page 22: TechNet Security Workshop IV Milano, 8 Giugno. Internet Information Server 6.0.

Client Certificate AuthenticationClient Certificate AuthenticationIIS MappingIIS Mapping

IISIIS

Web BrowserWeb Browser

SQL SQL

ServerServer

ActiveActive

DirectoryDirectory

FirewallFirewall

ProxyProxy

11

HTTPS GET dbquery.asp HTTP/1.1HTTPS GET dbquery.asp HTTP/1.1

44 LogonUser( “LogonUser( “user1” , user1” , “pw”)“pw”)

55NT NT AuthenticationAuthentication

33 MappingMapping

Page 23: TechNet Security Workshop IV Milano, 8 Giugno. Internet Information Server 6.0.

Client Certificate AuthenticationClient Certificate AuthenticationActive Directory MappingActive Directory Mapping

IISIIS

Web BrowserWeb Browser

SQL SQL

ServerServer

ActiveActive

DirectoryDirectory

FirewallFirewall

ProxyProxy

22

SCHANNELSCHANNELUPN Mapping UPN Mapping ororAD MappingAD Mapping

33

SQL Login / COM+SQL Login / COM+SELECT * FROM SELECT * FROM table WHERE table WHERE user=‘user1’user=‘user1’

11

HTTPS GET dbquery.asp HTTP/1.1HTTPS GET dbquery.asp HTTP/1.1

Page 24: TechNet Security Workshop IV Milano, 8 Giugno. Internet Information Server 6.0.

Client Certificate AuthenticationClient Certificate Authentication

VantaggiVantaggi Molto sicuraMolto sicura Flessibile Flessibile Garantisce Integrità e confidenzialitàGarantisce Integrità e confidenzialità

SvantaggiSvantaggi Maggiori costi di gestione per la PKIMaggiori costi di gestione per la PKI Scalabilità e PerformanceScalabilità e Performance

Page 25: TechNet Security Workshop IV Milano, 8 Giugno. Internet Information Server 6.0.

Griglia di AutenticazioneGriglia di Autenticazione

SchemaSchema SicurezzaSicurezza Limiti / CommentiLimiti / Commenti Supporto Supporto ClientClient

ScenarioScenario

AnonymousAnonymous NoneNone TuttiTutti TuttiTutti

BasicBasic LowLow Password in chiaro, da Password in chiaro, da usare solo con SSLusare solo con SSL

Tutti Tutti TuttiTutti

DigestDigest MediumMedium IIS 5 o supIIS 5 o sup IE5 e sup in un IE5 e sup in un dominiodominio

TuttiTutti

NTLMNTLM MediumMedium Non funziona attraverso i Non funziona attraverso i proxyproxy

Solo Internet Solo Internet ExplorerExplorer

Solo Intranet, non Solo Intranet, non funziona con i funziona con i ProxyProxy

KerberosKerberos HighHigh IIS 5.0 o supIIS 5.0 o sup IE 5 su W2000 o IE 5 su W2000 o XP in un dominioXP in un dominio

Solo Intranet, DC Solo Intranet, DC devono essere devono essere accessibili da accessibili da parte dei clientparte dei client

IIS Client Cert IIS Client Cert MappingMapping

HighHigh Gestione PKI rende la Gestione PKI rende la gestione dei certificati gestione dei certificati client costosa (eccetto client costosa (eccetto PKI W2003) , IIS 5.0 o supPKI W2003) , IIS 5.0 o sup

Tutti i browsers Tutti i browsers più recentipiù recenti

TuttiTutti

AD Client AD Client Cert MappingCert Mapping

Very HighVery High Gestione PKI rende la Gestione PKI rende la gestione dei certificati gestione dei certificati client costosa (eccetto client costosa (eccetto PKI W2003) , IIS 5.0 o supPKI W2003) , IIS 5.0 o sup

Tutti i browsers Tutti i browsers più recentipiù recenti

TuttiTutti

Page 26: TechNet Security Workshop IV Milano, 8 Giugno. Internet Information Server 6.0.