Exportar (0) Imprimir
Expandir Todos

Restrição da Interface RPC

Qual a função da Restrição da Interface RPC?

Foram efectuadas várias alterações no serviço RPC (Remote Procedure Call, Chamada de Procedimento Remoto) para Windows Server 2003 with Service Pack 1 que, por predefinição, ajudam a tornar as interfaces RPC seguras e reduzem a superfície de ataque do Windows Server 2003. A alteração mais significativa reside na adição da chave de registo RestrictRemoteClients. Esta chave permite modificar o comportamento de todas as interfaces RPC no sistema e pode ser utilizada para eliminar o acesso anónimo remoto às interfaces RPC no sistema, com algumas excepções. Outras alterações incluem a chave de registo EnableAuthEpResolution e três novos sinalizadores de registo de interface.

A quem se aplica esta função?

Esta função aplica-se aos programadores de aplicações RPC. Os administradores de sistema também devem estar familiarizados com esta alteração de RPC.

Que nova funcionalidade foi adicionada a esta função no Windows Server 2003 Service Pack 1?

Chave de Registo RestrictRemoteClients

Descrição detalhada

Quando uma interface é registada utilizando o RpcServerRegisterIf, o RPC permite à aplicação de servidor restringir o acesso à interface, normalmente através de uma chamada de retorno de segurança. A chave de registo RestrictRemoteClients força o RPC a executar verificações de segurança adicionais para todas as interfaces, mesmo se a interface não tiver nenhuma chamada de retorno de segurança registada.

Os clientes RPC que utilizam a sequência do protocolo de pipe nomeado (ncacn_np) constituem excepções a todas as restrições abordadas nesta secção. Não é possível restringir a sequência do protocolo de pipe nomeado devido a vários problemas significativos de retro-compatibilidade.

A chave de registo RestrictRemoteClients pode ter um de três valores DWORD que também podem ser controlados programaticamente em rpcdce.h. Se a chave não estiver presente, será equivalente a definir o valor DWORD=0 (RPC_RESTRICT_REMOTE_CLIENT_NONE) para o servidor SKUs e valor DWORD=1 (RPC_RESTRICT_REMOTE_CLIENT_AUTH) para o cliente SKUs.

A seguinte tabela fornece uma referência para a chave de registo RestrictRemoteClients:

 

Tipo Descrição

Nome da chave

RestrictRemoteClients

Tipo

DWORD

Configurável através da Interface do Utilizador

Sim. Esta chave pode ser configurada utilizando o Editor de Objecto de Política de Grupo.

Valores de chaves

0 (Predefinição para o servidor SKUs)

Este valor é o valor predefinido no Windows Server 2003 Service Pack 1 para o Servidor SKUs. Faz com que o sistema ignore a restrição da interface RPC. Corresponde ao valor RPC_RESTRICT_REMOTE_CLIENT_NONE no rpcdce.h. É da inteira responsabilidade da aplicação de servidor impor as restrições RPC adequadas. Esta definição é equivalente ao comportamento nas versões anteriores do Windows.

1

Este é o valor predefinido no Windows XP Service Pack 2 e cliente SKUs incorporado a partir da base do código SRSP1. Restringe o acesso a todas as interfaces RPC. Todas as chamadas anónimas remotas são rejeitadas pela rotina de tempo de execução de RPC excepto chamadas através de pipes nomeados (ncacn_np). Corresponde ao valor RPC_RESTRICT_REMOTE_CLIENT_DEFAULT no rpcdce.h. Se uma interface registar uma chamada de retorno de segurança e fornecer o sinalizador RPC_IF_ALLOW_CALLBACKS_WITH_NO_AUTH, esta restrição não se aplicará a essa interface.

2

Todas as chamadas anónimas remotas são rejeitadas pela rotina de tempo de execução de RPC, sem excepções. Corresponde ao valor RPC_RESTRICT_REMOTE_CLIENT_HIGH no rpcdce.h. Quando este valor está definido, o sistema não consegue receber chamadas anónimas remotas utilizando RPC.

Porque é que esta alteração é importante? Que ameaças ajuda a atenuar?

É muito mais difícil atacar uma interface se a autenticação das chamadas for obrigatória, mesmo que se trate de um nível de autenticação relativamente baixo. A activação de RestrictRemoteClients pode constituir uma atenuação particularmente útil contra os vírus do tipo worm que contam com sobrecargas de memória intermédia passíveis de exploração e que podem ser invocados remotamente através de ligações anónimas.

O que funciona de maneira diferente?

Se a aplicação RPC espera receber chamadas de clientes RPC anónimos remotos, a utilização desta função poderá impedir a execução correcta da aplicação. Como resultado, as aplicações que utilizam DCOM poderão não funcionar correctamente se este valor estiver definido.

Uma vez que as chamadas RPC seguras sobre protocolos sem ligação, como, por exemplo, UDP (User Datagram Protocol, Protocolo de Datagrama de Utilizador) e IPX (Internetwork Packet Exchange, Protocolo de Troca de Pacotes Inter-redes) (ncadq_ip_udp e ncadg_ipx), utilizam um nível de segurança inferior ao das chamadas sobre protocolos orientados por ligação, estas chamadas são sempre consideradas não seguras no que diz respeito a esta política. Consequentemente, as chamadas RPC sobre protocolos sem ligação falham se esta chave estiver activada no Windows Server 2003 with Service Pack 1.

Para permitir que as chamadas cliente de RPC utilizem protocolos sem ligação, mantenha o valor de RestrictRemoteClients definido como 0 (RPC_RESTRICT_REMOTE_CLIENT_NONE), a predefinição para Windows Server 2003 com Service Pack 1.

Como posso resolver estes problemas?

Existem as seguintes opções para permitir a utilização de RestrictRemoteClients no servidor:

  • Exigir que os clientes RPC utilizem segurança RPC quando contactarem a aplicação de servidor. Este é o melhor método para atenuar ameaças de segurança.
  • Excluir a sua interface da obrigatoriedade de autenticação definindo o sinalizador RPC_IF_ALLOW_CALLBACKS_WITH_NO_AUTH durante o registo da interface. Deste modo, configura o RPC para permitir ligações anónimas apenas à interface da sua aplicação.

Chave de Registo EnableAuthEpResolution

Descrição detalhada

Uma interface RPC acessível de forma remota e anónima e registada por predefinição no Windows Server 2003 apresenta uma superfície de ataque significativa. O próprio RPC tem de registar essa interface para fornecer a resolução de pontos finais das chamadas que utilizam pontos finais dinâmicos.

Se activar o sinalizador RestrictRemoteClients, a interface do Mapeador de Pontos Finais RPC não será acessível de modo anónimo. Trata-se de um melhoria significativa em termos de segurança, mas que modifica a tarefa de resolução de pontos finais. Actualmente, um cliente RPC que tente fazer uma chamada utilizando um ponto final dinâmico irá primeiro consultar o Mapeador de Pontos Finais RPC no servidor para determinar o ponto final a utilizar na ligação. Esta consulta é efectuada de modo anónimo, mesmo que a própria chamada do cliente RPC seja realizada utilizando a segurança RPC. As chamadas anónimas para a interface do Mapeador de Pontos Finais RPC falham no Windows Server 2003 com Service Pack 1 se a chave RestrictRemoteClients estiver definida como 1 ou superior. Isto torna necessário modificar a rotina de tempo de execução do cliente RPC, de modo a que efectue uma consulta autenticada ao Mapeador de Pontos Finais. Se a chave EnableAuthEpResolution estiver definida, a rotina de tempo de execução do cliente RPC utilizará NTLM para autenticação no mapeador de pontos finais. Esta consulta autenticada só ocorrerá se a chamada do cliente RPC real utilizar a autenticação RPC.

Porque é que esta alteração é importante?

Esta alteração permite que um cliente RPC efectue uma chamada para um servidor RPC com um ponto final dinâmico registado num sistema com o Windows Server 2003 com Service Pack 1 com RestrictRemoteClients activado. O computador cliente tem de definir esta chave de registo para que execute uma consulta autenticada ao Mapeador de Pontos Finais RPC.

O que funciona de maneira diferente?

Esta chave de registo é utilizada para permitir o cenário específico descrito na secção anterior. Quando esta chave está activa, todas as consultas do Mapeador de Pontos Finais RPC efectuadas em nome de chamadas autenticadas utilizam a autenticação NTLM.

Esta definição também pode ser especificada utilizando o Editor de Objecto de Política de Grupo para configurar o objecto Política de Grupo localizado em Configuração do Computador\Modelos Administrativos\Sistema\Chamada de Procedimento Remoto\Autenticação de Cliente do Mapeador de Pontos Finais RPC.

Novos Sinalizadores de Registo de Interface RPC

Descrição detalhada

Foram criados três novos sinalizadores de registo de interface para permitir facilmente ao programador da aplicação tornar segura uma interface RPC.

  • RPC_IF_ALLOW_CALLBACKS_WITH_NO_AUTH
    Se este sinalizador estiver registado, a rotina de tempo de execução de RPC invoca a chamada de retorno de segurança registada para todas as chamadas, independentemente das definições de segurança das chamadas. Sem este sinalizador, o RPC rejeita todas as chamadas não autenticadas antes de atingirem a chamada de retorno de segurança. Este sinalizador só funciona quando existe uma chamada de retorno de segurança registada.
  • RPC_IF_SEC_NO_CACHE
    É registada uma chamada de retorno de segurança para uma interface de modo a restringir o acesso a essa interface. Uma chamada de retorno de segurança típica representa o cliente para determinar se este tem direitos suficientes para fazer a chamada para a interface. Se uma identidade de cliente específica passar uma chamada de retorno de segurança uma vez, normalmente passará sempre a mesma chamada de retorno de segurança.
    A rotina de tempo de execução de RPC aproveita este padrão memorizando quando uma identidade de cliente individual passa uma chamada de retorno de segurança, e ignora a chamada de retorno de segurança nas chamadas seguintes efectuadas por esse cliente para a mesma interface. Esta função é denominada como colocação na cache da chamada de retorno de segurança e existe desde a família de sistemas operativos Microsoft Windows 2000. No Windows Server 2003 com Service Pack 1, pode utilizar o sinalizador RPC_IF_SEC_NO_CACHE para desactivar a colocação na cache da chamada de retorno de segurança para uma determinada interface. Este procedimento é útil caso a verificação de segurança seja alterada, rejeitando possivelmente uma identidade de cliente permitida anteriormente.
  • RPC_IF_LOCAL_ONLY
    Quando uma interface é registada com este sinalizador, o RPC rejeita as chamadas feitas por clientes RPC remotos. Além disso, são igualmente rejeitadas as chamadas locais sobre todas as sequências de protocolo ncadg_ e todas as sequências de protocolo ncacn_* (excepto os pipes nomeados, utilizando ncacn_np). Se for feita uma chamada para ncacn_np, o RPC só permite a chamada se não for proveniente de SRV, que filtra todas as chamadas remotas. As chamadas Ncalrpc são sempre autorizadas.

Porque é que esta alteração é importante?

Esta alteração fornece aos programadores de aplicações RPC ferramentas de segurança adicionais que ajudam a proteger a interface RPC.

O que funciona de maneira diferente?

Estes sinalizadores não alteram nenhuma aplicação existente baseada no Windows Server 2003, nem causam o seu funcionamento incorrecto. Cabe ao programador da aplicação decidir sobre a utilização destes novos sinalizadores.

Quais as definições adicionadas ou alteradas no Windows Server 2003 Service Pack 1?

Definições RPC

Nome da definição Localização Valor predefinido Valores possíveis

RestrictRemoteClients

HKEY_LOCAL_MACHINE\ SOFTWARE\Policies\ Microsoft\Windows NT\RPC

- ou -

(Objecto de Política de Grupo)

Configuração do Computador\ Modelos Administrativos\Sistema\Chamada de Procedimento Remoto\Restrições para Clientes RPC Não Autenticados

0

0 – Nenhum

1 – Predefinição do XP SP2 e SKUs do cliente SRSP1

2 – Elevado

EnableAuthEpResolution

HKEY_LOCAL_MACHINE\ SOFTWARE\Policies\ Microsoft\Windows NT\RPC

- ou -

(Objecto de Política de Grupo)

Configuração do Computador\ Modelos Administrativos\Sistema\Chamada de Procedimento Remoto\Autenticação de Cliente do Mapeador de Pontos Finais RPC

0

0 - Desactivado

1 - Activado

Necessito de alterar o código para funcionar com o Windows Server 2003 Service Pack 1?

Pode ser necessário alterar o código para funcionar com o Windows Server 2003 Service Pack 1 se decidir activar RestrictRemoteClients. Para mais informações sobre alterações de aplicações que possam ser necessárias, consulte as secções anteriores sobre RestrictRemoteClients e EnableAuthEpResolution.

Considera isto útil?
(1500 caracteres restantes)
Obrigado pelos seus comentários

Conteúdo da Comunidade

Mostrar:
© 2014 Microsoft