Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O serviço RPC (Chamada de Procedimento Remoto) torna as interfaces RPC seguras por padrão para reduzir ataques. A chave do Registro RestrictRemoteClients
permite modificar o comportamento de todas as interfaces RPC no sistema e pode ser usada para eliminar o acesso anônimo remoto a interfaces RPC no sistema, com algumas exceções. Você pode aplicar outros controles de interface usando a chave do Registro EnableAuthEpResolution
abordada neste artigo. Tanto os desenvolvedores de aplicativos RPC quanto os administradores do sistema podem configurar restrições de interface RPC.
Pré-requisitos
Ao usar RestrictRemoteClients
em seu servidor:
Seus clientes RPC são obrigados a usar a segurança RPC ao entrar em contato com seus aplicativos de servidor, que é o melhor método para reduzir as ameaças à segurança.
Isente sua configuração de RPC de exigir autenticação definindo o sinalizador RPC_IF_ALLOW_CALLBACKS_WITH_NO_AUTH durante o registro. Isso configura o RPC para permitir conexões anônimas com seus aplicativos.
Mitigação de ameaças RestrictRemoteClients
Habilitar RestrictRemoteClients
é útil na mitigação contra worms que dependem de estouros de buffer exploráveis que podem ser invocados remotamente por meio de conexões anônimas. Aplicativos RPC que esperam receber chamadas de clientes RPC anônimos remotos podem não ser executados corretamente ao usar esse recurso. Assim, os aplicativos que usam DCOM (Modelo de Objeto de Componente Distribuído) poderão não funcionar corretamente se esse valor for definido.
As chamadas RPC usando protocolos sem conexão falharão se essa chave estiver habilitada. Chamadas RPC seguras por protocolos sem conexão, como UDP (Protocolo de Datagrama de Usuário) e IPX (Internetwork Packet Exchange), usam um nível mais baixo de segurança em comparação com protocolos orientados à conexão. Especificamente, ncadg_ip_udp
e ncadg_ipx
são considerados menos seguros. Para fins dessa política, essas chamadas são sempre consideradas não seguras.
Para permitir chamadas de cliente RPC usando protocolos sem conexão, mantenha o valor RestrictRemoteClients
definido como desabilitado.
Restrições para clientes RPC
Quando uma interface é registrada usando RpcServerRegisterIf
, o RPC permite que o aplicativo para servidores restrinja o acesso à interface por meio de um retorno de chamada de segurança. A chave do Registro RestrictRemoteClients
força o RPC a executar verificações de segurança adicionais para todas as interfaces, mesmo que a interface não tenha nenhum retorno de chamada de segurança registrado.
Os clientes RPC que usam a sequência de protocolo de pipe nomeada (ncacn_np
) estão isentos de todas as restrições discutidas nesta seção. Não é possível restringir a sequência de protocolo de pipe nomeado devido a problemas significativos de compatibilidade com versões anteriores.
RestrictRemoteClients
também pode ser controlado programaticamente no cabeçalho da API rpcdce.h (Interface de Programação de Aplicativo).
Como configurar RestrictRemoteClients
Para editar essas políticas usando o editor GPO (Objeto de Política de Grupo):
Selecione Iniciar> tipo gpedit.msc> clique em Enter para abrir o Editor de Política de Grupo Local.
Para habilitar o equivalente às configurações
RestrictRemoteClients
, navegue até Configuração do Computador\Modelos Administrativos\Sistema\Chamada de Procedimento Remoto\Restrições para Clientes RPC Não Autenticados e selecione uma das seguintes opções:- Desabilitado – essa configuração é o valor padrão para SKUs de servidor. Corresponde ao valor RPC_RESTRICT_REMOTE_CLIENT_NONE em rpcdce.h e é responsabilidade do aplicativo de servidor impor restrições RPC apropriadas.
- Autenticado – corresponde ao valor RPC_RESTRICT_REMOTE_CLIENT_DEFAULT em rpcdce.h. Permite que somente os Clientes RPC autenticados se conectem aos servidores RPC em execução no computador em que a configuração de política é aplicada. O runtime do RPC rejeita chamadas anônimas. Se uma interface registrar um retorno de chamada de segurança e fornecer o sinalizador RPC_IF_ALLOW_CALLBACKS_WITH_NO_AUTH, essa restrição não será aplicada a essa interface.
- Autenticado sem exceções1 – corresponde ao valor RPC_RESTRICT_REMOTE_CLIENT_HIGH em rpcdce.h. Permite que somente os Clientes RPC autenticados se conectem aos servidores RPC em execução no computador em que a configuração de política é aplicada. Nenhuma exceção é permitida quando esse valor é definido, pois o sistema não pode receber chamadas anônimas remotas usando RPC.
Qualquer alteração a qualquer uma dessas configurações exige reinicializar o sistema para entrar em vigor.
Cuidado
¹ Não use esse valor sem testes significativos. Para mais informações, confira Restrições para clientes RPC não autenticados.
EnableAuthEpResolution
A chave EnableAuthEpResolution
permite que o runtime de cliente RPC use o NTLM (NT LAN Manager) para autenticar no mapeador de pontos de extremidade quando habilitado. Essa consulta autenticada só ocorrerá se a chamada de cliente RPC real usar a autenticação RPC.
Os clientes RPC fazem chamadas para um servidor RPC que tem um ponto de extremidade dinâmico registrado com a Autenticação de Cliente do Mapeador de Pontos de Extremidade RPC habilitada. Essas chamadas são consultadas em nome de chamadas autenticadas usando a autenticação NTLM.
Clientes RPC que tentam fazer uma chamada usando um ponto de extremidade dinâmico consultam o Mapeador de Ponto de Extremidade RPC no servidor para determinar a qual ponto de extremidade ele deve se conectar. Essa consulta é executada de modo anônimo mesmo que a chamada do cliente RPC em si seja executada usando a segurança RPC. A interface do Mapeador de Pontos de Extremidade RPC não estará acessível anonimamente se a configuração RestrictRemoteClients
estiver habilitada.
Como configurar EnableAuthEpResolution
Para editar essas políticas usando o editor GPO (Objeto de Política de Grupo):
Selecione Iniciar> tipo gpedit.msc> clique em Enter para abrir o Editor de Política de Grupo Local.
Para habilitar o equivalente às configurações
EnableAuthEpResolution
, navegue até Configuração do Computador\Modelos Administrativos\Sistema\Chamada de Procedimento Remoto\Habilitar Autenticação de Cliente do Mapeador de Ponto de Extremidade RPC e selecione uma das duas configurações disponíveis:- Desabilitado – essa é a configuração padrão. Os clientes RPC não se autenticam no Serviço mapeador de ponto de extremidade, mas podem se comunicar com o Serviço mapeador de ponto de extremidade no Windows NT4 Server.
- Habilitado – os clientes do computador se autenticam por meio do Serviço Mapeador de Ponto de Extremidade para chamadas que contêm informações de autenticação. Os clientes que fazem essas chamadas não conseguem se comunicar com o Serviço do Mapeador de Pontos de Extremidade do Windows NT4 Server.
Qualquer alteração a qualquer uma dessas configurações exige reinicializar o sistema para entrar em vigor.
Importante
As seguintes configurações de Política de Grupo encontradas em Configurações do Computador\Configurações do Windows\Configurações de Segurança\Políticas Locais\Opções de Segurança não podem ser usadas com EnableAuthEpResolution
:
- Segurança de rede: Restringir NTLM: tráfego NTLM de entrada – "Negar Todas as Contas"
- Segurança de rede: Restringir NTLM: Tráfego NTLM de saída para servidores remotos – "Negar tudo"
Recomenda-se abandonar o NTLM para proteger melhor o seu ambiente. Se você precisar escolher entre restringir o NTLM e usar EnableAuthEpResolution
, a abordagem recomendada é restringir o NTLM no ambiente.
Outros sinalizadores de registro da interface RPC
Esses sinalizadores de registro de interface são criados para facilitar que um desenvolvedor de aplicativos possa assegurar uma interface RPC:
RPC_IF_ALLOW_CALLBACKS_WITH_NO_AUTH
Quando esse sinalizador é registrado, o runtime do RPC invoca o retorno de chamada de segurança registrado para todas as chamadas, independentemente das configurações de segurança de chamada. Sem esse sinalizador, o RPC rejeita todas as chamadas não autenticadas antes que elas cheguem ao retorno de chamada de segurança. Esse sinalizador funciona somente quando um retorno de chamada de segurança é registrado.RPC_IF_SEC_NO_CACHE
Um retorno de chamada de segurança é registrado para uma interface a fim de restringir o acesso. Normalmente, o callback de segurança se faz passar pelo cliente para verificar se o cliente tem permissões suficientes para fazer uma chamada para a interface. Depois que uma identidade de cliente específica passa no retorno de chamada de segurança, ela geralmente passa no mesmo retorno de chamada de segurança em tentativas subsequentes.O runtime RPC aproveita esse padrão lembrando quando uma identidade de cliente passa no retorno de chamada de segurança. Ele então ignora o retorno de chamada de segurança para chamadas subsequentes desse cliente para a mesma interface. Esse recurso é chamado de cache de retorno de chamada de segurança e existe desde a família de sistemas operacionais Microsoft Windows 2000. Você pode usar o sinalizador RPC_IF_SEC_NO_CACHE para desabilitar o cache de retorno de chamada de segurança para uma determinada interface. O que é útil se a verificação de segurança puder ser alterada, possivelmente rejeitando uma identidade de cliente que foi permitida anteriormente.
RPC_IF_LOCAL_ONLY
Quando uma interface é registrada com esse sinalizador, o RPC rejeita chamadas feitas por clientes RPC remotos. Além disso, chamadas locais em todas as sequências de protocoloncadg_
* e todas as sequências de protocoloncacn_
* (exceto por pipes nomeados, usandoncacn_np
) também são rejeitadas. Se for feita uma chamada noncacn_np
, o RPC permitirá a chamada somente se ela não for proveniente do SRV (Protocolo de Local de Serviço), que filtra todas as chamadas remotas. As chamadasNcalrpc
sempre são permitidas.
O uso desses sinalizadores fica a critério do desenvolvedor de aplicativos. Os desenvolvedores de aplicativos RPC recebem ferramentas de segurança adicionais para ajudar a proteger sua interface RPC, pois esses sinalizadores não alteram nenhum aplicativo existente ou fazem com que eles sejam executados incorretamente.