|
Microsoft Security Bulletin MS03-026
Saturação de buffer na interface RPC pode levar à execução de códigos (823980)
Resumo:
Quem
deve ler este boletim:Usuários que executam o Microsoft ® Windows ®
Impacto
da vulnerabilidade:Execução de códigos escolhidos pelo invasor
Classificação
máxima de gravidade:Crítica
Recomendação:Os administradores de sistemas devem aplicar o patch
imediatamente
Software afetado:
Microsoft Windows NT 4.0
Microsoft Windows NT 4.0 Terminal Services Edition
Microsoft Windows 2000
Microsoft Windows XP
Microsoft Windows Server 2003
Software não afetado:
Microsoft Windows Millennium Edition
Detalhes
técnicos
Descrição técnica:
O
RPC (Chamada de procedimento remoto) é um protocolo utilizado pelo
sistema operacional Windows. O RPC fornece um mecanismo de comunicação entre
processos que permite que um programa de um computador execute, de forma
transparente, códigos em um sistema remoto. O próprio protocolo é derivado do
protocolo RPC da OSF (Open Software Foundation), porém com a inclusão de
algumas extensões específicas da Microsoft.
Há uma vulnerabilidade na
parte do RPC que lida com a transferência de mensagens utilizando TCP/IP. A
falha resulta da manipulação incorreta de mensagens malformadas. Esta
vulnerabilidade em particular afeta uma interface
DCOM (Distributed Component Object Model) com RPC, que escuta na porta
135 TCP/IP. Essa interface controla as solicitações de ativação do objeto DCOM
enviadas pelas máquinas clientes (como caminhos UNC (Convenção de nomenclatura
universal)) para o servidor. Um invasor que explora com sucesso esta
vulnerabilidade pode executar código com os privilégios da conta de sistema
local no sistema afetado. O invasor poderá executar qualquer ação no sistema,
incluindo instalar programas, visualizar, alterar e apagar dados ou criar novas
contas com total privilégio.
Para explorar essa
vulnerabilidade, um invasor precisa enviar uma solicitação criada especialmente
para o computador remoto na porta 135.
Fatores atenuantes:
Para
explorar essa vulnerabilidade, o invasor requer a capacidade de enviar uma
solicitação criada especialmente para a porta 135 na máquina remota. Para
ambientes intranet, essa porta normalmente está acessível, mas para máquinas
conectadas à Internet, a porta 135 normalmente está bloqueada por um firewall.
No caso de essa porta não estar bloqueada ou em uma configuração de intranet, o
invasor não requer nenhum privilégio adicional.
As
práticas recomendadas sugerem bloquear todas as portas TCP/IP que não estejam
sendo usadas no momento. Por esse motivo, a maioria das máquinas conectadas à
Internet deve estar com a porta 135 bloqueada. O RPC sobre TCP não é projetado
para uso em ambientes hostis como a Internet. Protocolos mais robustos como RPC
sobre HTTP são fornecidos para ambientes hostis.
Para saber mais sobre
como proteger o RPC para o cliente e o servidor, consulte
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/rpc/rpc/writing_a_secure_rpc_client_or_server.asp
(site em inglês).
Para saber mais sobre as
portas usadas pelo RPC, consulte:
http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/tcpip/part4/tcpappc.asp
(site em inglês)
Classificação de
gravidade:
|
Windows
NT 4.0
|
Crítica
|
|
Windows
NT 4.0 Terminal Server Edition
|
Crítica
|
|
Windows
2000
|
Crítica
|
|
Windows
XP
|
Crítica
|
|
Windows
Server 2003
|
Crítica
|
A
avaliação (site em inglês) acima baseia-se nos tipos de sistemas
afetados pela vulnerabilidade, seus padrões comuns de implantação e o efeito da
exploração da vulnerabilidade sobre eles.
Identificadores da
vulnerabilidade:
CAN-2003-0352
Versões
testadas:
A Microsoft testou o Windows 98, Windows 98 Second Edition, Windows Me, Windows
NT 4.0, Windows NT 4.0 Terminal Services Edition, Windows 2000, Windows XP e
Windows Server 2003, para avaliar se eles são afetados por essa
vulnerabilidade. Não há mais
suporte (site em inglês) para as versões anteriores e elas podem ou não
ser afetadas por essas vulnerabilidades.
Perguntas freqüentes
Qual é o escopo da
vulnerabilidade?
Essa vulnerabilidade é do tipo
saturação de buffer (site em inglês). Um invasor que explora com
sucesso essa vulnerabilidade pode obter controle completo sobre um computador
remoto. Isso daria ao invasor a capacidade de executar qualquer ação no
servidor, inclusive alterar páginas da Web, reformatar o disco rígido ou
adicionar novos usuários ao grupo Administradores local.
Para executar tal ataque,
um invasor precisa da capacidade para enviar uma mensagem malformada para o
serviço RPC e, por esse serviço, fazer com que a máquina de destino falhe de
forma que o código arbitrário possa ser executado.
A melhor defesa contra
ataques de RPC remotos pela Internet é configurar o firewall para bloquear a
porta 135. Não é aconselhável usar RPC por TCP em ambientes hostis como a
Internet.
O
que provoca a vulnerabilidade?
A vulnerabilidade existe
porque o serviço Windows RPC não verifica adequadamente as entradas de
mensagens sob determinadas circunstâncias. Se um invasor enviar um determinado
tipo de mensagem RPC malformada depois que o RPC tiver estabelecido uma
conexão, isso poderá fazer com que uma interface
(DCOM (Distributed Component Object Model) subjacente com o RPC na
máquina remota falhe de forma que esse código arbitrário possa ser executado.
O que é DCOM?
DCOM (Distributed
Component Object Model) é um protocolo que permite que os componentes do
software se comuniquem diretamente em uma rede. Anteriormente chamado de "OLE
de rede", o DCOM foi projetado para ser usado por diversos transportes de rede,
incluindo protocolos de Internet como HTTP.
Mais informações sobre o
DCOM podem ser encontradas no seguinte site:
http://www.microsoft.com/com/tech/dcom.asp (site em inglês)
O que é RPC (Chamada
de procedimento remoto)?
O RPC (Chamada de
procedimento remoto) é um protocolo que um programa pode usar para solicitar um
serviço de um programa localizado em outro computador em uma rede. O RPC
auxilia na interoperabilidade, pois o programa que usa RPC não precisa
compreender os protocolos de rede que estão oferecendo suporte à comunicação.
No RPC, o programa que faz a solicitação é o cliente e o programa fornecedor de
serviços é o servidor.
O que há de errado com
a implementação da Microsoft do RPC (Chamada de procedimento remoto)?
Há uma falha em uma parte
do RPC que lida com a transferência de mensagens por TCP/IP. Uma falha resulta
da manipulação incorreta de mensagens malformadas. Essa falha em particular
afeta a interface DCOM subjacente, que escuta na porta 135 TCP/IP. Enviando uma
mensagem RPC malformada, um invasor faz com que o serviço RPC em uma máquina
falhe de forma que esse código arbitrário possa ser executado.
Isso é uma falha no
RPC Endpoint Mapper?
Não - Embora o RPC
endpoint mapper escute na porta 135 TCP, a falha na verdade ocorre em uma
interface DCOM de nível inferior dentro do processo RPC. O RPC endpoint mapper
permite que clientes RPC determinem o número da porta atribuída atualmente a um
determinado serviço RPC. Um ponto de extremidade é uma porta de protocolo ou
pipe nomeado em que o aplicativo do servidor escuta chamadas de procedimento
remoto do cliente. Aplicativos cliente/servidor podem usar portas conhecidas ou
dinâmicas.
O boletim de segurança
MS03-010também
envolveu o RPC mas não solucionou a vulnerabilidade no Windows NT 4.0. Como
vocês conseguiram corrigir a vulnerabilidade no Windows NT 4.0 neste caso ?
A falha neste caso
ocorreu em uma interface de nível inferior dentro do processo RPC e não em toda
a implementação do RPC ou do Endpoint Mapper em si. Por este motivo, foi
possível corrigir a vulnerabilidade no Windows NT 4.0 sem a necessidade de
redesenhar partes significantes do sistema operacional, como seria necessário
no patch do boletim MS03-010.
Uma área de trabalho é um
objeto de recipiente contido em uma estação Windows. Pode haver muitas áreas de
trabalho contidas em uma estação Windows.
Uma área de trabalho tem uma superfície de exibição lógica e contém janelas,
menus e ganchos. Apenas as áreas de trabalho da estação Windows interativa
podem estar visíveis e receber entrada do usuário. Na estação Windows
interativa, apenas uma área de trabalho por vez é ativa. Esta área de trabalho
ativa, também conhecida como área de trabalho interativa ou área de trabalho de
entrada, é aquela que está visível no momento para o usuário e que recebe a
entrada do usuário.
O que o invasor pode
fazer em decorrência da vulnerabilidade?
Um invasor que explora
com sucesso essa vulnerabilidade pode executar o código com privilégios da
conta de sistema local (LocalSystem) em um sistema afetado. O invasor pode
executar qualquer ação no sistema, incluindo a instalação de programas, a
visualização de dados alterados ou excluídos ou a criação de novas contas com
privilégios totais.
De que forma o
invasor pode explorar a vulnerabilidade?
Um invasor pode tentar
explorar essa vulnerabilidade programando uma máquina que pode se comunicar com
um servidor vulnerável pela porta 135 TCP para enviar um tipo específico de
mensagem RPC malformada. O recebimento de tal mensagem pode fazer com que o
serviço RPC na máquina vulnerável falhe de tal forma que possa executar o
código arbitrário.
Quem poderia explorar
essa vulnerabilidade?
Qualquer usuário que
puder enviar uma solicitação TCP para a porta 135 a um computador afetado
poderá tentar explorar a vulnerabilidade. Como as solicitações RPC estão, por
padrão, em todas as versões do Windows, isso na verdade significa que qualquer
usuário que puder estabelecer uma conexão com um computador afetado poderá
tentar explorar a vulnerabilidade.
Também é possível acessar
o componente afetado por outro vetor, como um que implique efetuar logon no
sistema de maneira interativa ou usando outro aplicativo semelhante que
transmita parâmetros para o componente vulnerável tanto local quanto
remotamente.
O que o patch faz?
O patch corrige a
vulnerabilidade alterando a interface DCOM para verificar adequadamente as
informações transmitidas a ela.
Soluções Temporárias
Há soluções
temporárias que possam ser usadas para bloquear a exploração dessa
vulnerabilidade enquanto estou testando ou avaliando o patch?
Sim. Apesar da Microsoft
insistir para que todos os clientes apliquem o patch o mais rápido possível, há
algumas soluções temporárias que podem ser aplicadas para ajudar a evitar que o
vetor seja usado para explorar essa vulnerabilidade.
Devemos observar que
essas soluções devem ser consideradas medidas temporárias, pois simplesmente
ajudam a bloquear os caminhos do ataque, em vez de corrigir a vulnerabilidade
subjacente.
As seções a seguir
destinam-se a fornecer informações sobre como ajudar a proteger seu computador
contra ataque. Cada seção descreve as soluções temporárias que você poderá
usar, dependendo da configuração do computador.
Cada seção descreve as
soluções temporárias disponíveis dependendo do nível exigido de funcionalidade.
Bloquear
a porta 135 no firewall.
A porta 135 é usada para
iniciar uma conexão RPC com um computador remoto. O bloqueio da porta 135 no
firewall ajudará a impedir que sistemas atrás do firewall sejam atacados por
tentativas de explorar essa vulnerabilidade.
Firewall
de conexão com a Internet.
Se estiver usando o
Firewall de conexão com a Internet no Windows XP ou no Windows Server 2003 para
proteger sua conexão com a Internet, ele bloqueará, por padrão, o tráfego RPC
de entrada da Internet.
Desabilitar
DCOM em todas as máquinas afetadas
Quando um computador faz
parte de uma rede, o protocolo físico DCOM habilita os objetos COM naquele
computador para se comunicarem com os objetos COM em outros computadores. Você
pode desabilitar o DCOM para um determinado computador para ajudar a proteger
contra essa vulnerabilidade, mas isso também desabilitará toda a comunicação
entre os objetos naquele computador e objetos em outros computadores.
Se você desabilitar o
DCOM em um computador remoto, não poderá acessar remotamente esse computador
após a reabilitação do DCOM. Para reabilitá-lo, será necessário ter acesso
físico àquele computador.
Para habilitar
manualmente (ou desabilitar) o DCOM de um computador:
1. Execute Dcomcnfg.exe.
Clique no nó Serviços de Componente em Raiz do Console.
Abra a subpasta Computadores.
Para o computador local, clique com o botão direito do mouse em Meu Computador
e escolha Propriedades.
Para o computador remoto, clique com o botão direito do mouse na pasta
Computadores e escolha Novo, em seguida, Computador. Digite o nome do
computador. Clique com o botão direito do mouse no nome do computador e escolha
Propriedades.
2. Escolha a guia
Propriedades Padrão.
3. Marque (ou desmarque)
a caixa de seleção Habilitar COM Distribuída neste Computador.
4. Se você estiver
definindo mais propriedades para a máquina, clique no botão Aplicar para
habilitar (ou desabilitar) DCOM. Caso contrário, clique em OK para aplicar as
alterações e saia do Dcomcnfg.exe.
Disponibilidade
do patch
Locais de download
deste patch
Windows
NT 4.0 Server
Windows
NT 4.0 Terminal Server Edition
Windows
2000
Windows
XP Edição de 32 bits
Windows
XP Edição de 64 bits
Windows
Server 2003 Edição de 32 bits
Windows
Server 2003 Edição de 64 bits
Informações
adicionais sobre esse patch
Plataformas de
instalação:
O patch do Windows NT 4.0 pode ser instalado em sistemas que executem o
Service Pack 6a.
O patch do Windows NT 4.0, Terminal Server Edition pode ser instalado em
sistemas que executem o Windows NT 4.0, Terminal Server Edition
Service Pack 6.
O patch do Windows 2000 pode ser instalado em sistemas que executem o Windows
2000
Service Pack 3 ou
Service Pack 4.
O patch do Windows XP pode ser instalado em sistemas que executem o Windows XP
Gold ou Service
Pack 1.
O patch do Windows Server 2003 pode ser instalado em sistemas que executem o
Windows Server 2003 Gold.
Inclusão em service
packs futuros:
A correção deste problema
será incluída no Windows 2000 Service Pack 5, Windows XP Service Pack 2 e
Windows Server 2003 Service Pack 1.
Necessário
reinicializar: Sim
O
patch pode ser desinstalado: Sim.
Patches substituídos:
Nenhum.
Verificando a
instalação do patch:
Windows NT 4.0:
Para verificar se o patch
foi instalado na máquina, confirme se todos os arquivos listados no artigo
823980 do Knowledge Base estão presentes no sistema.
Windows NT 4.0 Terminal Server Edition:
Para verificar se o patch
foi instalado na máquina, confirme se todos os arquivos listados no artigo
823980 do Knowledge Base estão presentes no sistema.
Windows 2000:
Para verificar se o patch
foi instalado na máquina, verifique se a seguinte chave de Registro foi criada
na máquina:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows
2000\SP5\KB823980. Para verificar os arquivos individuais, use as informações
de data/hora e versão fornecidas no artigo 823980 do Knowledge Base.
Windows XP:
Para verificar se o patch
foi instalado na máquina, verifique se a seguinte chave de Registro foi criada
na máquina:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows
XP\SP2\KB823980.
Para verificar os
arquivos individuais, use as informações de data/hora e versão fornecidas no
artigo 823980 do Knowledge Base.
Windows Server 2003:
Para verificar se o patch
foi instalado na máquina, verifique se a seguinte chave de Registro foi criada
na máquina:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Window
Server 2003\SP1\KB823980.
Para verificar os
arquivos individuais, use as informações de data/hora e versão fornecidas no
artigo 823980 do Knowledge Base.
Advertências:
Nenhuma
Localização:
Versões localizadas desse
patch estão disponíveis nos locais indicados na seção “Disponibilidade do
patch” deste boletim.
Obtendo outros
patches de segurança:
Os patches de outros
problemas de segurança estão disponíveis nos seguintes locais:
Os
patches de segurança estão disponíveis no
Microsoft Download Center e podem ser encontrados com facilidade
através de uma pesquisa de palavras-chave usando-se "security_patch".
Patches
de plataformas do cliente estão disponíveis no site do
Windows Update.
Outras informações:
Suporte:
O
artigo 823980 do
Microsoft Knowledge Base que analisa esse problema estará disponível em
aproximadamente 24 horas após a publicação deste boletim. Os artigos do
Knowledge Base são encontrados no site de
Suporte online da Microsoft.
O
suporte técnico está disponível no site de Serviços de
suporte ao produto da Microsoft (site em inglês). As ligações para
obter suporte, associadas a patches de segurança, são gratuitas.
Recursos de
segurança:
O site
Microsoft TechNet Security(em
inglês) fornece informações adicionais sobre segurança em produtos da
Microsoft.
Aviso de isenção de
responsabilidade:
As informações fornecidas no Microsoft
Knowledge Base são fornecidas "como estão", sem garantia de qualquer tipo. A
Microsoft se isenta de todas as garantias, expressas ou implícitas, incluindo
as garantias de comercialização e adequação a um propósito específico. Em
hipótese alguma a Microsoft Corporation ou seus fornecedores serão responsáveis
por quaisquer danos, inclusive danos diretos, indiretos, incidentais,
conseqüenciais, danos por lucros cessantes ou danos especiais, mesmo que a
Microsoft Corporation ou seus fornecedores tenham sido alertados da
possibilidade dos referidos danos. Como alguns estados não permitem a exclusão
ou limitação de responsabilidade por danos conseqüenciais ou indiretos, a
limitação acima pode não ser aplicável a você.
Revisões:
V1.0 (16 de julho de 2003): Data de criação do boletim.
|