Ontem foi a primeira terça-feira de patch de 2022, com mais de 100 bugs de segurança corrigidos.
Escrevemos uma visão geral das atualizações, como fazemos todos os meses, em nosso site irmã news.sophos.com: First Patch Tuesday de 2022 repara 102 bugs.
Para o bem ou para o mal, uma atualização chamou a atenção da mídia mais do que qualquer outra, ou seja, CVE-2022-21907,mais conhecida como VULNERABILIDADE de Execução remota de código remoto http protocol stack.
Este bug foi um dos sete buracos de segurança deste mês que poderia levar à execução remota de código (RCE), o tipo de bug que significa que alguém fora da sua rede poderia enganar um computador dentro de sua rede para executar algum tipo de programa sem pedir permissão primeiro.
Não há necessidade de fazer login na frente; nenhum aviso pop-up na outra extremidade; sem perguntas.Are you sure (Y/N)?
Basta dar o pedido, e o malware corre.
Essa é a teoria, de qualquer maneira.
Bugs RCE considerados wormable
Uma coisa a ser lembrada sobre a maioria das vulnerabilidades do RCE é que se você pode atacar o computador de outra pessoa de fora e instruí-lo a executar um programa malicioso de sua escolha…
… então é possível, talvez até provável, que você poderia dizer-lhe para executar o mesmo programa que você mesmo usou para lançar o seu próprio ataque.
Em outras palavras, você pode ser capaz de usar a vulnerabilidade para localizar e infectar a Vítima 1 com o programa malicioso W que instrui a Vítima 1 a localizar e infectar a Vítima 2 com o programa malicioso W que instrui a Vítima 2 a localizar e infectar a vítima 3… e assim por diante, talvez até mesmo ad infinitum.
Em um ataque como este, damos ao programa W um nome especial: chamamos de verme.
Os worms formam um subconjunto adequado de um tipo de software malicioso (ou malware para abreviar) conhecido geralmente como vírus de computador, o termo abrangente para malware auto-replicante de qualquer tipo.
Isso significa que a maioria dos bugs de RCE são, em teoria, pelo menos, wormable, o que significa que eles poderiam potencialmente ser explorados para iniciar uma cadeia de infecções automáticas, auto-difundidas e autossustentáveis de malware.
O raciocínio aqui é óbvio: se um bug RCE permite que você execute um programa arbitrário de sua própria escolha no computador de outra pessoa, como aparecer ou lançar, então quase certamente permite que você execute um programa específico de sua escolha, como um worm.CALC.EXENOTEPAD
Alguns insetos são mais vermes do que outros
Como você pode imaginar, algumas classes de bug RCE são consideradas muito mais vermes do que outras, especialmente bugs que podem ser acionados diretamente através de uma simples interação de rede.
Isso foi um risco de preocupação considerável na recente saga Log4Shell,onde uma única solicitação web com algum texto ASCII curioso, mas não excepcional, poderia desencadear a execução arbitrária de código remoto.
Infelizmente, o CVE-2022-21907 é um bug na mesma categoria, com o próprio boletim de segurança da Microsoft dizendo explicitamente o seguinte em sua seção faq:
*How could an attacker exploit this vulnerability?* In most situations, an unauthenticated attacker could send a specially crafted packet to a targeted server utilizing the HTTP Protocol Stack (HTTP.sys) to process packets. *Is this wormable?* Yes. Microsoft recommends prioritizing the patching of affected servers.
Isso tem algo a ver com iis?
Onde e como o HTTP Protocol Stack é ativado?
Este é um problema exclusivo para os servidores Windows, como o boletim da Microsoft implica quando ele fala sobre patches de “servidores afetados”?
O ataque depende de você ter um servidor web conhecido como o Microsoft IIS (Internet Information Services) já instalado e ativado?
As respostas a essas perguntas são as seguintes:
- HTTP.sys faz parte do Windows e está disponível para qualquer programa que use ASP.NET.
- HTTP.sys funciona em clientes do Windows 7 e depois.
- HTTP.sys funciona em servidores R2 do Windows 2008 e depois.
- HTTP.sys não faz parte do IIS e não exige que o IIS seja instalado.
O último ponto acima deixa claro que você pode ter qualquer número de aplicativos em uso – talvez sem perceber – que fornecem uma interface baseada em HTTP via HTTP.sys, quer você tenha implantado o IIS ou não.
Na verdade, a própria documentação da Microsoft observa que “HTTP.sys é útil […] onde há a necessidade de expor o servidor diretamente à Internet sem usar o IIS.”
Na verdade, o IIS é baseado em HTTP.sys, não o contrário, como explica a Microsoft:
HTTP.sys é uma tecnologia madura que protege contra muitos tipos de ataques e fornece a robustez, segurança e escalabilidade de um servidor web completo. O próprio IIS é executado como um ouvinte HTTP em cima do HTTP.sys.
Simplificando: você poderia, em teoria, ter aplicativos instalados, mesmo em um computador desktop ou laptop, que fornecem algum tipo de interface baseada na Web que é reparada pelo código de motorista http.sys.
O lado bom, pelo menos para alguns usuários, é que a parte do HTTP.sys que contém o bug CVE-2022-21907:
- Afeta apenas as versões do Windows 10 e posteriores do desktop.
- Afeta apenas o Windows Server 2019 e versões posteriores do servidor.
- Não está habilitado por padrão no Windows Server 2019.
- Pode ser imunizado contra este bug simplesmente instalando as atualizações de terça-feira de janeiro de 2022.
Até onde podemos dizer, a razão pela qual essa vulnerabilidade não está presente em versões anteriores do Windows e do Windows Server é que o bug foi encontrado no código que lida com trailers HTTP (estes são como Cabeçalhos HTTP, exceto que eles são enviados após os dados HTTP em vez de antes dele); O suporte ao trailer HTTP só foi adicionado após o suporte para HTTP/2; e o suporte ao HTTP/2 só chegou na era do Windows 10.
O que é que eu faço?
Se você não puder realmente corrigir imediatamente, e se você souber que não está executando (ou pelo menos não pretende executar) qualquer software baseado na Web que use HTTP.sys, você pode bloquear temporariamente http.sys no seu computador definindo a seguinte entrada de registro:
HKLM\SYSTEM\CurrentControlSet\Service\HTTP\Start = DWORD(4)
O valor habitual desta entrada de registro é 3, denotando “start on demand”; alterar o valor para 4 marca o driver como “desativado de serviço”.
Após uma reinicialização, você pode verificar o status de HTTP.sys a partir de um prompt de comando regular com o comando (Controle de Serviço):SC
C:\Users\duck> sc query HTTP SERVICE_NAME: HTTP TYPE : 1 KERNEL_DRIVER STATE : 1 STOPPED <--before applying the registry hack above, this line said: "4 RUNNING" WIN32_EXIT_CODE : 1077 (0x435) SERVICE_EXIT_CODE : 0 (0x0) CHECKPOINT : 0x0 WAIT_HINT : 0x0 C:\Users\duck>
Note que testamos esta solução de forma mais superficial. Instalamos o Server 2022, habilitamos o IIS, criamos uma página inicial e verificamos a partir de outro computador que funcionava. Mudamos o valor de início do serviço para HTTP para 4, como sugerido acima, e reiniciamos. Nosso servidor IIS não era mais acessível. Revertemos a entrada do registro para 3, reiniciamos mais uma vez e verificamos que o IIS voltou à vida automaticamente. A partir disso, inferimos que a desativação do serviço HTTP de fato bloqueia o acesso à rede baseado em HTTP a software de nível superior que poderia ser exposto a esse bug, e assumimos que isso torna a vulnerabilidade temporariamente “inexernável”.
Nossas principais recomendações são:
- Suponha que todas as vulnerabilidades RCE sejam vermes. Como mencionado, bugs que podem ser acionados diretamente através de conexões de rede de rotina representam de longe o maior risco de “ser wormed”, mas em teoria qualquer bug que permita a execução arbitrária de código remoto poderia permitir a execução de código de worm.
- Suponha que os cibercriminosos já estão investigando ativamente isso e todos os outros abutres da RCE anunciaram nesta terça-feira. Você provavelmente já ouviu a piada sobre Patch Tuesday sendo seguido por Exploit Wednesday. Há mais que um toque de verdade nisso, dado que mesmo manchas de fonte fechada podem ser muitas vezes presas para trás – engenharia reversa, no jargão – para revelar os detalhes internos do bug que eles previnem. (E veja o ponto 1.)
- Remendar cedo, remendar com frequência. Não use soluções alternativas como parte rotineira do seu processo de remendo para ganhar tempo extra o tempo todo. Remenda fora de preferência e mantenha soluções alternativas para situações em que você realmente precisa atrasar a remenda por um tempo. (E ver os pontos 1 e 2.)
Não demore… fazê-lo hoje!
FONTE: SOPHOS