Compartilhar via


Divulgação de informações confidenciais

A divulgação de informações confidenciais permite que um invasor obtenha informações valiosas sobre um sistema. Portanto, sempre considere quais informações você está revelando e se elas podem ser usadas por um usuário mal-intencionado. O seguinte lista possíveis ataques de divulgação de informações confidenciais e fornece mitigações para cada um.

Segurança de mensagens e HTTP

Se você estiver usando a segurança no nível da mensagem em uma camada de transporte HTTP, lembre-se de que a segurança no nível da mensagem não protege cabeçalhos HTTP. A única maneira de proteger cabeçalhos HTTP é usar o transporte HTTPS em vez de HTTP. O transporte HTTPS faz com que toda a mensagem, incluindo os cabeçalhos HTTP, seja criptografada usando o protocolo SSL (Secure Sockets Layer).

Informações de políticas

Manter a política segura é importante, principalmente em cenários de federação em que requisitos confidenciais de token emitido ou informações de emissor de token são expostos na política. Nesses casos, a recomendação é proteger o ponto de extremidade de política do serviço federado para impedir que os invasores obtenham informações sobre o serviço, como o tipo de declarações a serem colocadas no token emitido ou redirecionar clientes para emissores de token mal-intencionados. Por exemplo, um invasor pode descobrir pares de nome de usuário/senha reconfigurando a cadeia de confiança federada para terminar em um emissor que executou um ataque “man-in-the-middle”. Também é recomendável que os clientes federados que obtêm suas associações por meio da recuperação de política verifiquem se confiam nos emissores na cadeia de confiança federada obtida. Para obter mais informações sobre cenários de federação, confira Federação.

Despejos de memória podem revelar informações de declaração

Quando um aplicativo falha, arquivos de log, como os produzidos pelo Dr. Watson, podem conter as informações de declaração. Essas informações não devem ser exportadas para outras entidades, como equipes de suporte; caso contrário, as informações de declaração que contêm dados privados também são exportadas. Você pode atenuar isso não enviando os arquivos de log para entidades desconhecidas.

Endereços do ponto de extremidade

Um endereço de ponto de extremidade contém as informações necessárias para se comunicar com um ponto de extremidade. A segurança SOAP deve incluir o endereço na íntegra nas mensagens de negociação de segurança trocadas para negociar uma chave simétrica entre um cliente e um servidor. Como a negociação de segurança é um processo de inicialização, os cabeçalhos de endereço não podem ser criptografados durante esse processo. Portanto, o endereço não deve conter dados confidenciais; caso contrário, isso leva a ataques de divulgação de informações.

Certificados transferidos não criptografados

Quando você usa um certificado X.509 para autenticar um cliente, o certificado é transferido na limpeza, dentro do cabeçalho SOAP. Lembre-se disso como uma possível divulgação de PII (informações pessoais identificáveis). Isso não é um problema para o modo TransportWithMessageCredential, em que toda a mensagem é criptografada com segurança no nível do transporte.

Referências de serviço

Uma referência de serviço é uma referência a outro serviço. Por exemplo, um serviço pode passar uma referência de serviço para um cliente no decorrer de uma operação. A referência de serviço também é usada com um verificador de identidade de confiança, um componente interno que garante a identidade da entidade de segurança de destino antes de divulgar informações como dados do aplicativo ou credenciais para o destino. Se a identidade de confiança remota não puder ser verificada ou estiver incorreta, o remetente deverá garantir que nenhum dado foi divulgado que possa comprometer a si mesmo, ao aplicativo ou ao usuário.

As mitigações de risco incluem:

  • As referências de serviço são consideradas confiáveis. Tome cuidado sempre que transferir instâncias de referência de serviço para garantir que elas não tenham sido adulteradas.

  • Alguns aplicativos podem apresentar uma experiência de usuário que permite o estabelecimento interativo de confiança com base em dados na referência de serviço e dados de confiança comprovados pelo host remoto. O WCF fornece pontos de extensibilidade para essa instalação, mas o usuário deve implementá-los.

NTLM

Por padrão, no ambiente de domínio do Windows, autenticação do Windows usa o protocolo Kerberos para autenticar e autorizar usuários. Se o protocolo Kerberos não puder ser usado por algum motivo, o NTLM (NTLM) será usado como um fallback. Você pode habilitar esse comportamento configurando a propriedade AllowNtlm como false. Os problemas que serão informados ao permitir o NTLM incluem:

  • O NTLM expõe o nome de usuário do cliente. Se o nome de usuário precisar ser mantido confidencial, defina a propriedade AllowNTLM na associação como false.

  • O NTLM não fornece autenticação de servidor. Portanto, o cliente não pode garantir que ele esteja se comunicando com o serviço certo quando você usa o NTLM como um protocolo de autenticação.

Especificando credenciais de cliente ou uso de NTLM de forças de identidade inválidas

Ao criar um cliente, especificar credenciais de cliente sem um nome de domínio ou especificar uma identidade de servidor inválida, faz com que o NTLM seja usado em vez do protocolo Kerberos (se a propriedade AllowNtlm estiver definida como true). Como o NTLM não faz a autenticação do servidor, as informações podem ser potencialmente divulgadas.

Por exemplo, é possível especificar credenciais de cliente do Windows sem um nome de domínio, conforme mostrado no código do Visual C# a seguir.

MyChannelFactory.Credentials.Windows.ClientCredential = new System.Net.NetworkCredential("username", "password");

O código não especifica um nome de domínio e, portanto, NTLM será usado.

Se o domínio for especificado, mas um nome de entidade de serviço inválido for especificado usando o recurso de identidade do ponto de extremidade, NTLM será usado. Para obter mais informações sobre como a identidade do ponto de extremidade é especificada, confira Identidade de serviço e autenticação.

Confira também