Dela via


Säkerhetsram: Känsliga data | Mitigations

Produkt/tjänst Artikel
Gränsen för datorförtroende
Webbprogram
Databas
Webb-API
Azure Document DB
Azure IaaS VM Trust Boundary
Förtroendegräns för Service Fabric
Dynamics CRM
Azure Storage
Mobil klient
WCF

Se till att binärfilerna är dolda om de innehåller känslig information

Title Details
Komponent Gränsen för datorförtroende
SDL-fas Distribution
Tillämpliga tekniker Allmän
Attribut Inte tillgängligt
Referenser Inte tillgängligt
Steg Se till att binärfilerna är dolda om de innehåller känslig information, till exempel affärshemligheter, känslig affärslogik som inte bör ångras. Detta för att stoppa omvänd konstruktion av sammansättningar. Verktyg som CryptoObfuscator kan användas för detta ändamål.

Överväg att använda EFS (Encrypted File System) för att skydda konfidentiella användarspecifika data

Title Details
Komponent Gränsen för datorförtroende
SDL-fas Skapa
Tillämpliga tekniker Allmän
Attribut Inte tillgängligt
Referenser Inte tillgängligt
Steg Överväg att använda EFS (Encrypted File System) för att skydda konfidentiella användarspecifika data från angripare med fysisk åtkomst till datorn.

Se till att känsliga data som lagras av programmet i filsystemet är krypterade

Title Details
Komponent Gränsen för datorförtroende
SDL-fas Distribution
Tillämpliga tekniker Allmän
Attribut Inte tillgängligt
Referenser Inte tillgängligt
Steg Se till att känsliga data som lagras av programmet i filsystemet är krypterade (t.ex. med DPAPI), om EFS inte kan tillämpas

Kontrollera att känsligt innehåll inte cachelagras i webbläsaren

Title Details
Komponent Webbprogram
SDL-fas Skapa
Tillämpliga tekniker Generic, Web Forms, MVC5, MVC6
Attribut Inte tillgängligt
Referenser Inte tillgängligt
Steg Webbläsare kan lagra information för cachelagring och historik. Dessa cachelagrade filer lagras i en mapp, till exempel mappen Temporära Internet-filer när det gäller Internet Explorer. När dessa sidor refereras igen visar webbläsaren dem från cacheminnet. Om känslig information visas för användaren (till exempel deras adress, kreditkortsinformation, personnummer eller användarnamn) kan den här informationen lagras i webbläsarens cacheminne och kan därför hämtas genom att granska webbläsarens cacheminne eller genom att helt enkelt trycka på webbläsarens "Tillbaka"-knapp. Ange värdet för svarshuvud för cachekontroll till "no-store" för alla sidor.

Exempel

<configuration>
  <system.webServer>
   <httpProtocol>
    <customHeaders>
        <add name="Cache-Control" value="no-store" />
        <add name="Pragma" value="no-cache" />
        <add name="Expires" value="-1" />
    </customHeaders>
  </httpProtocol>
 </system.webServer>
</configuration>

Exempel

Detta kan implementeras via ett filter. Följande exempel kan användas:

public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            if (filterContext == null || (filterContext.HttpContext != null && filterContext.HttpContext.Response != null && filterContext.HttpContext.Response.IsRequestBeingRedirected))
            {
                //// Since this is MVC pipeline, this should never be null.
                return;
            }

            var attributes = filterContext.ActionDescriptor.GetCustomAttributes(typeof(System.Web.Mvc.OutputCacheAttribute), false);
            if (attributes == null || **Attributes**.Count() == 0)
            {
                filterContext.HttpContext.Response.Cache.SetNoStore();
                filterContext.HttpContext.Response.Cache.SetCacheability(HttpCacheability.NoCache);
                filterContext.HttpContext.Response.Cache.SetExpires(DateTime.UtcNow.AddHours(-1));
                if (!filterContext.IsChildAction)
                {
                    filterContext.HttpContext.Response.AppendHeader("Pragma", "no-cache");
                }
            }

            base.OnActionExecuting(filterContext);
        }

Kryptera delar av webbappens konfigurationsfiler som innehåller känsliga data

Title Details
Komponent Webbprogram
SDL-fas Skapa
Tillämpliga tekniker Allmän
Attribut Inte tillgängligt
Referenser Anvisningar: Kryptera konfigurationsavsnitt i ASP.NET 2.0 Med DPAPI, ange en skyddad konfigurationsprovider, använda Azure Key Vault för att skydda programhemligheter
Steg Konfigurationsfiler som Web.config, appsettings.json används ofta för att lagra känslig information, inklusive användarnamn, lösenord, databas anslutningssträng och krypteringsnycklar. Om du inte skyddar den här informationen är ditt program sårbart för angripare eller skadliga användare som får känslig information, till exempel kontoanvändarnamn och lösenord, databasnamn och servernamn. Baserat på distributionstypen (azure/on-prem) krypterar du de känsliga avsnitten i konfigurationsfiler med DPAPI eller tjänster som Azure Key Vault.

Inaktivera uttryckligen HTML-attributet för automatisk komplettering i känsliga formulär och indata

Title Details
Komponent Webbprogram
SDL-fas Skapa
Tillämpliga tekniker Allmän
Attribut Inte tillgängligt
Referenser MSDN: autocomplete attribute, Using AutoComplete in HTML, HTML Sanitization Vulnerability, Autocomplete.,again?!
Steg Attributet komplettera automatiskt anger om ett formulär ska ha automatisk komplettering på eller av. När automatisk komplettering är aktiverat slutför webbläsaren automatiskt värden baserat på värden som användaren har angett tidigare. När ett nytt namn och lösenord till exempel anges i ett formulär och formuläret skickas, frågar webbläsaren om lösenordet ska sparas. Därefter när formuläret visas fylls namnet och lösenordet i automatiskt eller fylls i när namnet anges. En angripare med lokal åtkomst kan hämta lösenordet för klartext från webbläsarens cacheminne. Som standard är automatisk komplettering aktiverat och måste uttryckligen inaktiveras.

Exempel

<form action="Login.aspx" method="post " autocomplete="off" >
      Social Security Number: <input type="text" name="ssn" />
      <input type="submit" value="Submit" />    
</form>

Kontrollera att känsliga data som visas på användarskärmen är maskerade

Title Details
Komponent Webbprogram
SDL-fas Skapa
Tillämpliga tekniker Allmän
Attribut Inte tillgängligt
Referenser Inte tillgängligt
Steg Känsliga data som lösenord, kreditkortsnummer, SSN osv. ska maskeras när de visas på skärmen. Detta för att förhindra obehörig personal från att komma åt data (t.ex. lösenord för axelsurfning, stöd för personal som visar SSN-antal användare) . Se till att dessa dataelement inte visas i oformaterad text och att de är korrekt maskerade. Detta måste vara noga när du accepterar dem som indata (t.ex. indatatyp ="lösenord") samt visas tillbaka på skärmen (t.ex. visa endast de sista 4 siffrorna i kreditkortsnumret).

Implementera dynamisk datamaskning för att begränsa icke-privilegierade användare med känslig dataexponering

Title Details
Komponent Databas
SDL-fas Skapa
Tillämpliga tekniker Sql Azure, OnPrem
Attribut SQL-version – V12, SQL-version – MsSQL2016
Referenser Dynamisk datamaskering
Steg Syftet med dynamisk datamaskering är att begränsa exponeringen av känsliga data, vilket hindrar användare som inte ska ha åtkomst till data från att visa dem. Dynamisk datamaskering syftar inte till att förhindra att databasanvändare ansluter direkt till databasen och kör uttömmande frågor som exponerar delar av känsliga data. Dynamisk datamaskering kompletterar andra SQL Server-säkerhetsfunktioner (granskning, kryptering, säkerhet på radnivå...) och vi rekommenderar starkt att du använder den här funktionen tillsammans med dem för att bättre skydda känsliga data i databasen. Observera att den här funktionen endast stöds av SQL Server från och med 2016 och Azure SQL Database.

Kontrollera att lösenord lagras i saltat hash-format

Title Details
Komponent Databas
SDL-fas Skapa
Tillämpliga tekniker Allmän
Attribut Inte tillgängligt
Referenser Lösenordshashing med .NET Crypto API:er
Steg Lösenord ska inte lagras i anpassade användarlagringsdatabaser. Lösenordshashvärden ska lagras med saltvärden i stället. Kontrollera att saltet för användaren alltid är unikt och att du använder b-crypt, s-crypt eller PBKDF2 innan du lagrar lösenordet, med ett minsta antal iteration av arbetsfaktorn på 150 000 loopar för att eliminera risken för rå forcering.

Kontrollera att känsliga data i databaskolumner är krypterade

Title Details
Komponent Databas
SDL-fas Skapa
Tillämpliga tekniker Allmän
Attribut SQL-version – alla
Referenser Kryptera känsliga data i SQL Server, Så här krypterar du en kolumn med data i SQL Server, Kryptera efter certifikat
Steg Känsliga data, till exempel kreditkortsnummer, måste krypteras i databasen. Data kan krypteras med kryptering på kolumnnivå eller av en programfunktion med hjälp av krypteringsfunktionerna.

Kontrollera att kryptering på databasnivå (TDE) är aktiverat

Title Details
Komponent Databas
SDL-fas Skapa
Tillämpliga tekniker Allmän
Attribut Inte tillgängligt
Referenser Förstå SQL Server transparent datakryptering (TDE)
Steg funktionen transparent datakryptering (TDE) i SQL Server hjälper till att kryptera känsliga data i en databas och skydda de nycklar som används för att kryptera data med ett certifikat. Detta hindrar alla utan nycklar från att använda data. TDE skyddar data "i vila", vilket innebär data och loggfiler. Det ger möjlighet att följa många lagar, förordningar och riktlinjer som fastställts i olika branscher.

Kontrollera att databassäkerhetskopior är krypterade

Title Details
Komponent Databas
SDL-fas Skapa
Tillämpliga tekniker SQL Azure, OnPrem
Attribut SQL-version – V12, SQL-version – MsSQL2014
Referenser Säkerhetskopieringskryptering av SQL-databas
Steg SQL Server har möjlighet att kryptera data när du skapar en säkerhetskopia. Genom att ange krypteringsalgoritmen och krypteringsfaktorn (ett certifikat eller en asymmetrisk nyckel) när du skapar en säkerhetskopia kan man skapa en krypterad säkerhetskopia.

Se till att känsliga data som är relevanta för webb-API:et inte lagras i webbläsarens lagring

Title Details
Komponent Webb-API
SDL-fas Skapa
Tillämpliga tekniker MVC 5, MVC 6
Attribut Identitetsprovider – ADFS, identitetsprovider – Microsoft Entra-ID
Referenser Inte tillgängligt
Steg

I vissa implementeringar lagras känsliga artefakter som är relevanta för webb-API:ets autentisering i webbläsarens lokala lagring. Till exempel Microsoft Entra-autentiseringsartefakter som adal.idtoken, adal.nonce.idtoken, adal.access.token.key, adal.token.keys, adal.state.login, adal.session.state, adal.expiration.key osv.

Alla dessa artefakter är tillgängliga även när utloggning eller webbläsaren har stängts. Om en angripare får åtkomst till dessa artefakter kan han/hon återanvända dem för att komma åt de skyddade resurserna (API:er). Se till att alla känsliga artefakter som är relaterade till webb-API:et inte lagras i webbläsarens lagring. I de fall där lagring på klientsidan är oundvikligt (t.ex. ensidesprogram (SPA) som utnyttjar Implicita OpenId Anslut/OAuth-flöden måste lagra åtkomsttoken lokalt), använder du lagringsalternativ med har inte beständighet. T.ex. föredrar du SessionStorage till LocalStorage.

Exempel

JavaScript-kodfragmentet nedan kommer från ett anpassat autentiseringsbibliotek som lagrar autentiseringsartefakter i lokal lagring. Sådana implementeringar bör undvikas.

ns.AuthHelper.Authenticate = function () {
window.config = {
instance: 'https://login.microsoftonline.com/',
tenant: ns.Configurations.Tenant,
clientId: ns.Configurations.AADApplicationClientID,
postLogoutRedirectUri: window.location.origin,
cacheLocation: 'localStorage', // enable this for Internet Explorer, as sessionStorage does not work for localhost.
};

Kryptera känsliga data som lagras i Azure Cosmos DB

Title Details
Komponent Azure Document DB
SDL-fas Skapa
Tillämpliga tekniker Allmän
Attribut Inte tillgängligt
Referenser Inte tillgängligt
Steg Kryptera känsliga data på programnivå innan du lagrar i dokumentdatabasen eller lagra känsliga data i andra lagringslösningar som Azure Storage eller Azure SQL

Använda Azure Disk Encryption för att kryptera diskar som används av virtuella datorer

Title Details
Komponent Azure IaaS VM Trust Boundary
SDL-fas Distribution
Tillämpliga tekniker Allmän
Attribut Inte tillgängligt
Referenser Använda Azure Disk Encryption för att kryptera diskar som används av dina virtuella datorer
Steg

Azure Disk Encryption är en ny funktion som för närvarande är i förhandsversion. Med den här funktionen kan du kryptera os-diskar och datadiskar som används av en virtuell IaaS-dator. För Windows krypteras enheterna med hjälp av bitLocker-krypteringsteknik av branschstandard. För Linux krypteras diskarna med DM-Crypt-tekniken. Detta är integrerat med Azure Key Vault så att du kan styra och hantera diskkrypteringsnycklarna. Azure Disk Encryption-lösningen stöder följande tre scenarier för kundkryptering:

  • Aktivera kryptering på nya virtuella IaaS-datorer som skapats från kundkrypterade VHD-filer och krypteringsnycklar som tillhandahålls av kunden, som lagras i Azure Key Vault.
  • Aktivera kryptering på nya virtuella IaaS-datorer som skapats från Azure Marketplace.
  • Aktivera kryptering på befintliga virtuella IaaS-datorer som redan körs i Azure.

Kryptera hemligheter i Service Fabric-program

Title Details
Komponent Förtroendegräns för Service Fabric
SDL-fas Skapa
Tillämpliga tekniker Allmän
Attribut Miljö – Azure
Referenser Hantera hemligheter i Service Fabric-program
Steg Hemligheter kan vara känslig information, till exempel lagring anslutningssträng, lösenord eller andra värden som inte ska hanteras i oformaterad text. Använd Azure Key Vault för att hantera nycklar och hemligheter i Service Fabric-program.

Utföra säkerhetsmodellering och använda affärsenheter/team där det behövs

Title Details
Komponent Dynamics CRM
SDL-fas Skapa
Tillämpliga tekniker Allmän
Attribut Inte tillgängligt
Referenser Inte tillgängligt
Steg Utföra säkerhetsmodellering och använda affärsenheter/team där det behövs

Minimera åtkomsten till delningsfunktionen på kritiska entiteter

Title Details
Komponent Dynamics CRM
SDL-fas Distribution
Tillämpliga tekniker Allmän
Attribut Inte tillgängligt
Referenser Inte tillgängligt
Steg Minimera åtkomsten till delningsfunktionen på kritiska entiteter

Utbilda användare om de risker som är kopplade till Dynamics CRM Share-funktionen och goda säkerhetsrutiner

Title Details
Komponent Dynamics CRM
SDL-fas Distribution
Tillämpliga tekniker Allmän
Attribut Inte tillgängligt
Referenser Inte tillgängligt
Steg Utbilda användare om de risker som är kopplade till Dynamics CRM Share-funktionen och goda säkerhetsrutiner

Inkludera en regel för utvecklingsstandarder som beskriver konfigurationsinformation i undantagshantering

Title Details
Komponent Dynamics CRM
SDL-fas Distribution
Tillämpliga tekniker Allmän
Attribut Inte tillgängligt
Referenser Inte tillgängligt
Steg Inkludera en regel för utvecklingsstandarder som beskriver konfigurationsinformation i undantagshantering utanför utveckling. Testa detta som en del av kodgranskningar eller regelbunden inspektion.

Använda Azure Storage Service Encryption (SSE) för vilande data (förhandsversion)

Title Details
Komponent Azure Storage
SDL-fas Skapa
Tillämpliga tekniker Allmän
Attribut StorageType – blob
Referenser Azure Storage-tjänstkryptering för vilande data (förhandsversion)
Steg

Azure Storage Service Encryption (SSE) for Data at Rest hjälper dig att skydda dina data för att uppfylla organisationens säkerhets- och efterlevnadsåtaganden. Med den här funktionen krypterar Azure Storage automatiskt dina data för beständig lagring och dekrypterar dem före hämtning. Kryptering, dekryptering och nyckelhantering är helt transparent för användarna. SSE gäller endast för blockblobar, sidblobar och tilläggsblobar. De andra typerna av data, inklusive tabeller, köer och filer, krypteras inte.

Arbetsflöde för kryptering och dekryptering:

  • Kunden aktiverar kryptering på lagringskontot
  • När kunden skriver nya data (PUT Blob, PUT Block, PUT Page osv.) till Blob Storage; varje skrivning krypteras med 256-bitars AES-kryptering, en av de starkaste blockkrypteringarna som är tillgängliga
  • När kunden behöver komma åt data (GET Blob osv.) dekrypteras data automatiskt innan de återgår till användaren
  • Om krypteringen är inaktiverad krypteras inte längre nya skrivningar och befintliga krypterade data förblir krypterade tills de skrivs om av användaren. Medan kryptering är aktiverat krypteras skrivningar till Blob Storage. Datatillståndet ändras inte när användaren växlar mellan aktivering och inaktivering av kryptering för lagringskontot
  • Alla krypteringsnycklar lagras, krypteras och hanteras av Microsoft

Observera att för närvarande hanteras nycklarna som används för krypteringen av Microsoft. Microsoft genererar nycklarna ursprungligen och hanterar den säkra lagringen av nycklarna samt den vanliga rotation som definieras av den interna Microsoft-principen. I framtiden får kunderna möjlighet att hantera sina egna krypteringsnycklar och tillhandahålla en migreringssökväg från Microsoft-hanterade nycklar till kundhanterade nycklar.

Använda kryptering på klientsidan för att lagra känsliga data i Azure Storage

Title Details
Komponent Azure Storage
SDL-fas Skapa
Tillämpliga tekniker Allmän
Attribut Inte tillgängligt
Referenser Kryptering på klientsidan och Azure Key Vault för Microsoft Azure Storage, självstudie: Kryptera och dekryptera blobar i Microsoft Azure Storage med hjälp av Azure Key Vault, lagra data på ett säkert sätt i Azure Blob Storage med Azure Encryption Extensions
Steg

Azure Storage-klientbiblioteket för .NET Nuget-paketet stöder kryptering av data i klientprogram innan de laddas upp till Azure Storage och dekrypterar data vid nedladdning till klienten. Biblioteket stöder även integrering med Azure Key Vault för hantering av nycklar för lagringskonton. Här är en kort beskrivning av hur kryptering på klientsidan fungerar:

  • Azure Storage-klientens SDK genererar en innehållskrypteringsnyckel (CEK), som är en symmetrisk nyckel för engångsanvändning
  • Kunddata krypteras med hjälp av denna CEK
  • CEK omsluts sedan (krypteras) med nyckelkrypteringsnyckeln (KEK). KEK identifieras av en nyckelidentifierare och kan vara ett asymmetriskt nyckelpar eller en symmetrisk nyckel och kan hanteras lokalt eller lagras i Azure Key Vault. Själva lagringsklienten har aldrig åtkomst till KEK. Den anropar bara nyckelomslutningsalgoritmen som tillhandahålls av Key Vault. Kunder kan välja att använda anpassade leverantörer för nyckelomslutning/avskrivning om de vill
  • Krypterade data laddas sedan upp till Azure Storage-tjänsten. Kontrollera länkarna i referensavsnittet för information om lågnivåimplementering.

Kryptera känsliga data eller PII-data som skrivits till telefoners lokala lagring

Title Details
Komponent Mobil klient
SDL-fas Skapa
Tillämpliga tekniker Generic, Xamarin
Attribut Inte tillgängligt
Referenser Hantera inställningar och funktioner på dina enheter med Microsoft Intune-principer, Nyckelringsbetjäning
Steg

Om programmet skriver känslig information som användarens PII (e-post, telefonnummer, förnamn, efternamn, inställningar osv.) – i mobilens filsystem ska den krypteras innan den skrivs till det lokala filsystemet. Om programmet är ett företagsprogram kan du utforska möjligheten att publicera program med Hjälp av Windows Intune.

Exempel

Intune kan konfigureras med följande säkerhetsprinciper för att skydda känsliga data:

Require encryption on mobile device    
Require encryption on storage cards
Allow screen capture

Exempel

Om programmet inte är ett företagsprogram använder du plattformshanterade nyckelarkiv, nyckelringar för att lagra krypteringsnycklar, med vilken kryptografisk åtgärd som kan utföras på filsystemet. Följande kodfragment visar hur du kommer åt nyckeln från nyckelringen med xamarin:

        protected static string EncryptionKey
        {
            get
            {
                if (String.IsNullOrEmpty(_Key))
                {
                    var query = new SecRecord(SecKind.GenericPassword);
                    query.Service = NSBundle.MainBundle.BundleIdentifier;
                    query.Account = "UniqueID";

                    NSData uniqueId = SecKeyChain.QueryAsData(query);
                    if (uniqueId == null)
                    {
                        query.ValueData = NSData.FromString(System.Guid.NewGuid().ToString());
                        var err = SecKeyChain.Add(query);
                        _Key = query.ValueData.ToString();
                    }
                    else
                    {
                        _Key = uniqueId.ToString();
                    }
                }

                return _Key;
            }
        }

Fördunkla genererade binärfiler innan du distribuerar till slutanvändare

Title Details
Komponent Mobil klient
SDL-fas Skapa
Tillämpliga tekniker Allmän
Attribut Inte tillgängligt
Referenser Kryptokryptering för .NET
Steg Genererade binärfiler (sammansättningar inom apk) bör döljas för att stoppa omvänd utveckling av sammansättningar. Verktyg som CryptoObfuscator kan användas för detta ändamål.

Ange clientCredentialType till Certifikat eller Windows

Title Details
Komponent WCF
SDL-fas Skapa
Tillämpliga tekniker .NET Framework 3
Attribut Inte tillgängligt
Referenser Befästa
Steg Om du använder usernameToken med ett lösenord i klartext över en okrypterad kanal exponeras lösenordet för angripare som kan sniffa SOAP-meddelanden. Tjänstleverantörer som använder UsernameToken kan acceptera lösenord som skickas i klartext. Om du skickar lösenord i klartext över en okrypterad kanal kan autentiseringsuppgifterna exponeras för angripare som kan sniffa soap-meddelandet.

Exempel

Följande konfiguration av WCF-tjänstprovidern använder UsernameToken:

<security mode="Message"> 
<message clientCredentialType="UserName" />

Ange clientCredentialType till Certifikat eller Windows.

WCF-säkerhetsläge är inte aktiverat

Title Details
Komponent WCF
SDL-fas Skapa
Tillämpliga tekniker Generic, .NET Framework 3
Attribut Säkerhetsläge – Transport, säkerhetsläge – Meddelande
Referenser MSDN, Fortify Kingdom, Grunderna i WCF Security CoDe Magazine
Steg Ingen transport- eller meddelandesäkerhet har definierats. Program som skickar meddelanden utan transport- eller meddelandesäkerhet kan inte garantera meddelandenas integritet eller konfidentialitet. När en WCF-säkerhetsbindning har angetts till Ingen inaktiveras både transport- och meddelandesäkerhet.

Exempel

Följande konfiguration anger säkerhetsläget till Ingen.

<system.serviceModel> 
  <bindings> 
    <wsHttpBinding> 
      <binding name=""MyBinding""> 
        <security mode=""None""/> 
      </binding> 
  </bindings> 
</system.serviceModel> 

Exempel

Säkerhetsläge För alla tjänstbindningar finns det fem möjliga säkerhetslägen:

  • Inga. Stänger av säkerheten.
  • Transport. Använder transportsäkerhet för ömsesidig autentisering och meddelandeskydd.
  • Meddelande. Använder meddelandesäkerhet för ömsesidig autentisering och meddelandeskydd.
  • Båda. Gör att du kan ange inställningar för säkerhet på transport- och meddelandenivå (endast MSMQ stöder detta).
  • TransportWithMessageCredential. Autentiseringsuppgifter skickas med meddelande- och meddelandeskydd och serverautentisering tillhandahålls av transportlagret.
  • TransportCredentialOnly. Klientautentiseringsuppgifter skickas med transportlagret och inget meddelandeskydd tillämpas. Använd transport- och meddelandesäkerhet för att skydda meddelandenas integritet och konfidentialitet. Konfigurationen nedan instruerar tjänsten att använda transportsäkerhet med autentiseringsuppgifter för meddelanden.
    <system.serviceModel>
    <bindings>
      <wsHttpBinding>
      <binding name=""MyBinding""> 
      <security mode=""TransportWithMessageCredential""/> 
      <message clientCredentialType=""Windows""/> 
      </binding> 
    </bindings> 
    </system.serviceModel>