Veröffentlichung von InformationenInformation Disclosure

Die Veröffentlichung von Informationen ermöglicht Angreifern, an wertvolle Informationen über ein System zu gelangen.Information disclosure enables an attacker to gain valuable information about a system. Daher sollten Sie immer genau überlegen, welche Informationen offengelegt werden und ob sie von anderen Personen böswillig missbraucht werden könnten.Therefore, always consider what information you are revealing and whether it can be used by a malicious user. Im Folgenden finden Sie eine Übersicht über mögliche Angriffe auf veröffentlichte Informationen mit den entsprechenden Entschärfungen.The following lists possible information disclosure attacks and provides mitigations for each.

Nachrichtensicherheit und HTTPMessage Security and HTTP

Falls Sie die Sicherheit auf Nachrichtenebene mit einer HTTP-Transportschicht verwenden, dürfen Sie nicht vergessen, dass bei dieser Sicherheitsstufe HTTP-Header nicht geschützt sind.If you are using message-level security over an HTTP transport layer, be aware that message-level security does not protect HTTP headers. HTTP-Header lassen sich nur durch einen HTTPS-Transport, nicht jedoch durch HTTP schützen.The only way to protect HTTP headers is to use HTTPS transport instead of HTTP. Beim HTTPS-Transport wird die gesamte Nachricht einschließlich der HTTP-Header mit dem SSL-Protokoll (Secure Sockets Layer) verschlüsselt.HTTPS transport causes the entire message, including the HTTP headers, to be encrypted using the Secure Sockets Layer (SSL) protocol.

RichtlinieninformationenPolicy Information

Der Schutz von Richtlinien ist sehr wichtig, vor allem in Verbundszenarien, bei denen die Richtlinien auch vertrauliche Informationen zu den Anforderungen für ausgegebene Token und zu den Tokenausstellern enthalten.Keeping policy secure is important, especially in federation scenarios where sensitive issued-token requirements or token-issuer information is exposed in policy. In diesen Fällen sollte möglichst der Richtlinienendpunkt des Verbunddiensts gesichert werden, damit Angreifer keine Informationen zum Dienst, wie zum Beispiel Informationen zur Art der Ansprüche, die in das ausgegebene Token aufgenommen werden müssen, einholen oder keine Clients an bösartige Tokenaussteller umleiten können.In these cases, the recommendation is to secure the federated service's policy endpoint to prevent attackers from obtaining information about the service, such as the type of claims to put in the issued token, or redirecting clients to malicious token issuers. So können Angreifer beispielsweise Benutzernamen-/Kennwortkombinationen ermitteln, indem sie die Vertrauenskette des Verbunds so umkonfigurieren, dass sie bei einem Aussteller endet, der einen Man-In-The-Middle-Angriff (MITM-Angriff, Janusangriff) durchgeführt hat.For example, an attacker could discover user name/password pairs by reconfiguring the federated trust chain to terminate in an issuer that executed a man-in-the-middle attack. Auch sollte von Verbundclients, die ihre Bindungen über den Abruf einer Richtlinie erhalten, überprüft werden, ob die Aussteller in der bezogenen Vertrauenskette des Verbunds tatsächlich vertrauenswürdig sind.It is also recommended that federated clients who obtain their bindings through policy retrieval verify that they trust the issuers in the obtained federated trust chain. Weitere Informationen zu Verbundszenarien, finden Sie unter Verbund.For more information about federation scenarios, see Federation.

Anspruchsinformationen in SpeicherabbildernMemory Dumps Can Reveal Claim Information

Falls in einer Anwendung ein Fehler auftritt, können Protokolldateien (z. B. die von Dr. Watson erzeugten Protokolldateien) Anspruchsinformationen enthalten.When an application fails, log files, such as those produced by Dr. Watson, can contain the claim information. Diese Informationen sollten nicht für andere Einheiten in der Organisation wie Supportteams exportiert werden, da sonst auch die Anspruchsinformationen mit persönlichen Daten exportiert werden.This information should not be exported to other entities, such as support teams; otherwise, the claim information that contains private data is also exported. Sie können diese Gefahr umgehen, indem Sie keine Protokolldateien an Unbekannte senden.You can mitigate this by not sending the log files to unknown entities. Weitere Informationen finden Sie unter Windows Server 2003.For more information, see Windows Server 2003.

EndpunktadressenEndpoint Addresses

Eine Endpunktadresse enthält die für die Kommunikation mit einem Endpunkt erforderlichen Informationen.An endpoint address contains the information needed to communicate with an endpoint. Bei der SOAP-Sicherheit muss die vollständige Adresse in den gesendeten Sicherheitsaushandlungsnachrichten enthalten sein, damit zwischen Client und Server ein symmetrischer Schlüssel ausgehandelt werden kann.SOAP security must include the address in full in the security negotiation messages that are exchanged in order to negotiate a symmetric key between a client and a server. Da es sich bei der Sicherheitsaushandlung um einen Bootstrapprozess handelt, können die Adressheader während des Prozesses nicht verschlüsselt werden.Because security negotiation is a bootstrap process, the address headers cannot be encrypted during this process. Daher sollte die Adresse keine vertraulichen Daten enthalten, da dies zu Angriffen auf veröffentlichte Informationen führen kann.Therefore, the address should not contain any confidential data; otherwise, it leads to information disclosure attacks.

Unverschlüsselt übertragene ZertifikateCertificates Transferred Unencrypted

Wenn Sie für die Authentifizierung eines Clients ein X.509-Zertifikat verwenden, wird das Zertifikat unverschlüsselt im SOAP-Header übertragen.When you use an X.509 certificate to authenticate a client, the certificate is transferred in the clear, inside the SOAP header. Beachten Sie, dass es sich hierbei um eine mögliche Veröffentlichung personenbezogener Informationen (PII, Personally Identifiable Information) handelt.Be aware of this as a potential personally identifiable information (PII) disclosure. Dies ist kein Problem beim TransportWithMessageCredential-Modus, bei dem die gesamte Nachricht mithilfe von Sicherheit auf Transportebene verschlüsselt wird.This is not an issue for TransportWithMessageCredential mode, where the entire message is encrypted with transport-level security.

DienstverweiseService References

Bei einem Dienstverweis handelt es sich um einen Verweis auf einen anderen Dienst.A service reference is a reference to another service. So kann zum Beispiel ein Dienst im Laufe eines Vorgangs einen Dienstverweis an einen Client übergeben.For example, a service may pass a service reference to a client in the course of an operation. Der Dienstverweis wird auch verwendet, mit einem vertrauen identitätsüberprüfung, eine interne Komponente, die die Identität des Prinzipals Ziel sichergestellt wird, bevor das Offenlegen von Informationen wie Anwendungs- oder Anmeldedaten an das Ziel.The service reference is also used with a trust identity verifier, an internal component that ensures the identity of the target principal before disclosing information such as application data or credentials to the target. Falls die Remotevertrauensidentität nicht überprüft werden kann oder falsch ist, sollte sich der Sender vergewissern, dass keine Daten veröffentlicht wurden, die den Sender, die Anwendung oder den Benutzer gefährden könnten.If the remote trust identity cannot be verified or is incorrect, the sender should ensure that no data was disclosed that could compromise itself, the application, or the user.

Folgende Maßnahmen mindern das Risiko:Mitigations include the following:

  • Dienstverweise werden als vertrauenswürdig angesehen.Service references are assumed to be trustworthy. Falls Sie Dienstverweisinstanzen übertragen, sollten Sie daher sicherstellen, dass diese nicht manipuliert wurden.Take care whenever transferring service reference instances to ensure that they have not been tampered with.

  • Bei einigen Anwendungen haben Benutzer die Möglichkeit, die Vertrauenswürdigkeit interaktiv basierend auf Daten im Dienstverweis und anhand von vertrauenswürdigen Daten, die durch den Remotehost belegt wurden, herzustellen.Some applications can present a user experience that allows interactive establishment of trust based on data in the service reference and trust data proven by the remote host. WCF bietet Erweiterungspunkte für diese Funktion, aber der Benutzer muss implementiert werden.WCF provides extensibility points for such a facility, but the user must implemented them.

NTLMNTLM

In der Windows-Domänenumgebung wird zur Authentifizierung und Autorisierung von Benutzern über die Windows-Authentifizierung standardmäßig das Kerberos-Protokoll verwendet.By default, in the Windows domain environment, Windows authentication uses the Kerberos protocol to authenticate and authorize users. Falls das Kerberos-Protokoll nicht verwendet werden kann, wird für diesen Zweck NT LAN Manager (NTLM) herangezogen.If the Kerberos protocol cannot be used for some reason, NT LAN Manager (NTLM) is used as a fallback. Sie können dieses Verhalten deaktivieren, indem Sie die AllowNtlm-Eigenschaft auf false festlegen.You can disable this behavior by setting the AllowNtlm property to false. Beachten Sie unter anderem folgende Punkte, wenn Sie NTLM zulassen:Issues to be aware of when allowing NTLM include:

  • NTLM gibt den Clientbenutzernamen bekannt.NTLM exposes the client user name. Falls der Benutzername vertraulich behandelt werden muss, legen Sie die AllowNTLM-Eigenschaft für die Bindung auf false fest.If the user name needs to be kept confidential, then set the AllowNTLM property on the binding to false.

  • NTLM stellt keine Serverauthentifizierung bereit.NTLM does not provide server authentication. Daher hat der Client bei Verwendung von NTLM als Authentifizierungsprotokoll keine Möglichkeit sicherzustellen, dass die Kommunikation mit dem richtigen Dienst erfolgt.Therefore, the client cannot ensure that it is communicating with the right service when you use NTLM as an authentication protocol.

Die Angabe von Clientanmeldeinformationen oder eine ungültige Identität erzwingt die Verwendung von NTLMSpecifying Client Credentials or Invalid Identity Forces NTLM Usage

Werden beim Erstellen eines Clients Clientanmeldeinformationen ohne Domänennamen oder eine ungültige Serveridentität angegeben, wird NTLM anstelle des Kerberos-Protokolls verwendet (sofern die AlllowNtlm-Eigenschaft auf true festgelegt wurde).When creating a client, specifying client credentials without a domain name, or specifying an invalid server identity, causes NTLM to be used instead of the Kerberos protocol (if the AlllowNtlm property is set to true). Da NTLM keine Serverauthentifizierung durchführt, können Informationen potenziell offengelegt werden.Because NTLM does not do server authentication, information can potentially be disclosed.

Beispielsweise ist es möglich, Windows-Clientanmeldeinformationen ohne Domänennamen, anzugeben, wie im folgenden Visual C#-Code dargestellt.For example, it is possible to specify Windows client credentials without a domain name, as shown in the following Visual C# code.

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

Da im Code kein Domänenname angegeben wird, wird NTLM verwendet.The code does not specify a domain name, and therefore NTLM will be used.

Falls bei Verwendung der Funktion für die Endpunktidentität zwar eine Domäne, jedoch ein ungültiger Dienstprinzipalname angegeben wird, wird NTLM verwendet.If the domain is specified, but an invalid service principal name is specified using the endpoint identity feature, then NTLM is used. Weitere Informationen dazu, wie die Identität des Endpunkts angegeben wird, finden Sie unter -Dienstidentität und Authentifizierung.For more information about how endpoint identity is specified, see Service Identity and Authentication.

Siehe auchSee Also

SicherheitsüberlegungenSecurity Considerations
Erhöhen der BerechtigungenElevation of Privilege
Denial-of-Service-AngriffeDenial of Service
ManipulationTampering
Nicht unterstützte SzenarienUnsupported Scenarios
ReplayangriffeReplay Attacks