Varsayılan Güvenlik Politikaları

Varsayılan Güvenlik Politikaları Geçen yazımızda bahsettiğimiz izin kümelerine ait varsayılan izin değerlerini varsayılan güvenlik politikaları başlığı altında inceleyeceğiz. Makine politikası aşağıda belirtilen varsayılan değerlere göre ayarlanmıştır. Makine güvenlik politikası ayarları bilfiil var olan varsayılan güvenlik politikası ayarlarını belirler. Bu yüzden izin verilmiş izin kümelerinin belirlenmesini belirleyen ana etkendir. Ayrıca aşağıdaki tabloda makine politikası ve isimlendirilmiş izin kümelerinin varsayılan olarak aldıkları varsayılan kod gruplarıyla gösterilmiştir. Kod Grubu Varsayılan Olarak Alınmış Olan İsimlendirilmiş İzin Kümesi My Computer Zone (yerel bilgisayarda çalışan kodlar) Microsoft Strong Name (Microsoft Strong Name ile imzalanmış kodlar) ECMA Strong Name (ECMA strong name ile imzalanmış kodlar) Full Trust (Tam Güven) Local Intranet Zone (Yer ağ üzerinden çalışan kodlar) Local Intranet (Yerel Ağ) Internet Zone (İnternet üzerinden gelen kodlar) Trusted Zone (Internet Explorer"da güvenilir olarak belirlenmiş sitelerden gelen kodlar) Internet (İnternet) All Code (.NET Framework tarafından yönetilen tüm kodlar) Restricted Zone (Internet Explorer"da sınırlandırılmış sitelerden gelen kodlar) Nothing (Hiç bir izin verilmez...) Önemli Not: .NET Framework 1.0 Service Pack 1 ve Service Pack 2 " de Internet Zone Code Grubu "Nothinng" olarak isimlendirilmiş izin kümesini alırlar, yani hiç bir izin verilmez. Daha sonraki tüm .NET Framework sürümlerinde, tabloda da gösterildiği gibi İnternet Zone kod grubu "Internet" olarak isimlendirilmiş izin kümesini alırlar. Microsoft Strong Name: Strong Name bir asssembly"nin kimliğini (Assembly"nin adı, versiyon numarası, ve tabi ki varsa kullanılan kültür bilgisi), genel anahtarını(public key) ve dijital imzasını içerir. Microsoft® Visual Studio® .NET ve .NET Framework SDK ile gelen diğer yazılım geliştirme araçları assembly"lere strong name verebilmektedir. Verilen her strong name"in tek olduğu düşünüldüğünde aynı strong name"e sahip assembly"lerin özdeş oldukları düşünülür. .NET Framework, daha önceki makalelerimizde de bahsettiğimiz genel-özel(public-private key) anahtar şifreleme tekniğini kullanmaktadır. Anahtar yönetmek, imza üretmek, ve imza doğrulanması için .NET Framework SDK ile gelen sn.exe aracını kullanabilirsiniz. Kendi strong name"inizi üretmek için sn.exe aracını kullanabilirsiniz. Bu yazılım aracının kullanımına ait bir kaç örnek aşağıda gösterilmiştir: Kullanımı Açıklaması "sn -Tp " "nin genel anahtarını gösterir "sn -v " "nin strong name"nin geçerliliğini denetler "sn -k " yeni rastgele bir anahtar çifti oluşturup,  ile belirtilen dosyaya yazar "sn -h" sn aracıyla ilgili yardım menüsünü gösterirECMA Strong Name: .NET Framework tarafından destekelenen, ECMA (European Computer Manufacturers Association)  Avrupa Bilgisayar Üreticileri Birliğine ait strong name"lerdir. All Code ile bütün kodlar "Nothing" permission"i almış olsalar bile, hiç bir kodun hiç bir izin alamayacağı anlamına gelmez. Çünkü bir koda ait tüm izin kümelerinin birleşiminden sonra elde edilen izin kümesi o kodun izin kümesini belirler. Aşağıdaki tabloda ise var olan izin nesneleri ve bu nesnelerin varsayılan izin kümelerindeki ayarlarını gösterilmiştir. Örneğin, yerel ağ üzerindeki bir kod Local Intranet izin kümesini alır. DnsPermission ve FileDialogPermission"ları tam olarak alabilmektedir. İzin Full Trust (Tam Güvenilir)İzin Kümesi(Burada yer almayan diğer tüm izinlere sınırsız erişim) Nothing İzin Kümesi(Çalışma ya da erişim için hiç bir izin verilmez) Local Intranet(Yerel Ağ) İzin Kümesi Internet (İnternet) İzin Kümesi DnsPermission Sınırsız Erişim Yok Sınırsız Erişim Yok EnvironmentPermission Sınırsız Erişim Yok Ortam değişkenlerini okuma Erişim Yok EventLogPermission Sınırsız Erişim Yok Sınırsız Erişim Yok FileDialogPermission Sınırsız Erişim Yok Instrument Aç IsolatedStoragePermission Sınırsız Erişim Yok AssemblyIsolationByUser DomainIsolationByUser PrintingPermission Sınırsız Erişim Yok DefaultPrinting SafePrinting ReflectionPermission Sınırsız Erişim Yok ReflectionEmit Erişim Yok SecurityPermission Sınırsız Erişim Yok Execution Assertion Execution UIPermission Sınırsız Erişim Yok Sınırsız SafeTopLevelWindows OwnClipboardÖnemli Not:PrintingPermissionLevel, yazıcıya bağlı bir bilgisayardaki yazıcının kullanımına ait güvenlik seviyesini belirleyen bir enum"dır. DefaultPrinting seviyesi varsayılan yazıcı üzerinden çıktı almanıza izin veren seviyedir. SafePrinting seviyesi DefaultPrinting seviyesinin alt kümesidir. Sınırlandırılmış bir iletişim kutusu ile çıktı almanıza izin veren seviyedir.EventLogPermissionAccess, olay günlükçüsüne olan erişimlere ait güvenlik seviyesini belirleyen bir enum"dır. Instrument seviyesiyle, EventLog sınıfı ile var olan kayıtları okuyabilir, değiştirebilirsiniz. Yenilerini de yaratabilirsiniz, ancak silemezsiniz.IsolatedStorageContainment, Isolated Storage kullanımına ait güvenlik seviyesini belirleyen bir enum"dır. AssemblyIsolationByUser seviyesiyle, bellek öncelikle kullanıcıya sonra assembly"e ayrılır. DomainIsolationByUser seviyesiyle, bellek öncelikle kullanıcıya, sonra domain(etki alanı) "e ardından assembly"e ayrılır.ReflectionPermissionFlag, ReflectionPermission sınıfının kullandığı izin seviyesini belirleyen bir enum"dır. ReflectionEmit, System.Reflection.Emit namespace"nin kullanımına izin veren seviyedir. SecurityPermissionFlag , SecurityPermission nesnesine erişimler için kullanılan izin seviyesini belirleyen bir enum"dır. Execution kodun çalıştırılması için gerekli izni belirler. Assertion, belirtilen işlem için bu kodu çağıranların gerekli izin ve ayrıcalıklara sahip olup olmadığının denetlenmesidir. UIPermissionWindow, UIPermission sınıfı tarafından kullanılan, kullanılacak pencerenin tipiyle ilgili gerekli izin seviyesini belirleyen bir enum" dır. SafeTopLevelWindows, kullanıcılar sadece en üstteki formları çizim için kullanabilirler. UIPermissionClipboard, UIPermission sınıfı tarafından kullanılan, pano erişimi için gerekli izin seviyesini belirleyen bir enum" dır. OwnClipboard, kes, kopyala "nın yapılabildiği,  kod tarafından panodaki değerlerin erişilemediği ancak kullanıcı tarafından erişilinebilindiği izin seviyesidir.Son SözBu yazımızda varsayılan güvenlik politikalarını karşılaştırmalı olarak inceledik. Bir sonraki yazımızda CLR tarafından sağlanan güvenlik altyapısını inceleyeceğiz. Bir sonraki makalemizde görüşünceye kadar güvende kalın...  Referanslar[1] MSDN, Introduction to Security In Windows Forms Yazar : Yunus Emre ALPÖZENe-Posta : yunus.alpozen et msakademik.net

Döküman Arama

Başlık :

Kapat