Sicurezza e protezione dei dati Agenda • Code integrity • BitLocker (Avvio sicuro) • Hardening dei servizi • User Account Control • IE7 protected mode Code Integrity protezione da attacchi on-line Code integrity • Valida l’integrità di ogni immagine binaria • • • • Verifica hash per ogni pagina Binarialdicaricamento Windows Si Verifica ogni immagine caricata in un processo protetto Driver certificati di terze parti (WHQL) Si Implementato come un filtro del file system Driver non firmati Da policy Hash salvati nel system catalog o in certificati X.509 inseriti nel file Binari di applicazioni di terze parti No • Verifica anche l’integrità del processo di boot • kernel, HAL, driver di boot-start • Se la verifica fallisce il sistema non si avvia Firma del codice x64 • Tutto il codice di kernel deve essere firmato o non viene caricato • Driver di terze parti devono avere certificazione WHQL o contenere un certificato rilasciato dalla CA di Microsoft • Non ci sono eccezioni • Codice in user mode non necessita di firma a meno che: • Implementi funzioni di crittografia • Sia caricato nel servizio di gestione delle licenze x32 • La firma si applica solo ai driver forniti con Windows • Controllabile via policy cosa fare degli altri driver • Codice in kernel mode non firmato viene caricato • Codice in user mode trattato come in x64 Non confondere validazione di hash con firma digitale BitLocker protezione da attacchi off-line BitLocker (Avvio sicuro) Assicura Resistente agli integrità del attacchi boot Blocca i sistemi modificati Protegge il sistema da attacchi off-line software Previe l’avvio su i file controllati vengono alterati Protegge i Cripta i dati utenti e Tutti i dati sul volume sono criptati: dati dati quando i file di sistema utente, dati di sistema, pagefile, file per sono off-line ibernazione, temp, crash dump Ombrello di protezione Facile Semplifica il riciclo smaltimento dei sistemi Accellera la cancellazione sicura di dati Applicazioni di terze parti beneficiano della criptatura quando installate su partizioni protette da BitLocker Dati utente inaccessibili cancellando lo store delle chiavi del TPM La cancellazione richiede secondi e non ore Richieste hardware • Trusted Platform Module (TPM) v1.2 • Microcontroller su piastra madre • Mantiene chiavi, password, certificati e misure di integrità • Chiavi rilasciate solo con avvii regolari • Confronta ogni processo di boot con le misure salvate in precedenza • Ogni modifica apportata, tra due boot regolari, al volume criptato lo rende inaccessibile • Nessuna interazione o visibilità da parte dell’utente • Chiavi possono essere salvate in Active Directory per i ripristini • Proibisce l’uso di software di debugging durante l’avvio • • Richiede il supporto per TPM Interface (TIS) Firmware (Convenzionale o EFI BIOS) compatibile TCG • • Stabilisce una catena della fiducia per la parte di boot pre-OS Deve supportare le Static Root Trust Measurement (SRTM) specificate da TCG • Vedere a www.trustedcomputinggroup.org Abilitazione di BitLocker • Abilitare il chip TPM (normalmente nel BIOS) • Abilitare BitLocker da pannello di controllo • Viene modificato MBR • Criptata la partizione Windows • Generate le chiavi di criptatura simmetriche • Chiavi salvate nel TPM • La criptatura avviene dopo riavvio (come conversione FATNTFS) • Creata una partizione di sistema attiva di ~50MB TPM-aware, formattata in NTFS, contenente un boot manager TPM-aware Struttura del disco Le partizioni criptate dell’OS contengono: • OS criptato • Page file criptato • File temporanei criptati • Dati criptati • File di ibernazione criptato Dove sono le chiavi di criptatura? 1. SRK (Storage Root Key) contenuta nel TPM 2. SRK cripta VEK (Volume Encryption Key) protetta da TPM/PIN/Dongle 3. VEK (criptata da SRK) su HD nella Boot Partition VE 2K 3 La System Partition contiene utility per il boot (non criptate, 50MB) MBR 1 S R K Platform Configuration Registers Funzionamento del TPM PCR[15] PCR[14] PCR[13] PCR[12] PCR[11] PCR[10] PCR[9] PCR[8] PCR[7] PCR[6] PCR[5] PCR[4] PCR[3] PCR[2] PCR[1] PCR[0] • Reset di tutti i registri e trasferimento dell’esecuzione al Core Root of Trust Measurement • Misura la successiva porzione del firmware in PCR[0] e i dati in in PCR[1] (Test hardware e configurazione) • Codice sempre misurato prime di essere eseguito • Misure sono hash SHA-1 dei dati/codice controllato concatenati con hash nel PCR precedente • Misure scritte in modo permanente nel PCR • Opzioni di ROM e dati in PCR[2] e [3] • MBR in PCR[4], tabella delle partizioni in PCR[5] Platform Configuration Registers Funzionamento del TPM PCR[15] PCR[14] PCR[13] PCR[12] PCR[11] PCR[10] PCR[9] PCR[8] PCR[7] PCR[6] PCR[5] PCR[4] PCR[3] PCR[2] PCR[1] PCR[0] • • Controllo passato a MBR; • Carica il primo settore della partizione di boot attiva in memoria • Misura i primi 512 byte in PCR[8] Caricamento del settore di boot • Misurazione del rimanente in PCR[9] e trasferimento dell’esecuzione • Codice di boot misura BOOTMGR in PCR[10] e trasferisce l’esecuzione • Ogni ulteriore applicazione di boot deve essere caricata dalla sola partizione criptata • Il BOOTMGR trasferisce il controllo al sistema operativo • OS verifica integrità di ogni eseguibile caricato Ripristino delle chiavi Accesso alla rete via AD Abilitazione della funzione Secure Startup Recovery Key Deposito della chiave per esempio in AD (o su drive USB) Il computer ha Problemi HW x HD della macchina rotta inserito nella nuova macchina x Alert: Secure Startup Recovery Secure Startup Recovery has failed. Please enter your Secure Startup Recovery Key. **** **** **** **** You will not be able to start up your computer nor access your data. Your hard drive will remain encrypted until you can provide either the recovery media or your recovery key. Ok Cancel Close SysAdmin sblocca e fornisce la chiave utente dopo aver verificato le credenziali x Secure Startup Recovery Mode You have successfully recovered your data. The recovery process is complete. Close Utente chiama SysAdmin Coesistenza con altri OS • BitLocker cripta le partizioni • Non è possibile avviare altri sistemi operativi dalla stessa partizione • Sistemi operativi su altre partizioni funzionano correttamente • Tentativi di modificare la partizione Windows protetta la rende inutilizzabile • Rimpiazzare MBR • Modificare ogni singolo single bit Dischi BitLocker in XP Dischi BitLocker in Vista Dischi BitLocker in Linux 1 3 2 Errori in Linux con volumi Bitlocker 1.Fdisk legge la tavola delle partizioni e pensa che il disco sia ntfs 2.Tipo fs errato, opzioni errate, superblock errato su /dev/sda2, codepage mancante o altri errori 3. Settore di boot principale non valido Hardening dei servizi Protezione dei servizi dagli exploit Windows XP User Admin System Services Kernel 1. Pochi livelli 2. Molti privilegiati 3. Pochi controlli tra i livelli Windows Vista Hardening dei servizi User Account Control (LUA) Programmi a bassi privilegi Utente LUA Servizi a bassi privilegi Admin Servizi di sistema 1. Numero livelli aumentato Svc 6 Kernel Servizio 1 D DD D D D Servizio 2 Servizio 3 Svc 7 DD Driver in user D mode 2. Servizi segmentati 3. Riduzione della dimensione dei livelli ad alto rischio Hardening dei servizi Ridisegno • Muovere i servizi da LocalSystem a qualcosa dei servizi con meno privilegi • Se necessario dividere il servizio in modo che solo la parte che richiede i diritti di LocalSystem li abbia Profilazione • Abilitare i servizi a limitare il proprio dei Servizi comportamento • Le risorse possono avere ACL che consentono l’accesso all’ID del servizio solo per la parte necessaria • Inclusione di regole per definire il comportamento in rete È il concetto dei minimi privilegi Ridisegno • Pochi sviluppatori usano LocalService/NetworkService • Spesso non forniscono gli accessi necessari • Necessario qualcosa di diverso da “tutto o nulla! • Idealmente si devono togliere i servizi da LocalSystem • Se non fanno operazioni privilegiate • Normalmente richiedono solo modifiche alle ACL di driver e chiavi di registry • In caso diverso si divide il servizio in due parti • La parte principale che non esegue operazioni privilegiate • La parte privilegiata • Si esegue autenticazione tra le due parti (che hanno uguale SID) Ridisegno dei servizi in SVCHOST Windows XP Service Pack 2 LocalSystem Windows Vista Wireless Configuration RemoteAccess System Event Notification DHCP Client Network Connections Removable Storage WMI WMI Perf Adapter App Management W32time Automatic updates Secondary Logon COM+ Event System Rasman TrkWks NLA Browser Rasauto 6to4 Shell Hardware Detection Help and Support Themes Task Scheduler Telephony TrkWks Windows Audio Cryptographic Services Error Reporting Removable Storage Workstation WMI Perf Adapter ICS Automatic updates BITS WMI App Management LocalSystem Network restricted LocalSystem Demand started BITS Network Service DNS Client Browser Restricted ICS 6to4 RemoteAccess Task scheduler DHCP Client IPSEC Services W32time Server Rasman NLA Cryptographic Services Local Service Wireless Configuration Network Connections Restricted No network access System Event Notification Rasauto Shell Hardware Detection COM+ Event System Telephony Error Reporting Windows Audio Event Log Secondary Logon Network Service DNS Client Local Service SSDP WebClient TCP/IP NetBIOS helper Remote Registry Local Service Restricted Themes TCP/IP NetBIOS helper Workstation WebClient Remote Registry SSDP Profilazione dei servizi • Il profilo di un servizio • Restringe il servizio alle sole risorse necessarie • Blocca la persistenza e la propagazione di malware • Forza l’accesso alla rete ad azioni definite • Ogni servizio ha un identificativo univoco chiamato “service SID” • Il profilo è un insieme di ACL che • Consente ad un servizio di usare una risorsa • Definisce le porte a cui puo’ accedere per l’accesso alla rete • I servizi possono girare come LocalService o NetworkService e ricevere diritti superiori quando necessario Service SID • S-1-80-<hash SHA-1 del logical service name> • Nessuna amministrazione necessaria • Basato su token write-restricted • Restrizione della possibilità di scrittura in un token per il SID del servizio (es.SID-A) • Il processo può scrivere solo sulle risorse che hanno un ACL che lo consente al SID-A • Non può accedere ad altre risorse anche se altri SID nel token lo consentono Restrizione del servizio • Un servizio limitabile scrive due proprietà nel registry • Una per indicare che può essere limitato • Una per indicare quali privilegi richiede È un processo volontario. • All’avvio del servizio il Service Control Manager Il servizio decide di limitare se stesso. • ÈCalcola il service SID di sviluppo perchè riduce la una buona pratica • Aggiunge il service al tokenabusi del processo del servizio possibilità cheSID malware del servizio. è unwrite-restricted processo forzato dal sistema. • CreaNon un token Servizii privilegi di terzenon parti possono non seguirlo. • Rimuove necessari dal token • Il servizio imposta le ACL sulle risorse a cui solo lui può accedere • Esempio: su SysEvent.evt si impostano AC per consentire solo al servizio event log di scriverci Forzatura degli accessi alla rete • Quattro scenari • • • • Nessuna porta (no accesso alla rete) Porte fisse (porta definita a design time) Porte configurabili (porta modificabile da Admin) Porte dinamiche (porte definite a runtime) • Espresse come voci di registry • Estensibili per supportare altri scenari futuri (es. Filtri su sessioni/protocolli) • Modifiche alla configurazione applicate immediatamente senza reboot o riavvio del servizio • Regole non fermabili a servizio attivo Interazione con windows firewall Consente traffico inbound/outbound per Rpcss "V2.0; Action=Allow; Dir=Out; RPort=135; Protocol=tcp; Protocol=udp; App=%windir%\System32\svchost.exe; Svc=rpcss; Name=Allow outbound rpcss tcp/udp traffic;“ "V2.0; Action=Allow; Dir=in; LPort=135; Protocol=tcp; Protocol=udp; App=%windir%\System32\svchost.exe; Svc=rpcss; Name=Allow inbound tcp/udp rpcss;“ "V2.0; Action=Block; App=%windir%\System32\svchost.exe; Svc=rpcss; Name=Block any other traffic to and from rpcss;" Regole di accesso alla rete Regole di firewall • Non disabilitabili da WF o software di terze parti • Per le porte dinamiche, netenf configura il WF User Account Control Accesso con bassi privilegi Mandatory Integrity Control • Due token per processo: LUA e Privileged Access • Entrambi con lo stesso SID utente • I token adesso hanno un campo addizionale per inserire un Livello di Integrità (LI) • Nota: non si applica all’account Administrator built-in • I processi LUA hanno integrità minore e non possono • Cercare di elevare i privilegi modificando processi con token PA • Modificare i dati creati e usati dai processi PA • Mandare messaggi alle finestre dei processi PA o di qualsiasi altro processo con livello di integrità superiore • I processi LUA possono leggere dati posseduti da processi PA Livelli di integrità Sistema Alto Medio Basso Non fidato 400 200 100 0 300 Local Local Service Token LUA Mondo Anonymous System (Everyone) Network Authenticated Tutti gli altri Service Users token Token “Elevated” La shell gira qui Obbiettivi di UAC • Basato su Mandatory Integrity Control • Tutti gli utenti, anche gli amministratori, sono Standard User per default • Gli amministratori usano pieni privilegi solo per attività amministrative • Deve essere dato un consenso esplicito per l’elevazione di privilegi Come funziona UAC • Durante il logon interattivo, LSA filtra il token disabilitando eventuali SID privilegiati • LSA aggancia la sessione di logon del token filtrato al token privilegiato in kernel • LSA ritorna il token filtrato (token di un normale utente) a Winlogon • Winlogon usa questo token per avviare la shell • Tutte le applicazioni lanciate dall’utente ereditano il token filtrato (utente standard) • ATTENZIONE: l’utente resta un amministratore • ATTENZIONE: si applica solo al logon interattivo Impostazione di UAC • Molte opzioni sono impostate via policy locali • Richiesta di elevazione per amministratori • Richiesta di elevazione per utenti normali • Elevazione durante l’installazione • Modalità di approvazione per amministratori • Virtualizzazione (redirezione) di file e registry • Alcune operazioni sono consentite • Modifica della time zone • Modifica di alcuni parametri di rete (esempio chiave WEP) • Aggiunta di stampanti e altri device Internet Explorer 7 Internet Explorer 7 Protected Mode • Basato su User Account Protection per proteggere i dati utente • Costringe Internet Explorer a girare in modalità read-only eccetto che per i folder Temporary Internet Files e History • Blocca i tentativi del malware di cancellare i dati utenti, modificare le impostazioni del browser, o fare aggiunte al folder Startup senza il permesso dell’utente • Richiede sempre il permesso dell’utente per installare Add-in • Modifiche nell’architettura di IE per ridurre cross-domain exploit • Opzione di ripristino dei valori di fabbrica se si sospetta attacco IE6 in esecuzione come Admin Accesso come Admin Installa un driver, Avvia Windows Update Exploit possono installare MALWARE IE6 HKLM Program Files Accesso come User Modifica impostazioni, Download di immagini HKCU My Documents Exploit possono installare MALWARE Startup Folder Temp Internet Files Cache dei contenuti File e impostazioni non fidati IE7 in Protected Mode Broker Process Integrity Control IE7 in Protected Mode Compat Redirector Accesso come Admin Installa un driver, Installa un controllo ActiveX Modifica delle impostazioni, Salva immagini Impostazioni e file rediretti Contenuti in cache HKLM HKCR Program Files Accesso come User HKCU My Documents Startup Folder Temp Internet Files File e impostazioni non fidati Virtualizzazione di file e registry • IE i tentativi di scrittura non autorizzati in • HKCU\Software\Microsoft\Internet Explorer\Low Rights\Virtual • Documents and Settings\%user profile%\Local Settings\Temporary Internet Files\Virtual Se IE prova a scrivere qui… …viene ridiretto qui HKCU\Software\FooBar HKCU\Software\MS\IE\Low Rights\Virtual\Software\FooBar C:\Documents and Settings\%user profile%\FooBar C:\Documents and Settings\%user profile%\Local Settings\Temporary Internet Files\Virtual\FooBar Windows Firewall Cosa c’e’ di nuovo in Windows Firewall • Gestione combinata di firewall e IPsec • Snap-in Windows Firewall with Advanced Security e netsh advfirewall • Filtri in/out per IPv4 e IPv6 • Inbound: default è block • Outbound: default è allow • Regole possono usare path di programmi o service name • Policy di sicurezza granulari • Eccezioni per utente • Eccezioni per gruppi • Profili multipli (Domain Profile e Standard Profile) • Nuovi algoritmi crittografici • Criptatura: AES-128, AES-192, AES-256 • Scambio di chiavi: ECDH P-256, ECDH P-384 • Restrizione dei servizi (filtri basati su Service SID) © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.