SQL Server 2005
Sicurezza
Davide Mauri
Factory Software
[email protected]
Agenda
•
•
•
•
Security Model
Permissions
Schemas
Data Encryption
Security Model Overview
Principi
• Secure By Design
• Secure By Default
• Secure By Deployment
Servizi di SQL Server
• Least Privilege
• Utilizzare
– Local Service (BUILTIN)
– Domain User
• No! a: Local System, Network Service
Security Model
• Autenticazione:
– Windows
– SQL
• Possibilità di richiedere una password
“forte”(WIN2K3)
• Scadenza password(WIN2K3)
• Pacchetti sempre criptati durante la connessione
– Certificati
Security Model
• Autorizzazione
– Basata sulle permissions
• Crittografia
– Basata su algortimi simmetrici ed
assimmetrici
Security Model
• SQL Server 2000 Security Model Basics
– Logins
• A livello di server
– Users
• A livello di database
Security Model
• Nuovi concetti:
– Principals
• Individui, gruppi o processi che richiedono
l’accesso e l’utilizzo di risorse di SQL Server
– Permissions
• I permessi che i principals hanno sui securables
– Securables
• Risorse di SQL Server verso la quale l’accesso è
controllato e regolato
Endpoint
• Ogni connessione verso SQL Server è un
endpoint
– Creati in automatico per i protocolli attivi
– Gestibile con DCL
{GRANT|DENY|REVOKE} CONNECT ON ENDPOINT::
<EndPointName> TO <login>
– Permesso di collegarsi agli endpoint
• Di default per i login autenticati
• Può essere gestito anche a posteriori
HTTP Endpoint
• Permette l’accesso a SQL Server tramite
HTTP (Web Services)
• Richiedono WIN2K3
– Ma non IIS (Basati su http.sys)
• Devono essere creati a mano
– Nessun permesso di default
Autenticazione
• Gestione tramite DDL:
CREATE LOGIN login_name { WITH < option_list1 > | FROM < sources > }
< sources >::=
WINDOWS [ WITH windows_options [,...] ]
| CERTIFICATE certname
| ASYMMETRIC KEY asym_key_name
< option_list1 >::=
PASSWORD = ' password ' [ HASHED ] [ MUST_CHANGE ]
[ , option_list2 [ ,... ] ]
< option_list2 >::=
SID = sid
| DEFAULT_DATABASE = database
| DEFAULT_LANGUAGE = language
| CHECK_EXPIRATION = { ON | OFF}
| CHECK_POLICY = { ON | OFF}
[ CREDENTIAL = credential_name ]
Permissions
• Diversi livelli:
– Server
– Database
– Schema
Permissions
• Logica di funzionamento a cascata
– Es: Dato un permesso su uno schema questo
viene applicato a tutti gli oggetti appartenenti
allo schema
• Metadati (system views) con row-security
– SA vede tutto
– DBO vede tutto ma limitato al db
– Nuova permission: VIEW DEFINITION
Securables
• Server Securables
– All Server Principals (login)
– Server (instance)
– Endpoint
• Database Securables
–
–
–
–
–
–
–
All Database Principals
Assemblies
Message Type
Service Contract
Service
Full-text Catalog
DDL Events
– Schema
• Schema Securables
–
–
–
–
–
–
–
–
–
–
Table
View
Function
Procedure
Queue
Type
Rule
Default
Synonym
Aggregate
Schemas
Schemas
• In SQL Server 2000:
– Owner = Schema
• In SQL Server 2005
– Owner != Schema
• Schema come “namespace” di oggetti del
database
Schemas
• Utile per
– Rendere indipendente l’oggetto dall’owner
– Raggruppare oggetti
– Semplificare la gestione della sicurezza
Schemas (SQL 2000)
Table
User 2
Function
Owned By
Database
View
Object
User
SP
Name resolution
SELECT * FROM Foo


User.foo
Dbo.foo
Drop user may require application change!!
Schemas (SQL 2005)
Table
Function
Database
Object
View
User 2
contained in
Owned By
Schema
Owned by
User
Stored Proc
Drop user does NOT require application change!!
Schemas
• CREATE SCHEMA
– Crea lo schema
– Assegna l’ownership dello schema
– Permette la creazione di oggetti nello stesso
statement
• ALTER SCHEMA
– Modifica l’apparteneza di oggetti allo schema
• DROP SCHEMA
– Rimuove lo schema
• Catalog view: sys.schemas
Data Encryption
Data Encryption
• Possibilità di criptare informazioni
– Messaggi
– Dati all’interno delle tabelle
• Utilizzo di
– Chiavi simmetriche
– Chiavi asimmetriche
– Certificati
Data Encryption
• encryptByKey
• encryptByPassphrase
• ecc…
SQL Server 2005 Data Encryption
• Chiavi e certificati assegnati ad un principal
– Chiavi simmetriche utilizzate per criptare i dati
– La chiave pubblica del certificato del principal
viene usata per criptare la chiave simmetrica
– La chiave simmetrica è disponibile solo la
principal
• Memorizzate nel database e criptate con la
Master Key
Data Encryption
Domande?
(Risposte su: www.ugiss.org)
Riferimenti
• SQL Server 2005 Product Info
http://www.microsoft.com/sql/2005
• SQL Server Developer Center
http://msdn.microsoft.com/sql
• Technet
http://technet.microsoft.com/sql
• Public Newsgroups
microsoft.public.it.sql
© 2004 Microsoft Corporation. All rights reserved.
This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN
THIS SUMMARY.
Content created by 3 Leaf Solutions.
Scarica

SQL Server 2005 Sicurezza - Center