KB4073225 - Orientação do SQL Server para proteção contra as vulnerabilidades Spectre, Meltdown e Micro-architectural Data Sampling

Resumo

A Microsoft está ciente de uma nova classe de vulnerabilidades publicamente divulgada conhecida como “ataques de canal paralelo de execução especulativa” e que afetam muitos processadores e sistemas operacionais modernos. Isso inclui o Intel, o AMD e o ARM.

Observação Esse problema também afeta outros sistemas, como o Android, o Chrome, o iOS e o MacOS. Portanto, recomendamos que os clientes busquem a orientação desses fornecedores.

A Microsoft lançou várias atualizações para ajudar a aliviar essas vulnerabilidades. Também tomamos medidas para proteger nossos serviços de nuvem. Consulte as seções a seguir para obter informações adicionais.

Até agora, a Microsoft não recebeu nenhuma informação que indicasse que essas vulnerabilidades foram usadas para atacar clientes. A Microsoft continua a trabalhar em estreita colaboração com parceiros da indústria, incluindo fabricantes de chips, OEMs de hardware e fornecedores de aplicativos, para proteger os clientes. Para obter todas as proteções disponíveis, são necessárias atualizações de hardware ou firmware e software. Isso inclui microcódigo de OEMs de dispositivos e, em alguns casos, atualizações de software antivírus.

Para obter mais informações sobre as vulnerabilidades, consulte Comunicado de segurança da Microsoft ADV180002. Para obter orientação geral para atenuar essa classe de vulnerabilidade, consulte Orientação para mitigar vulnerabilidades de canal paralelo de execução especulativa

A Microsoft publicou ADV190013 - Orientação da Microsoft para mitigar vulnerabilidades Microarchitectural Data Sampling em maio de 2019. O SQL Server não tem patches de segurança específicos para o problema descrito em ADV190013. Você pode encontrar orientações para ambientes afetados pelo ADV190013 na seção Recomendações deste artigo. Observe que este anúncio se aplica somente aos processadores da Intel.

Como obter e instalar a atualização

Essa atualização também está disponível no Windows Server Update Services (WSUS) ou no site do Catálogo do Microsoft Update.

Observação: Esta atualização não será baixada e instalada automaticamente por meio do Windows Update.

Patches do SQL disponíveis

No momento da publicação, os seguintes builds do SQL Server atualizados estão disponíveis para download:

Lançamento de serviço

4057122 Descrição da atualização de segurança para SQL Server 2017 GDR: 3 de janeiro de 2018
4058562 Descrição da atualização de segurança para SQL Server 2017 RTM CU3: 3 de janeiro de 2018
4058561 Descrição da atualização de segurança para SQL Server 2016 SP1 CU7: 3 de janeiro de 2018
4057118 Descrição da atualização de segurança para SQL Server 2016 GDR SP1: 3 de janeiro de 2018
4058559 Descrição da atualização de segurança para SQL Server 2016 CU: 6 de janeiro de 2018
4058560 Descrição da atualização de segurança para SQL Server 2016 GDR: 6 de janeiro de 2018
4057117 Descrição da atualização de segurança para SQL Server 2014 SP2 CU10: 16 de janeiro de 2018
4057120 Descrição da atualização de segurança para SQL Server 2014 SP2 GDR: 16 de janeiro de 2018
4057116 Descrição da atualização de segurança para SQL Server 2012 SP4 GDR: 12 de janeiro de 2018
4057115 Descrição da atualização de segurança para SQL Server 2012 SP3 GDR: Janeiro de 2018
4057121 Descrição da atualização de segurança para a CU do SQL Server 2012 SP3 CU: Janeiro de 2018
4057114 Descrição da atualização de segurança para SQL Server 2008 SP4 GDR: 6 de janeiro de 2018
4057113 Descrição da atualização de segurança para SQL Server 2008 R2 SP3 GDR: 6 de janeiro de 2018

Este documento será atualizado quando builds atualizados adicionais estiverem disponíveis.

Observações

  • Lançamos todas as atualizações necessárias para o SQL Server para mitigar as vulnerabilidades de ataques de temporização de execução especulativa “Spectre” e “Meltdown”. A Microsoft não tem conhecimento de nenhuma exposição adicional às vulnerabilidades de ataques de temporização de execução especulativa “Spectre” e “Meltdown” para componentes que não estão listados na seção “Patches do SQL disponíveis”.

  • Todos os Service Packs e Atualizações Cumulativas do SQL Server 2014, SQL Server 2016 e SQL Server 2017 subsequentes conterão as correções. Por exemplo, o SQL Server 2016 SP2 já contém as correções para o Spectre e o Meltdown.

  • Para builds do Windows, consulte as seguintes diretrizes para obter as informações mais recentes sobre os builds do Windows disponíveis:

    Orientação do Windows Server para vulnerabilidades de canal lateral Spectre/Meltdown

    Orientação do Windows Server para vulnerabilidades Microarchitectural Data Sampling

    Para builds do Linux, entre em contato com o fornecedor do Linux para obter os últimos builds atualizados para sua distribuição do Linux específica.

  • Para solucionar as vulnerabilidades Spectre e Meltdown o mais rapidamente possível, a distribuição dessas atualizações do SQL Server foi feita inicialmente no Centro de Download da Microsoft como o modelo de entrega primário. Embora essas atualizações serão distribuídas via Microsoft Update em março, recomendamos que os clientes afetados as instalem agora sem esperar que elas se tornem disponíveis no Microsoft Update.

Versões do SQL Server com suporte que são afetadas

A Microsoft recomenda que todos os clientes instalem as atualizações do SQL Server (listadas abaixo), como parte do seu ciclo regular de aplicação de patches.  Os clientes que executam o SQL Server em um ambiente seguro em que pontos de extensibilidade estão bloqueados e todo o código de terceiros em execução no mesmo servidor é confiável e aprovado não devem ser afetados por esse problema.

As seguintes versões do SQL Server possuem atualizações disponíveis quando são executadas em sistemas de processadores x86 e x64:

  • SQL Server 2008

  • SQL Server 2008R2

  • SQL Server 2012

  • SQL Server 2014

  • SQL Server 2016

  • SQL Server 2017

Não acreditamos que o IA64 (Microsoft SQL Server 2008) seja afetado. O Microsoft Analytic Platform Service (APS) é baseado no Microsoft SQL Server 2014 ou Microsoft SQL Server 2016, mas não é especificamente afetado. Algumas diretrizes gerais para o APS são listadas posteriormente neste artigo.

Recomendações

A tabela a seguir descreve o que os clientes devem fazer, dependendo do ambiente em que o SQL Server está sendo executado e de qual funcionalidade está sendo usada. A Microsoft recomenda que você implante correções usando os procedimentos comuns para testar novos binários antes de implantá-los em ambientes de produção.

Número do cenário

Descrição do cenário

Recomendações de prioridades

1

Banco de Dados Azure SQL e Data Warehouse

Não é necessária nenhuma ação (veja detalhes aqui).

2

O SQL Server é executado em um computador físico ou em uma máquina virtual

E nenhuma das condições a seguir é verdadeira:

  • Outro aplicativo que executa um código potencialmente hostil também está hospedado no mesmo computador

  • As interfaces de extensibilidade do SQL Server estão sendo usadas com código não confiável (consulte a lista abaixo)

 

A Microsoft recomenda a instalação de todas as atualizações do SO para proteção contra a CVE 2017-5753.

A Microsoft recomenda a instalação de todas as atualizações do SO para proteção contra as vulnerabilidades Microarchitectural Data Sampling (CVE-2018-12126, CVE-2018-12130, CVE-2018-12127 e CVE-2018-11091).

Não é necessário  habilitar o KVAS (Kernel Virtual Address Shadowing) e o suporte de hardware de mitigação de IBP (Indirect Branch Prediction) (veja abaixo).

Os patches do SQL Server devem ser instalados como parte da política normal de aplicação de patches na próxima janela de atualização agendada.

Você pode continuar a usar o hyperthreading nesse host.

3

O SQL Server é executado em um computador físico ou em uma máquina virtual

E outro aplicativo que executa um código potencialmente hostil também está hospedado no mesmo computador

E/OU interfaces de extensibilidade do SQL Server estão sendo usadas com código não confiável (consulte a lista abaixo)

 

 

 

A Microsoft recomenda a instalação de todas as atualizações do SO para proteção contra a CVE 2017-5753.

A Microsoft recomenda a instalação de todas as atualizações do SO para proteção contra as vulnerabilidades Microarchitectural Data Sampling (CVE-2018-12126, CVE-2018-12130, CVE-2018-12127 e CVE-2018-11091).

Aplique patches do SQL Server (veja abaixo). Isso protege contra CVE 2017-5753.

A habilitação do KVAS (Kernel Virtual Address Shadowing) é altamente recomendável (veja abaixo). Isso protege contra CVE 2017-5754.

É altamente recomendável habilitar o suporte de hardware de mitigação de IBP (Indirect Branch Prediction) (veja abaixo). Isso protege contra CVE 2017-5715

Recomendamos que você desabilite o hyperthreading no host se processadores Intel estiverem sendo usados.

4

O SQL Server é executado em um computador físico

E outro aplicativo que executa um código potencialmente hostil não está hospedado no mesmo computador

E As interfaces de extensibilidade do SQL Server ESTÃO sendo usadas para executar código CONFIÁVEL.

Exemplos: 

  • Assemblies CLR que foram recuperados/aprovados para uso em produção

  • Servidores vinculados em que você confia executando consultas vetadas em que você confia

Não exemplos:

  • Scripts R/Python arbitrários baixados da Internet

  • Binários CLR não confiáveis de terceiros

A Microsoft recomenda a instalação de todas as atualizações do SO para proteção contra a CVE 2017-5753.

A Microsoft recomenda a instalação de todas as atualizações do SO para proteção contra as vulnerabilidades Microarchitectural Data Sampling (CVE-2018-12126, CVE-2018-12130, CVE-2018-12127 e CVE-2018-11091).

A habilitação do KVAS (Kernel Virtual Address Shadowing) é altamente recomendável (veja abaixo). Isso protege contra CVE 2017-5754.

É altamente recomendável habilitar o suporte de hardware de mitigação de IBP (Indirect Branch Prediction) (veja abaixo). Isso protege contra CVE 2017-5715

Recomendamos desabilitar o hyperthreading nesse ambiente se processadores Intel estiverem sendo usados.

Os patches do SQL Server devem ser instalados como parte da política normal de aplicação de patches na próxima janela de atualização agendada.

5

O SQL Server é executado no sistema operacional Linux.

Aplique as atualizações do sistema operacional Linux de seu provedor de distribuição.

Aplique patches do Linux SQL Server (veja abaixo). Isso protege contra CVE 2017-5753.

Veja abaixo diretrizes sobre se é preciso habilitar o KPTI (Kernel Page Table Isolation) do Linux e o IBP (CVEs CVE 2017-5754 e CVE 2017-5715).

Recomendamos desabilitar o hyperthreading nesse ambiente se processadores Intel estiverem sendo usados para os Cenários 3 e 4 mencionados acima.

6

APS (Analytics Platform System)

Embora o APS não dê suporte aos recursos de extensibilidade do SQL Server listados neste boletim, é aconselhável instalar os patches do Windows no dispositivo APS. Não é necessário habilitar o KVAS/IBP.

Comunicado de Desempenho

Convém que os clientes avaliem o desempenho de seus aplicativos específicos ao aplicarem atualizações.

A Microsoft aconselha todos os clientes a instalar versões atualizadas do SQL Server e do Windows. Isso deve ter um efeito insignificante a mínimo sobre o desempenho em aplicativos existentes, com base nos testes da Microsoft em relação às cargas de trabalho SQL. No entanto, recomendamos que você teste todas as atualizações antes de as implantar em um ambiente de produção.

A Microsoft mediu o impacto do KVAS (Kernel Virtual Address Shadowing), do KPTI (Kernel Page Table Indirection) e do IBP (Indirect Branch Prediction Mitigation) em relação a várias cargas de trabalho SQL em vários ambientes e encontrou algumas cargas de trabalho com degradação significativa. É recomendável que você teste o efeito sobre o desempenho devido à habilitação desses recursos antes de implantá-los em um ambiente de produção. Se o efeito sobre o desempenho devido à habilitação desses recursos for muito alto para um aplicativo existente, você poderá considerar se o isolamento do SQL Server do código não confiável que está sendo executado no mesmo computador é uma mitigação melhor para o aplicativo.

Mais informações sobre o efeito sobre o desempenho causado pelo suporte de hardware de mitigação de IBP (Indirect Branch Prediction) são detalhadas aqui.

A Microsoft atualizará esta seção com mais informações quando disponíveis.

Habilitar Kernel Virtual Address Shadowing (KVAS no Windows) e Kernel Page Table Indirection (KPTI no Linux)

O KVAS e o KPTI mitigam contra o CVE 2017-5754, também conhecido como “Meltdown” ou “variante 3” na divulgação do GPZ.

O SQL Server é executado em muitos ambientes: computadores físicos, VMs em ambientes de nuvem públicos e privados, em sistemas Linux e Windows. Independentemente do ambiente, o programa é executado em um computador ou VM. Isso se chama limite de segurança.

Se todo o código no limite tiver acesso a todos os dados nesse limite,  nenhuma ação será necessária. Se esse não for o caso, o limite será chamado multilocatário. As vulnerabilidades encontradas tornam possível que qualquer código, mesmo com permissões reduzidas, seja executado em qualquer processo nesse limite, para ler outros dados dentro desse limite. Se houver algum processo no limite que esteja executando código não confiável, ele poderá usar essas vulnerabilidades para ler dados de outros processos. Esse código não confiável pode ser um código não confiável que usa mecanismos de extensibilidade do SQL Server ou outros processos no limite que executam o código não confiável.

Para se proteger contra código não confiável em um limite multilocatário, use um destes métodos

  • Remova o código não confiável. Para obter mais informações sobre como fazer isso para mecanismos de extensibilidade do SQL Server, veja abaixo. Para remover o código não confiável de outros aplicativos no mesmo limite, geralmente são necessárias alterações específicas no aplicativo. Por exemplo, separação em duas VMs.

  • Ative o KVAS ou o KPTI. Isso terá um efeito sobre o desempenho. Para obter mais informações, conforme descrito anteriormente neste artigo.

Para obter mais informações sobre como habilitar o KVAS para Windows, consulte o KB4072698. Para obter mais informações sobre como habilitar o KPTI no Linux, consulte o distribuidor do seu sistema operacional.

Um exemplo de cenário no qual o KVAS ou o KPTI é fortemente recomendado

Um computador físico local que hospeda o SQL Server como uma conta de administrador que não é do sistema permite aos clientes enviar scripts R arbitrários para serem executados pelo SQL Server (que usa processos secundários para executar esses scripts fora de sqlservr.exe). É necessário habilitar o KVAS e o KPTI para se proteger contra a divulgação de dados dentro do processo Sqlservr.exe e para se proteger contra a divulgação de dados dentro da memória do kernel do sistema operacional.

Observação Um mecanismo de extensibilidade dentro do SQL Server não é automaticamente considerado inseguro só porque está sendo usado. Esses mecanismos podem ser usados de forma segura no SQL Server, desde que cada dependência seja entendida e confiável pelo cliente. Além disso, existem outros produtos baseados no SQL que podem exigir que os mecanismos de extensibilidade funcionem corretamente. Por exemplo, um aplicativo empacotado criado com base no SQL Server pode exigir um servidor vinculado ou procedimento armazenado CLR para funcionar corretamente.

A Microsoft não recomenda que você os remova como parte da mitigação. Em vez disso, como ação inicial, examine cada uso para determinar se esse código é compreendido e confiável. Esta orientação é fornecida para ajudar os clientes a determinar se eles estão em uma situação em que eles precisam habilitar o KVAS. Isso porque tal ação tem implicações significativas sobre o desempenho.

Habilitar o suporte de hardware de mitigação de IBP (Indirect Branch Prediction)

O IBP mitiga contra o CVE 2017-5715, também conhecido como metade do Spectre ou “variante 2” na divulgação do GPZ.

As instruções neste artigo para habilitar o KVAS no Windows também habilitam o IBP. No entanto, o IBP também requer uma atualização de firmware do fabricante do hardware. Além das instruções no KB4072698 para habilitar a proteção no Windows, os clientes precisam obter e instalar atualizações do fabricante do hardware.

Um exemplo de um cenário em que o IBP é altamente recomendável

Um computador físico local hospeda o SQL Server juntamente com um aplicativo que permite que usuários não confiáveis carreguem e executem código JavaScript arbitrário. Supondo que haja dados confidenciais no banco de dados SQL, o IBP é altamente recomendável como uma medida para se proteger contra a divulgação de informações de processo a processo.

Em situações em que o suporte de hardware de IBP não está presente, a Microsoft recomenda separar processos não confiáveis e processos confiáveis em diferentes computadores físicos ou máquinas virtuais.

Usuários do Linux: Entre em contato com o distribuidor do sistema operacional para obter informações sobre como proteger-se contra a Variante 2 (CVE 2017-5715).

Um exemplo de um cenário no qual a mitigação para vulnerabilidades Microarchitectural Data Sampling Vulnerabilities é altamente recomendável

Considere um exemplo em que um servidor local está executando duas instâncias do SQL Server que hospedam dois aplicativos de negócios diferentes em duas máquinas virtuais diferentes no mesmo host físico. Suponha que esses dois aplicativos de negócios não devam ler dados armazenados nas instâncias do SQL Server. Um invasor que conseguir explorar essas vulnerabilidades poderá ler dados privilegiados entre limites de confiança, usando um código não confiável em execução na máquina como um processo separado ou um código não confiável executado com o uso de um mecanismo de extensibilidade do SQL Server (consulte a seção abaixo para conhecer as opções de extensibilidade no SQL Server). Em ambientes de recursos compartilhados (como os que existem em algumas configurações de serviços de nuvem), essas vulnerabilidades podem permitir que uma máquina virtual acesse indevidamente informações de outra. Em cenários sem navegação em sistemas autônomos, um invasor precisa ter acesso prévio ao sistema ou a capacidade de executar um aplicativo especialmente criado no sistema para tirar proveito dessas vulnerabilidades.

Mecanismos de extensibilidade não confiáveis do SQL Server

O SQL Server contém muitos recursos e mecanismos de extensibilidade. A maioria desses mecanismos está desabilitada por padrão. No entanto, aconselhamos os clientes a analisarem cada instância de produção para o uso de recursos de extensibilidade. Recomendamos que cada um desses recursos seja restrito ao conjunto mínimo de binários e que os clientes restringem o acesso para evitar que o código arbitrário seja executado no mesmo computador que o SQL Server. Recomendamos que os clientes determinem se confiam em cada binário e desabilitem ou removam binários não confiáveis.

  • Assemblies CLR SQL

  • Pacotes R e Python em execução pelo mecanismo de scripts externo ou executados a partir do R/Machine Learning Studio autônomo no mesmo computador físico que o SQL Server

  • Pontos de extensibilidade do SQL Agent executados no mesmo computador físico que o SQL Server (scripts ActiveX)

  • Provedores OLE DB não Microsoft usados em servidores vinculados

  • Procedimentos armazenados estendidos não Microsoft

  • Objetos COM executados no servidor (acessados via sp_OACreate)

  • Programas executados via xp_cmdshell

Mitigações a serem tomadas se você usar código não confiável no SQL Server:

Cenário/caso de uso

Mitigação ou etapas sugeridas

Executar o SQL Server com o CLR habilitado (sp_configure ‘clr enabled', 1)

  1. Se possível, desabilite o CLR se ele não for necessário em seu aplicativo, para reduzir o risco de qualquer código não confiável ser carregado no SQL Server

  1. (SQL Server 2017+) Se o CLR ainda for necessário em seu aplicativo, habilite apenas assemblies específicos a serem carregados usando o recurso “Segurança Estrita do CLR” (segurança estrita do CLR) com o uso de sys.sp_add_trusted_assembly (sys.sp_add_trusted_assembly (Transact-SQL))

  1. Considere se o código CLR pode ser migrado para o código T-SQL equivalente

  1. Revise as permissões de segurança para bloquear cenários em que as operações baseadas no CLR podem ser usadas. Limite as permissões CREATE ASSEMBLY, EXTERNAL ACCESS ASSEMBLY e UNSAFE ASSEMBLY para o conjunto mínimo de usuários ou caminhos de código, para não permitir o carregamento de novos assemblies em um aplicativo implantado existente.

Executar scripts externos Java/R/Python a partir do SQL Server (sp_configure 'external scripts enabled', 1)

  1. Se possível, desabilite o recurso de scripts externos se ele não for necessário no seu aplicativo, para reduzir a área de superfície de ataque.

  1. (SQL Server 2017+) Se possível, migre scripts externos fazendo uma pontuação para usar o recurso de pontuação nativo em vez disso (Pontuação nativa usando a função PREDICT T-SQL)

  1. Revise as permissões de segurança para bloquear cenários em que scripts externos podem ser usados. Limite a permissão EXECUTE ANY EXTERNAL SCRIPT para o conjunto mínimo de usuários/caminhos de código, para impedir que scripts arbitrários sejam executados.

Usar servidores vinculados (sp_addlinkedserver)

  1. Examine os provedores OLEDB instalados e considere a remoção de qualquer provedor OLEDB não confiável do computador. (Não remova provedores OLEDB se eles forem usados fora do SQL Server no computador). Veja a seguir um exemplo sobre como enumerar provedores OLEDB existentes: Método OleDbEnumerator.GetEnumerator (Tipo)

  1. Examine e remova todos os servidores vinculados desnecessários do SQL Server (sp_dropserver) para reduzir a possibilidade de que qualquer código não confiável seja executado no processo sqlservr.exe

  1. Revise as permissões de segurança para bloquear a permissão ALTER ANY LINKED SERVER para o número mínimo de usuários.

  1. Revise os mapeamentos de Login/Credencial de Servidor Vinculado (sp_addlinkedsvrlogin/sp_droplinkedsvrlogin) para limitar quem pode executar operações em servidores vinculados ao conjunto mínimo de usuários/cenários.

Usar procedimentos armazenados estendidos (sp_addextendedproc)

Como os Procedimentos Armazenados Estendidos foram preteridos, remova todos os seus usos e não os utilize em sistemas de produção.

Usar xp_cmdshell para invocar binários do SQL Server

Esse recurso está desativado por padrão. Examine e restrinja todo o uso de xp_cmdshell para invocar binários não confiáveis. Você pode controlar o acesso a esse ponto de extremidade via sp_configure, conforme descrito aqui:

Opção de Configuração de Servidor xp_cmdshell

 

Usar objetos COM via sp_OACreate

Esse recurso está desativado por padrão. Objetos COM que são invocados por meio do código de execução sp_OACreate instalado no servidor. Examine tais chamadas para detectar binários não confiáveis. Você pode verificar as configurações via sp_configure, conforme descrito aqui:

Opção de Configuração de Servidor de Procedimentos de Automação de Automação Ole

 

Precisa de mais ajuda?

Expanda suas habilidades
Explore o treinamento
Obtenha novos recursos primeiro
Ingressar no Microsoft Insider

Estas informações foram úteis?

Obrigado por seus comentários!

Agradecemos pelos seus comentários! Parece que pode ser útil conectar você a um de nossos agentes de suporte do Office.

×