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

Post on 01-May-2015

214 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Sicurezzadei sistemi e dei dati conMicrosoft SQL Server 2005

Gianluca HotzSQL 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

Agenda

Modello per la sicurezza

Autenticazione

Permessi

Utenti e schema

Contesto di esecuzione

Crittografia

Agenda

Modello per la sicurezza

Autenticazione

Permessi

Utenti e schema

Contesto di esecuzione

Crittografia

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

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

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

Surface Area Configuration

Modello per la sicurezzaMeccanismi

AutenticazioneNome utente e passwordCertificati

AutorizzazionePermessi

CrittografiaChiavi simmetricheChiavi asimmetriche

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

Agenda

Modello per la sicurezza

Autenticazione

Permessi

Utenti e schema

Contesto di esecuzione

Crittografia

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

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

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!

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

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!

Login e autenticazione

AutenticazioneSQLCLR

SQL Server Host PolicySAFEEXTERNAL_ACCESSUNSAFE

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

Agenda

Modello per la sicurezza

Autenticazione

Permessi

Utenti e schema

Contesto di esecuzione

Crittografia

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

PermessiScopo

ServerPermessi specifici per ogni securable

Ruoli fissi

DatabaseRuoli personalizzabili

SchemaUtilizzato per raggruppare oggetti nel database

Ereditarietà dei permessi

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

- +

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

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.

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

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

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)

Permessi

PermessiAuditing

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

DDL TriggersMOM (security events)

Agenda

Modello per la sicurezza

Autenticazione

Permessi

Utenti e schema

Contesto di esecuzione

Crittografia

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

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!

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

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!

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

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

Utenti e schema

Agenda

Modello per la sicurezza

Autenticazione

Permessi

Utenti e schema

Contesto di esecuzione

Crittografia

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

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

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

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

Contesto di esecuzione

Agenda

Modello per la sicurezza

Autenticazione

Permessi

Contesto di esecuzione

Utenti e schema

Crittografia

CrittografiaIntroduzione

Infrastruttura completa per la gestione diChiavi simmetricheChiavi asimmetricheCertificati digitali

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

CrittografiaChiavi simmetriche

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

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

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

CrittografiaGerarchia protezione delle chiavi

Crittografia

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

top related