Windows Security Windows Security Fabio Senior Developer Evangelist fsantini@microsoft.com Microsoft Italy

  • View
    214

  • Download
    2

Embed Size (px)

Text of Windows Security Windows Security Fabio Senior Developer Evangelist fsantini@microsoft.com...

  • Slide 1
  • Slide 2
  • Windows Security Windows Security Fabio Santini.NET Senior Developer Evangelist fsantini@microsoft.com Microsoft Italy
  • Slide 3
  • Windows Security Windows Security Raffaele Rialdi Microsoft C# MVPhttp://mvp.support.microsoft.com MVP Profilehttp://snipurl.com/f0cv Bloghttp://blogs/ugidotnet.org/raffaele malta@vevy.com Vevy Europe SpA
  • Slide 4
  • Agenda Termini base Termini base SID, Logon Session, ACL, Privilegi, LSA SID, Logon Session, ACL, Privilegi, LSA Protocolli di autenticazione Protocolli di autenticazione Impersonation e Delegation Impersonation e Delegation Code Access Security del Framework.NET Code Access Security del Framework.NET Auditing Auditing Q&A Q&A
  • Slide 5
  • Termini base Autorizzazione != Autenticazione Autorizzazione != Autenticazione Autenticazione Chi sei? Autenticazione Chi sei? Autorizzazione Cosa puoi fare? Autorizzazione Cosa puoi fare? Principal unentit che pu essere autenticata Principal unentit che pu essere autenticata Authority unentita che rappresenta un set specifico di principal Authority unentita che rappresenta un set specifico di principal Trust importante fidarsi di alcune authority che sono in grado di verificare correttamente le identit Trust importante fidarsi di alcune authority che sono in grado di verificare correttamente le identit Authorities (domini) possono fidarsi a vicenda (la fiducia transitiva da win2k) Authorities (domini) possono fidarsi a vicenda (la fiducia transitiva da win2k)
  • Slide 6
  • Termini base User Accounts: User Accounts: Gli user account sono identificati da uno user name e una password. Lo user name letichetta e la password la stringa di autenticazione per laccount. Gli user account sono identificati da uno user name e una password. Lo user name letichetta e la password la stringa di autenticazione per laccount. Group account Group account Si utilizzano i group account per definire i permessi a utenti simili e per semplificare la gestione degli account. Si utilizzano i group account per definire i permessi a utenti simili e per semplificare la gestione degli account.
  • Slide 7
  • Trusted Computing Base (TCB) TCB definita come Federal Standard 1037C TCB definita come Federal Standard 1037C Il Kernel mode la parte principale del TCB, non ha limiti di accesso a nessuna risorsa di sistema Il Kernel mode la parte principale del TCB, non ha limiti di accesso a nessuna risorsa di sistema Lo User mode pu essere parte del TCB in relazione al tipo di processo e della impostazioni Lo User mode pu essere parte del TCB in relazione al tipo di processo e della impostazioni Il disegno di un sistema operativo deve dividere in maniera assoluta codice fidato da codice non fidato Il disegno di un sistema operativo deve dividere in maniera assoluta codice fidato da codice non fidato per definizione, kernel code fidato per definizione, kernel code fidato tutto quello che scrivete per default non fidato tutto quello che scrivete per default non fidato TCB Kernel md TCB parte non fidata parte fidata senza limiti
  • Slide 8
  • Utente administrator Lutente Administrator in Windows considerato parte della TCB Lutente Administrator in Windows considerato parte della TCB Il suo ruolo quello di definire il TCB e di configurare i livelli di fiducia che il sistema operativo deve usare per ogni account Il suo ruolo quello di definire il TCB e di configurare i livelli di fiducia che il sistema operativo deve usare per ogni account Windows non pu essere messo in sicurezza da un administrator distratto Windows non pu essere messo in sicurezza da un administrator distratto
  • Slide 9
  • Principal e account Il Principal unentit che pu essere principalmente autenticata come: Il Principal unentit che pu essere principalmente autenticata come: User User Computer Computer Laccount rappresenta un set di dati riguardanti un principal Laccount rappresenta un set di dati riguardanti un principal Un account esiste in contesti differenti: Un account esiste in contesti differenti: Local account Local account Network Network La differenza sta nel tipo di authority che gestisce laccount La differenza sta nel tipo di authority che gestisce laccount Local TCB e lauthority Local TCB e lauthority Network Domain lauthority Network Domain lauthority
  • Slide 10
  • I domini sono regni fidati I domini possono contenere I domini possono contenere Utenti Utenti Computer Computer Gli account di dominio si estendono sui computer in rete Gli account di dominio si estendono sui computer in rete MyDomain\MyAccount riconosciuto su tutti i computer che fanno parte di un certo dominio MyDomain\MyAccount riconosciuto su tutti i computer che fanno parte di un certo dominio La fiducia tra domini estende il regno La fiducia tra domini estende il regno Se YourDomain si fida di MyDomain, allora YourDomain riconosce MyDomain\MyAccount Se YourDomain si fida di MyDomain, allora YourDomain riconosce MyDomain\MyAccount Un client in un dominio pu autenticarsi su un qualunque server che raggiungibile da un percorso di fiducia dal server verso il client Un client in un dominio pu autenticarsi su un qualunque server che raggiungibile da un percorso di fiducia dal server verso il client
  • Slide 11
  • Ogni computer un isola Ogni computer un isola Un account su un computer separato da un altro account su un computer differente Un account su un computer separato da un altro account su un computer differente Local account possono autenticarsi in rete se i propri user name e password corrispondono sugli altri computer (tipico nel workgroup) Local account possono autenticarsi in rete se i propri user name e password corrispondono sugli altri computer (tipico nel workgroup) Altrimenti in generale questi sono account differenti: Altrimenti in generale questi sono account differenti: Computer1\User1 Computer1\User1 Computer2\User1 Computer2\User1 Domain\User1 Domain\User1
  • Slide 12
  • Schema di autenticazione Principal Authentication Logon Session Domain Domain Controller / Backup Domain Controller Token SID Authorization NTLM/Kerberos.SAM.SAM/AD LSA Lsass.exe
  • Slide 13
  • Cos un SID? SID = Security Identifier SID = Security Identifier Un valore univoco in tempo e in spazio che determina un oggetto di sicurezza del sistema Un valore univoco in tempo e in spazio che determina un oggetto di sicurezza del sistema Lunica eccezione il SID legato alla Logon Session 999 (SYSTEM) Lunica eccezione il SID legato alla Logon Session 999 (SYSTEM) Si basa su un identificatore di 96 bit creato quando si installa Windows Si basa su un identificatore di 96 bit creato quando si installa Windows Struttura del SID : S-R-I-SA-SA-SA [- RID] Struttura del SID : S-R-I-SA-SA-SA [- RID] RID (identificativo relativo), predefinito in winnt.h RID (identificativo relativo), predefinito in winnt.h Administrtor: S-1-5-21-XXXX-XXXX-XXXX-500 Guest: S-1-5-21-XXXX-XXXX-XXXX-501
  • Slide 14
  • LSA LSA = Local Security Authority LSA = Local Security Authority Una struttura flessibile che fornisce il servizio di autenticazione Una struttura flessibile che fornisce il servizio di autenticazione Eseguito in un processo privilegiato lsass.exe Eseguito in un processo privilegiato lsass.exe LSA il processo principale che lavora con i local accounts => pu lavorare come un DC in piccole reti LSA il processo principale che lavora con i local accounts => pu lavorare come un DC in piccole reti.SAM COMP1\User1 SID1.SAM COMP2\User1 SID2 LSA Authomatic logon (Network Logon Session)
  • Slide 15
  • WINLOGON (Winlogon.exe) GINA (Msgina.dll) Local Security Authority (LSA) Authentication Package NETLOGON (Local Computer) NETLOGON (Domain Computer) Authentication Package Security Account Manager Local user database LSA policy database Processo di autenticazione Interactive Logon Session TOKEN
  • Slide 16
  • Logon Session Un istanza di un principal che gira su un computer Un istanza di un principal che gira su un computer Per ogni autenticazione locale o remota il kernel genera una nuova logon session Per ogni autenticazione locale o remota il kernel genera una nuova logon session La logon session viene distrutta non appena tutti i token che la referenziano vengono chiusi (reference count) La logon session viene distrutta non appena tutti i token che la referenziano vengono chiusi (reference count) Per gli utenti guest viene creata una logon session speciale chiamata null session Per gli utenti guest viene creata una logon session speciale chiamata null session Una sessione inizia da unautenticazione del TCB Una sessione inizia da unautenticazione del TCB Tre eccezioni: Al boot vengono create le logon session per Local System, Local Service, Network Service che quindi non necessitano di password Tre eccezioni: Al boot vengono create le logon session per Local System, Local Service, Network Service che quindi non necessitano di password Logon session mantiene dati importanti Logon session mantiene dati importanti Alla logoff, l'OS cerca di chiudere tutti i processi collegati alla logon session associata all'utente loggato Alla logoff, l'OS cerca di chiudere tutti i processi collegati alla logon session associata all'utente loggato Usata per memorizzare le credenziali del client in cache (kerberos tickets) Usata per memorizzare le credenziali del client in cache (kerberos tickets)
  • Slide 17
  • Logon session Non un termine astratto, una logon session fisicamente un operazione del sistema operativo Non un termin