La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP.

Presentazioni simili


Presentazione sul tema: "Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP."— Transcript della presentazione:

1

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

3 Configurazione HW 2 server Integrity IA64 1,6 GHz, 12 GB RAM 1 Storageworks 4000 Enterprise Virtual Array (EVA 4000) 2 server Proliant DL580 4 Xeon EM64T, 3 GHz, 8 GB RAM

4 Agenda Modello per la sicurezza Autenticazione Permessi Utenti e schema Contesto di esecuzione Crittografia

5 Agenda Modello per la sicurezza Autenticazione Permessi Utenti e schema Contesto di esecuzione Crittografia

6 Modello per la sicurezza Principi Secure By Design Codice sicuro e robusto Nuove metodologie per testing e threat analysis Secure By Default Configurazione predefinita è un sistema sicuro Scoraggiare configurazioni non sicure Minimizzare la superficie di attacco Installare solo i componenti necessari Secure In Deployment Principio del minimo privilegio Concedere il minimo privilegio necessario al funzionamento Utenti associati ai servizi con bassi privilegi Automazione ed assistenza manutenzione del software Strumenti di amministrazione e valutazione sicurezza

7 Surface Area Configuration Per i servizi e le connessioni Servizi Database Engine Analysis Services Reporting Services SQL Server Agent Full-Text Search Integration Services SQL Server Browser Protocolli Database Engine Analysis Services accesso locale TCP/IP Named Pipes

8 Surface Area Configuration Per 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 Services Ad Hoc remote DM query Connessioni anonime Linked objects User Defined Functions Reporting Services Scheduled events and report delivery Web Service and HTTP access Windows Integrated Security

9 Surface Area Configuration

10 Modello per la sicurezza Meccanismi Autenticazione Nome utente e password Certificati Autorizzazione Permessi Crittografia Chiavi simmetriche Chiavi asimmetriche

11 Modello per la sicurezza Nuovo modello Principals Includono individui, gruppi e processi che possono richiedere accesso a risorse di SQL Server Permissions Definiscono laccesso che i principals hanno per i securables Securables Risorse per le quali SQL Server prevede un sistema di autorizzazione che ne regola laccesso

12 Agenda Modello per la sicurezza Autenticazione Permessi Utenti e schema Contesto di esecuzione Crittografia

13 Autenticazione Concetti 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

14 Autenticazione Basata su endpoint SQL Server 2005 Endpoints Punto di entrata per unistanza di SQL Server Astrazione di protocollo e permessi In SQL Server 2000 Dicevamo: Andrea è autorizzato a connettersi allistanza In SQL Server 2005 Diciamo: Andrea è autorizzato a connettersi allistanza tramite lendpoint E Transport Protocol Named pipes Shared Memory TCP HTTP VIA Payloads TDSSOAP SSB Database Mirroring

15 Autenticazione Configurazione endpoint Creati automaticamente per tutti i protocolli che supportano TDS di default possono connettersi login autenticati possono essere bloccati connessione dedicata per i sysadmin Tramite SAC o Configuration Manager Tramite T-SQL CREATE/ALTER/DROP ENDPOINT GRANT/DENY/REVOKE CONNECT ON ENDPOINT Endpoint HTTP devono essere abilitati!

16 Autenticazione Login e politica delle password Autenticazione integrata Utenti Windows Politiche Windows rispettate Autenticazione SQL Server Utenti SQL Server Configurazione politiche da fare rispettare complessità, scadenza, modifica forzata prossimo accesso Politiche locali o di dominio Richiede Windows 2003

17 Autenticazione Protezione delle credenziali Pacchetti di login sempre cifrati utilizza SSL certificato configurato per listanza certificato configurato per la macchina certificato generato autonomamente (self-signed) anche se lintera comunicazione non è cifrata usare certificato self-signed solo per autenticazione!

18 Login e autenticazione

19 Autenticazione SQLCLR SQL Server Host Policy SAFE EXTERNAL_ACCESS UNSAFE

20 Autenticazione SQL Server Agent Default: utenti non accedono a SQL Agent Nuovi ruoli fissi (msdb): SQLAgentUserRole SQLAgentReaderRole SQLAgentOperatorRole Utenti di proxy più di uno per ogni tipologia di step mappatura con credenziali specifiche necessaria autorizzazione per poterli usare

21 Agenda Modello per la sicurezza Autenticazione Permessi Utenti e schema Contesto di esecuzione Crittografia

22 Permessi Introduzione Securables Gerarchia di entità protette da permessi Principals Soggetti che interagiscono con i securable in base ai permessi Permessi Azioni che possono essere compiute con un securable Principio del minimo privilegio

23 Permessi Scopo Server Permessi specifici per ogni securable Ruoli fissi Database Ruoli personalizzabili Schema Utilizzato per raggruppare oggetti nel database Ereditarietà dei permessi

24 Permessi Assegnazione GRANT Assegna un permesso DENY Vieta in maniera esplicita un permesso REVOKE Revoca un permesso o un divieto Grant Revoke [deny] Deny DENY Revoke Grant - +

25 Permessi Schema generale CONTROL Tutti i permessi definiti per un securable Implica CONTROL per i subordinati nella gerarchia ALTER Modifica proprietà del securable Implica CREATE/DROP/ALTER per i subordinati nella gerarchia Esempio: 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 OWNERSHIP Permette di diventare proprietario di un oggetto

26 Permessi Sicurezza del catalogo Tabelle di sistema implementate tramite viste di catalogo I metadati sono protetti Permessi minimi per public Non sono visibili se non si ha qualche permesso Nuovo permesso specifico per vedere i metadati VIEW DEFINITION Applicabile a livello di oggetto, schema, database o server.

27 Permessi Esempi 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 istanza Non necessita dei privilegi di un sysadmin

28 Permessi Esempi 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 funzioni a livello di database o schema anche SELECT, INSERT, UPDATE, DELETE a livello di database o schema

29 Permessi Esempi di nuovi permessi (3) Problema: vorrei delegare la possibilità di assumere lidentità di un altro utente senza dover avere privilegi elevati Soluzione: IMPERSONATE per login e user non necessita dei privilegi di un sysadmin o di un dbo (come per SETUSER)

30 Permessi

31 Permessi Auditing Profiler Eventi: Add Database User, Addlogin, Change Password, GRANT/DENY/REVOKE, Server Principal Impersonation Dato: SessionLoginName/LoginName DDL Triggers MOM (security events)

32 Agenda Modello per la sicurezza Autenticazione Permessi Utenti e schema Contesto di esecuzione Crittografia

33 Utenti e schema Introduzione Estensione dalle precedenti versioni Nelle precedenti versioni il concetto di schema e di utente proprietario (owner) coincidevano In SQL Server 2005 sono concetti separati Uno schema definisce un raggruppamento logico di oggetti Il proprietario è un concetto legato alla sicurezza Raggruppamento di oggetti del database Indipendente dal proprietario degli oggetti Permessi assegnati sia a livello di schema che a livello di singolo oggetto Permessi assegnati a livello di schema hanno ripercussioni sui permessi a livello di oggetto

34 Utenti e schema Problema con utenti che sono schemi User1 Oggetto database posseduto da Tabella Vista Stored P. Funzione User2 Risoluzione dei nomi SELECT * FROM Foo User1.foo Dbo.foo Eliminare un utente può richiedere la modifica dellapplicazione!

35 Utenti e schema Modifica applicazioni App1 App2 SELECT IDCliente FROM User1.Ordini App1Modificata App2Modificata Ordini InserisciOrdine SELECT IDCliente FROM User2.Ordini EXEC EXEC Proprietario = User1 SCHEMA = User1 Proprietario = User2 SCHEMA = User2

36 Utenti e schema Soluzione: separazione utente/schema User1 Oggetto database Schema contenuto in posseduto da Tabella Vista Stored P. Funzione User2 posseduto da Leliminazione di un utente non richiede la modifica dellapplicazione!

37 Utenti e schema Nessuna modifica alle applicazioni App1 App2 SELECT IDCliente FROM User1.Ordini Ordini InserisceOrdine EXEC Proprietario = User1 SCHEMA = User1 Proprietario = User2 SCHEMA = User1

38 Utenti e schema Schema predefinito Schema contenuto in Tabella Vista Stored P. Funzione User2 posseduto da Schema predefinito User1 Schema1 User2 User3 Risoluzione dei nomi SELECT * FROM Foo Schema1.foo dbo.foo

39 Utenti e schema

40 Agenda Modello per la sicurezza Autenticazione Permessi Utenti e schema Contesto di esecuzione Crittografia

41 Contesto di esecuzione Scopo Fornire un contesto di sicurezza per Sessione Modulo stored procedure, funzioni, trigger chiamante non necessita di permessi specifici efficace per le broken ownership chain SQL dinamico assenza ownership chaining

42 Contesto di esecuzione Sessione EXECUTE AS login/user Cambia il contesto in quello dellutente specificato Chiamante deve avere il permesso IMPERSONATE per lutente specificato Non necessità di elevati privilegi come SETUSER (sysadmin o db_owner) REVERT

43 Contesto di esecuzione Ownership chain e moduli User3 Permesso SELECT controllato per User3 Permesso EXECUTE controllato per User3 User1.Proc1 User1.T1 Nessun permesso controllato per User3 User3 User2.Proc1 User1.T1 Execute AS X Permesso EXECUTE controllato per User3 Permesso SELECT controllato per X non per User3 SQL 2005 SQL 2000 User2.Proc1User1.T1

44 Contesto di esecuzione Differenze nei moduli EXECUTE AS CALLER Comportamento di default, come in SQL 2000 EXECUTE AS NomeUtente Esecuzione nel contesto dellutente specificato IMPERSONATE necessario nei confronti dellutente specificato EXECUTE AS SELF Esecuzione nel contesto dellutente che sta creando il modulo EXECUTE AS OWNER Esecuzione nel contesto dellutente proprietario del modulo IMPERSONATE necessario nei confronti del proprietario al momento della creazione del modulo Se cambia il proprietario, il contesto diventa automaticamente quello del nuovo proprietario

45 Contesto di esecuzione

46 Agenda Modello per la sicurezza Autenticazione Permessi Contesto di esecuzione Utenti e schema Crittografia

47 Crittografia Introduzione Infrastruttura completa per la gestione di Chiavi simmetriche Chiavi asimmetriche Certificati digitali Chiavi archiviate nei database Protezione delle chiavi a più livelli Associazione chiavi e certificati ad utenti

48 Crittografia Chiavi simmetriche Stessa chiave per cifrare/decifrare Vengono utilizzate per cifrare i dati Basso impatto computazionale La chiave deve essere nota

49 Crittografia Chiavi asimmetriche Coppia di chiavi pubbliche/private per cifrare/decifrare Possono essere utilizzate per cifrare i dati Alto impatto computazionale Si presta bene per lautenticazione E sufficiente conoscere le chiavi pubbliche

50 Crittografia Certificati Aderiscono allo standard X509v1 (no v3), il loro uso si limitata a proteggere delle chiavi simmetriche è possibile usare anche delle password firmare il codice cifrare il traffico di autenticazione SSL non sono utilizzati per lautenticazione perché self- signed

51 Crittografia Gerarchia protezione delle chiavi

52 Crittografia

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


Scaricare ppt "Sicurezza dei sistemi e dei dati con Microsoft SQL Server 2005 Gianluca Hotz SQL Server MVP."

Presentazioni simili


Annunci Google