WPF Güvenlik Stratejisi - Güvenlik Mühendisliği

Güvenilir Bilgi İşlem, güvenli kod üretimini sağlamaya yönelik bir Microsoft girişimidir. Güvenilir Bilgi İşlem girişiminin temel öğelerinden biri Microsoft Güvenlik Geliştirme Yaşam Döngüsü (SDL) 'dir. SDL, güvenli kodun teslimini kolaylaştırmak için standart mühendislik süreçleriyle birlikte kullanılan bir mühendislik uygulamasıdır. SDL, en iyi yöntemleri resmileştirme, ölçülebilirlik ve ek yapı ile birleştiren on aşamadan oluşur:

  • Güvenlik tasarımı analizi

  • Araç tabanlı kalite denetimleri

  • Sızma testi

  • Son güvenlik incelemesi

  • Yayın sonrası ürün güvenliği yönetimi

WPF Özellikleri

WPF mühendislik ekibi SDL'yi hem uygular hem de genişletir ve bunların birleşimi aşağıdaki temel özellikleri içerir:

Tehdit Modelleme

Güvenlik Analizi ve Düzenleme Araçları

Test Teknikleri

Kritik Kod Yönetimi

Tehdit Modelleme

Tehdit modelleme, SDL'nin temel bir bileşenidir ve olası güvenlik açıklarını belirlemek üzere bir sistemin profilini oluşturmak için kullanılır. Güvenlik açıkları belirlendikten sonra tehdit modellemesi de uygun risk azaltmaların gerçekleşmesini sağlar.

Tehdit modellemesi, bir marketi örnek olarak kullanarak üst düzeyde aşağıdaki temel adımları içerir:

  1. Varlıkları Tanımlama. Bir marketin varlıkları arasında çalışanlar, kasa, kasa ve envanter yer alabilir.

  2. Giriş Noktalarını Numaralandırma. Bir marketin giriş noktaları arasında ön ve arka kapılar, pencereler, yükleme rıhtımı ve klima birimleri yer alabilir.

  3. Giriş Noktalarını Kullanarak Varlıklara Yönelik Saldırıların Araştırılması. Olası bir saldırı, bir marketin kasasını hedef alabilir; klima giriş noktası içinden çekilmesine olanak sağlamak için klima ünitesi vidalarından sökülebilir ve kasa mağazadan çıkarılabilir.

Tehdit modellemesi WPF'nin her tarafından uygulanır ve aşağıdakileri içerir:

  • XAML ayrıştırıcısının dosyaları okuması, metni ilgili nesne modeli sınıflarıyla eşlemesi ve gerçek kodu oluşturması.

  • Bir pencere tutamacının (hWnd) nasıl oluşturulduğu, ileti gönderdiği ve bir pencerenin içeriğini işlemek için nasıl kullanıldığı.

  • Veri bağlama, kaynakları nasıl elde eder ve sistemle nasıl etkileşim kurar.

Bu tehdit modelleri, geliştirme sürecinde güvenlik tasarımı gereksinimlerini ve tehdit azaltmalarını tanımlamak için önemlidir.

Kaynak Çözümleme ve Düzenleme Araçları

WPF ekibi, SDL'nin el ile güvenlik kodu gözden geçirme öğelerine ek olarak, güvenlik açıklarını azaltmak için kaynak analizi ve ilişkili düzenlemeler için çeşitli araçlar kullanır. Çok çeşitli kaynak araçları kullanılır ve aşağıdakileri içerir:

Uyarı

Kod Erişim Güvenliği (CAS) modern .NET tarafından desteklenmez, yalnızca .NET Framework kavramıdır. CAS ile ilgili tüm işlevler tam güven varsayımı altında ele alır. Daha fazla bilgi için bkz. WPF .NET ile Farklılıklar - Kod Erişim Güvenliği.

  • FXCop: Yönetilen kodda devralma kurallarından kod erişimi güvenlik kullanımına ve yönetilmeyen kodla güvenli bir şekilde birlikte çalışmaya kadar değişen yaygın güvenlik sorunlarını bulur. Bkz: FXCop.

  • Prefix/Prefast: Arabellek taşmaları, biçim dizesi sorunları ve hata denetimi gibi yönetilmeyen kodda güvenlik açıklarını ve yaygın güvenlik sorunlarını bulur.

  • Yasaklanmış API'ler: strcpygibi güvenlik sorunlarına neden olduğu bilinen işlevlerin yanlışlıkla kullanımını belirlemek için kaynak kodu arar. Tanımlandıktan sonra, bu işlevler daha güvenli alternatiflerle değiştirilir.

Test Teknikleri

WPF aşağıdakileri içeren çeşitli güvenlik testi tekniklerini kullanır:

  • Whitebox Testing: Sınayıcılar kaynak kodunu görüntüler ve ardından açıklardan yararlanma testleri oluşturur.

  • Blackbox Testing: Test ediciler API'yi ve özellikleri inceleyerek güvenlik açıklarını bulmaya çalışır ve ardından ürüne saldırmaya çalışır.

  • Diğer Ürünlerden Gelen Güvenlik Sorunlarının Yeniden Ortaya Çıkması: İlgili durumlarda, ilgili ürünlerden gelen güvenlik sorunları test edilir. Örneğin, Internet Explorer için yaklaşık altmış güvenlik sorununun uygun varyantları tanımlanmış ve WPF'ye uygulanabilirliği için denenmiştir.

  • dosya fuzzingaracılığıyla sızma testi Tools-Based: Dosya fuzzing, bir dosya okuyucunun giriş aralığının çeşitli girişler aracılığıyla kötüye kullanılmasını ifade eder. Wpf'de bu tekniğin kullanıldığı örneklerden biri, görüntü kod çözme kodunda hata olup olmadığını denetlemektir.

Kritik Kod Yönetimi

XAML tarayıcı uygulamaları (XBAP'ler) için WPF, ayrıcalıkları yükselten güvenlik açısından kritik kodu işaretlemek ve izlemek için .NET Framework desteği kullanarak bir güvenlik korumalı alanı oluşturur (bkz. WPF Güvenlik Stratejisi - Platform Güvenliği) Security-Critical Metodoloji). Güvenlik açısından kritik kodla ilgili yüksek güvenlik kalitesi gereksinimleri göz önünde bulundurulduğunda, bu tür kod ek bir kaynak yönetimi denetimi ve güvenlik denetimi düzeyi alır. WPF'nin yaklaşık %5% ile %10%'i, ayrılmış bir ekibin gözden geçirdiği güvenlik açısından kritik koddan oluşur. Kaynak kodu ve check-in işlemi, güvenlik açısından kritik kodu izleyerek ve her kritik varlığı (kritik kod içeren bir yöntemi) onay durumuna eşleyerek yönetilir. Onay durumu, bir veya daha fazla gözden geçirenin adını içerir. WPF'nin her günlük derlemesi, onaylanmamış değişiklikleri denetlemek için kritik kodu önceki derlemelerdeki kodla karşılaştırır. Bir mühendis gözden geçirme ekibinin onayı olmadan kritik kodu değiştirirse, hemen tanımlanır ve düzeltilir. Bu işlem WPF korumalı alan kodu üzerinde özellikle yüksek düzeyde incelemenin uygulanmasını ve bakımını sağlar.

Uyarı

XBAP'ler, Internet Explorer ve Firefox'un eski sürümleri gibi eski tarayıcıların çalıştırılmasını gerektirir. Bu eski tarayıcılar genellikle Windows 10 ve Windows 11'de desteklenmez. Modern tarayıcılar artık güvenlik riskleri nedeniyle XBAP uygulamaları için gereken teknolojiyi desteklemiyor. XBAP'leri etkinleştiren eklentiler artık desteklenmemektedir. Daha fazla bilgi için bkz. WPF tarayıcı tarafından barındırılan uygulamalar (XBAP)hakkında sık sorulan sorular.

Ayrıca bakınız