Riepilogo

Microsoft è a conoscenza di una nuova classe di vulnerabilità pubblicamente divulgate, denominata "attacchi di canale laterale per l'esecuzione speculativa" che influenzano molti moderni processori e sistemi operativi. Questo include Intel, AMD e ARM. Nota Questo problema riguarda anche altri sistemi, ad esempio Android, Chrome, iOS e MacOS. Pertanto, consigliamo ai clienti di cercare indicazioni da questi fornitori.

Microsoft ha rilasciato diversi aggiornamenti per alleviare queste vulnerabilità. Abbiamo anche preso provvedimenti per proteggere i nostri servizi cloud. Per altre informazioni, vedere le sezioni seguenti.

Finora Microsoft non ha ancora ricevuto alcuna informazione che indichi lo sfruttamento di tali vulnerabilità per attaccare i clienti. Microsoft continua a collaborare in stretta collaborazione con i partner del settore, inclusi i chip maker, gli OEM hardware e i fornitori di applicazioni, per proteggere i clienti. Per ottenere tutte le protezioni disponibili, è necessario hardware o firmware e aggiornamenti software. Tali aggiornamenti includono microcodice fornito dagli OEM dei dispositivi e, in alcuni casi, aggiornamenti del software antivirus. Per altre informazioni sulle vulnerabilità, vedere Microsoft Security Advisory ADV180002. Per informazioni generali su come mitigare questa classe di vulnerabilità, vedere indicazioni per attenuare le vulnerabilità del canale laterale per l'esecuzione speculativa

Microsoft ha pubblicato ADV190013-Microsoft guidance per ridurre le vulnerabilità di campionamento dei dati di microarchitettura in maggio 2019. In SQL Server non sono presenti patch di sicurezza specifiche per il problema descritto in ADV190013. È possibile trovare indicazioni per gli ambienti interessati da ADV190013 nella sezione raccomandazioni di questo articolo. Tieni presente che questo avviso si applica solo ai processori Intel.

Come ottenere e installare l'aggiornamento

Questo aggiornamento è disponibile anche tramite Windows Server Update Services (WSUS) o il sito Web del catalogo Microsoft Update.Nota: questo aggiornamento non verrà scaricato e installato automaticamente tramite Windows Update.

Patch SQL disponibili

Al momento della pubblicazione sono disponibili per il download le build di SQL Server aggiornate seguenti:

Versione di manutenzione

4057122 Descrizione dell'aggiornamento della sicurezza per SQL Server 2017 GDR: 3 gennaio 2018 4058562 Descrizione dell'aggiornamento della sicurezza per SQL Server 2017 RTM CU3:3 gennaio 2018 4058561 Descrizione dell'aggiornamento della sicurezza per SQL Server 2016 SP1 CU7:3 gennaio 2018 4057118 Descrizione dell'aggiornamento della sicurezza per SQL Server 2016 GDR SP1:3 gennaio, 2018 4058559 Descrizione dell'aggiornamento della sicurezza per SQL Server 2016 cu: 6 gennaio 2018 4058560 Descrizione dell'aggiornamento della sicurezza per SQL Server 2016 GDR: 6 gennaio 2018 4057117 Descrizione dell'aggiornamento della sicurezza per SQL Server 2014 SP2 CU10 dalla: 16 gennaio 2018 4057120 Descrizione dell'aggiornamento della sicurezza per SQL Server 2014 SP2 gdr: 16 gennaio,20184057116 Descrizione dell'aggiornamento della sicurezza per SQL Server 2012 SP4 GDR : 12 gennaio 20184057115 Descrizione dell'aggiornamento della sicurezza per sql Server 2012 SP3 GDR: gennaio, 20184057121 Descrizione dell'aggiornamento della sicurezza per SQL Server 2012 SP3 CU: gennaio, 20184057114 Descrizione dell'aggiornamento della sicurezza per SQL Server 2008 SP4 gdr: 6 gennaio, 20184057113 descrizione dell'aggiornamento della sicurezza per SQL server 2008 R2 SP3 GDR: 6 gennaio 2018

Questo documento verrà aggiornato quando sono disponibili ulteriori Build aggiornate.

Note

  • Sono stati rilasciati tutti gli aggiornamenti necessari per SQL Server per mitigare le vulnerabilità del canale laterale di esecuzione speculativa "Spectre" e "Meltdown". Microsoft non è a conoscenza di ulteriori esposizioni alle vulnerabilità del canale laterale di esecuzione speculativa "Spectre" e "Meltdown" per i componenti non elencati nella sezione "patch SQL disponibili".

  • Tutti i successivi SQL Server 2014, SQL Server 2016 e SQL Server 2017 Service Pack e gli aggiornamenti cumulativi conterranno le correzioni. Ad esempio, SQL Server 2016 SP2 contiene già le correzioni di Spectre e Meltdown.

  • Per le build di Windows, vedere le indicazioni seguenti per le informazioni più aggiornate sulle build di Windows disponibili:

    Guida di Windows Server per le vulnerabilità del canale laterale Spectre/Meltdown

    Guida di Windows Server per le vulnerabilità di campionamento dei dati microarchitectural

    Per le build di Linux, contatta il tuo fornitore Linux per trovare le build aggiornate più recenti per la tua distribuzione Linux specifica.

  • Per risolvere il più rapidamente possibile le vulnerabilità di Spectre e Meltdown, la consegna di questi aggiornamenti di SQL Server è stata eseguita inizialmente nell'area download Microsoft come modello di recapito principale. Anche se questi aggiornamenti verranno recapitati tramite Microsoft Update in marzo, è consigliabile che i clienti interessati installino l'aggiornamento ora senza aspettare che vengano resi disponibili tramite Microsoft Update.

Versioni di SQL Server supportate interessate

Microsoft consiglia che tutti i clienti installino gli aggiornamenti di SQL Server (elencati di seguito) come parte del normale ciclo di patch.  I clienti che eseguono SQL Server in un ambiente sicuro in cui i punti di estensibilità sono bloccati e il codice di terze parti in esecuzione nello stesso server è attendibile e approvato deve essere influenzato da questo problema.

Le versioni seguenti di SQL Server hanno aggiornamenti disponibili durante l'esecuzione su sistemi di processori x86 e x64:

  • SQL Server 2008

  • SQL Server 2008R2

  • SQL Server 2012

  • SQL Server 2014

  • SQL Server 2016

  • SQL Server 2017

Non crediamo che IA64 (Microsoft SQL Server 2008) sia interessato. Microsoft Analytical Platform Service (APS) è basato su Microsoft SQL Server 2014 o Microsoft SQL Server 2016, ma non è influenzato in modo specifico. Alcune linee guida generali per l'APS sono elencate più avanti in questo articolo.

Raccomandazioni

La tabella seguente illustra le operazioni che i clienti devono eseguire, a seconda dell'ambiente in cui è in esecuzione SQL Server e della funzionalità in uso. Microsoft consiglia di distribuire le correzioni usando le procedure usuali per testare nuovi file binari prima di distribuirli in ambienti di produzione.

Numero scenario

Descrizione scenario

Raccomandazioni prioritarie

1

Database SQL di Azure e data warehouse

Non è necessaria alcuna azione (vedere qui per informazioni dettagliate).

2

SQL Server viene eseguito in un computer fisico o una macchina virtuale

E nessuna delle condizioni seguenti è vera:

  • Un'altra applicazione che esegue codice potenzialmente ostile è condivisa nello stesso computer

  • Le interfacce di estendibilità di SQL Server vengono usate con codice non attendibile (vedere di seguito per l'elenco)

 

Microsoft consiglia l'installazione di tutti gli aggiornamenti del sistema operativo to protezione da CVE 2017-5753.

Microsoft consiglia di installare tutti gli aggiornamenti del sistema operativo per la protezione dalle vulnerabilità di campionamento dei dati microarchitectural (CVE-2018-12126, CVE-2018-12130, CVE-2018-12127 e CVE-2018-11091).

Non è necessario abilitare l'ombreggiatura degli indirizzi virtuali del kernel (kvas) e il supporto hardware per l'attenuazione della predizione del ramo indiretto (IBP) (vedere di seguito). Le patch di SQL Server devono essere installate come parte dei criteri di correzione normale alla successiva finestra di aggiornamento pianificato.

Puoi continuare a sfruttare l'hyperthreading in un host.

3

SQL Server viene eseguito in un computer fisico o una macchina virtuale

Un'altra applicazione che esegue codice potenzialmente ostile è condivisa nello stesso computer

Le interfacce di estensibilità e/o SQL Server vengono usate con codice non attendibile (vedere di seguito per l'elenco)

 

 

 

Microsoft consiglia di installare tutti gli aggiornamenti del sistema operativo per la protezione da CVE 2017-5753.

Microsoft consiglia di installare tutti gli aggiornamenti del sistema operativo per la protezione dalle vulnerabilità di campionamento dei dati microarchitectural (CVE-2018-12126, CVE-2018-12130, CVE-2018-12127 e CVE-2018-11091).

Applicare le patch di SQL Server (vedere di seguito). Questa operazione è protetta da CVE 2017-5753.

È consigliabile abilitare l'ombreggiatura degli indirizzi virtuali del kernel (KVAS) (vedere di seguito). Questa operazione è protetta da CVE 2017-5754.

È consigliabile abilitare il supporto hardware per l'attenuazione della previsione delle branche indiretto (IBP) (vedere di seguito). In questo articolo viene protetto da CVE 2017-5715

È consigliabile disabilitare l'hyperthreading nell'host se vengono usati processori Intel.

4

SQL Server viene eseguito in un computer fisico

Un'altra applicazione che esegue codice potenzialmente ostile non è ospitata nello stesso computer

E le interfacce di estendibilità di SQL Server vengono usate per eseguire codice ATTENDIBILe. Esempi: 

  • Assembly CLR recensiti/approvati per l'uso in produzione

  • Server collegati di cui si ritiene attendibile l'uso delle query selezionate attendibili

Non esempi:

  • Script di R/Python arbitrario scaricati da Internet

  • Untrusted binari CLR di terze parti

Microsoft consiglia l'installazione di tutti gli aggiornamenti del sistema operativo to protezione da CVE 2017-5753.

Microsoft consiglia di installare tutti gli aggiornamenti del sistema operativo per la protezione dalle vulnerabilità di campionamento dei dati microarchitectural (CVE-2018-12126, CVE-2018-12130, Cve-2018-12127 e CVE-2018-11091).

È consigliabile abilitare l'ombreggiatura degli indirizzi virtuali del kernel (KVAS) (vedere di seguito). Questa operazione è protetta da CVE 2017-5754.

È consigliabile abilitare il supporto hardware per l'attenuazione della previsione delle branche indiretto (IBP) (vedere di seguito). In questo articolo viene protetto da CVE 2017-5715

È consigliabile disabilitare l'hyperthreading in un ambiente di questo tipo se vengono usati processori Intel.

Le patch di SQL Server devono essere installate come parte dei criteri di correzione normale alla successiva finestra di aggiornamento pianificato.

5

SQL Server viene eseguito in Linux OS.

Applicare gli aggiornamenti del sistema operativo Linux dal provider di distribuzione.

Applicare le patch di SQL Server di Linux (vedere di seguito). Questa operazione è protetta da CVE 2017-5753.

Per informazioni su come abilitare l'isolamento della tabella di pagine kernel Linux (KPTI) e IBP (CVEs CVE 2017-5754 e CVE 2017-5715), vedere di seguito.

È consigliabile disabilitare l'hyperthreading in un ambiente di questo tipo se vengono usati processori Intel per lo scenario #3 e #4 menzionati in precedenza.

6

APS (Analytics Platform System)

Anche se APS non supporta le caratteristiche di estensibilità di SQL Server elencate in questo bollettino, è consigliabile installare le patch di Windows nell'appliance APS. L'abilitazione di KVAS/IBP non è obbligatoria.

Advisory sulle prestazioni

Ai clienti viene consigliato di valutare le prestazioni della propria applicazione specifica quando applicano gli aggiornamenti.

Microsoft consiglia a tutti i clienti di installare versioni aggiornate di SQL Server e Windows. Questo dovrebbe avere un effetto di prestazioni trascurabile-minimo sulle applicazioni esistenti, in base a Microsoft testing dei carichi di lavoro SQL. Tuttavia, è consigliabile testare tutti gli aggiornamenti prima di distribuirli in un ambiente di produzione.

Microsoft ha misurato l'effetto dell'ombreggiatura degli indirizzi virtuali del kernel (KVAS), della KPTI (kernel page table indirection) e della riduzione indiretta della predizione delle branche (IBP) su vari carichi di lavoro SQL in diversi ambienti e ha rilevato alcuni carichi di lavoro con notevole degradazione. Ti consigliamo di verificare l'effetto di prestazioni che consente di abilitare queste funzionalità prima di distribuirle in un ambiente di produzione. Se l'effetto sulle prestazioni dell'abilitazione di queste funzionalità è troppo elevato per un'applicazione esistente, è possibile valutare se l'isolamento di SQL Server da codice non attendibile in esecuzione nello stesso computer sia una migliore attenuazione per l'applicazione.

Per altre informazioni sull'effetto di prestazioni del supporto hardware per l'attenuazione della previsione del ramo indiretto (IBP), vedere dettagli.

Microsoft aggiornerà questa sezione con altre informazioni quando sarà disponibile.

Abilitazione dell'ombreggiatura degli indirizzi virtuali del kernel (KVAS in Windows) e del riferimento indiretto della tabella di pagina del kernel (KPTI su Linux)

KVAS e KPTI attenuano il valore in CVE 2017-5754, noto anche come "Meltdown" o "Variant 3" nella divulgazione di GPZ.

SQL Server viene eseguito in molti ambienti: computer fisici, VM in ambienti cloud pubblici e privati, su sistemi Linux e Windows. Indipendentemente dall'ambiente, il programma viene eseguito in un computer o in una VM. Chiama il limitedi sicurezza.

Se tutto il codice nel contorno ha accesso a tutti i dati di tale limite, non è necessario eseguire alcuna azione. In caso contrario, si dice che il limite sia multi-tenant. Le vulnerabilità trovate rendono possibile qualsiasi codice, anche con autorizzazioni ridotte, in esecuzione in qualsiasi processo in tale limite, per leggere eventuali altri dati all'interno di tale limite. Se c'è un processo nel contorno che usa codice non attendibile , potrebbe usare queste vulnerabilità per leggere i dati da altri processi. Questo codice non attendibile potrebbe essere un codice non attendibile usando meccanismi di estensibilità di SQL Server o altri processi nel bordo che esegue codice non attendibile.

Per proteggere il codice non attendibile in un contorno multi-tenant, usare uno dei metodi seguenti

  • Rimuovere il codice non attendibile. Per altre informazioni su come eseguire questa operazione per i meccanismi di estensibilità di SQL Server, vedere di seguito. Per rimuovere il codice non attendibile da altre applicazioni nello stesso limite, le modifiche specifiche dell'applicazione sono in genere necessarie. Ad esempio, la separazione in due VM.

  • Attivare KVAS o KPTI. Questo avrà un effetto sulle prestazioni. Per altre informazioni, come descritto in precedenza in questo articolo.

Per altre informazioni su come abilitare KVAS per Windows, vedere KB4072698. Per altre informazioni su come abilitare KPTI su Linux, consultare il proprio distributore del sistema operativo.

Esempio di scenario in cui è vivamente consigliato KVAS o KPTI

Un computer fisico locale che ospita SQL Server come account di amministratore non di sistema consente ai clienti di inviare script R arbitrari per l'esecuzione tramite SQL Server (che usa processi secondari per eseguire questi script all'esterno di sqlservr. exe). È necessario abilitare KVAS e KPTI sia per proteggere la divulgazione dei dati all'interno del processo sqlservr. exe sia per proteggere la divulgazione dei dati all'interno della memoria del kernel di sistema. Nota Un meccanismo di estensibilità in SQL Server non viene considerato automaticamente non sicuro solo perché viene usato. Questi meccanismi possono essere usati in modo sicuro in SQL Server, purché ogni dipendenza sia compresa e considerata attendibile dal cliente. Inoltre, sono presenti altri prodotti basati su SQL che potrebbero richiedere il corretto funzionamento dei meccanismi di estensibilità. Ad esempio, un'applicazione di Package creata sopra SQL Server può richiedere un server collegato o una stored procedure CLR per funzionare correttamente. Microsoft sconsiglia di rimuoverli come parte della mitigazione. Esaminare invece ogni utilizzo per determinare se il codice è compreso e considerato attendibile come azione iniziale. Questa guida viene fornita per aiutare i clienti a determinare se si trovano in una situazione in cui devono abilitare KVAS. Questo perché questa azione ha implicazioni di prestazioni significative.

Abilitazione del supporto hardware IBP (Indirect Branch Prediction Mitigation)

IBP si attenua in CVE 2017-5715, nota anche come metà di Spectre o "variante 2" nella divulgazione di GPZ.

Le istruzioni in questo articolo per abilitare KVAS in Windows consentono anche a IBP. Tuttavia, IBP richiede anche un aggiornamento del firmware dal produttore dell'hardware. Oltre alle istruzioni in KB4072698 per abilitare la protezione in Windows, i clienti devono ottenere e installare gli aggiornamenti dal produttore dell'hardware.

Esempio di scenario in cui è vivamente consigliato IBP

Un computer fisico locale ospita SQL Server insieme a un'applicazione che consente agli utenti non attendibili di caricare ed eseguire codice JavaScript arbitrario. Supponendo che esistano dati riservati nel database SQL, IBP è vivamente consigliato come misura per la protezione dalla divulgazione di informazioni processo-processo.

In situazioni in cui il supporto hardware IBP non è presente, Microsoft consiglia di separare i processi non attendibili e il processo attendibile su computer fisici o macchine virtuali diversi.

Utenti Linux: contattare il distributore del sistema operativo per informazioni su come proteggersi dalla variante 2 (CVE 2017-5715).

Esempio di scenario in cui è consigliabile limitare le vulnerabilità per il campionamento dei dati microarchitetturali

Si consideri un esempio in cui un server locale sta usando due istanze di SQL Server che ospitano due diverse applicazioni aziendali in due diverse macchine virtuali nello stesso host fisico. Supponiamo che queste due applicazioni aziendali non siano in grado di leggere i dati archiviati nelle istanze di SQL Server. Un utente malintenzionato che ha sfruttato correttamente queste vulnerabilità può essere in grado di leggere i dati privilegiati tra i limiti di attendibilità usando codice non attendibile in esecuzione nel computer come processo separato o codice non attendibile eseguito con un meccanismo di estensibilità di SQL Server (vedere la sezione seguente per le opzioni di estensibilità in SQL Server). In ambienti di risorse condivise (ad esempio, esiste in alcune configurazioni di servizi cloud), queste vulnerabilità potrebbero consentire a una macchina virtuale di accedere in modo errato alle informazioni da un altro. In scenari non di esplorazione su sistemi autonomi, un utente malintenzionato avrebbe bisogno di un accesso preliminare al sistema o una possibilità di eseguire un'applicazione appositamente predisposta nel sistema di destinazione per sfruttare queste vulnerabilità.

Meccanismi di estensibilità di SQL Server non attendibili

SQL Server contiene molte caratteristiche e meccanismi di estensibilità. La maggior parte di questi meccanismi è disabilitata per impostazione predefinita. Tuttavia, consigliamo ai clienti di rivedere ogni istanza di produzione per l'uso delle funzionalità di estensibilità. È consigliabile limitare l'accesso a ognuna di queste caratteristiche al set minimo di file binari e i clienti limitano l'accessibilità per impedire l'uso di codice arbitrario nello stesso computer di SQL Server. Consigliamo ai clienti di determinare se considerare attendibile ogni binario e di disabilitare o rimuovere i file binari non attendibili.

  • Assembly CLR SQL

  • Pacchetti r e Python che eseguono il meccanismo di script esterni o vengono eseguiti da R/computer Learning Studio autonomo nello stesso computer fisico di SQL Server

  • Punti di estendibilità dell'agente SQL in uso nello stesso computer fisico di SQL Server (script ActiveX)

  • Provider OLE DB non Microsoft usati nei server collegati

  • Stored procedure estese non Microsoft

  • Oggetti COM eseguiti nel server (a cui è possibile accedere tramite sp_OACreate)

  • Programmi eseguiti tramite xp_cmdshell

Mitigazioni da eseguire se si usa codice non attendibile in SQL Server:

Scenario/caso di utilizzo

Mitigazioni o passaggi suggeriti

Eseguire SQL Server con CLR enabled (sp_configure "CLR enabled", 1)

  1. Se possibile, disabilitare CLR se non è necessario nell'applicazione per ridurre il rischio che il codice non attendibile venga caricato in SQL Server

  1. (SQL Server 2017 +) Se CLR è ancora necessario nell'applicazione, abilitare solo gli assembly specifici da caricare usando la caratteristica "sicurezza di CLR Strict" (sicurezza CLR Strict) con sys.sp_add_trusted_assembly (sys.sp_add_trusted_assembly (Transact-SQL))

  1. Verificare se il codice CLR può essere migrato nel codice equivalente T-SQL

  1. Esaminare le autorizzazioni di sicurezza per bloccare gli scenari in cui è possibile usare le operazioni basate su CLR. Limitare la creazione di assembly, l'ASSEMBLY di ACCESS esterno e l'autorizzazione di assemblaggio non sicura per il set minimo di utenti o percorsi di codice per impedire il caricamento di nuovi assembly in un'applicazione esistente distribuita.

Eseguire script esterni Java/R/Python da SQL Server (sp_configure "script esterni abilitati", 1)

  1. Se possibile, disattiva la funzionalità script esterni se non necessario nell'applicazione per ridurre la superficie di attacco.

  1. (SQL Server 2017 +) Se possibile, eseguire la migrazione di script esterni eseguendo il punteggio per usare la caratteristica di valutazione nativa (Punteggio nativo usando la funzione Predict T-SQL)

  1. Rivedere le autorizzazioni di sicurezza per bloccare gli scenari in cui è possibile usare script esterni. Limitare l'esecuzione di qualsiasi autorizzazione di SCRIPT esterno al set minimo di percorsi di utenti/codice per impedire l'esecuzione di script arbitrari.

Uso di server collegati (sp_addlinkedserver)

  1. Esaminare i provider OLEDB installati e prendere in considerazione la possibilità di rimuovere eventuali provider OLEDB non attendibili dal computer. Assicurarsi di non rimuovere i provider OLEDB se vengono usati all'esterno di SQL Server nel computer. Ecco un esempio di come enumerare i provider OLEDB esistenti: Metodo OleDbEnumerator. GetEnumerator (Type)

  1. Esaminare e rimuovere eventuali server collegati non necessari da SQL Server (sp_dropserver) per ridurre la possibilità di eseguire codice non attendibile all'interno del processo sqlservr. exe

  1. Rivedere le autorizzazioni di sicurezza per bloccare l'autorizzazione ALTER ANY LINKED SERVER per il numero minimo di utenti.

  1. Esaminare i mapping di accesso/credenziali del server collegato (sp_addlinkedsvrlogin/sp_droplinkedsvrlogin) per limitare chi può eseguire operazioni su server collegati al set minimo di utenti/scenari.

Uso di stored procedure estese (sp_addextendedproc)

Poiché le stored procedure estese sono deprecate, rimuovere tutti gli usi di questi e non usarli nei sistemi di produzione.

Uso di xp_cmdshell per richiamare i file binari da SQL Server

Questa caratteristica è disattivata per impostazione predefinita. Esaminare e limitare l'uso di xp_cmdshell per richiamare i file binari non attendibili. È possibile controllare l'accesso a questo endpoint tramite sp_configure, come descritto di seguito:

Opzione di configurazione del server xp_cmdshell

 

Uso di oggetti COM tramite sp_OACreate

Questa caratteristica è disattivata per impostazione predefinita. Oggetti COM richiamati tramite sp_OACreate codice di esecuzione installato nel server. Esaminare le chiamate per i file binari non attendibili. È possibile controllare le impostazioni tramite sp_configure, come descritto di seguito:

Opzione di configurazione del server OLE Automation Procedures

 

Serve aiuto?

Amplia le tue competenze
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa a Microsoft Insider

Queste informazioni sono risultate utili?

Come valuti la qualità della lingua?
Cosa ha influito sulla tua esperienza?

Grazie per il feedback!

×