La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

La sicurezza in SQL Server

Presentazioni simili


Presentazione sul tema: "La sicurezza in SQL Server"— Transcript della presentazione:

1 La sicurezza in SQL Server
3/27/2017 2:27 AM La sicurezza in SQL Server Raffaele Rialdi Microsoft C# MVP MVP Profile Blog Vevy Europe SpA © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

2 Agenda Introduzione Architettura e servizi di SQL Server 2000
3/27/2017 2:27 AM Agenda Introduzione Architettura e servizi di SQL Server 2000 L’architettura di sicurezza in SQL Server 2000 Login e Database User Account Permission e Ruoli Security Issues Encryption Best practices © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

3 Sicurezza applicativa
3/27/2017 2:27 AM Sicurezza applicativa Controllare SEMPRE l’input dell’utente Per evitare attacchi di tipo SQL Injection o Cross-scripting Eseguire i servizi con account utente con solo i privileggi strettamente necessari Per contrastare attacchi di tipo escalation dei privilegi Mai mantenere le password degli utenti in chiaro Utilizzare tecniche di hashing Operare con i database server utilizzando connessioni a bassi privilegi © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

4 Considerazioni sulla protezione in aziende di piccole e medie dimensioni
3/27/2017 2:27 AM Risorse limitate per l'implementa- zione di soluzioni di protezione Server con più ruoli Utilizzo di sistemi non aggiornati Minaccia interna o accidentale Mancanza di esperienza sulla protezione L'accesso fisico impedisce molte misure di protezione Conseguenze legali © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

5 Principi della protezione dei server
3/27/2017 2:27 AM Principi della protezione dei server Riservatezza Integrità Disponibilità Principi della protezione La riservatezza assicura la protezione dell'accesso alle informazioni L'integrità assicura l'assenza di modifiche nelle informazioni La disponibilità assicura la possibilità di accesso alle informazioni © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

6 Criteri, procedure e consapevolezza
3/27/2017 2:27 AM Difesa a più livelli L'utilizzo di un approccio a più livelli offre una serie di vantaggi, tra cui: Aumenta il rischio per un hacker di essere rilevato e scoperto Riduce le probabilità di successo di un attacco Criteri, procedure e consapevolezza Sicurezza fisica Elenchi di controllo dell'accesso, crittografia Dati Protezione avanzata di applicazioni, antivirus Applicazione Host Rete interna Segmenti di rete, IPSec, NIDS Perimetro Firewall, VPN di quarentena Personale di sicurezza, serrature e dispositivi di monitoraggio Formazione degli utenti © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

7 Il servizio SQL Server 3/27/2017 2:27 AM
© Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

8 Componenti Client-Server
3/27/2017 2:27 AM Componenti Client-Server © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

9 Servizi di SQL Server 3/27/2017 2:27 AM
© Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

10 L’architettura di sicurezza
3/27/2017 2:27 AM L’architettura di sicurezza Sql Server implementa le due principali funzionalità di sicurezza Autenticazione Chi sono gli utenti che tentano di connettersi Autorizzazione Che diritti hanno sui dati Autenticazione integrata con Windows Sql non “riconosce” gli utenti ma demanda al S.O. questa operazione Autenticazione standard Architettura obsoleta, meno sicura © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

11 Windows Authentication
3/27/2017 2:27 AM Windows Authentication Connessione di rete/pre-login handshake Connessione al computer che ospita SQL Server Richiesta di autenticazione della login a SQL Server La connessione viene stabilita con le credenziali della login Richiesto switch nel contesto del db + autorizzazione Viene stabilito un contesto di database Esecuzione di comandi sugli oggetti Verifica dei permessi per i vari comandi sugli oggetti del db © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

12 Security Security all’installazione
3/27/2017 2:27 AM Security Security all’installazione Dir e Files, Registry, sa password La modalità di security di default per l’installazione di SQL Server 2000 è “Autenticazione Integrata” MS la consiglia come l’unica veramente sicura, insieme all’installazione su NTFS Solo gli account con cui girano i servizi e i local administrator avranno qualche permission sulle risorse utilizzate Durante il setup è possibile impostare una password per sa Vivamente consigliato  © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

13 3/27/2017 2:27 AM Login e User Account Una login da il diritto di aprire una connessione tra un’applicazione e il server È contenuta nella sysxlogins del master Si applica a tutti i db dell’istanza Non ha permessi di accesso ai db tranne per i SysAdmin Un “database user account” da l’accesso alla login al contesto di sicurezza del database I permessi di accesso nel db sono dati ai database users, non alle logins Sono specifici per singolo database © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

14 3/27/2017 2:27 AM Permission SQL Server gestisce le permission di accesso agli oggetti con tre comandi: GRANT concede un permesso DENY nega esplicitamente un permesso REVOKE toglie una condizione precedente Grant - Revoke Revoke [deny] + DENY Grant Deny © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

15 Ruoli in SQL Server Fixed server role Fixed database role
3/27/2017 2:27 AM Ruoli in SQL Server Fixed server role Semplificano l’amministrazione del server Fixed database role Semplificano l’amministrazione del database Custom database role Semplificano la gestione delle permission degli utenti nel database Application role Permettono di dare le permission alle applicazioni indipendentemente dagli utenti che le utilizzano © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

16 Ruoli in SQL Server 2000 SQL Server verifica la Trusted Connection
3/27/2017 2:27 AM SQL Server verifica la Trusted Connection SQL Server assegna le Login agli User Accounts e ai Roles Windows 2000 Group User Database User Server Role SQL Server Database Role SQL Server verifica Login e Password SQL Server Login Account © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

17 Security Security basata sui ruoli migliorata
3/27/2017 2:27 AM Security Security basata sui ruoli migliorata Nuovo ruolo BulkAdmin Può eseguire statement BULK INSERT SecurityAdmin può cambiare le password Eccetto per i membri del ruolo sysadmin ServerAdmin può controllare tutti gli aspetti dei messaggi sul server Ora può utilizzare sp_addmessage, sp_dropmessage, e sp_altermessage Certificazione C2 ottenuta dal National Computer Security Center (NCSC), una divisione della National Security Agency (NSA) © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

18 3/27/2017 2:27 AM Security issues La password di sa rimane vuota quando durante il setup si sceglie Windows Only Meglio impostarla comunque Il gruppo Builtin\Administrators è SysAdmin di default Meglio toglierlo e rimpiazzarlo con [NT Authority\System] (per MsSearch) e con gli account con i quali girano i servizi. Quando è in cluster, anche il service account del cluster Mai lasciare la password vuota per sa Eseguire I servizi con account a bassa priorità limita I danni in caso di attacco © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

19 3/27/2017 2:27 AM Network Security Le caratteristiche di sicurezza di SQL Server non sostituiscono la classica network security Es. da SQL Server non è possibile restringere l’accesso dei client per IP Firewall, IPSec, o altri network layer filter permettono di agire su indirizzi e porte TCP consentite Se la macchina è esposta, spostare le porte di default TCP 1433, UDP 1434 © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

20 Network Security Encryption Le netlibs possono criptare
3/27/2017 2:27 AM Network Security Encryption Le netlibs possono criptare Informazioni di login e i dati della sessioni utilizzando SSL/TLS La fase di handshake durante il logon viene sempre criptata È possibile criptare tutto il traffico Le nuove funzioni interne chiamano le Crypto API di Win2K Occore un certificato sul server per utilizzare la encryption SSL Il client deve accettare il certificato © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

21 File Encryption E’ possibile proteggere i file di SQL Server
3/27/2017 2:27 AM File Encryption E’ possibile proteggere i file di SQL Server Utilizzando Windows Encrypted File System (EFS) Windows 2000 o successivi Prodotti di terze parti C’è un overhead sul sistema < 5% solitamente Pienamente supportato da SQL Server Previene la copia fisica dei file dati © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

22 3/27/2017 2:27 AM Permission Standard Ogni Database User Account appartiene inevitabilmente al ruolo Public Il ruolo Public per default può accedere ad una serie di informazioni In alcuni db di sistema è abilitato l’utente guest Realmente necessario solo in master e in tempdb Togliere l’accesso al gruppo public sugli oggetti per i quali è assolutamente necessario In Yukon sarà disabilitato di default, compreso l’accesso ai metadati © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

23 Auditing Auditing architecture
3/27/2017 2:27 AM Auditing Auditing architecture Basato sulle funzionalità di SQL Profiler L’architettura del Profiler è cambiata SQL Trace – motore di trace lato server SQL Profiler – componente di UI Vengono tracciate 19 tipologie di eventi Logon/logoff, Gant Revoke Deny ,Modify logon property, Password change event, Add/remove from fixed server role , Server shutdown/pause/start , ecc. È implementato attraverso un file di trace Può essere gestito come buffer circolare © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

24 Extended Stored Procedure
3/27/2017 2:27 AM Extended Stored Procedure Sono lo strumento per estendere le funzionalità di SQL Server attraverso funzioni scritte in C e C++ in DLL esterne Normalmente vengono eseguite in-process con il servizio SQL Server Alcune di queste consentono all’intruso di eseguire privilege escalation © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

25 XP_CMDSHELL Di default solo i sysadmin possono eseguirla
3/27/2017 2:27 AM XP_CMDSHELL Di default solo i sysadmin possono eseguirla Viene eseguita nel contesto di sicurezza del servizio o con il proxy account se l’utente che la lancia non è sysadmin NON concedere l’accesso se non giustificato Evitare di fare girare il servizio come amministratore della macchina MAI eseguire SQL Server su un domain controller e permettere xp_cmdshell © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

26 3/27/2017 2:27 AM © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

27 Security Best Practices
3/27/2017 2:27 AM Security Best Practices SQL Server Agent Di default, le SP per la creazione di job possono essere chiamate da public Il meccanismo di sicurezza dei job di per sé evita che qualcuno possa eseguire operazioni di tipo ActiveX script o Operative System Command ma… E’ possibile sfruttare altre vulnerabilità per eseguire codice nel contesto di sicurezza del servizio © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

28 3/27/2017 2:27 AM Best Practices Se è possibile evitare di fare girare il servizio come amministratore o LocalSystem Anche se complica la gestione della sicurezza Ma Enterprise Manager ci viene incontro… Rimuovere BUILTIN\administrators dai sysadmins Se per forza devo andare in Mixed mode Configurare password sensate MAI usare password blank Utilizzare SSL © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

29 Best Practices Applicare sempre le ultime security patch [Q316333]
3/27/2017 2:27 AM Best Practices Applicare sempre le ultime security patch [Q316333] Abilitare l’auditing e il tracing in modo appropriato Monitorare i log e gli alert relativi alla sicurezza Non utilizzare il ruolo sysadmin applicativamente e concedere solo se necessario Rimuovere xp_cmdshell, se non utilizzata © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

30 3/27/2017 2:27 AM Client connection E’ sempre il client che decide il tipo di security da utilizzare per la connessione Il server può solo rifiutarsi di accettare le credenziali non valide Utilizzare la sicurezza integrata con Windows “….Integrated Security=SSPI; …” Non cablare nome utente e password nel codice Utilizzare i tanti metodi disponibili nelle varie piattaforme di sviluppo Non utilizzare la login sa Scrivere codice security-aware © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

31 Data Encryption Microsoft non la fornisce in SQL Server
3/27/2017 2:27 AM Data Encryption Microsoft non la fornisce in SQL Server Problemi di performance e di recuperabilità dei dati Problema aperto per le prossime versioni del prodotto Esistono soluzioni di terze parti Limita la possibilità di sottrazione fisica delle informazioni © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

32 Sviluppatori, Sistemisti o DBA?
3/27/2017 2:27 AM Sviluppatori, Sistemisti o DBA? Cosa abbiamo capito? Nel rendere sicura una piattaforma basata su SQL Server occorre la partecipazione di tutte queste figure Se in una di queste aree qualcuno lascia degli spazi aperti… SQL Server può diventare una piattaforma potente per altri tipi di attacchi all’interno della rete © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

33 Sviluppatori, Sistemisti o DBA?
3/27/2017 2:27 AM Sviluppatori, Sistemisti o DBA? Sistemista Organizzazione di utenti e gruppi di domino Configurazione dei security account dei servizi Implementazione di Kerberos Configurazione di firewall, IPSec e IP Filtering Configurazione encryption con SSL File encryption Configurazione di SQLXML (parte IIS) © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

34 Sviluppatori, Sistemisti o DBA?
3/27/2017 2:27 AM Sviluppatori, Sistemisti o DBA? DBA Gestione utenti e ruoli nel DB server Configurazione dei database user account e delle loro permission Configurazione dei ruoli nei database Modifica delle impostazioni di default per Extended Stored Procedure Configurazione dell’Auditing Configurazione di SQLXML (parte SQL) © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

35 Sviluppatori, Sistemisti o DBA?
3/27/2017 2:27 AM Sviluppatori, Sistemisti o DBA? Sviluppatore Sviluppo di Stored Procedure che verificano sempre i parametri in input Sviluppo del codice client che utilizza correttamente la security per le connessioni Utilizzo di Trusted Connection dove possibile Encryption di codice T-SQL per nascondere la logica applicativa Encryption dei dati nelle tabelle, solo se è necessario © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

36 3/27/2017 2:27 AM Link utili [Q316333] [Q321911] © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

37 Risorse Academic http://www.msdnaa.net User Groups
3/27/2017 2:27 AM Academic User Groups Microsoft © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

38 Risorse Newsgroups news://msnews.microsoft.com
3/27/2017 2:27 AM Newsgroups news://msnews.microsoft.com microsoft.public.it.sql microsoft.public.sqlserver.* Non vi fanno uscire via NNTP ? Novità! © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

39 © 2003-2004 Microsoft Corporation. All rights reserved.
3/27/2017 2:27 AM © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary. © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

40 Per sfatare qualche luogo comune…
3/27/2017 2:27 AM Per sfatare qualche luogo comune… Windows non è sicuro!! From January 2002 through November 2002, these were the number of security advisories issued (fonte ISS – X Data): Debian: 124 Mandrake: 86 Red Hat 7.2: 87 Sun Solaris: 68 Windows 2000 Server: 36 Windows XP Pro: 28 CERT advisories SUN OS: 12 Red Hat Linux: 9 Microsoft : 4 © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

41 Per sfatare qualche luogo comune…
3/27/2017 2:27 AM Per sfatare qualche luogo comune… Windows non è affidabile!! Windows Server 2003 System uptime > % Operations & best practices Windows Reliability Strategy Case studies NASDAQ Stock Market Inc London Stock Exchange Lockheed Martin Pirelli Spa Ecc. © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

42 Per sfatare qualche luogo comune…
3/27/2017 2:27 AM Per sfatare qualche luogo comune… Windows non è scalabile!! Bechmark TPC-C (www.tpc.org) Windows Server 2003 Enterprise Edition 64-bit e SQL Server 2000 Enterprise Edition 64-bit tpmC Benchmark SAP Windows 2000 DataCenter Edition e SQL Server 2000 Enterprise Edition utenti concorrenti © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

43 © 2003-2004 Microsoft Corporation. All rights reserved.
3/27/2017 2:27 AM Appendice © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary. © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

44 SQL Injection Un intruso può devastare il db ...
3/27/2017 2:27 AM SQL Injection Un intruso può devastare il db ... string strSql = "Select * from authors where au_lname like '" + TextBox1.Text + "'"; SqlCommand cmd = new SqlCommand(strSql, Cnn); SqlDataReader dr = cmd.ExecuteReader(); Select * from authors where au_lname like ' ' ; drop authors ' Prima query Seconda query Scartato © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

45 SQL Injection ... usare i parameters!!! ...
I Parameters incrementano anche le performance: non c'è conversione da string a tipo sul db la query rimane compilata e preparata sul db server string strSql = "Select * from authors where au_lname SqlCommand cmd = new SqlCommand(strSql, Cnn); SqlDbType.VarChar,40); SqlDataReader dr = cmd.ExecuteReader(); exec sp_executesql N'Select * from authors where au_lname varchar(40)', @au_lname = ' ' ' ; drop authors - - ' apice raddoppiato da ADO.NET Gli apici non sono l'unico problema: select * from titles where royalty = 0 ; drop authors © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

46 Autenticazione in SQL Server 2000
3/27/2017 2:27 AM sysxlogins Windows 2000 Group or User SQL Server Login Account Verifica la che esista il SID nella tabella sysxlogins; Windows ha già verificato la password al logon Verifica che login e pwd esistano In sysxlogins Se non uso SSL o MultiProtocol encryption tutto passa in chiaro © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

47 Autorizzazione in SQL Server 2000
3/27/2017 2:27 AM Northwind..sysprotects id uid action protecttype 7 193 195 196 205 Qui si trovano i permessi sugli oggetti Qui vengono mappate le login nel DB Northwind..sysusers uid name 1 3 7 public dbo INFORMATION_SCHEMA payroll © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

48 Client EUROPE \ raffaele A Server2 arriva MIESTAFF\raffaele
Kerberos e Delegation Kerberos è un protocollo di autenticazione supportato in Windows Server 2003 Molto più sicuro di NTLM Necessario per supportare la delegation La capacità di far fare alle credenziali di un client più hop di rete Windows 2003 può limitare l'uso di delegation applicazione per applicazione Client EUROPE \ raffaele Server1 Server2 A Server2 arriva MIESTAFF\raffaele © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

49 3/27/2017 2:27 AM Kerberos e SQL Server Supporto al modello di autenticazione di Win2K, Kerberos: Durante la fase di logon SQL esegue una richiesta di validazione tramite SSPI (security integrata) Per tutte le connessioni con linked server vengono utilizzate le vere credenziali del client Deve essere un dominio nativo Win2000 con AD Gli account devono essere settati per supportare la delegation Il server deve essere settato in AD per supportare la delegation Occorre registrare in AD il Service Principal Name per l’utente con il quale gira SQL Server Utilizzare l’utility setspn nel ResourceKit di W2K © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

50 3/27/2017 2:27 AM Network Security Occorre configurare il certificato utilizzando Internet Explorer O l’applet di gestione dei certificati Attenzione al nome DNS fully-qualified durante la richiesta del certificato Per criptare le comunicazioni client/server basta settare la checkbox nella client network utility e nella server network utility Se il certificato non è trusted dal client la connessione fallisce [Microsoft][ODBC SQL Server Driver][DBNETLIB]Encryption not supported on SQL Server © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

51 3/27/2017 2:27 AM Auditing È possibile attivare l’auditing attraverso una stored procedure create proc p_audittrace with encryption as Exec output, 2, n‘d:\temp\mytrace.trc’, 500 Aggiungere gli eventi che interessa catturare @on Ed eventualmente farle partire in autostart insieme a SQL Server Exec sp_procoption ‘p_audittrace’, ‘startup’, ‘on’ © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

52 Extended Stored Procedure
3/27/2017 2:27 AM Extended Stored Procedure Queste ad esempio consentono di eseguire query nel contesto di sicurezza del servizio xp_execresultset, xp_printstatements, xp_displayparamstmt Eventualmente, rimuovere quelle che non servono Il rischio è di perdere alcune funzionalità ad esempio nei tool di amministrazione Testare prima su una macchina non di produzione © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

53 Security Best Practices
3/27/2017 2:27 AM Security Best Practices -- Chiunque può creare il job EXEC = = = = 1 -- Chiamo un extended SP che ha un buco di sicurezza EXEC = = 'Exec my = = 'exec master..xp_execresultset N''select ''''exec master..xp_cmdshell "dir > c:\agent-job-results.txt"'''''',N''Master''' EXEC = = 'SERVER_NAME' -- Eseguo il job e il gioco è fatto EXEC = 'GetSystemOnSQL' © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

54 Security Best Practices
3/27/2017 2:27 AM Security Best Practices Replication Su un distributor è possibile eseguire privilege escalation attraverso la SP sp_MScopyscript che di default è accessibile al ruolo public Internamente richiama xp_cmdshell per eseguire la copia di un file di script sui subscribers, ma anche di eseguire comandi di sistema operativo Es. creare un utente e farlo diventare Administrator Configurare il servizio con un account che non abbia privilegi amministrativi e sulla rete (può essere utile anche per i backup schedulati) © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

55 Security Best Practices
3/27/2017 2:27 AM Security Best Practices -- Il codice interno alla SP = N'copy "' + N'" "' + N'"' = NO_OUTPUT -- Utilizzo non proprio ‘legale’ della SP use master nvarchar(4000) exec sp_MScopyscriptfile N'c:\autoexec.bat" c:\cp.txt&echo hello > c:\ccc.bbb & echo OUTPUT © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

56 3/27/2017 2:27 AM Eseguire SQL dinamico Il codice SQL eseguito internamente ad una stored proc viene eseguito nel contesto di sicurezza dell’esecutore e non dell’owner Protegge da tentativi di eseguire operazioni non permesse Es. Create proc nvarchar(500) as Exec return 0 Exec myproc “sp_addlogin ‘raffaele’ exec sp_addsrvrolemember ‘raffaele’,’sysadmin’” e io sarei sysadmin…  © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

57 Meta Data Obfuscation Capacità di poter nascondere cifrandole:
3/27/2017 2:27 AM Meta Data Obfuscation Capacità di poter nascondere cifrandole: Stored procedure Trigger View Non è possibile utilizzarla per altri scopi Es. dati Previene la copia delle logiche applicative © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

58 Sviluppo e security SQL Injection consente all’instruso di
3/27/2017 2:27 AM Sviluppo e security SQL Injection consente all’instruso di Fare seri danni ai dati Sfruttare altre vulnerabilità per ottenere privilegi più elevati Creare nuovi utenti nel server Ottenere l’accesso a dati protetti Modificare o cancellare oggetti nel database Se l’account con il quale viene eseguito il servizio SQL Server ha privilegi amministrativi sul server L’intruso li può acquisire ed utilizzare il server come base per altri attacchi © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

59 Security Best Practices
3/27/2017 2:27 AM Security Best Practices SQLXML [Q321911] Sono possibili due tipi di attacchi Buffer overrun sulla estensione ISAPI Script injection attraverso un tag XML che consente l’esecuzione di codice durante una trasformazione XSLT Disabilitare la possibilità di eseguire query dirette via HTTP (di default è così) Utilizzare piuttosto la tecnica dei template XML per eseguire l’accesso ai dati © Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.


Scaricare ppt "La sicurezza in SQL Server"

Presentazioni simili


Annunci Google