Information Protection için en iyi güvenlik uygulamaları

Önemli

Mart 2020'den önce yayımlanan Microsoft Rights Management Service SDK sürümleri kullanım dışı bırakılmıştır; önceki sürümleri kullanan uygulamaların Mart 2020 sürümünü kullanacak şekilde güncelleştirilmiş olması gerekir. Tüm ayrıntılar için kullanımdan kaldırma bildirimine bakın.

Microsoft Rights Management Service SDK'sı için başka geliştirme planlanmıyor. Sınıflandırma, etiketleme ve koruma hizmetleri için Microsoft Bilgi Koruması SDK'sının benimsenmesini kesinlikle öneririz.

Information Protection Yazılım Geliştirme Setleri (SDK'lar), her türdeki korumalı bilgileri yayımlamak ve tüketmek için sağlam bir sistem sağlar. Bir sistemin mümkün olduğunca güçlü olmasına yardımcı olmak için, en iyi yöntemler kullanılarak bilgi koruma özellikli uygulamalar oluşturulmalıdır. Uygulamalar, bu ekosistemin güvenliğinin korunmasına yardımcı olmak için sorumluluklarını paylaşır. Uygulama geliştirme sırasında ortaya çıkan güvenlik risklerinin belirlenmesi ve bu risklerin azaltılması, daha az güvenli bir yazılım oluşturma olasılığını en aza indirir.

Bu bilgiler, SDK'ları kullanan uygulamalar için dijital sertifikalar almak için imzalanması gereken yasal sözleşmeyi tamamlar.

Kapsanmayan konular

Geliştirme ortamı ve güvenli uygulamalar oluşturmak için aşağıdaki konular önemli noktalar olsa da, bu makalenin kapsamı dışındadır:

  • Yazılım geliştirme süreci yönetimi — Yapılandırma yönetimi, kaynak kodun güvenliğini sağlama, hata ayıklanan koda erişimi en aza indirme ve hatalara öncelik atama. Bazı müşteriler için daha güvenli bir yazılım geliştirme sürecine sahip olmak, onlar için son derece önemlidir. Hatta bazı müşteriler geliştirme sürecini kendileri belirler.
  • Yaygın kodlama hataları — Arabellek taşmalarını önlemeye yönelik bilgiler. Bu genel tehditleri ve bunları azaltma yollarını gözden geçirmek için, Michael Howard ve David LeBlanc’in Writing Secure Code (Microsoft Press, 2002) adlı çalışmasının en son basımını öneririz.
  • Sosyal mühendislik — Geliştiricilerin veya üreticinin kuruluşundaki diğer kişilerin koddan yararlanmaya karşı korunmasına yardımcı olmak için yordamsal ve yapısal korumalar hakkında bilgiler içerir.
  • Fiziksel güvenlik — Kod tabanınıza ve imzalama sertifikalarınıza erişimi kilitleme hakkında bilgi içerir.
  • Dağıtım veya ön sürüm yazılım dağıtımı — Beta yazılımınızı dağıtma hakkında bilgi içerir.
  • Ağ yönetimi — Fiziksel ağlarınıza izinsiz girişi algılama sistemleri hakkında bilgi içerir.

Tehdit modelleri ve risk azaltmaları

Dijital bilgi sahiplerinin varlıklarının şifresinin çözüleceği ortamları değerlendirebilmeleri gerekir. En düşük güvenlik standartları bildirimi, bilgi sahiplerine uygulamaların güvenlik düzeyini anlama ve değerlendirme çerçevesini sağlar.

Kamu ve sağlık sektörü gibi bazı sektörlerde, ürününüze uygulanabilecek sertifikasyon ve akreditasyon süreçleri ve standartları vardır. Bu minimum güvenlik önerilerini karşılamak, müşterilerinizin benzersiz akreditasyon ihtiyaçlarının yerini tutmaz. Bununla birlikte, güvenlik standartlarının amacı mevcut veya gelecekteki müşterilerin gereksinimleri için hazırlık yapmanıza yardımcı olmaktır ve geliştirme döngüsünün başlarında yapacağınız her yatırım uygulamanıza yararlı olacaktır. Bu yönergeler, resmi bir Microsoft sertifika programı değil önerilerdir.

Bir hak yönetimi hizmetleri sisteminde bazı önemli güvenlik açığı kategorileri vardır, bunlar:

  • Sızıntı — Bilgiler yetkisiz konumlarda ortaya çıkar.
  • Bozulma — Yazılım veya verilerde yetkisiz değişiklikler yapılır.
  • Reddetme — Bilgi işlem kaynağı kullanılamaz.

Bu konu başlıkları, öncelikle sızıntı sorunlarına odaklanır. Bir API sisteminin bütünlüğü, zaman içinde bilgileri koruyabilme ve yalnızca belirlenen varlıklara erişimi etkinleştirme becerisine bağlıdır. Bu konu başlıklarında, bozulma sorunlarına da değinilir. Reddetme sorunları ele alınmıyor.

Microsoft, minimum standardı karşılamayla ilgili test sonuçlarını test etmez veya gözden geçirmez. İş ortağı, minimum standartların karşılanmasını sağlamakla sorumludur. Microsoft, yaygın tehditleri azaltmaya yardımcı olmak için fazladan iki öneri düzeyi daha sağlar. Genel olarak, bu öneriler eklenebilir. Örneğin, tercih edilen önerilerin karşılanması, aksi belirtilmedikçe, mümkün olduğunda minimum standartları karşıladığınız varsayılır.

Standart düzeyi Description
En düşük standart Korumalı bilgileri işleyen bir uygulamanın, Microsoft'tan alınan üretim sertifikasıyla imzalanabilmesi için önce en düşük standardı karşılaması gerekir. İş ortakları genellikle yazılımın son sürümü sırasında üretim hiyerarşisi sertifikasını kullanır. Bir iş ortağının kendi iç testleri, uygulamanın bu minimum standardı karşılayıp karşılamadığını doğrulamak için kullanılır. En düşük standardın karşılanması Microsoft'un güvenlik garantisi değildir ve bu şekilde yorumlanamaz. Microsoft, minimum standardı karşılamayla ilgili test sonuçlarını test etmez veya gözden geçirmez. İş ortağı, minimum değerin karşılanmasını sağlamakla sorumludur.
Önerilen standart Önerilen yönergeler hem iyileştirilmiş uygulama güvenliği için bir yol çizer hem de daha fazla güvenlik ölçütü uygulandıkça SDK'nın nasıl gelişebileceğini gösterir. Satıcılar, bu daha yüksek güvenlik yönergeleri düzeyi oluşturarak uygulamalarını ayırt edebilir.
Tercih edilen standart Bu standart, şu anda tanımlanmış en yüksek güvenlik kategorisidir. Üst düzeyde güvenli olarak pazarlanan uygulamaları geliştiren satıcıların bu standardı hedeflemesi gerekir. Bu standarda uyan uygulamalar, büyük olasılıkla saldırılara karşı en korumalı uygulamalardır.

Kötü amaçlı yazılım

Microsoft, içeriği kötü amaçlı yazılımdan korumak için uygulamanızın uyması gereken en düşük standartları tanımlamıştır.

Adres tablolarını kullanarak kötü amaçlı yazılımları içeri aktarma

Bilgi koruma SDK'sı, çalışma zamanında kod değişikliğini veya içeri aktarma adresi tablosunun (IAT) değiştirilmesini desteklemez. İşlem alanınızda yüklenen her DLL için bir içeri aktarma adres tablosu oluşturulur. Bu, uygulamanızın içeri aktardığı tüm işlevlerin adreslerini belirtir. Yaygın saldırılardan biri de, uygulama içindeki IAT girdilerini, örneğin kötü amaçlı yazılıma işaret edecek şekilde değiştirmektir. SDK, bu tür bir saldırı algıladığında uygulamayı durdurur.

En düşük standart

  • Yürütme sırasında uygulama işleminde içeri aktarma adresi tablosunu değiştiremezsiniz. Uygulamanız, çalışma zamanında çağrılan işlevlerin çoğunu adres tablolarını kullanarak belirtir. Bu tablolar çalışma zamanı sırasında veya sonrasında değiştirilemez. Diğer şeylerin yanında, bu kısıtlama üretim sertifikası kullanılarak imzalanan bir uygulamada kod profili oluşturma işlemi gerçekleştiremezseniz anlamına gelir.
  • DebugBreak işlevini bildirimde belirtilen herhangi bir DLL'nin içinden çağıramazsınız.
  • DONT_RESOLVE_DLL_REFERENCES bayrağı ayarlanmış olarak LoadLibrary'yi çağıramazsınız. Bu bayrak, yükleyiciye içeri aktarılan modüllerle bağlamayı atlamasını, bu yolla içeri aktarma adres tablosunun değiştirilmesini bildirir.
  • /DELAYLOAD bağlayıcı anahtarında çalışma zamanı veya sonraki değişiklikler yaparak gecikmeli yüklemeyi değiştiremezsiniz.
  • Delayimp.lib yardımcı işlevinin kendi sürümünü sağlayarak gecikmeli yüklemeyi değiştiremezsiniz.
  • Bilgi koruma SDK'sı ortamı varken kimliği doğrulanmış modüller tarafından gecikmeli yüklenen modülleri kaldıramazsınız.
  • Gecikmeli modüllerin /DELAY:UNLOAD kaldırılmasını etkinleştirmek için bağlayıcı anahtarını kullanamazsınız.

Lisans haklarını yanlış yorumlama

Uygulamanız SDK verme lisansında ifade edilen hakları doğru şekilde yorumlamıyor ve zorunlu kılmazsa, bilgileri bilgi sahibinin amaçlamadığı şekillerde kullanıma sunabilirsiniz. Örneğin, bir uygulama kullanıcının şifrelenmemiş bilgileri yeni medyaya kaydetmesine izin verdiğinde, verme lisansı yalnızca bilgileri görüntüleme hakkı verdiğinde.

Azure Information Protection (AIP)

Bilgi koruma sistemi hakları birkaç gruplandırmayla düzenler. Daha fazla bilgi için bkz. Azure Information Protection için kullanım haklarını yapılandırma.

AIP, kullanıcının bilgilerin şifresini çözmesine veya çözmesine izin vermez. Bilgilerin doğası gereği herhangi bir koruması yoktur. Kullanıcının şifresini çözme hakkı varsa API buna izin verir. Uygulama, açık olduktan sonra bu bilgileri yönetmek veya korumakla sorumludur. Bir uygulama, bilgilerin yetkisiz kullanımını önlemek için ortamını ve arabirimini yönetmekle sorumludur. Örneğin, bir lisans yalnızca GÖRÜNÜM hakkı verirse Yazdır ve Kopyala düğmelerini devre dışı bırakma. Test paketiniz, uygulamanızın kabul ettiği tüm lisans haklarına uygun davrandığını doğrulamalıdır.

En düşük standart

  • XrML v.1.2 haklarının müşteri uygulaması, XrML Web sitesinde (http://www.xrml.org) bulunan XrML belirtimlerinde açıklandığı gibi bu hakların tanımlarıyla tutarlı olmalıdır. Uygulamanıza özgü olan tüm haklar, uygulamanızla ilgisi olan tüm varlıklar için tanımlanmalıdır.
  • Test paketiniz ve test işleminiz, uygulamanızın desteklediği haklara göre düzgün bir şekilde yürütüldüğünü doğrulamalıdır. Ayrıca desteklenmeyen haklar üzerinde işlem yapmadığını da doğrulamalıdır.
  • Yayımlama uygulaması oluşturuyorsanız, kullanılan iç hakları açıklayan bilgileri kullanıma sunmalısınız. Bu, yayımlama uygulaması tarafından desteklenen ve desteklenmeyenleri ve bu hakların nasıl yorumlanması gerektiğini içerir. Buna ek olarak, kullanıcı arabirimi verilen veya verilmeyen her hakkın tek tek bilgi parçaları açısından ne anlama geldiğini kullanıcıya net bir şekilde göstermelidir.
  • Bir uygulama tarafından uygulanan yeni haklar dahil edilerek soyutlanan tüm hakların yeni terminolojiyle eşlenmesi gerekir. Örneğin, YÖNETİCİ adlı yeni bir hak, soyutlama yoluyla YAZDIRMA, KOPYALAMA ve DÜZENLEME haklarını içeriyor olabilir.

Şu anda değil.

Tercih edilen standart

Şu anda değil.

Sonraki adımlar

AIP SDK'sını kullanarak uygulama için en iyi yöntemler aşağıdaki makaleleri içerir: