Aracılığıyla paylaş


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

  3. 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 strcpygü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 gibi eski tarayıcıların çalıştırılmasını gerektirir. Bu eski tarayıcı sürümleri 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.

Ayrıca bkz.