Güvenlik Çerçevesi: Hassas Veriler | Azaltıcı etken

Ürün/Hizmet Makale
Makine Güven Sınırı
Web Uygulaması
Veritabanı
Web API'si
Azure Belge VERITABANı
Azure IaaS VM Güven Sınırı
Service Fabric Güven Sınırı
Dynamics CRM
Azure Depolama
Mobil İstemci
WCF

Hassas bilgiler içeren ikili dosyaların karartıldığından emin olun

Başlık Ayrıntılar
Bileşen Makine Güven Sınırı
SDL Aşaması Dağıtım
Geçerli Teknolojiler Genel
Öznitelikler Yok
Başvurular Yok
Adımlar Ticari gizli diziler, ters çevrilmemesi gereken hassas iş mantığı gibi hassas bilgiler içeriyorsa ikili dosyaların karartıldığından emin olun. Bu, derlemelerin tersine mühendisliğini durdurmaktır. gibi CryptoObfuscator araçlar bu amaçla kullanılabilir.

Gizli kullanıcıya özgü verileri korumak için Şifrelenmiş Dosya Sistemi 'nin (EFS) kullanıldığını göz önünde bulundurun

Başlık Ayrıntılar
Bileşen Makine Güven Sınırı
SDL Aşaması Derleme
Geçerli Teknolojiler Genel
Öznitelikler Yok
Başvurular Yok
Adımlar Gizli kullanıcıya özgü verileri bilgisayara fiziksel erişimi olan saldırganlardan korumak için Şifrelenmiş Dosya Sistemi 'ni (EFS) kullanmayı göz önünde bulundurun.

Dosya sisteminde uygulama tarafından depolanan hassas verilerin şifrelendiğinden emin olun

Başlık Ayrıntılar
Bileşen Makine Güven Sınırı
SDL Aşaması Dağıtım
Geçerli Teknolojiler Genel
Öznitelikler Yok
Başvurular Yok
Adımlar EFS zorlanamazsa, dosya sisteminde uygulama tarafından depolanan hassas verilerin şifrelendiğinden emin olun (örneğin DPAPI kullanarak).

Hassas içeriğin tarayıcıda önbelleğe alınmadığından emin olun

Başlık Ayrıntılar
Bileşen Web Uygulaması
SDL Aşaması Derleme
Geçerli Teknolojiler Genel, Web Forms, MVC5, MVC6
Öznitelikler Yok
Başvurular Yok
Adımlar Tarayıcılar bilgileri önbelleğe alma ve geçmiş amacıyla depolayabilir. Önbelleğe alınan bu dosyalar, Internet Explorer örneğinde Geçici İnternet Dosyaları klasörü gibi bir klasörde depolanır. Bu sayfalara yeniden başvurulduğunda, tarayıcı bunları önbelleğinden görüntüler. Kullanıcıya hassas bilgiler (adresi, kredi kartı ayrıntıları, Sosyal Güvenlik Numarası veya kullanıcı adı gibi) gösteriliyorsa, bu bilgiler tarayıcının önbelleğinde depolanabilir ve bu nedenle tarayıcının önbelleği incelenerek veya yalnızca tarayıcının "Geri" düğmesine basılarak alınabilir. Önbellek denetimi yanıt üst bilgisi değerini tüm sayfalar için "depo yok" olarak ayarlayın.

Örnek

<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>

Örnek

Bu bir filtre aracılığıyla uygulanabilir. Aşağıdaki örnek kullanılabilir:

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);
        }

Web App yapılandırma dosyalarının hassas veriler içeren bölümlerini şifreleme

Başlık Ayrıntılar
Bileşen Web Uygulaması
SDL Aşaması Derleme
Geçerli Teknolojiler Genel
Öznitelikler Yok
Başvurular Nasıl Yapılır: ASP.NET 2.0'da Yapılandırma Bölümlerini Şifreleme DPAPI Kullanarak, Korumalı Yapılandırma Sağlayıcısı Belirtme, Uygulama gizli dizilerini korumak için Azure Key Vault Kullanma
Adımlar Web.config, appsettings.json gibi yapılandırma dosyaları genellikle kullanıcı adları, parolalar, veritabanı bağlantı dizesi ve şifreleme anahtarları gibi hassas bilgileri tutmak için kullanılır. Bu bilgileri korumazsanız, uygulamanız hesap kullanıcı adları ve parolaları, veritabanı adları ve sunucu adları gibi hassas bilgileri alan saldırganlara veya kötü amaçlı kullanıcılara karşı savunmasızdır. Dağıtım türüne (azure/şirket içi) bağlı olarak, DPAPI veya Azure Key Vault gibi hizmetleri kullanarak yapılandırma dosyalarının hassas bölümlerini şifreleyin.

Hassas formlarda ve girişlerde otomatik tamamlama HTML özniteliğini açıkça devre dışı bırakma

Başlık Ayrıntılar
Bileşen Web Uygulaması
SDL Aşaması Derleme
Geçerli Teknolojiler Genel
Öznitelikler Yok
Başvurular MSDN: otomatik tamamlama özniteliği, HTML'de Otomatik Tamamlama Kullanma, HTML Temizleme Güvenlik Açığı, Otomatik Tamamlama.,yeniden?!
Adımlar Otomatik tamamlama özniteliği, formun otomatik tamamlama özelliğinin açık mı yoksa kapalı mı olması gerektiğini belirtir. Otomatik tamamlama açık olduğunda tarayıcı, kullanıcının daha önce girdiği değerlere göre değerleri otomatik olarak tamamlar. Örneğin, forma yeni bir ad ve parola girildiğinde ve form gönderildiğinde, tarayıcı parolanın kaydedilmesi gerekip gerekmediğini sorar. Bundan sonra form görüntülendiğinde, ad ve parola otomatik olarak doldurulur veya ad girilirken tamamlanır. Yerel erişimi olan bir saldırgan, tarayıcı önbelleğinden temiz metin parolasını alabilir. Varsayılan olarak otomatik tamamlama etkindir ve açıkça devre dışı bırakılmalıdır.

Örnek

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

Kullanıcı ekranında görüntülenen hassas verilerin maskelendiğinden emin olun

Başlık Ayrıntılar
Bileşen Web Uygulaması
SDL Aşaması Derleme
Geçerli Teknolojiler Genel
Öznitelikler Yok
Başvurular Yok
Adımlar Parolalar, kredi kartı numaraları, SSN gibi hassas veriler ekranda görüntülendiğinde maskelenmelidir. Bu, yetkisiz personelin verilere erişmesini engellemektir (örneğin, omuzlarda gezinen parolalar, kullanıcıların SSN numaralarını görüntüleyen personeli destekleme). Bu veri öğelerinin düz metinde görünmediğinden ve uygun şekilde maskelenmiş olduğundan emin olun. Bunları giriş olarak kabul ederken (ör. giriş türü="parola") ve ekranda yeniden görüntülenirken (örneğin, kredi kartı numarasının yalnızca son 4 basamağını görüntüler) bu işlem dikkate alınmalıdır.

Hassas verilerin ayrıcalıklı olmayan kullanıcılara maruz kalmasını sınırlamak için dinamik veri maskeleme uygulama

Başlık Ayrıntılar
Bileşen Veritabanı
SDL Aşaması Derleme
Geçerli Teknolojiler Sql Azure, OnPrem
Öznitelikler SQL Sürümü - V12, SQL Sürümü - MsSQL2016
Başvurular Dinamik Veri Maskeleme
Adımlar Dinamik veri maskelemenin amacı hassas verilerin açığa çıkmasını sınırlandırmak ve verilere erişimi olmaması gereken kullanıcıların verileri görüntülemesini engellemektir. Dinamik veri maskeleme, veritabanı kullanıcılarının doğrudan veritabanına bağlanmasını ve hassas verilerin parçalarını kullanıma sunan kapsamlı sorgular çalıştırmasını engellemeyi hedeflemez. Dinamik veri maskeleme, diğer SQL Server güvenlik özelliklerine (denetim, şifreleme, satır düzeyi güvenlik...) tamamlayıcı niteliktedir ve veritabanındaki hassas verileri daha iyi korumak için bu özelliğin bunlarla birlikte kullanılması kesinlikle önerilir. Bu özelliğin yalnızca 2016 ve Azure SQL Veritabanı ile başlayarak SQL Server tarafından desteklendiğini unutmayın.

Parolaların tuzlu karma biçiminde depolandığından emin olun

Başlık Ayrıntılar
Bileşen Veritabanı
SDL Aşaması Derleme
Geçerli Teknolojiler Genel
Öznitelikler Yok
Başvurular .NET Şifreleme API'lerini kullanarak Parola Karması Oluşturma
Adımlar Parolalar özel kullanıcı deposu veritabanlarında depolanmamalıdır. Parola karmaları bunun yerine tuz değerleriyle depolanmalıdır. Kullanıcının tuzunun her zaman benzersiz olduğundan emin olun ve parolayı depolamadan önce b-crypt, s-crypt veya PBKDF2 uyguladığınızda deneme yanılma olasılığını ortadan kaldırmak için en az 150.000 döngü çalışma faktörü yineleme sayısı kullanılır.

Veritabanı sütunlarındaki hassas verilerin şifrelendiğinden emin olun

Başlık Ayrıntılar
Bileşen Veritabanı
SDL Aşaması Derleme
Geçerli Teknolojiler Genel
Öznitelikler SQL Sürümü - Tümü
Başvurular SQL Server'da hassas verileri şifreleme, Nasıl yapılır: SQL Server'da Veri Sütununu Şifreleme, Sertifikaya Göre Şifreleme
Adımlar Kredi kartı numaraları gibi hassas verilerin veritabanında şifrelenmeleri gerekir. Veriler sütun düzeyinde şifreleme kullanılarak veya şifreleme işlevleri kullanılarak bir uygulama işlevi tarafından şifrelenebilir.

Veritabanı düzeyinde şifrelemenin (TDE) etkinleştirildiğinden emin olun

Başlık Ayrıntılar
Bileşen Veritabanı
SDL Aşaması Derleme
Geçerli Teknolojiler Genel
Öznitelikler Yok
Başvurular SQL Server Saydam Veri Şifrelemesi (TDE) anlama
Adımlar SQL server'daki Saydam Veri Şifrelemesi (TDE) özelliği, veritabanındaki hassas verilerin şifrelenmesine ve verileri bir sertifikayla şifrelemek için kullanılan anahtarların korunmasına yardımcı olur. Bu, anahtarları olmayan herkesin verileri kullanmasını engeller. TDE verileri "bekleyen" olarak korur, yani verileri ve günlük dosyalarını korur. Çeşitli sektörlerde oluşturulan birçok yasa, düzenleme ve yönergeye uyma olanağı sağlar.

Veritabanı yedeklemelerinin şifrelenmesini sağlama

Başlık Ayrıntılar
Bileşen Veritabanı
SDL Aşaması Derleme
Geçerli Teknolojiler SQL Azure, OnPrem
Öznitelikler SQL Sürümü - V12, SQL Sürümü - MsSQL2014
Başvurular SQL veritabanı yedekleme şifrelemesi
Adımlar SQL Server, yedekleme oluştururken verileri şifreleme özelliğine sahiptir. Yedekleme oluştururken şifreleme algoritmasını ve şifrelayıcıyı (Sertifika veya Asimetrik Anahtar) belirterek şifrelenmiş bir yedekleme dosyası oluşturabilirsiniz.

Web API'sine uygun hassas verilerin tarayıcının depolama alanında depolanmadığından emin olun

Başlık Ayrıntılar
Bileşen Web API'si
SDL Aşaması Derleme
Geçerli Teknolojiler MVC 5, MVC 6
Öznitelikler Kimlik Sağlayıcısı - ADFS, Kimlik Sağlayıcısı - Microsoft Entra Id
Başvurular Yok
Adımlar

Bazı uygulamalarda, Web API'lerinin kimlik doğrulamasıyla ilgili hassas yapıtlar tarayıcının yerel depolama alanında depolanır. Örneğin, adal.idtoken, adal.nonce.idtoken, adal.access.token.key, adal.token.keys, adal.state.login, adal.session.state, adal.expiration.key gibi Microsoft Entra kimlik doğrulama yapıtları.

Tüm bu yapıtlar, oturumu kapattıktan veya tarayıcı kapatıldıktan sonra bile kullanılabilir. Bir saldırgan bu yapıtlara erişim elde ederse, korumalı kaynaklara (API' ler) erişmek için bunları yeniden kullanabilir. Web API'sine ilişkin tüm hassas yapıtların tarayıcının depolama alanında depolanmadığından emin olun. İstemci tarafı depolamanın kaçınılmaz olduğu durumlarda (ör. Örtük OpenIdConnect/OAuth akışlarından yararlanan Tek Sayfalı Uygulamalar (SPA) erişim belirteçlerini yerel olarak depolamak zorundaysa), kalıcılığı olmayan depolama seçeneklerini kullanın. Örneğin, SessionStorage'ı LocalStorage olarak tercih edin.

Örnek

Aşağıdaki JavaScript kod parçacığı, yerel depolamada kimlik doğrulama yapıtlarını depolayan özel bir kimlik doğrulama kitaplığından alınıyor. Bu tür uygulamalardan kaçınılmalıdır.

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.
};

Azure Cosmos DB'de depolanan hassas verileri şifreleme

Başlık Ayrıntılar
Bileşen Azure Belge VERITABANı
SDL Aşaması Derleme
Geçerli Teknolojiler Genel
Öznitelikler Yok
Başvurular Yok
Adımlar Belge veritabanında depolamadan önce hassas verileri uygulama düzeyinde şifreleme veya herhangi bir hassas veriyi Azure Depolama veya Azure SQL gibi diğer depolama çözümlerinde depolama

Sanal Makineler tarafından kullanılan diskleri şifrelemek için Azure Disk Şifrelemesi kullanma

Başlık Ayrıntılar
Bileşen Azure IaaS VM Güven Sınırı
SDL Aşaması Dağıtım
Geçerli Teknolojiler Genel
Öznitelikler Yok
Başvurular Sanal makineleriniz tarafından kullanılan diskleri şifrelemek için Azure Disk Şifrelemesi kullanma
Adımlar

Azure Disk Şifrelemesi, şu anda önizleme aşamasında olan yeni bir özelliktir. Bu özellik, bir IaaS Sanal Makinesi tarafından kullanılan işletim sistemi disklerini ve Veri disklerini şifrelemenizi sağlar. Windows için sürücüler endüstri standardı BitLocker şifreleme teknolojisi kullanılarak şifrelenir. Linux için diskler DM-Crypt teknolojisi kullanılarak şifrelenir. Bu, disk şifreleme anahtarlarını denetlemenize ve yönetmenize olanak sağlamak için Azure Key Vault ile tümleşiktir. Azure Disk Şifrelemesi çözümü aşağıdaki üç müşteri şifreleme senaryosını destekler:

  • Azure Key Vault'ta depolanan müşteri tarafından şifrelenmiş VHD dosyalarından ve müşteri tarafından sağlanan şifreleme anahtarlarından oluşturulan yeni IaaS VM'lerinde şifrelemeyi etkinleştirin.
  • Azure Market oluşturulan yeni IaaS VM'lerinde şifrelemeyi etkinleştirin.
  • Azure'da zaten çalışan mevcut IaaS VM'lerinde şifrelemeyi etkinleştirin.

Service Fabric uygulamalarında gizli dizileri şifreleme

Başlık Ayrıntılar
Bileşen Service Fabric Güven Sınırı
SDL Aşaması Derleme
Geçerli Teknolojiler Genel
Öznitelikler Ortam - Azure
Başvurular Service Fabric uygulamalarında gizli dizileri yönetme
Adımlar Gizli diziler depolama bağlantı dizesi, parolalar veya düz metin olarak işlenmemesi gereken diğer değerler gibi hassas bilgiler olabilir. Service Fabric uygulamalarında anahtarları ve gizli dizileri yönetmek için Azure Key Vault'ı kullanın.

Gerektiğinde güvenlik modellemesi gerçekleştirme ve İş Birimlerini/Teams'i kullanma

Başlık Ayrıntılar
Bileşen Dynamics CRM
SDL Aşaması Derleme
Geçerli Teknolojiler Genel
Öznitelikler Yok
Başvurular Yok
Adımlar Gerektiğinde güvenlik modellemesi gerçekleştirme ve İş Birimlerini/Teams'i kullanma

Kritik varlıklarda paylaşım özelliğine erişimi en aza indirme

Başlık Ayrıntılar
Bileşen Dynamics CRM
SDL Aşaması Dağıtım
Geçerli Teknolojiler Genel
Öznitelikler Yok
Başvurular Yok
Adımlar Kritik varlıklarda paylaşım özelliğine erişimi en aza indirme

Dynamics CRM Share özelliği ve iyi güvenlik uygulamalarıyla ilişkili riskler konusunda kullanıcıları eğitin

Başlık Ayrıntılar
Bileşen Dynamics CRM
SDL Aşaması Dağıtım
Geçerli Teknolojiler Genel
Öznitelikler Yok
Başvurular Yok
Adımlar Dynamics CRM Share özelliği ve iyi güvenlik uygulamalarıyla ilişkili riskler konusunda kullanıcıları eğitin

Özel durum yönetiminde yapılandırma ayrıntılarını gösteren bir geliştirme standartları kuralı ekleme

Başlık Ayrıntılar
Bileşen Dynamics CRM
SDL Aşaması Dağıtım
Geçerli Teknolojiler Genel
Öznitelikler Yok
Başvurular Yok
Adımlar Geliştirme dışında özel durum yönetimindeki yapılandırma ayrıntılarını gösteren bir geliştirme standartları kuralı ekleyin. Kod incelemeleri veya düzenli denetim kapsamında bunu test edin.

Bekleyen Veriler için Azure Depolama Hizmeti Şifrelemesi (SSE) kullanma (Önizleme)

Başlık Ayrıntılar
Bileşen Azure Depolama
SDL Aşaması Derleme
Geçerli Teknolojiler Genel
Öznitelikler StorageType - Blob
Başvurular Bekleyen Veriler için Azure Depolama Hizmeti Şifrelemesi (Önizleme)
Adımlar

Bekleyen Veriler için Azure Depolama Hizmeti Şifrelemesi (SSE), kurumsal güvenlik ve uyumluluk taahhütlerinizi yerine getirmek için verilerinizi korumanıza ve korumanıza yardımcı olur. Bu özellik ile Azure Depolama, verilerinizi depolama alanında kalıcı hale gelmeden önce otomatik olarak şifreler ve alınmadan önce bunların şifresini çözer. Şifreleme, şifre çözme ve anahtar yönetimi kullanıcılar için tamamen şeffaftır. SSE yalnızca blok blobları, sayfa blobları ve ekleme blobları için geçerlidir. Tablolar, kuyruklar ve dosyalar gibi diğer veri türleri şifrelenmez.

Şifreleme ve Şifre Çözme İş Akışı:

  • Müşteri, depolama hesabında şifrelemeyi etkinleştirir
  • Müşteri Blob depolamaya yeni veriler (PUT Blobu, PUT Bloğu, PUT Sayfası vb.) yazdığında; her yazma, kullanılabilir en güçlü blok şifrelemelerinden biri olan 256 bit AES şifrelemesi kullanılarak şifrelenir
  • Müşterinin verilere (GET Blob vb.) erişmesi gerektiğinde, kullanıcıya dönmeden önce verilerin şifresi otomatik olarak çözülür
  • Şifreleme devre dışı bırakılırsa, yeni yazma işlemleri artık şifrelenmez ve kullanıcı tarafından yeniden yazılana kadar mevcut şifrelenmiş veriler şifrelenmiş olarak kalır. Şifreleme etkinleştirildiğinde Blob depolamaya yazma işlemleri şifrelenir. Kullanıcının depolama hesabı için şifrelemeyi etkinleştirme/devre dışı bırakma arasında geçiş yaptığı için verilerin durumu değişmez
  • Tüm şifreleme anahtarları Microsoft tarafından depolanır, şifrelenir ve yönetilir

Şu anda şifreleme için kullanılan anahtarların Microsoft tarafından yönetildiğini lütfen unutmayın. Microsoft anahtarları ilk olarak oluşturur ve anahtarların güvenli depolama alanını ve iç Microsoft ilkesi tarafından tanımlanan normal döndürmeyi yönetir. Gelecekte müşteriler kendi şifreleme anahtarlarını yönetme ve Microsoft tarafından yönetilen anahtarlardan müşteri tarafından yönetilen anahtarlara geçiş yolu sağlama olanağına sahip olacak.

Hassas verileri Azure Depolama'da depolamak için İstemci Tarafı Şifrelemesi'ni kullanma

Başlık Ayrıntılar
Bileşen Azure Depolama
SDL Aşaması Derleme
Geçerli Teknolojiler Genel
Öznitelikler Yok
Başvurular Microsoft Azure Depolama için İstemci Tarafı Şifrelemesi ve Azure Key Vault, Öğretici: Azure Key Vault kullanarak Microsoft Azure Depolama blobları şifreleme ve şifresini çözme, Azure Şifreleme Uzantıları ile verileri güvenli bir şekilde Azure Blob Depolama depolama
Adımlar

.NET Nuget için Azure Depolama İstemci Kitaplığı paketi, Azure Depolama'ya yüklemeden önce istemci uygulamalarındaki verilerin şifrelenmesi ve istemciye indirilirken verilerin şifresinin çözülmesini destekler. Kitaplık ayrıca depolama hesabı anahtarı yönetimi için Azure Anahtar Kasası ile tümleştirmeyi destekler. İstemci tarafı şifrelemesinin nasıl çalıştığı hakkında kısa bir açıklama aşağıdadır:

  • Azure Depolama istemci SDK'sı, tek seferlik kullanılan bir simetrik anahtar olan bir içerik şifreleme anahtarı (CEK) oluşturur
  • Müşteri verileri bu CEK kullanılarak şifrelenir
  • CEK daha sonra anahtar şifreleme anahtarı (KEK) kullanılarak sarmalanır (şifrelenir). KEK bir anahtar tanımlayıcısı ile tanımlanır ve asimetrik anahtar çifti veya simetrik anahtar olabilir ve yerel olarak yönetilebilir veya Azure Key Vault'ta depolanabilir. Depolama istemcisinin kendisi keke hiçbir zaman erişemez. Yalnızca Key Vault tarafından sağlanan anahtar sarmalama algoritmasını çağırır. Müşteriler, isterlerse anahtar sarmalama/açma için özel sağlayıcılar kullanmayı tercih edebilir
  • Şifrelenmiş veriler daha sonra Azure Depolama hizmetine yüklenir. Alt düzey uygulama ayrıntıları için başvurular bölümündeki bağlantıları denetleyin.

Telefon yerel depolama alanına yazılan hassas veya PII verilerini şifreleme

Başlık Ayrıntılar
Bileşen Mobil İstemci
SDL Aşaması Derleme
Geçerli Teknolojiler Genel, Xamarin
Öznitelikler Yok
Başvurular Microsoft Intune ilkeleri, Anahtarlık Valesi ile cihazlarınızdaki ayarları ve özellikleri yönetme
Adımlar

Uygulama kullanıcının PII'sı (e-posta, telefon numarası, ad, soyadı, tercihler vb.) gibi hassas bilgiler yazıyorsa- mobilin dosya sisteminde, yerel dosya sistemine yazmadan önce şifrelenmelidir. Uygulama kurumsal bir uygulamaysa, Windows Intune kullanarak uygulama yayımlama olasılığını keşfedin.

Örnek

Intune, hassas verileri korumak için aşağıdaki güvenlik ilkeleriyle yapılandırılabilir:

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

Örnek

Uygulama kurumsal bir uygulama değilse, şifreleme anahtarlarını depolamak için platform tarafından sağlanan anahtar deposunu, anahtarlıkları kullanın ve dosya sisteminde hangi şifreleme işleminin gerçekleştirilebileceğini kullanın. Aşağıdaki kod parçacığı, xamarin kullanarak anahtar zincirinden anahtara nasıl eriş yapılacağını gösterir:

        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;
            }
        }

Son kullanıcılara dağıtmadan önce oluşturulan ikili dosyaları gizleme

Başlık Ayrıntılar
Bileşen Mobil İstemci
SDL Aşaması Derleme
Geçerli Teknolojiler Genel
Öznitelikler Yok
Başvurular .NET için ŞifrelemeYi Gizleme
Adımlar Oluşturulan ikili dosyalar (apk içindeki derlemeler), derlemelerin tersine mühendisliğini durdurmak için karartılmalıdır. gibi CryptoObfuscator araçlar bu amaçla kullanılabilir.

clientCredentialType değerini Sertifika veya Windows olarak ayarlama

Başlık Ayrıntılar
Bileşen WCF
SDL Aşaması Derleme
Geçerli Teknolojiler .NET Framework 3
Öznitelikler Yok
Başvurular Kuvvetlendirmek
Adımlar Şifrelenmemiş bir kanal üzerinde düz metin parola ile UsernameToken kullanılması, parolayı SOAP iletilerini koklayan saldırganlara gösterir. UsernameToken kullanan Hizmet Sağlayıcıları düz metin olarak gönderilen parolaları kabul edebilir. Şifrelenmemiş bir kanal üzerinden düz metin parolaları göndermek, kimlik bilgilerini SOAP iletisini koklayan saldırganların kullanımına açabilir.

Örnek

Aşağıdaki WCF hizmet sağlayıcısı yapılandırması UsernameToken'i kullanır:

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

clientCredentialType değerini Sertifika veya Windows olarak ayarlayın.

WCF-Güvenlik Modu etkin değil

Başlık Ayrıntılar
Bileşen WCF
SDL Aşaması Derleme
Geçerli Teknolojiler Genel, .NET Framework 3
Öznitelikler Güvenlik Modu - Aktarım, Güvenlik Modu - İleti
Başvurular MSDN, Fortify Kingdom, WCF Security CoDe Dergisinin Temelleri
Adımlar Aktarım veya ileti güvenliği tanımlanmadı. İletileri aktarım veya ileti güvenliği olmadan ileten uygulamalar, iletilerin bütünlüğünü veya gizliliğini garanti edemez. WCF güvenlik bağlaması Yok olarak ayarlandığında, hem aktarım hem de ileti güvenliği devre dışı bırakılır.

Örnek

Aşağıdaki yapılandırma, güvenlik modunu Yok olarak ayarlar.

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

Örnek

Güvenlik Modu Tüm hizmet bağlamalarında beş olası güvenlik modu vardır:

  • Yok. Güvenliği kapatır.
  • Taşıma. Karşılıklı kimlik doğrulaması ve ileti koruması için aktarım güvenliğini kullanır.
  • İleti. Karşılıklı kimlik doğrulaması ve ileti koruması için ileti güvenliğini kullanır.
  • Her ikisi. Aktarım ve ileti düzeyi güvenlik ayarlarını sağlamanıza olanak tanır (yalnızca MSMQ bunu destekler).
  • TransportWithMessageCredential. Kimlik bilgileri ileti ve ileti koruması ile geçirilir ve sunucu kimlik doğrulaması aktarım katmanı tarafından sağlanır.
  • TransportCredentialOnly. İstemci kimlik bilgileri aktarım katmanıyla geçirilir ve hiçbir ileti koruması uygulanmaz. İletilerin bütünlüğünü ve gizliliğini korumak için aktarım ve ileti güvenliğini kullanın. Aşağıdaki yapılandırma, hizmete ileti kimlik bilgileriyle aktarım güvenliğini kullanmasını bildirir.
    <system.serviceModel>
    <bindings>
      <wsHttpBinding>
      <binding name=""MyBinding""> 
      <security mode=""TransportWithMessageCredential""/> 
      <message clientCredentialType=""Windows""/> 
      </binding> 
    </bindings> 
    </system.serviceModel>