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.
A divulgação de informações permite que um invasor obtenha informações valiosas sobre um sistema. Portanto, considere sempre 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 e fornece mitigações para cada um.
Segurança de Mensagens e HTTP
Se você estiver usando a segurança em nível de 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 da política
Manter a política segura é importante, especialmente em cenários de federação em que requisitos confidenciais de token emitido ou informações de emissor de token são expostas na política. Nesses casos, a recomendação é proteger o endpoint de política do serviço federado para impedir que os invasores obtenham informações sobre o serviço, como o tipo de reivindicações a serem colocadas no token emitido, ou para redirecionar clientes a 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, consulte 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 completo nas mensagens de negociação de segurança que são trocadas para negociar uma chave simétrica entre um cliente e um servidor. Como a negociação de segurança é um processo inicial, 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 em texto claro, dentro do cabeçalho SOAP. Esteja ciente de que isso pode constituir uma divulgação de Informações Pessoalmente Identificáveis (PII). Isso não é um problema no modo TransportWithMessageCredential
, em que toda a mensagem é criptografada com segurança no nível de 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 curso 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 do destinatário antes de divulgar informações, como dados do aplicativo ou credenciais, ao destinatário. 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 incluem o seguinte:
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 do usuário que permite o estabelecimento interativo de confiança com base nos 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, a 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 (NT LAN Manager) será usado como um fallback. Você pode desabilitar esse comportamento definindo a AllowNtlm propriedade como false
. Os problemas que devem ser considerados 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
AllowNTLM
propriedade na associação comofalse
.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 AllowNtlm
propriedade 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, consulte Identidade e Autenticação de Serviço.