sql server 2005 sicurezza davide mauri factory software [email protected]
TRANSCRIPT
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)
UserUserDatabase Database ObjectObject
Owned By
TableTable
ViewView
SPSP
FunctionFunctionUser 2User 2
Name resolutionSELECT * FROM Foo
User.foo Dbo.foo
Drop user may require application change!!
Schemas (SQL 2005)
UserUserDatabase Database ObjectObject
SchemaSchemacontained in Owned byOwned By
TableTable
ViewView
Stored ProcStored Proc
FunctionFunction
User 2User 2
Owned by
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 Infohttp://www.microsoft.com/sql/2005
• SQL Server Developer Centerhttp://msdn.microsoft.com/sql
• Technethttp://technet.microsoft.com/sql
• Public Newsgroupsmicrosoft.public.it.sql
© 2004 Microsoft Corporation. All rights reserved.© 2004 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.THIS SUMMARY.Content created by 3 Leaf Solutions.Content created by 3 Leaf Solutions.