Aracılığıyla paylaş


WPF Güvenlik Stratejisi - Platform Güvenliği

Sırada Windows Presentation Foundation (WPF) çeşitli sağlar güvenlik hizmetleri, onu da işletim sistemi içeren temel platformu destekler CLR, ve Internet Explorer. Sağlamak için bu katmanları birleştirmek WPF bir tek hata noktası, önlemek için aşağıdaki şekilde gösterildiği gibi çalışır bir güçlü, savunma güvenlik modeli:

WPF güvenliği çizimi

Bu konu geri kalanını her ilgilidir Bu Katman Özellikleri anlatılmaktadır WPF özellikle.

Bu konu aşağıdaki bölümleri içerir.

  • İşletim sistemi güvenliği
  • Ortak dil çalışma zamanı güvenlik
  • Microsoft Internet Explorer güvenlik
  • İlgili Konular

İşletim sistemi güvenliği

Gereken işletim sisteminin en az düzeyde WPF olan Windows XP SP2. Çekirdeği, Windows XP SP2 birçok güvenlik özelliği tüm güvenlik temel form sağlar Windows uygulamaları, yerleşik ile birlikte WPF. Windows Vistagüvenlik özelliklerini içerir WPF ve daha genişletiyor. Bu konu için önemli olan bu güvenlik özelliklerini avantajlarına anlatılır WPF, aynı zamanda nasıl WPF daha fazla savunma sağlamak için onlarla tümleştirir-içinde-derinlik.

Microsoft Windows XP Service Pack 2 (SP2)

Ek olarak genel gözden geçirip, güçlendirme Windows, üç anahtar özellikleri vardır Windows XP SP2 , biz Bu konu tartışılacak:

  • /gs derleme

  • Microsoft Windows Update.

/gs derleme

Windows XP SP2Tüm birlikte birçok çekirdek sistem kitaplıklarını yeniden derlenerek koruma sağlar WPF gibi baðýmlýlýklarý CLR, yardımcı etkisini arabellek taşması. Bu c/C++ komut satırı derleyicisi ile /gs parametresi kullanılarak sağlanır. Arabellek taşmaları açıkça kaçınılmalıdır rağmen /gs derleme bir-savunma yanlışlıkla veya kötü niyetle bunları tarafından oluşturulan olası güvenlik açıklarına karşı gösteren bir örnek sağlar.

Tarihsel olarak, Arabellek taşmaları çok etkileyici güvenlik açıklarını neden olmuştur. Bir saldırgan arabellek sınırlarını Yazar kötü amaçlı kodu eklenmesine izin veren bir kod güvenlik açığından yararlanan bir arabellek taşması oluşur. Bu saldırganın kod yürütülmesine neden olacak bir işlevin dönüş adresini yazarak kod yürütme işlemi ele geçirip bir saldırganın sağlar. Rasgele kod ile aynı ayrıcalıkları ele geçirilen işlem yürütür kötü amaçlı kod sonucudur.

Yüksek düzeyde, yerel dize arabellekler içeren bir işlevin dönüş adresini korumak için özel güvenlik tanımlama bilgisi ekleyerek /gs derleyici bayrak bazı olası Arabellek taşmaları karşı korur. Bir işlev dönüşünden sonra güvenlik tanımlama bilgisi önceki değeriyle karşılaştırılır. Değeri değişirse, bir arabellek taşması oluştu ve bir hata koşulu ile işlemi durdurulur. İşlemin durdurulması, kötü amaçlı kod yürütülmesini engeller. Bkz: (arabellek güvenlik denetimi) /gs daha fazla ayrıntı için.

WPFsavunma için henüz başka bir katman eklemek için /gs bayrakla derlenmiş WPF uygulamaları.

Microsoft Windows Update geliştirmeleri

Microsoft Windows Updateiçinde arttı Windows XP SP2 için işlemini karşıdan yükleme ve yükleme güncelleştirmeleri. Bu değişiklikler için güvenlik önemli ölçüde geliştiren WPF müşterilerin sistemlerini özellikle açısından güncel olmasını sağlamak için yardımcı olarakgüvenlik güncelleştirmelerini.

Windows Vista

WPFKullanıcılar Windows Vista gelen işletim sistemi ek güvenlik geliştirmeleri, "en az ayrıcalık kullanıcı erişim", kod bütünlük denetimleri ve dahil olmasıayrıcalık yalıtım.

User Account Control (UAC)

Bugün, Windows birçok uygulama yükleme veya yürütme veya her ikisi için bunları gerektirdiğinden yönetici ayrıcalıklarıyla çalıştırmak için kullanıcıların eğilimlidir. Varsayılan uygulama ayarlarını kayıt defterine yazma için bir örnektir.

Yönetici ayrıcalıklarıyla çalışan uygulamalar, yönetici ayrıcalıkları verilmiş işlemlerini yürütmek gerçekten anlamına gelir. Bu güvenlik etkisi kritik sistem kaynaklarına erişim de dahil olmak üzere bu ayrıcalıklar, yönetici ayrıcalıklarıyla çalışan bir işlemi ele geçirilmesini herhangi bir kötü amaçlı kod otomatik olarak alırlar ' dir.

Bu güvenlik tehditlerine karşı korumak için bir çok az gerekli ayrıcalıkları uygulamaları çalıştırmak için yoludur. Bu en az ayrıcalık İlkesi bilinen ve bir çekirdek özelliği olan Windows Vista işletim sistemi. Bu özellik, kullanıcı hesabı denetimi (uac) denir ve tarafından kullanılan Windows Vista iki önemli şekilde uac:

  • Çoğu uygulama, kullanıcı bir yönetici olsa bile, varsayılan olarak, uac ayrıcalıklarla çalıştırmanız için; Yönetici ayrıcalıkları gerektiren uygulamalar yönetici ayrıcalıklarıyla çalışır. Yönetimsel ayrıcalıklarla çalışmasına uygulamaları açıkça ya da kendi uygulama bildirim veya güvenlik ilkesi içinde bir giriş olarak işaretlenmelidir.

  • Uyumluluk sağlamak için Sanallaştırma Çözümleri gibi çalışır. Örneğin, birçok uygulama C:\Program Files gibi kısıtlı konumlara yazmaya çalışın. uac altında çalışan uygulamalar için bir alternatif kullanıcı konumu yazmak için yönetici ayrıcalıkları gerektirmez bulunmaktadır. Aslında alternatif, kullanıcı başına konuma yazma için yazıyorsanız düşünmek uygulamaları, böylece uac altında çalışan uygulamalar için C:\Program Files uac oluşturur. Bu tür bir uyumluluk iş daha önce uac çalıştıramayan pek çok uygulamayı işletim sistemi sağlar.

Kod bütünlüğü denetimi

Windows Vistasistem dosyalarını veya çekirdek yükü/çalışma zamanında Püskürtülen gelen kötü amaçlı kod önlemeye yardımcı olmak için daha derin kod bütünlüğü denetimleri içerir. Bu, Sistem Dosya Koruması gider.

Tarayıcı barındırılan uygulamalar için sınırlı haklar işlemi

Tarayıcı barındırılan WPF uygulamaları yürütme içinde Internet bölgesi sandbox. WPFile tümleştirme Microsoft Internet Explorer genişleten bu koruma ile ek destek.

Internet Explorer 6 Service Pack 2 ve xp için Internet Explorer 7

WPFişletim sistemi güvenliği için işlem ayrıcalıkları sınırlayarak kaldıraç görevi yapar XAML browser applications (XBAPs) için daha fazla koruma. Tarayıcı barındırılan bir önce WPF uygulama başlatıldığında, işletim sistemi oluşturur bir ana bilgisayar işlemi İşlem belirteci gereksiz ayrıcalıklarına kaldırır Bazı kaldırılır ayrıcalıkları kullanıcının makine yük sürücüleri ve okuma erişimi makine üzerindeki tüm dosyaları kapatmaya yeteneği örnekleridir.

Vista için Internet Explorer 7

De Windows Internet Explorer 7, WPF uygulamaları çalıştırmak korumalı mod. Özellikle XAML browser applications (XBAPs) çalışması ile orta düzeyde bütünlük.

Savunma katmanı

Bu yana XAML browser applications (XBAPs) Internet bölgesi izin kümesi, bu ayrıcalıkları kaldırılıyor zarar değil tarafından genellikle Kutulu olan XAML browser applications (XBAPs) bir uyumluluk açısından. Bunun yerine bir ek-savunma katmanı oluşturulur; Kutulu bir uygulama diğer katmanları yararlanma ve işlemi ele geçirip, işlemi ayrıcalıkları hala yalnızca sınırlı olacağını.

Bakın en az ayrıcalıklı kullanıcı hesabı kullanarak.

Ortak dil çalışma zamanı güvenlik

common language runtime (CLR) Anahtar güvenlik avantajlarını doğrulama ve doğrulama, dahil bir dizi sunan Code Access Security (CAS)ve güvenlik kritik bir metodoloji.

Doğrulama ve doğrulama

Derleme yalıtım ve bütünlüğünü sağlamak için CLR kullanan bir işlem doğrulama. CLRderlemeler derlemenin dışından gösteren adresler için taşınabilir yürütülebilir (pe) dosya biçimlerinde doğrulayarak yalıtılmış doğrulama sağlar. CLRdoğrulama, ayrıca bir derlemenin içinde gömülü meta veri bütünlüğünü doğrular.

Tür güvenliği sağlamak için ortak güvenlik sorunları (örneğin engellemek taşmaları arabellek) ve kum havuzuna alma sub-process yalıtım aracılığıyla etkinleştirme CLR güvenliği kullanan kavramı, doğrulama.

Yönetilen uygulamalar Microsoft ara dili (MSIL içine) derlenir. Yönetilen uygulama yöntemleri çalıştırıldığında, kendi MSIL Just-In-Time (JIT) derleme yoluyla yerel kod halinde derlenir. JIT derleme kod içermez emin birçok güvenlik ve sağlamlık kuralları uygulayan bir doğrulama işlemi aşağıdakileri içerir:

  • Tür sözleşmeler ihlal

  • Arabellek taşmaları tanıtmak

  • Kullanıldıkları belleği erişir.

Güvenilen kod kabul sürece doğrulama kurallarına uymuyor yönetilen kod yürütmek için izin verilmez.

Avantajı doğrulanabilir kod, önemli bir nedeni neden olduğunu WPF üzerine .NET Framework. Doğrulanabilir kod kullanılır olan, olası güvenlik açıklarından yararlanarak olasılığını büyük ölçüde azaltıldığı.

Code Access Security

Bir istemci makine yönetilen bir uygulamaya erişim için dosya sistemi, kayıt defteri, yazdırma hizmetleri, kullanıcı arabirimi, yansıtma ve ortam değişkenlerini dahil olabilir kaynakları, çeşitli sergiler. Yönetilen uygulamayı istemci makinesinde kaynakları erişmeden önce olması gerekir .NET Framework Code Access Security (CAS) uğraştırıcı izni Bir izin CAS bir alt sınıfı olan CodeAccessPermission; CASImplements uygulamaları yönetilen her kaynak için bir alt sınıf erişebilirsiniz.

Yönetilen uygulama tarafından verilen izinler kümesi CAS başladığında, yürütme izin kümesi olarak bilinen ve kanıt sağladığı tarafından belirleniruygulama. İçin WPF uygulamaları, sağlanan bir kanıt olduğu yer veya bölge, kendisinden uygulamalar başlattı. CASaşağıdaki bölgeleri tanımlar:

  • Bilgisayarımı. Uygulamaları istemci makinesinden (tam olarak güvenilir) başlattı.

  • Yerel Intranet. İntranetinden başlatılan uygulamalar. (Biraz güvenilen).

  • Internet. Internet'ten başlatılan uygulamalar. (En az güvenilen).

  • Güvenilen siteler. Güvenilir olarak bir kullanıcı tarafından tanımlanan uygulamaları. (En az güvenilen).

  • Güvenilmeyen siteleri. Güvenilmeyen gibi bir kullanıcı tarafından tanımlanan uygulamaları. (Güvenilmeyen).

Bu bölgelerin her biri için CAS ilişkili güven düzeyini eşleşen izinlerini içeren bir önceden tanımlanmış izin kümesini sağlar. These include:

  • FullTrust. Karşı başlatılan uygulamalar için Bilgisayarım bölgesi. Olası tüm izinler verilir.

  • LocalIntranet. Karşı başlatılan uygulamalar için Yerel Intranet bölgesi. İzinleri alt orta yalıtılmış depolama, sınırsız kullanıcı Arabirimi erişimi, sınırsız dosya iletişim kutuları, sınırlı yansıtma, ortam değişkenleri sınırlı erişim de dahil olmak üzere, istemci makinenin kaynaklara erişim sağlamak için verilmiş. Kayıt Defteri gibi önemli kaynakların izinlerini sağlanmadı.

  • Internet. Karşı başlatılan uygulamalar için Internet veya Güvenilen siteler bölgesi. İzinleri alt, yalıtılmış depolama, istemci makinenin kaynaklara sınırlı erişim dosya açmak koşuluyla sadece verilir ve kullanıcı Arabirimi sınırlıdır. Aslında, bu izni yalıtır uygulamaları istemci makinesinden ayarlar.

Uygulamalar arasında olarak tanımlanan Güvenilmeyen siteleri bölge tarafından izin verilen CAS . Sonuç olarak, önceden tanımlanmış bir izin kümesi için yok.

Aşağıdaki şekil, bölgeleri, izin kümeleri, izinleri ve kaynaklar arasındaki ilişkiyi göstermektedir.

CAS izin kümeleri

Internet bölgesi güvenlik sanal uygulamak eşit herhangi biri kısıtlamaları kod bir XBAP bir sistem Kitaplığı'ndan alır gibi WPF. Bu kodun her bit kilitli, hatta olmasını WPF. Ne yazık ki, yürütmek için bir XBAP etkin olarak olandan daha fazla izinleri gerektiren işlevleri yürütmek gerekiyorInternet bölgesi güvenlik sandbox.

Düşünün bir XBAP aşağıdaki sayfayı içeren uygulama:

            Dim fp As New FileIOPermission(PermissionState.Unrestricted)
            fp.Assert()

            ' Perform operation that uses the assert

            ' Revert the assert when operation is completed
            CodeAccessPermission.RevertAssert()
FileIOPermission fp = new FileIOPermission(PermissionState.Unrestricted);
fp.Assert();

// Perform operation that uses the assert

// Revert the assert when operation is completed
CodeAccessPermission.RevertAssert();

Bunu yürütmek için XBAP, temeldeki WPF daha fazla işlevsellik daha kullanılabilir arama kod yürütmesine gerekir XBAPdahil:

  • Oluşturma işlemi için bir pencere tanıtıcısı (hWnd) oluşturma

  • İletileri gönderme

  • Tahoma yazı tipi yükleme

Güvenlik ile Kutulu uygulamadan Bu işlemlerden herhangi biri için doğrudan erişim sağlayarak görüş, çok zararlı olur.

Neyse ki, WPF Bu işlemleri yürütme adına yükseltilmiş ayrıcalıklarla sağlayarak bu durum için catersKutulu uygulama. Tüm sırasında WPF işlemleri sınırlı Internet bölgesi güvenlik izinlerini uygulama etki alanını karşı denetlenir XBAP, WPF (diğer sistem kitaplıklarını olduğu gibi) tüm olası izinleri içeren bir izin kümesi verildi

Bunun WPF engelleyerek Internet bölgesi izin kümesini tabidir gelen bu ayrıcalıklarını sırasında yükseltilmiş ayrıcalıklar alırana uygulama etki alanı.

WPFBunu kullanarak yapar Assert izin yöntemi. Aşağıdaki kod, bunun nasıl olacağını gösterir.

            Dim fp As New FileIOPermission(PermissionState.Unrestricted)
            fp.Assert()

            ' Perform operation that uses the assert

            ' Revert the assert when operation is completed
            CodeAccessPermission.RevertAssert()
FileIOPermission fp = new FileIOPermission(PermissionState.Unrestricted);
fp.Assert();

// Perform operation that uses the assert

// Revert the assert when operation is completed
CodeAccessPermission.RevertAssert();

Assert aslında gerektirdiği sınırsız izinlerini engeller WPF tarafından Internet kısıtlı izinleri bölge XBAP.

Platform açısından, WPF sorumludur kullanarak Assert doğru; bir yanlış kullanımından Assert ayrıcalık yükseltmesine kötü amaçlı kod çalıştırılmasına izin. Sonuç olarak, yalnızca çağırmak önemlidir Assert gerektiğinde, bu sanal sağlamak için kısıtlamalar değişmeden kalır. Örneğin, Kutulu kod rasgele dosyaları açmak için izin verilmez, ancak yazı tiplerini kullanmasına izin verilir. WPFyazı tipi işlevini çağırarak Kutulu uygulamaların erişimini sağlar Assertve WPF okunur dosyaları bilinen içermesi, bu yazı tiplerinin yerine korumalı bir uygulama.

ClickOnce Deployment

ClickOnceiçerdiği kapsamlı dağıtım teknolojisini .NET Frameworkve ile entegre Microsoft Visual Studio (bkz: ClickOnce dağıtımı genel bakış ayrıntılı bilgi için). Tek başına WPF uygulamaları dağıtılacak kullanarak ClickOnce, sırada tarayıcı barındırılan uygulamaların dağıtılmış, ile ClickOnce.

Kullanılarak dağıtılan uygulamalar ClickOnce anda bir ek güvenlik katmanı Code Access Security (CAS); Aslında, ClickOnce dağıtılan uygulamalar izinleri iste o bunlar gerek. Bu izinleri verilen bunlar uygulama dağıtmış, bölge için izinler kümesi aşmaması durumunda. Fırlatma bölgenin izin kümesi tarafından uygulama erişimi olan kaynakların sayısını olması koşuluyla olanlar daha az olsalar bile, yalnızca gerekli olan izin kümesini azaltarak bir yürütmem azaltın. Sonuç olarak, uygulama geçirilirse, istemci makinenin hasar olasılığı azalır.

Kritik metodolojisi

WPF Etkinleştirmek için Internet bölgesi sandbox izinleri kullanan kod XBAP uygulamaları tutulan, en yüksek olası derecede güvenlik denetimi ve denetim. Bu gereksinim kolaylaştırmak için .NET Framework kod, yükseltir yönetmek için yeni destek sağlarayrıcalığı. Özellikle, CLR ayrıcalık yükseltir kodunu belirlemenize ve onunla işaretleme sağlar SecurityCriticalAttribute; herhangi bir kod ile işaretlenmemiş SecurityCriticalAttribute olur Saydam bu yöntemi kullanarak. Buna karşılık, yönetilen işaretlenmemiş kod SecurityCriticalAttribute engellenir elevating ayrıcalık.

Kritik metodoloji organizasyonu sağlayan WPF kod içine ayrıcalık yükseltir kritik çekirdek, saydam olan geri kalan. Kritik güvenlik kodunu çözme sağlayan WPF Ekip mühendislik odaklanmak bir ek güvenlik çözümlemesi ve kaynak denetimi yuvasız standart güvenlik uygulamaları kritik çekirdeğini (bkz: WPF Güvenlik Stratejisi - Güvenlik Mühendisliği).

Dikkat .NET Framework genişletmek için güvenilen kod verir XBAP Internet bölgesi sandbox sağlayarak geliştiricileri yönetilen derlemeler ile işaretlenmiş yazmak için AllowPartiallyTrustedCallersAttribute (aptca) ve kullanıcının genel derleme önbelleği (gac) için dağıtılan. Internet'ten zararlı kod da dahil olmak üzere, bu derleme çağırmak herhangi bir kod verir aptca sahip bir derleme işaretleme oldukça duyarlı güvenlik işlemi aynıdır. Aşırı dikkat ve en iyi uygulamalar bunu yaparken kullanılmalıdır ve kullanıcılar bu yazılım yüklenmesi için sırayla güvenmeyi seçmeniz gerekir.

Microsoft Internet Explorer güvenlik

Güvenlik sorunları azaltmak ve güvenlik yapılandırması basitleştirme ötesine Microsoft Internet Explorer 6 (SP2) kullanıcıları için güvenlik geliştirmek o güvenlik geliştirmeleri içeren çeşitli özellikler XAML browser applications (XBAPs). Bu özelliklerin thrust kullanıcılar kendi tarama deneyimi üzerinde daha fazla denetim sağlamak çalışır.

Önce IE6 SP2, kullanıcıların aşağıdakilerden herhangi birini tabi olabilir:

  • Rasgele popup windows.

  • Karmaşık komut dosyası yeniden yönlendirmesi.

  • Bazı Web sitelerinde çok sayıda güvenlik iletişim kutuları.

Bazı durumlarda, kullanıcılar yükleme bilgi sızdırma kandırmak etmekten kaçınan Web sitelerini deneyin user interface (UI) tekrar tekrar gösterme veya bir Microsoft ActiveX yükleme iletişim kutusunda, kullanıcı iptal it. olsa Bu tekniklerin kullanımı, kullanıcıların çok sayıda casus yazılım uygulamalarını yükleme ile sonuçlanan kötü kararları içine sağladı, mümkündür.

IE6 SP2Bu tür kullanıcı başlangıç kavramı Uzayda Döndür sorunların etkisini azaltmak için çeşitli özellikler içerir. IE6 SP2olarak bilinen bir eylem için önce bir bağlantı veya sayfa öğesinin bir kullanıcı tarafından tıklandığı zaman algılar kullanıcı başlangıçve ne zaman benzer bir eylem yerine bir sayfadaki komut tarafından tetiklenir farklı şekilde davranır. Örnek olarak IE6 SP2 sunan bir Açılır Pencere Engelleyicisi kullanıcı açılır pencere oluşturma sayfası için önce bir düğmeyi tıklattığında algılar. Böylece IE6 SP2 izin vermek için en innocuous açılır pencereler açılır pencereleri engelleme çalışırken, kullanıcılar ne sor ve istediğiniz. Engellenen Açılır pencereleri yakalanan altında yeni Bilgi Çubuğu, el ile engelleme geçersiz kılmak ve açılır pencere görüntülemek kullanıcı sağlar.

Aynı kullanıcı başlangıç mantığı da uygulandığı açık/kaydetmek güvenlik ister. ActiveXönceden yüklenmiş bir denetimden yükseltme temsil ettikleri sürece yükleme iletişim kutularını altında Bilgi Çubuğu'nu her zaman yakalanır. İstenmeyen veya kötü amaçlı yazılım yüklemek için bunları taciz sitelerine karşı korunan bu yana kullanıcılara daha güvenli, daha kontrollü bir kullanıcı deneyimi sağlamak için bu önlemleri birleştirin.

Bu özellikleri kullanan müşteriler de koruma IE6 SP2 bunları karşıdan yüklemek ve kurmak izin web sitelerine göz WPF uygulamaları. Özellikle, bu, çünkü IE6 SP2 kullanıcılar da dahil olmak üzere, oluşturmak için hangi teknoloji kullanıldı bağımsız olarak kötü amaçlı ya da devious uygulamaları yüklemek olasılığını azaltır daha iyi bir kullanıcı deneyimi sunan WPF. WPFBu korumalar kullanarak ekler ClickOnce için kolaylaştırmak karşıdan yükleme uygulamaları üzerinden Internet. Bu yana XAML browser applications (XBAPs) Internet bölgesi güvenlik sanal içinde yürütmek, sorunsuz baþlatýlabilir. Diğer yandan, tek başına WPF uygulamaları çalıştırmak için tam güven gerektiren. Bu uygulamalar için ClickOnce bir kullanımı bildirmek için başlatma işlemi sırasında güvenlik iletişim kutusunu görüntüleruygulamanın ek güvenlik gereksinimleri. Ancak, bu kullanıcı tarafından başlatılan olmalı, ayrıca kullanıcı mantık tarafından yönetilir ve iptal edilebilir.

Internet Explorer 7eklediğini ve güvenlik yeteneklerini genişleten IE6 SP2 Güvenlik çabalarının bir parçası olarak

Ayrıca bkz.

Kavramlar

kod erişim güvenlik

Güvenlik (WPF)

WPF Kısmi Güven Güvenliği

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

Diğer Kaynaklar

Windows xp SP2'de Microsoft Internet Explorer 6 güvenliği anlama

anlama ve korumalı mod Internet Explorer'ın çalışan

Windows xp Service Pack 3'ü

Windows Vista Güvenlik Kılavuzu