Compartir por


Divulgación de información

La divulgación de información permite a un atacante obtener información valiosa sobre un sistema. Por lo tanto, siempre tenga en cuenta qué información está revelando y si un usuario malintencionado puede usarla. A continuación se enumeran posibles ataques de divulgación de información y se proporcionan mitigaciones para cada uno.

Seguridad de mensajes y HTTP

Si usa la seguridad de nivel de mensaje a través de una capa de transporte HTTP, tenga en cuenta que la seguridad de nivel de mensaje no protege los encabezados HTTP. La única manera de proteger los encabezados HTTP es usar el transporte HTTPS en lugar de HTTP. El transporte HTTPS provoca que todo el mensaje, incluidos los encabezados HTTP, sea cifrado mediante el protocolo SSL.

Información de política

Mantener la seguridad de la directiva es importante, especialmente en escenarios de federación en los que se exponen en la directiva los requisitos de token emitidos confidenciales o la información del emisor de tokens. En estos casos, la recomendación es proteger el punto de conexión de directiva del servicio federado para evitar que los atacantes obtengan información sobre el servicio, como el tipo de reclamaciones a incluir en el token emitido o redirigir a los clientes hacia emisores de tokens malintencionados. Por ejemplo, un atacante podría detectar pares de nombre de usuario/contraseña reconfigurando la cadena de confianza federada para finalizar en un emisor que ejecutó un ataque de tipo “man-in-the-middle”. También se recomienda que los clientes federados que obtienen sus enlaces a través de la recuperación de directivas comprueben que confían en los emisores en la cadena de confianza federada obtenida. Para obtener más información sobre los escenarios de federación, consulte Federación.

Los volcados de memoria pueden revelar información de la demanda

Cuando falla una aplicación, los archivos de registro, como los producidos por el Dr. Watson, pueden contener la información de reclamación. Esta información no debe exportarse a otras entidades, como los equipos de soporte técnico; de lo contrario, también se exporta la información de reclamación que contiene datos privados. Para mitigar esto, no envíe los archivos de registro a entidades desconocidas.

Direcciones de punto de conexión

Una dirección de punto de conexión contiene la información necesaria para comunicarse con un punto de conexión. La seguridad SOAP debe incluir la dirección completa en los mensajes de negociación de seguridad que se intercambian para negociar una clave simétrica entre un cliente y un servidor. Dado que la negociación de seguridad es un proceso de arranque, los encabezados de dirección no se pueden cifrar durante este proceso. Por lo tanto, la dirección no debe contener datos confidenciales; de lo contrario, conduce a ataques de divulgación de información.

Certificados transferidos sin cifrar

Cuando se usa un certificado X.509 para autenticar un cliente, el certificado se transfiere sin cifrar dentro del encabezado SOAP. Tenga en cuenta esto como una posible divulgación de información de identificación personal (PII). Éste no es un problema para el modo TransportWithMessageCredential, donde se cifra el mensaje completo con seguridad de nivel de transporte.

Referencias de servicio

Una referencia de servicio es una referencia a otro servicio. Por ejemplo, un servicio puede pasar una referencia de servicio a un cliente en el curso de una operación. La referencia de servicio también se utiliza con un comprobador de identidad de confianza, un componente interno que garantiza la identidad de la entidad de seguridad de destino antes de desvelar información como datos de la aplicación o credenciales al destino. Si la identidad de confianza remota no se puede comprobar o es incorrecta, el remitente debe asegurarse de que no se haya divulgado ningún dato que pueda comprometerse, la aplicación o el usuario.

Entre las mitigaciones se incluyen las siguientes:

  • Se supone que las referencias de servicio son de confianza. Tenga cuidado al transferir instancias de referencias de servicio para asegurarse de que no se han manipulado.

  • Algunas aplicaciones pueden presentar una experiencia de usuario que permita el establecimiento interactivo de confianza en función de los datos de referencia del servicio y los datos de confianza probados por el host remoto. WCF proporciona puntos de extensibilidad para este tipo de instalación, pero el usuario debe implementarlos.

NTLM

De forma predeterminada, en el entorno de dominio de Windows, la autenticación de Windows usa el protocolo Kerberos para autenticar y autorizar a los usuarios. Si el protocolo Kerberos no se puede usar por algún motivo, NT LAN Manager (NTLM) se usa como reserva. Puede deshabilitar este comportamiento estableciendo la propiedad AllowNtlm a false. Entre los problemas que se deben tener en cuenta al permitir NTLM se incluyen:

  • NTLM expone el nombre de usuario del cliente. Si el nombre de usuario debe mantenerse confidencial, establezca la propiedad AllowNTLM en la vinculación a false.

  • NTLM no proporciona autenticación de servidor. Por lo tanto, el cliente no puede asegurarse de que se comunica con el servicio adecuado cuando se usa NTLM como protocolo de autenticación.

Especificar credenciales de cliente o una identidad no válida fuerza el uso de NTLM

Al crear un cliente, especificar credenciales de cliente sin un nombre de dominio o especificar una identidad de servidor no válida, hace que NTLM se use en lugar del protocolo Kerberos (si la AllowNtlm propiedad está establecida trueen ). Dado que NTLM no realiza la autenticación del servidor, la información se puede revelar potencialmente.

Por ejemplo, es posible especificar credenciales de cliente de Windows sin un nombre de dominio, como se muestra en el siguiente código de Visual C#.

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

El código no especifica un nombre de dominio y, por tanto, se usará NTLM.

Si se especifica el dominio, pero se especifica un nombre principal del servicio no válido mediante la función de identidad del punto de conexión, se usa NTLM. Para obtener más información sobre cómo se especifica la identidad del punto de conexión, consulte Identidad de servicio y autenticación.

Consulte también