Il primo Security Bug per il Database Engine di SQL 2008 ?

Salve, sicuramente sarete al corrente del Security Bulletin “MS11-049” , uscito circa due settimane fa, e sono altrettanto sicuro che Vi sarete detti: “Anche SQL Server 2008, dopo ben 3 anni di assoluta immunità dai bug di sicurezza, ha avuto la sua prima vulnerabilità ”.

Mi dispiace per gli amici di Oracle, IBM DB2 e MySQL, ma dovranno aspettare ancora prima di pronunciare una frase del genere, dato che il Security Bulletin in oggetto non riguarda il “Database Engine” di SQL, bensì una sola DLL che fornisce la funzionalità di editing XML ad alcune delle console della famiglia dei prodotti SQL Server che Vi potreste trovare ad installare.

Ma andiamo con ordine partendo dall’articolo di riferimento per il Security Bulletin “MS11-049”:

MS11-049: Vulnerability in the Microsoft XML Editor could allow information disclosure: June 14, 2011

http://support.microsoft.com/kb/2543893/en-us

Microsoft Security Bulletin MS11-049 - Important

Vulnerability in the Microsoft XML Editor Could Allow Information Disclosure (2543893)

http://www.microsoft.com/technet/security/bulletin/MS11-049.mspx

Il file/dll coinvolta è la "Microsoft.xmlEditor.dll", originariamente la vulnerabilità è stata scoperta nella versione 2008 di Visual Studio: tramite questa vulnerabilità, è in teoria possibile copiare un file locale verso una destinazione remota, nel caso si riesca a far aprire all'utente un vile XML appositamente costruito.

Questo problema di sicurezza, quindi, non riguarda il database engine di SQL Server (SQLSERVR.EXE), quindi la Vostra installazione è ancora “sicura”, a meno che non abbiate installato, in locale al/ai server, una delle console dei prodotti della famiglia “SQL Server” che si basano su Visual Studio: è bene ricordare che, in genere, è sconsigliato installare qualsivoglia tipo di console sui server di produzione SQL, ivi inclusi il Management Studio e/o Il Business Intelligence Development Studio (BIDS per gli amici). Questo Security Bulletin è un ulteriore buon motivo per seguire questa best practice, quindi, ma è anche un avvertimento affinchè la relativa hotfix sia installata non solo sui server di produzione/test/svilluppo, ma anche sui desktop degli Amministratori SQL dove è normale prassi installare le console di gestione di SQL Server.

Un semplice consiglio: se non siete sicuri di avere o meno una delle console di SQL Server affette dal problema di sicurezza specifico, fate una semplice “File Search” per la DLL coinvolta e verificate in maniera inoppugnabile; fate anche attenzione al nome del file, ci sono varie DLL dal nome simile, ma quella che a Voi interessa è solamente “Microsoft.xmlEditor.dll”.

Forse perché è il primo “Security Bulletin” in 3 anni per SQL 2008, ed il terzo per SQL 2005 in 6 anni, e quindi i Clienti SQL non ci sono abituati, ma il rilascio di questo “Bulletin” ha generato alcune domande che riassumo qui di seguito, unitamente alle relative risposte, in modo che tutti possano beneficiarne:

-   Q1: Come faccio a sapere quale fix installare per una certa “build number” di SQL Server ?

  • A1: Stranamente, la usuale tabella con la lista delle versioni SQL e delle corrispondenti hotfix non è stata inserita direttamente negli articoli di KB, ma nella sezione FAQ del link internet corrispondente al “Security Bulletin” in oggetto:

 http://www.microsoft.com/technet/security/bulletin/MS11-049.mspx

 

-          Q2: Cosa significano GDR e QFE ?

  • A2: Questi due acronimi stanno per “General Distribution Release” (GDR) e “Quick Fix Engineering” (QFE) e la spiegazione ufficiale è contenuta nel seguente link:

Description of the standard terminology that is used to describe Microsoft software updates

http://support.microsoft.com/kb/824684/en-us

  • In genere i clienti non capiscono i termini “ufficiali” contenuti in questo articolo, ricorrerò quindi a due esempi per chiarificare il concetto: 
    • Se, sulla specifica istanza SQL, installate solo “Service Pack” e le “GDR” quando e se disponibili, allora vuol dire che Vi siete mantenuti, come da raccomandazione Microsoft, nel “branch” (catena) di aggiornamenti denominata “GDR” e lì dovete cercare eventuali update;
    • Se, sulla specifica istanza SQL, oltre ad installare eventuali “Service Pack” ogni tanto, e comunque almeno una prima volta, installate una “Cumulative Update” (CU), o una delle hotfix ivi contenute, allora Vi trovate nel “branch” (catena) di aggiornamenti denominata “QFE” e lì dovete cercare eventuali update;

-          Q3: Se l’unico file impattato dal bug di sicurezza è la DLL “Microsoft.xmlEditor.dll” ed è poco più di 1MB, perché sia i pacchetti GDR che QFE sono diverse centinaia (a seconda della versione) di MB ?

  • A3: Le ragioni sono essenzialmente tre:
    • Sia le GDR che le QFE sono cumulative e contengono anche precedenti aggiornamenti;
      • IMPORTANTE: Questa specifica GDR non contiene versioni aggiornate dell'eseguibile SQLSERVR.EXE perchè non afflitto dal bug e non esiste nessuna GDR precedente, mentre per quanto riguarda la QFE, l'eseguibile principale di SQL Server è incluso perchè esistono aggiornamenti precedenti (CU) e anche questo aggiornamento, essendo cumulativo, deve portarselo dietro;
    • Sebbene il file da fissare sia uno solo, ci sono molteplici e complesse dipendenze tra molte componenti interne, per cui tutte devono essere aggiornate;
    • Per poter eseguire il setup, comunque servono dei file di "supporto", a questo aggiungete il fatto che sia le GDR che le QFE sono multi-lingua e quindi i MB aumentano;

Anche per questo post è tutto, per il primo articolo su un security bug di SQL 2008 dovrete attendere ancora ! :-)

Buon lavoro a tutti.

--Igor Pagliai--