32
SQL Server 2005 Sicurezza Davide Mauri Factory Software [email protected]

SQL Server 2005 Sicurezza Davide Mauri Factory Software [email protected]

Embed Size (px)

Citation preview

Page 1: SQL Server 2005 Sicurezza Davide Mauri Factory Software davidem@factorysw.com

SQL Server 2005Sicurezza

Davide Mauri Factory Software

[email protected]

Page 2: SQL Server 2005 Sicurezza Davide Mauri Factory Software davidem@factorysw.com

Agenda

• Security Model

• Permissions

• Schemas

• Data Encryption

Page 3: SQL Server 2005 Sicurezza Davide Mauri Factory Software davidem@factorysw.com

Security Model Overview

Page 4: SQL Server 2005 Sicurezza Davide Mauri Factory Software davidem@factorysw.com

Principi

• Secure By Design

• Secure By Default

• Secure By Deployment

Page 5: SQL Server 2005 Sicurezza Davide Mauri Factory Software davidem@factorysw.com

Servizi di SQL Server

• Least Privilege

• Utilizzare – Local Service (BUILTIN)– Domain User

• No! a: Local System, Network Service

Page 6: SQL Server 2005 Sicurezza Davide Mauri Factory Software davidem@factorysw.com

Security Model

• Autenticazione:– Windows– SQL

• Possibilità di richiedere una password “forte”(WIN2K3)

• Scadenza password(WIN2K3)• Pacchetti sempre criptati durante la connessione

– Certificati

Page 7: SQL Server 2005 Sicurezza Davide Mauri Factory Software davidem@factorysw.com

Security Model

• Autorizzazione– Basata sulle permissions

• Crittografia – Basata su algortimi simmetrici ed assimmetrici

Page 8: SQL Server 2005 Sicurezza Davide Mauri Factory Software davidem@factorysw.com

Security Model

• SQL Server 2000 Security Model Basics– Logins

• A livello di server

– Users• A livello di database

Page 9: SQL Server 2005 Sicurezza Davide Mauri Factory Software davidem@factorysw.com

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

Page 10: SQL Server 2005 Sicurezza Davide Mauri Factory Software davidem@factorysw.com

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

Page 11: SQL Server 2005 Sicurezza Davide Mauri Factory Software davidem@factorysw.com

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

Page 12: SQL Server 2005 Sicurezza Davide Mauri Factory Software davidem@factorysw.com

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 ]

Page 13: SQL Server 2005 Sicurezza Davide Mauri Factory Software davidem@factorysw.com

Permissions

• Diversi livelli:– Server– Database– Schema

Page 14: SQL Server 2005 Sicurezza Davide Mauri Factory Software davidem@factorysw.com

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

Page 15: SQL Server 2005 Sicurezza Davide Mauri Factory Software davidem@factorysw.com

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

Page 16: SQL Server 2005 Sicurezza Davide Mauri Factory Software davidem@factorysw.com
Page 17: SQL Server 2005 Sicurezza Davide Mauri Factory Software davidem@factorysw.com

Schemas

Page 18: SQL Server 2005 Sicurezza Davide Mauri Factory Software davidem@factorysw.com

Schemas

• In SQL Server 2000:– Owner = Schema

• In SQL Server 2005– Owner != Schema

• Schema come “namespace” di oggetti del database

Page 19: SQL Server 2005 Sicurezza Davide Mauri Factory Software davidem@factorysw.com

Schemas

• Utile per– Rendere indipendente l’oggetto dall’owner– Raggruppare oggetti– Semplificare la gestione della sicurezza

Page 20: SQL Server 2005 Sicurezza Davide Mauri Factory Software davidem@factorysw.com

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!!

Page 21: SQL Server 2005 Sicurezza Davide Mauri Factory Software davidem@factorysw.com

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!!

Page 22: SQL Server 2005 Sicurezza Davide Mauri Factory Software davidem@factorysw.com

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

Page 23: SQL Server 2005 Sicurezza Davide Mauri Factory Software davidem@factorysw.com
Page 24: SQL Server 2005 Sicurezza Davide Mauri Factory Software davidem@factorysw.com

Data Encryption

Page 25: SQL Server 2005 Sicurezza Davide Mauri Factory Software davidem@factorysw.com

Data Encryption

• Possibilità di criptare informazioni– Messaggi– Dati all’interno delle tabelle

• Utilizzo di – Chiavi simmetriche– Chiavi asimmetriche– Certificati

Page 26: SQL Server 2005 Sicurezza Davide Mauri Factory Software davidem@factorysw.com

Data Encryption

• encryptByKey

• encryptByPassphrase

• ecc…

Page 27: SQL Server 2005 Sicurezza Davide Mauri Factory Software davidem@factorysw.com

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

Page 28: SQL Server 2005 Sicurezza Davide Mauri Factory Software davidem@factorysw.com

Data Encryption

Page 29: SQL Server 2005 Sicurezza Davide Mauri Factory Software davidem@factorysw.com
Page 30: SQL Server 2005 Sicurezza Davide Mauri Factory Software davidem@factorysw.com

Domande?

(Risposte su: www.ugiss.org)

Page 31: SQL Server 2005 Sicurezza Davide Mauri Factory Software davidem@factorysw.com

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

Page 32: SQL Server 2005 Sicurezza Davide Mauri Factory Software davidem@factorysw.com

© 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.