|
Microsoft Security Bulletin MS03-010
Flaw in RPC Endpoint Mapper Could Allow Denial of Service Attacks (331593)
Resumo:
Quem deve ler este boletim: Clientes que utilizam
o Windows NT 4.0, Windows 2000 ou Windows XP
Impacto da vulnerabilidade: Negação de serviços
Classificação máxima de gravidade: Importante
Recomendação: Instalar o patch o mais rápido possível.
Software afetado:
-
Microsoft Windows NT 4.0
-
Microsoft Windows 2000
-
Microsoft Windows XP
Descrição Técnica:
O RPC
(Remote Procedure Call) (site em inglês) é um protocolo usado pelo sistema
operacional Windows. O RPC fornece um mecanismo de comunicação entre processos
que permite que um programa de um computador execute sem diferenças 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 por TCP/IP. A falha resulta da manipulação incorreta de mensagens
malformadas. Esse ataque em particular tem como destino o processo mapeador de
pontos de extremidade do RPC, que escuta na porta 135. O mapeador de pontos de
extremidade do RPC permite que clientes RPC determinem o número da porta
atribuída no momento a um determinado serviço RPC.
Para explorar essa vulnerabilidade, o invasor precisa estabelecer uma conexão
TCP/IP com o processo de destino em uma máquina remota. Depois de estabelecida
a conexão, o invasor inicia a negociação da conexão RPC antes de transmitir uma
mensagem malformada. Nesse ponto, o processo na máquina remota falha. Esse
processo é responsável por manter as informações de conexão de todos os
processos naquela máquina usando RPC. Como o mapeador de pontos de extremidade
é executado dentro do próprio serviço RPC, explorar essa vulnerabilidade fará o
próprio serviço RPC falhar, com a conseqüente perda de qualquer serviço baseado
em RPC que o servidor ofereça, assim como uma perda em potencial de algumas
funções COM. .
Fatores
atenuantes:
-
Para fazer esse tipo de
ataque, o invasor precisa poder se conectar ao mapeador de pontos de
extremidade em execução na máquina de destino. Para ambientes intranet, esse
geralmente é o caso, mas para máquinas conectadas à Internet, a porta usada
pelo mapeador de pontos de extremidade é normalmente bloqueada por firewalls.
No caso dela não ser bloqueada, ou no caso da intranet, o invasor não precisa
de nenhum privilégio adicional.
-
A prática recomendada é
sempre bloquear todas as portas TCP/IP que não estejam sendo usadas no momento.
Sendo assim, a maioria das máquinas conectadas à Internet deveria estar com a
porta 135 bloqueada. O RPC por TCP não é projetado para uso em ambientes hostis
como a Internet. O RPC fornece protocolos mais robustos para esses tipos de
ambientes, como RPC por HTTP. Para saber mais sobre como proteger RPC para o
cliente e o servidor, consulte este artigo (site em inglês). Para saber mais
sobre portas,
consulte (site em inglês)
-
Essa vulnerabilidade somente permite
um ataque do tipo negação de serviço e não permite ao invasor a capacidade de
modificar ou recuperar dados na máquina remota.
-
Um servidor RPC interno por trás de um
ISA está protegido desse ataque.
Classificação
de gravidade:
|
Microsoft
Windows NT 4.0
|
Importante
|
|
Microsoft
Windows 2000 Server
|
Importante
|
|
Microsoft
Windows 2000 Professional
|
Importante
|
|
Microsoft
Windows XP
|
Importante
|
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.
Identificador de Vunerabilidade
CAN-2002-1561
(site em inglês)
Versões testadas:
A Microsoft testou o
Windows NT, Windows 2000 e o Windows XP para avaliar se eles são afetados por
essa vulnerabilidade. Não há mais
suporte para as versões anteriores e elas podem ou não ser afetadas por essa
vulnerabilidade.
Perguntas freqüentes
1. Qual é o escopo da vulnerabilidade?
Essa é uma vulnerabilidade de
negação de serviço (site em inglês).
Um invasor que explore essa vulnerabilidade com sucesso poderá causar falhas em
um computador remoto. Porém, o
invasor não poderá modificar nem recuperar dados na máquina remota.
Para executar essa negação de serviço, um invasor deve ser capaz de estabelecer
uma conexão TCP/IP com o mapeador de pontos de extremidade em execução na
máquina de destino. O invasor pode
criar um site que reúna endereços IP das máquinas de destino e então fazer um
ataque contra essas máquinas. Assim
que a conexão TCP for estabelecida, o invasor poderá enviar uma mensagem
malformada para o serviço RPC e assim causar uma falha na máquina de destino.
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. Além disso, um invasor
não é capaz de recuperar nenhum dado nem executar códigos na máquina de
destino.
2. O que provoca a
vulnerabilidade?
A vulnerabilidade ocorre porque o mapeador de pontos de extremidade do RPC da
Microsoft não verifica corretamente entradas de mensagens após o RPC
estabelecer uma conexão que cause falhas no processo na máquina remota. Esse
processo é responsável por manter as informações de conexão de todos os
processos naquela máquina usando RPC. Como o mapeador de pontos de extremidade
é executado dentro do próprio serviço RPC, explorar essa vulnerabilidade fará o
próprio serviço RPC falhar, com a conseqüente perda de qualquer serviço baseado
em RPC que o servidor ofereça, assim como uma perda em potencial de algumas
funções COM.
3.
O que é RPC (Remote Procedure Call)?
O
RPC (Remote Procedure Call) (site em inglês) é um protocolo que pode
ser utilizado por um programa para solicitar um serviço de um programa
localizado em outro computador de uma rede.
O RPC auxilia na interoperabilidade, pois o programa que usa RPC não precisa
compreender os detalhes da rede. O
programa que faz a solicitação é o cliente e o programa fornecedor de serviços
é o servidor.
4.
O que é um mapeador de pontos de extremidades do RPC?
O mapeador de pontos de extremidade do RPC permite que clientes RPC determinem
o número da porta atribuída no momento a um determinado serviço RPC.
Um ponto de extremidade é uma porta de hardware ou pipe nomeado em que o
aplicativo do servidor escuta chamadas de procedimento remoto do cliente.
Aplicativos cliente/servidor podem usar aplicativos conhecidos ou dinâmicos.
5. O que há de errado
com a implementação da Microsoft do RPC?
Há uma falha na parte do RPC que lida com a transferência de mensagens por
TCP/IP. A falha resulta da manipulação incorreta de mensagens malformadas. Esse
ataque em particular tem como destino o processo mapeador de pontos de
extremidade do RPC, que escuta na porta 135. O mapeador de pontos de
extremidade do RPC permite que clientes RPC determinem o número da porta
atribuída no momento a um determinado serviço RPC.
Ao enviar uma mensagem RPC malformada, um invasor pode causar uma falha
numa máquina.
6. O que o invasor pode fazer em decorrência da
vulnerabilidade?
Essa vulnerabilidade pode permitir que um invasor faça um ataque de negação de
serviço pela Internet ou dentro de um ambiente intranet.
Mesmo sendo capaz de causar falhas em máquinas, um invasor não é capaz
de recuperar dados nem executar códigos.
7. De que forma o invasor
pode explorar a vulnerabilidade?
Um
invasor pode explorar essa vulnerabilidade remotamente, configurando uma página
da Web e coletando endereços IP das máquinas, tentando então executar um ataque
nessas máquinas. Para fazer esses
ataque pela Internet, a porta 135 precisa estar aberta e o serviço RPC ativo
nas máquinas de destino.
8. O que o
patch faz?
O patch elimina a vulnerabilidade
verificando as mensagens afetadas que são recebidas por conexões TCP/IP.
Basicamente, isso permite ao RPC rejeitar mensagens malformadas.
Disponibilidade
do patch
Locais de download deste patch
Os patches de todos os sistemas Windows estão disponíveis através do
Windows Update ou podem ser aplicados manualmente através dos seguintes
patches:
Informações
adicionais sobre este patch
Plataformas de instalação:
Este patch pode ser instalado nos
seguintes sistemas:
-
O
patch para o Windows 2000 pode ser instalado em sistemas que executam Windows
2000
Service Pack 2
(site em inglês) ou
Service
Pack 3
(site em inglês)
-
O
patch para o Windows XP pode ser instalado em sistemas que executam o Windows
XP Gold ou
Service Pack 1
(site em inglês)
Inclusão
em service packs futuros:
A correção deste problema será incluída no Windows 2000 Service Pack 4 e
Windows XP Service Pack 2.
Necessário reinicializar: Sim
O patch pode ser desinstalado:
Sim.
Patches substituídos: Nenhum.
Verificando a instalação do patch:
Windows 2000:
-
Para verificar se o patch foi instalado na máquina, verifique se a seguinte
chave do Registro foi criada na máquina:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows 2000\SP4\Q331593
-
Para verificar os
arquivos individuais, use as informações de data/hora e versão fornecidas na
seguinte chave do Registro.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows 2000\SP4\Q331593\Filelist
Windows XP:
Se instalado no Windows XP Gold:
-
Para verificar se o patch foi instalado, verifique se a seguinte chave do
Registro foi criada no computador: HKLM\Software\Microsoft\Updates\Windows
XP\SP1\ Q331593
-
Para verificar os arquivos individuais, use as informações de data/hora e
versão fornecidas na seguinte chave do Registro.
HKLM\Software\Microsoft\Updates\Windows XP\SP1\ Q331593\Filelist
Se instalado no Windows XP Service
Pack 1:
-
Para verificar se o patch foi instalado, verifique se a seguinte chave do
Registro foi criada no computador: HKLM\Software\Microsoft\Updates\Windows
XP\SP2\ Q331953
-
Para verificar os arquivos individuais, use as informações de data/hora e
versão fornecidas na seguinte chave do Registro.
HKLM\Software\Microsoft\Updates\Windows XP\SP2\ Q331953\Filelist
Advertências:
A Microsoft testou o Windows NT 4.0 e o Windows NT 4.0 Terminal Server Edition.
Essas plataformas são vulneráveis a um ataque de negação de serviço,
porém, devido a limitações no compilador, os clientes são encorajados a usar as
seguintes diretrizes:
-
Bloqueie a porta 135
no firewall.
-
Examine
aplicativos que usem RPC e implemente
RPC seguro (site em inglês).
-
Para
aplicativos que usam RPC pela Internet, implemente RPC por HTTP.
-
Clientes
que usem o Microsoft ISA Server devem posicionar seus servidores RPC atrás de
um firewall ISA.
Os
clientes podem obter mais informações em
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/rpc/rpc/best_rpc_programming_practices.asp
(site em inglês)
Localização:
Versões localizadas deste patch estão disponíveis nos locais indicados
em “Disponibilidade do patch”.
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 "patch_de_segurança".
-
Patches de plataformas
do cliente estão disponíveis no site do
Windows Update
Outras informações:
Outras
informações:
Agradecimentos:
A Microsoft
agradece a
jussi jaakonaho
por relatar
esse problema e trabalhar conosco para proteger os clientes.
Suporte:
-
O artigo 814078 do
Microsoft Knowledge Base analisa esse problema e 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
-
As ligações associadas a patches de segurança são gratuitas.
Recursos
de segurança:
O site
Microsoft TechNet Security oferece
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
(26 Março, 2003): Boletim publicado.
|