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:
Güvenlik Analizi ve Düzenleme Araçları
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:
Varlıkları Tanımlama. Bir marketin varlıkları arasında çalışanlar, kasa, kasa ve envanter yer alabilir.
Giriş Noktaları Numaralandırılıyor. Bir marketin giriş noktaları arasında ön ve arka kapılar, pencereler, yükleme rıhtımı ve klima birimleri yer alabilir.
Giriş Noktalarını Kullanarak Varlıklara Yönelik Saldırıları Araştırma. Olası bir saldırı, klima giriş noktası üzerinden bir marketin kasa varlığını hedef alabilir; kasanın mağazadan içeri ve dışarı çekilmesine izin vermek için klima ünitesinin bağlantısı kaldırı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ğlamanın kaynakları alma ve sistemle etkileşim kurma.
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:
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ışma yöntemine kadar yaygın güvenlik sorunlarını bulur. Bkz. FXCop.
Ön Ek/Hızlı: Arabellek taşması, 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: gibi
strcpy
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:
Beyaz Kutu Testi: Test ediciler kaynak kodunu görüntüler ve ardından açıklardan yararlanma testleri oluşturur.
Kara Kutu Testi: Test ediciler API'yi ve özellikleri inceleyerek güvenlik açıklarını bulmaya ve ardından ürüne saldırmaya çalışır.
Diğer Ürünlerden Gerileme Güvenlik Sorunları: İlgili olduğunda, 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 Uzzing Aracılığıyla Araçlara Dayalı Sızma Testi: Dosya uzzing, bir dosya okuyucunun çeşitli girişler aracılığıyla giriş aralığının kötüye kullanılmasıdır. 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ğini kullanarak bir güvenlik korumalı alanı oluşturur (bkz. WPF Güvenlik Stratejisi - Platform Güvenliği'nde Güvenlik Açısından Kritik 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'unun güvenlik açısından kritik koddan oluşur ve bu kod ayrılmış bir gözden geçirme ekibi tarafından gözden geçirilir. Kaynak kodu ve iade etme işlemi, güvenlik açısından kritik kodu izleyerek ve her kritik varlığı (kritik kod içeren bir yöntem) oturum kapatma durumuna eşleyerek yönetilir. Oturum kapatma 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 bkz.
.NET Desktop feedback