Delen via


Openbaarmaking van informatie

Openbaarmaking van informatie stelt een aanvaller in staat waardevolle informatie over een systeem te verkrijgen. Overweeg daarom altijd welke informatie u openbaar maakt en of deze door een kwaadwillende gebruiker kan worden gebruikt. Hieronder vindt u een lijst met mogelijke aanvallen voor openbaarmaking van informatie en biedt oplossingen voor elk van deze aanvallen.

Berichtbeveiliging en HTTP

Als u beveiliging op berichtniveau gebruikt via een HTTP-transportlaag, moet u er rekening mee houden dat de beveiliging op berichtniveau GEEN HTTP-headers beschermt. De enige manier om HTTP-headers te beveiligen, is door HTTPS-transport te gebruiken in plaats van HTTP. HTTPS-transport zorgt ervoor dat het hele bericht, inclusief de HTTP-headers, wordt versleuteld met behulp van het SSL-protocol (Secure Sockets Layer).

Beleidsinformatie

Het beveiligen van beleid is belangrijk, met name in federatiescenario's waarbij gevoelige uitgegeven tokenvereisten of tokenverlenergegevens worden weergegeven in beleid. In deze gevallen wordt aanbevolen het beleidseindpunt van de federatieve service te beveiligen om te voorkomen dat aanvallers informatie over de service verkrijgen, zoals het type claims dat in het uitgegeven token moet worden geplaatst of clients omleiden naar kwaadwillende tokenverleners. Een aanvaller kan bijvoorbeeld gebruikersnaam/wachtwoordparen detecteren door de federatieve vertrouwensketen opnieuw te configureren om te beëindigen in een verlener die een man-in-the-middle-aanval heeft uitgevoerd. Het wordt ook aanbevolen dat federatieve clients die hun bindingen verkrijgen via het ophalen van beleid, controleren of ze de verleners vertrouwen in de verkregen federatieve vertrouwensketen. Zie Federatie voor meer informatie over federatiescenario's.

Geheugendumps kunnen claimgegevens onthullen

Wanneer een toepassing mislukt, kunnen logboekbestanden, zoals bestanden die zijn geproduceerd door Dr. Watson, de claimgegevens bevatten. Deze informatie mag niet worden geëxporteerd naar andere entiteiten, zoals ondersteuningsteams; anders worden de claimgegevens met persoonlijke gegevens ook geëxporteerd. U kunt dit beperken door de logboekbestanden niet naar onbekende entiteiten te verzenden.

Eindpuntadressen

Een eindpuntadres bevat de informatie die nodig is om te communiceren met een eindpunt. SOAP-beveiliging moet het adres volledig bevatten in de berichten over beveiligingsonderhandeling die worden uitgewisseld om te onderhandelen over een symmetrische sleutel tussen een client en een server. Omdat beveiligingsonderhandeling een bootstrapproces is, kunnen de adresheaders tijdens dit proces niet worden versleuteld. Daarom mag het adres geen vertrouwelijke gegevens bevatten; anders leidt dit tot aanvallen op openbaarmaking van informatie.

Niet-versleutelde certificaten

Wanneer u een X.509-certificaat gebruikt om een client te verifiëren, wordt het certificaat overgebracht in de duidelijke, binnen de SOAP-header. Houd er rekening mee dat dit een mogelijk persoonlijk identificeerbare informatie (PII) is. Dit is geen probleem voor TransportWithMessageCredential de modus, waarbij het hele bericht is versleuteld met beveiliging op transportniveau.

Serviceverwijzingen

Een servicereferentie is een verwijzing naar een andere service. Een service kan bijvoorbeeld een servicereferentie doorgeven aan een client tijdens een bewerking. De serviceverwijzing wordt ook gebruikt met een vertrouwensidentiteitsverificator, een intern onderdeel dat de identiteit van de doelprincipaal garandeert voordat informatie, zoals toepassingsgegevens of referenties, aan het doel wordt weergegeven. Als de identiteit van de externe vertrouwensrelatie niet kan worden geverifieerd of onjuist is, moet de afzender ervoor zorgen dat er geen gegevens zijn vrijgegeven die inbreuk kunnen maken op zichzelf, de toepassing of de gebruiker.

Oplossingen zijn onder andere:

  • Serviceverwijzingen worden verondersteld betrouwbaar te zijn. Zorg ervoor dat er niet met serviceverwijzingsexemplaren is geknoeid wanneer u serviceverwijzingen overdraagt.

  • Sommige toepassingen kunnen een gebruikerservaring bieden die interactieve instelling van vertrouwen mogelijk maakt op basis van gegevens in de servicereferentie en vertrouwensgegevens die door de externe host worden bewezen. WCF biedt uitbreidbaarheidspunten voor een dergelijke faciliteit, maar de gebruiker moet deze implementeren.

NTLM

In de Windows-domeinomgeving maakt Windows-verificatie standaard gebruik van het Kerberos-protocol om gebruikers te verifiëren en autoriseren. Als het Kerberos-protocol om een of andere reden niet kan worden gebruikt, wordt NT LAN Manager (NTLM) gebruikt als een terugval. U kunt dit gedrag uitschakelen door de AllowNtlm eigenschap in te stellen op false. Problemen waarmee u rekening moet houden bij het toestaan van NTLM zijn onder andere:

  • In NTLM wordt de gebruikersnaam van de client weergegeven. Als de gebruikersnaam vertrouwelijk moet worden bewaard, stelt u de AllowNTLM eigenschap voor de binding in op false.

  • NTLM biedt geen serververificatie. De client kan er daarom niet voor zorgen dat deze communiceert met de juiste service wanneer u NTLM als verificatieprotocol gebruikt.

Clientreferenties opgeven of ongeldige identiteit dwingt NTLM-gebruik

Bij het maken van een client, het opgeven van clientreferenties zonder een domeinnaam of het opgeven van een ongeldige serveridentiteit, zorgt ervoor dat NTLM wordt gebruikt in plaats van het Kerberos-protocol (als de AllowNtlm eigenschap is ingesteld op true). Omdat NTLM geen serververificatie uitvoert, kunnen gegevens mogelijk openbaar worden gemaakt.

Het is bijvoorbeeld mogelijk om Windows-clientreferenties op te geven zonder domeinnaam, zoals wordt weergegeven in de volgende Visual C#-code.

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

De code geeft geen domeinnaam op en daarom wordt NTLM gebruikt.

Als het domein is opgegeven, maar er een ongeldige service-principalnaam wordt opgegeven met behulp van de eindpuntidentiteitsfunctie, wordt NTLM gebruikt. Zie Service-identiteit en -verificatie voor meer informatie over hoe eindpuntidentiteit wordt opgegeven.

Zie ook