sicurezza dei sistemi e dei dati con microsoft sql server 2005 gianluca hotz sql server mvp

53

Upload: crocifissa-gatto

Post on 01-May-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP
Page 2: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

Sicurezzadei sistemi e dei dati conMicrosoft SQL Server 2005

Gianluca HotzSQL Server MVP

Page 3: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

Configurazione HW

2 server Integrity 26202 IA64 1,6 GHz, 12 GB RAM

1 Storageworks 4000 Enterprise Virtual Array (EVA 4000)

2 server Proliant DL5804 Xeon EM64T, 3 GHz, 8 GB RAM

Page 4: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

Agenda

Modello per la sicurezza

Autenticazione

Permessi

Utenti e schema

Contesto di esecuzione

Crittografia

Page 5: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

Agenda

Modello per la sicurezza

Autenticazione

Permessi

Utenti e schema

Contesto di esecuzione

Crittografia

Page 6: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

Modello per la sicurezzaPrincipi

Secure By DesignCodice sicuro e robustoNuove metodologie per testing e threat analysis

Secure By DefaultConfigurazione predefinita è un sistema sicuroScoraggiare configurazioni non sicure Minimizzare la superficie di attacco

Installare solo i componenti necessari

Secure In DeploymentPrincipio del minimo privilegio

Concedere il minimo privilegio necessario al funzionamentoUtenti associati ai servizi con bassi privilegi

Automazione ed assistenza manutenzione del softwareStrumenti di amministrazione e valutazione sicurezza

Page 7: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

Surface Area ConfigurationPer i servizi e le connessioniServizi

Database Engine

Analysis Services

Reporting Services

SQL Server Agent

Full-Text Search

Integration Services

SQL Server Browser

ProtocolliDatabase Engine

Analysis Servicesaccesso locale

TCP/IP

Named Pipes

Page 8: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

Surface Area ConfigurationPer le funzionalitàDatabase Engine

Ad Hoc remote query

Integrazione CLR

DAC

Database Mail (SMTP)

XML Web Service nativi

Automazione OLE

Service Broker

SQL Mail

Web Assistant

xp_cmdshell

Analysis ServicesAd Hoc remote DM query

Connessioni anonime

Linked objects

User Defined Functions

Reporting ServicesScheduled events and report delivery

Web Service and HTTP access

Windows Integrated Security

Page 9: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

Surface Area Configuration

Page 10: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

Modello per la sicurezzaMeccanismi

AutenticazioneNome utente e passwordCertificati

AutorizzazionePermessi

CrittografiaChiavi simmetricheChiavi asimmetriche

Page 11: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

Modello per la sicurezzaNuovo modello

PrincipalsIncludono individui, gruppi e processi che possono richiedere accesso a risorse di SQL Server

PermissionsDefiniscono l’accesso che i principals hanno per i securables

SecurablesRisorse per le quali SQL Server prevede un sistema di autorizzazione che ne regola l’accesso

Page 12: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

Agenda

Modello per la sicurezza

Autenticazione

Permessi

Utenti e schema

Contesto di esecuzione

Crittografia

Page 13: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

AutenticazioneConcetti

Cosa significa? Verificare che qualcuno sia effettivamente chi ha dichiarato di essere.

Tipologie Integrata con Windows (NTLM, Kerberos)SQL Logins

Conseguenza SQL Server stabilisce una sessione con un profilo di sicurezza

Page 14: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

AutenticazioneBasata su endpoint

SQL Server 2005 Endpoints“Punto di entrata” per un’istanza di SQL Server

Astrazione di protocollo e permessi

In SQL Server 2000Dicevamo: Andrea è autorizzato a connettersi all’istanza

In SQL Server 2005Diciamo: Andrea è autorizzato a connettersi all’istanza tramite l’endpoint E

Transport Protocol Named pipes Shared Memory

TCP HTTP VIA

PayloadsTDS SOAP

SSB Database Mirroring

Page 15: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

AutenticazioneConfigurazione endpoint

Creati automaticamente per tutti i protocolli che supportano TDS

di default possono connettersi login autenticatipossono essere bloccaticonnessione dedicata per i sysadmin

Tramite SAC o Configuration ManagerTramite T-SQL

CREATE/ALTER/DROP ENDPOINTGRANT/DENY/REVOKE CONNECT ON ENDPOINT

Endpoint HTTP devono essere abilitati!

Page 16: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

AutenticazioneLogin e politica delle password

Autenticazione integrata Utenti WindowsPolitiche Windows rispettate

Autenticazione SQL Server Utenti SQL ServerConfigurazione politiche da fare rispettare

complessità, scadenza, modifica forzata prossimo accesso

Politiche locali o di dominioRichiede Windows 2003

Page 17: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

AutenticazioneProtezione delle credenziali

Pacchetti di login sempre cifratiutilizza SSL

1. certificato configurato per l’istanza2. certificato configurato per la macchina3. certificato generato autonomamente (self-

signed)

anche se l’intera comunicazione non è cifratausare certificato self-signed solo per autenticazione!

Page 18: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

Login e autenticazione

Page 19: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

AutenticazioneSQLCLR

SQL Server Host PolicySAFEEXTERNAL_ACCESSUNSAFE

Page 20: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

AutenticazioneSQL Server Agent

Default: utenti non accedono a SQL AgentNuovi ruoli fissi (msdb):

SQLAgentUserRoleSQLAgentReaderRoleSQLAgentOperatorRole

Utenti di proxypiù di uno per ogni tipologia di stepmappatura con credenziali specifichenecessaria autorizzazione per poterli usare

Page 21: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

Agenda

Modello per la sicurezza

Autenticazione

Permessi

Utenti e schema

Contesto di esecuzione

Crittografia

Page 22: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

PermessiIntroduzione

SecurablesGerarchia di entità protette da permessi

PrincipalsSoggetti che interagiscono con i securable in base ai permessi

PermessiAzioni che possono essere compiute con un securable

Principio del minimo privilegio

Page 23: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

PermessiScopo

ServerPermessi specifici per ogni securable

Ruoli fissi

DatabaseRuoli personalizzabili

SchemaUtilizzato per raggruppare oggetti nel database

Ereditarietà dei permessi

Page 24: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

PermessiAssegnazione

GRANTAssegna un permesso

DENYVieta in maniera esplicita un permesso

REVOKERevoca un permesso o un divieto

GrantGrant

Revoke [deny]Revoke [deny]

DenyDeny

DENYDENY

RevokeRevoke

GrantGrant

- +

Page 25: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

PermessiSchema generale

CONTROLTutti i permessi definiti per un securableImplica CONTROL per i subordinati nella gerarchia

ALTERModifica proprietà del securableImplica CREATE/DROP/ALTER per i subordinati nella gerarchiaEsempio: per uno schema, permette di alterarne il nome ma anche di alterare tutti gli oggetti che appartengono allo schema

ALTER ANY ‘X’Modifica proprietà di tutti i securable di quel tipo

TAKE OWNERSHIPPermette di diventare proprietario di un oggetto

Page 26: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

PermessiSicurezza del catalogo

Tabelle di sistema implementate tramite viste di catalogoI metadati sono protetti

Permessi minimi per publicNon sono visibili se non si ha qualche permesso

Nuovo permesso specifico per vedere i metadati

VIEW DEFINITIONApplicabile a livello di oggetto, schema, database o server.

Page 27: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

PermessiEsempi di nuovi permessi (1)

Problema:vorrei delegare il permesso di effettuare attività di audit senza dare accesso completo al server

Soluzione:ALTER TRACE

Nuovo permesso per istanzaNon necessita dei privilegi di un sysadmin

Page 28: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

PermessiEsempi di nuovi permessi (2)

Problema:esistono dei ruoli fissi per poter leggere e scrivere in tutte le tabelle, vorrei una cosa simile per poter eseguire tutte le procedure in un database

Soluzione:EXECUTE

permette di eseguire procedure e funzionia livello di database o schemaanche SELECT, INSERT, UPDATE, DELETE a livello di database o schema

Page 29: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

PermessiEsempi di nuovi permessi (3)

Problema:vorrei delegare la possibilità di assumere l’identità di un altro utente senza dover avere privilegi elevati

Soluzione:IMPERSONATE

per login e usernon necessita dei privilegi di un sysadmin o di un dbo (come per SETUSER)

Page 30: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

Permessi

Page 31: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

PermessiAuditing

ProfilerEventi: Add Database User, Addlogin, Change Password, GRANT/DENY/REVOKE, Server Principal ImpersonationDato: SessionLoginName/LoginName

DDL TriggersMOM (security events)

Page 32: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

Agenda

Modello per la sicurezza

Autenticazione

Permessi

Utenti e schema

Contesto di esecuzione

Crittografia

Page 33: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

Utenti e schemaIntroduzione

Estensione dalle precedenti versioniNelle precedenti versioni il concetto di schema e di utente proprietario (owner) coincidevanoIn SQL Server 2005 sono concetti separati

Uno schema definisce un raggruppamento logico di oggettiIl proprietario è un concetto legato alla sicurezza

Raggruppamento di oggetti del databaseIndipendente dal proprietario degli oggettiPermessi assegnati sia a livello di schema che a livello di singolo oggettoPermessi assegnati a livello di schema hanno ripercussioni sui permessi a livello di oggetto

Page 34: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

Utenti e schemaProblema con utenti che sono schemi

User1User1OggettoOggettodatabasedatabase

posseduto da

TabellaTabella

VistaVista

Stored P.Stored P.

FunzioneFunzioneUser2User2

Risoluzione dei nomiSELECT * FROM Foo

User1.foo Dbo.foo

Eliminare un utente può richiedere la modifica dell’applicazione!

Page 35: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

Utenti e schemaModifica applicazioni

App1App1

App2App2

SELECT IDCliente FROM User1.Ordini

App1App1ModificataModificata

App2App2ModificataModificata

Ordini

InserisciOrdine

SELECT IDCliente FROM User2.Ordini

EXEC User1.InserisciOrdine(@IDOrdine)

EXEC User2.InserisciOrdine(@IDOrdine)

Proprietario = User1 SCHEMA = User1Proprietario = User2 SCHEMA = User2

Page 36: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

Utenti e schemaSoluzione: separazione utente/schema

User1User1OggettoOggettodatabasedatabase

SchemaSchemacontenuto in posseduto daposseduto da

TabellaTabella

VistaVista

Stored P.Stored P.

FunzioneFunzione

User2User2

posseduto da

L’eliminazione di un utente non richiede la modifica dell’applicazione!

Page 37: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

Utenti e schemaNessuna modifica alle applicazioni

App1App1

App2App2

SELECT IDCliente FROM User1.Ordini

Ordini

InserisceOrdine

EXEC User1.InserisciOrdine(@IDOrdine)

Proprietario = User1 SCHEMA = User1Proprietario = User2 SCHEMA = User1

Page 38: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

Utenti e schemaSchema predefinito

SchemaSchemacontenuto in

TabellaTabella

VistaVista

Stored Stored P.P.

FunzioneFunzione

User2User2

posseduto da

Schema predefinito

User1User1

SSchemachema11User2User2

User3User3

Risoluzione dei nomiSELECT * FROM Foo

Schema1.foodbo.foo

Page 39: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

Utenti e schema

Page 40: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

Agenda

Modello per la sicurezza

Autenticazione

Permessi

Utenti e schema

Contesto di esecuzione

Crittografia

Page 41: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

Contesto di esecuzioneScopo

Fornire un contesto di sicurezza perSessioneModulo

stored procedure, funzioni, triggerchiamante non necessita di permessi specifici

efficace per le broken ownership chain

SQL dinamicoassenza ownership chaining

Page 42: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

Contesto di esecuzioneSessione

EXECUTE AS login/userCambia il contesto in quello dell’utente specificatoChiamante deve avere il permesso IMPERSONATE per l’utente specificatoNon necessità di elevati privilegi come SETUSER (sysadmin o db_owner)

REVERT

Page 43: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

Contesto di esecuzioneOwnership chain e moduli

User3User3

Permesso SELECTcontrollato per User3

Permesso EXECUTEcontrollato per User3

User1.Proc1User1.Proc1 User1.T1User1.T1

Permesso EXECUTE controllato per User3

Nessun permessocontrollato per User3

User3User3 User2.Proc1User2.Proc1 User1.T1User1.T1

‘Execute AS ‘X’ ’

Permesso EXECUTE controllato per User3

Permesso SELECT controllato per ‘X’ non per User3

SQL 2005

SQL 2000

User2.Proc1User2.Proc1 User1.T1User1.T1

Page 44: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

Contesto di esecuzioneDifferenze nei moduli

EXECUTE AS CALLERComportamento di default, come in SQL 2000

EXECUTE AS ‘NomeUtente’Esecuzione nel contesto dell’utente specificatoIMPERSONATE necessario nei confronti dell’utente specificato

EXECUTE AS SELFEsecuzione nel contesto dell’utente che sta creando il modulo

EXECUTE AS OWNEREsecuzione nel contesto dell’utente proprietario del moduloIMPERSONATE necessario nei confronti del proprietario al momento della creazione del moduloSe cambia il proprietario, il contesto diventa automaticamente quello del nuovo proprietario

Page 45: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

Contesto di esecuzione

Page 46: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

Agenda

Modello per la sicurezza

Autenticazione

Permessi

Contesto di esecuzione

Utenti e schema

Crittografia

Page 47: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

CrittografiaIntroduzione

Infrastruttura completa per la gestione diChiavi simmetricheChiavi asimmetricheCertificati digitali

Chiavi archiviate nei databaseProtezione delle chiavi a più livelliAssociazione chiavi e certificati ad utenti

Page 48: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

CrittografiaChiavi simmetriche

Stessa chiave per cifrare/decifrareVengono utilizzate per cifrare i datiBasso impatto computazionaleLa chiave deve essere nota

Page 49: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

CrittografiaChiavi asimmetriche

Coppia di chiavi pubbliche/private per cifrare/decifrarePossono essere utilizzate per cifrare i datiAlto impatto computazionaleSi presta bene per l’autenticazioneE’ sufficiente conoscere le chiavi pubbliche

Page 50: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

CrittografiaCertificati

Aderiscono allo standard X509v1 (no v3),il loro uso si limitata a

proteggere delle chiavi simmetricheè possibile usare anche delle password

firmare il codicecifrare il traffico di autenticazione SSL

non sono utilizzati per l’autenticazione perché self-signed

Page 51: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

CrittografiaGerarchia protezione delle chiavi

Page 52: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

Crittografia

Page 53: Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP

© 2005 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.