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
FATNTFS)
• 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.
Scarica

Sicurezza e protezione dei dati