La sicurezza in SQL Server

Slides:



Advertisements
Presentazioni simili
Scrivere codice sicuro
Advertisements

Elaborazione di Franco Grivet Chin
Accesso ai dati su Relational Database Management Systems LSA - Laboratorio di Sistemi Informativi Economico-Aziendali Salvatore Ruggieri Dipartimento.
Sicurezza e concorrenza nelle basi di dati
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità D3 Sicurezza e concorrenza nelle basi di dati.
Principali caratterisitche di sicurezza
Windows Server 2003 Active Directory Diagnostica, Troubleshooting e Ripristino PierGiorgio Malusardi IT Pro – Evangelist Microsoft.
Reporting Services - Introduzione
ISA Server 2004 Enterprise Edition Preview. ISA Server 2004.
ISA Server 2004 Configurazione di Accessi via VPN
Giorgio Quaranta ISV Account Manager
Visual Studio Tools For Office 2005 Fabio Santini. NET Senior Developer Evangelist Microsoft Italy.
La riduzione dei privilegi in Windows
Windows Server 2003 SP1 Security Configuration Wizard PierGiorgio Malusardi IT Pro Evangelist Microsoft.
Miglioramento della protezione dei dati mediante SQL Server 2005 Utilizzo della crittografia di SQL Server 2005 per agevolare la protezione dei dati Pubblicato:
Introduzione ad Active Directory
Sviluppare applicazioni per utenti non-admin Fabio Santini Senior Developer Evangelist.
Consumare Web Service Andrea Saltarello
Configuring Network Access
Sharepoint Gabriele Castellani
| | Microsoft Certificate Lifecycle Manager.
Branch office update – SP2. Agenda Messa in esercizio degli uffici remoti Compressione HTTP Differentiated Services Cache di BITS.
3/27/2017 2:28 AM ©2005 Microsoft Corporation. All rights reserved.
Distribuzione e gestione di reti ed uffici con PC basati su Windows XP
Il Consolidamento di Servizi Virtual Server 2005 PierGiorgio Malusardi Evangelist - IT Professional Microsoft.
Windows Server 2003 Service Pack 1 Anteprima Tecnica.
INTERNET : ARPA sviluppa ARPANET (rete di computer per scopi militari)
Connessione con MySQL.
Sicurezza e Policy in Active Directory
Organizzazione di una rete Windows 2003
Sicurezza e Policy in Active Directory. Sommario Amministrazione della sicurezza in una rete Windows 2003 Amministrazione della sicurezza in una rete.
Amministrazione di una rete con Active Directory
Amministrazione di una rete con Active Directory.
Amministrazione di una rete con Active Directory
UNIVERSITÀ DEGLI STUDI DI BOLOGNA
Francesca Del Corso, CCR - Gruppo Windows, Bologna 16/02/2006 SUS - WSUS per il Security Patch Management.
Struttura dei sistemi operativi (panoramica)
09/01/041Security Sicurezza del sistema di rete Non è necessaria per il funzionamento della rete, ma è auspicabile per semplificarne la gestione. Consente.
JDBC(TM) Database Access
1 Titolo Presentazione / Data / Confidenziale / Elaborazione di... ASP. Net Web Part e controlli di login Elaborazione di Franco Grivet Chin.
Ing. Enrico Lecchini BetaTre S.r.l.
Il Firewall Sistemi di elaborazione dellinformazione : Sicurezza Anno Accademico 2001/2002 Martini Eros.
"Non-Admin" Developing "Non-Admin" Developing Fabio Santini.NET Senior Developer Evangelist Microsoft Italy.
Guida IIS 6 A cura di Nicola Del Re.
L’applicazione integrata per la gestione proattiva delle reti IT
1 Modello di utilizzo n° 1 Login al sistema. 2 Accedere al sistema con autenticazione debole: PASSWORD ? PASSWORD scaduta ? La password è adeguata alle.
Network Access Protection (NAP): la soluzione di policy enforcement in Windows Server 2008 R2 PierGiorgio Malusardi IT Pro Evangelist Microsoft Italia.
Fabrizio Grossi Verifica delle attività. L'operato degli amministratori di sistema deve essere oggetto, con cadenza almeno annuale, di un'attività
Server Web in una rete Windows Sommario Meccanismi di accesso remoto Meccanismi di accesso remoto Introduzione ai Server Web Introduzione ai Server.
Corso Drupal 2013 Andrea Dori
Configurazione in ambiente Windows Ing. A. Stile – Ing. L. Marchesano – 1/23.
Un problema importante
Configurazione di una rete Windows
Installazione Come tecnico, si potrebbe aver necessità di effettuare una installazione pulita di un sistema operativo. L'esecuzione di una installazione.
IPSec Fabrizio Grossi.
Francesca Di Massimo Security Lead Microsoft Italia Catania 22 settembre 2006 La Strategia Microsoft per la sicurezza dei sistemi.
A cura di: Huber Roberto, Zaharulko Nicola, Debernardi Daniele.
Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità D3 Sicurezza e concorrenza nelle basi di dati.
Esercizio ODBC. Configurare il driver ODBC Start  Control Panel  Administrative Tools Aprire: Data Source(ODBC) User DSN  Add…. Selezionare il driver.
Sviluppo per Pocket PC con SQL Server CE 2.0 Fabio Santini Silvano Coriani.NET Developer Evangelist Microsoft Corporation.
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
Distribuzione controllata del software con Systems Management Server 2003 Fabrizio Grossi.
Certificati e VPN.
Extension pack per IIS7 Piergiorgio Malusardi IT Pro Evangelist
Introduzione a SQL Server 2000 LSA - Laboratorio di Sistemi Informativi Economico-Aziendali Salvatore Ruggieri Dipartimento di Informatica, Università.
31 ottobre Security Assessment per Cassa Centrale Analisi delle modalità di deployment di server e di postazioni utente. Simulazione di consulente.
12 dicembre Analisi di sicurezza dell’applicazione SISS Security Assessment dell’applicativo e Reversing del client.
I sistemi operativi Funzioni principali e caratteristiche.
La gestione della rete e dei server. Lista delle attività  Organizzare la rete  Configurare i servizi di base  Creare gli utenti e i gruppi  Condividere.
Transcript della presentazione:

La sicurezza in SQL Server 3/27/2017 2:27 AM La sicurezza in SQL Server Raffaele Rialdi Microsoft C# MVP http://mvp.support.microsoft.com MVP Profile http://snipurl.com/f0cv Blog http://blogs/ugidotnet.org/raffaele malta@vevy.com Vevy Europe SpA © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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 © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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 © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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 © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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 © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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 © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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

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

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

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 © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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 © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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  © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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 © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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 © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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 © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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 © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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) http://www.microsoft.com/technet/archive/security/news/c2eval.mspx © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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 © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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 © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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 © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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 http://www.netlib.com C’è un overhead sul sistema < 5% solitamente Pienamente supportato da SQL Server Previene la copia fisica dei file dati © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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 © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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 © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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 © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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 © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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

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 © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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 © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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 © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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 © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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 http://www.protegrity.com Limita la possibilità di sottrazione fisica delle informazioni © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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 © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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) © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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) © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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 © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

3/27/2017 2:27 AM Link utili [Q316333] http://www.microsoft.com/technet/treeview/default.asp?url=/technet/security/bulletin/MS02-043.asp [Q321911] http://www.microsoft.com/technet/treeview/default.asp?url=/technet/security/bulletin/MS02-030.asp http://www.sqlsecurity.com http://www.nextgenss.com © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Risorse Academic http://www.msdnaa.net User Groups 3/27/2017 2:27 AM Academic http://www.msdnaa.net http://www.microsoft.com/italy/msdn/studenti User Groups http://www.ugiss.org http://www.sqlpass.org http://www.ugidotnet.org Microsoft http://www.microsoft.com/sql http://www.microsoft.com/italy/sql http://msdn.microsoft.com/sql http://www.microsoft.com/TechNet/prodtechnol/sql © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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 ? http://msdn.microsoft.com/newsgroups Novità! http://www.microsoft.com/italy/sql/support/newsgroup/ © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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

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 © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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

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 786.646 tpmC Benchmark SAP Windows 2000 DataCenter Edition e SQL Server 2000 Enterprise Edition 26.000 utenti concorrenti © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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

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 © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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 like @au_lname"; SqlCommand cmd = new SqlCommand(strSql, Cnn); cmd.Parameters.Add("@au_lname", SqlDbType.VarChar,40); SqlDataReader dr = cmd.ExecuteReader(); exec sp_executesql N'Select * from authors where au_lname like @au_lname', N'@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 © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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 2000 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 © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Autorizzazione in SQL Server 2000 3/27/2017 2:27 AM Northwind..sysprotects id uid action protecttype 1977058079 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 © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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 © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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 © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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 © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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

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 © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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

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) © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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

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 myproc @p1 nvarchar(500) as Exec (@p1) return 0 Exec myproc “sp_addlogin ‘raffaele’ exec sp_addsrvrolemember ‘raffaele’,’sysadmin’” e io sarei sysadmin…  © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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 © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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 © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

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 © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.