Windows Form Güvenliğine Giriş

Windows Form Güvenliğine Giriş Şimdiye kadar bilgisayarınızda çalışan programların hepsi oturum açan kullanıcıyla aynı erişim hak ve ayrıcalıklarına sahipti. Örneğin dosya sisteminde erişme izniniz olan her yere yazdığınız kodla da erişmeniz mümkündü. Programlama mantığından kaynaklanan bu problem bilgisayar virüslerinin hızla yayılmasına sebep olmuştur. Daha önceki bir makalemizde giriş yaptığımız .NET Framework ile gelen "Kod Erişim Güvenliği" altyapısı sayesinde izinleri, hakları ve ayrılacalıkları geliştirdiğiniz kod ile ayırmanız mümkündür. Bu makalede İnternetten indirdiğiniz bir programın ne kadar güvenilir olup olmadığının testi için, "strong name" (sağlam ismi) ve sertifika kontrolünü .NET Framework ile yapabileceğimizden bahsetmiştik. Uygulamanın fonksiyonelitesini bozmadan kullanıcı güvenliğini olabilecek en iyi yoldan sağlayabilmek için, Windows Formları daha az izne sahip daha güvenli olabilecek alternatif bir yaklaşım sunmaktadır. Burada karşımıza çıkacak önemli bir kavramda (evidence) kanıt"tır. CLR(Common Language Runtime) ile güvenlik politikasına göre karar vermek için kanıtları kullanır. Kanıtlar, kodun belirli özelliklere sahip olup olmadığını belirtir. Bunun için dijital imzaların da kullanılabilmesine karşın, geliştirilen uygulamaya göre anlamlı olabilecek kod hakkındaki her türlü bilgi kanıt olarak kullanılabilir. Geliştirilen uygulamaların assembly"leri ve uygulamaların alanları bu kanıtlara göre izin ve ayrıcalıklara erişebilirler. Kanıt olarak kullanılabilecek nesneler ve tanımları için aşağıdaki gibi örnek verebiliriz: Kanıt Açıklaması Uygulama Dizini Uygulamanın kurulduğu dizin Hash SHA1 gibi kriptografik hash Yayıncı Yazılımın yayınlayıcısının dijital imzası Site Kaynağın sitesi; http://www.msakademik.net Sağlam İsmi (Strong Name) Assembly"nin kriptografik sağlam ismi URL Kaynağın URL"i Bölge Kaynağın bölgesi, örneğin İnternet Bölgesi.NET Kod Erişim Güvenliği, kodun dağıtıldığı kaynağa ve kodun kimliğine de bağlı olarak kodun değişen seviyelerinde güvenilirliğinin ölçülmesine izin verir. Bunu da tabi ki kanıtları kullanarak gerçekleştirir. Kullanıcının bilgisayarını nereden geldiği belli olmayan güvenilir olmayan kodlardan koruduğu gibi, kasten ve ya bilmeyerek kodun güvenliğinin tehlikeye atılmasını da engeller. Bu açıdan .NET Kod Erişim Güvenliği hem kullanıcılar hem de uygulama geliştiriciler için çok büyük önem taşımaktadır. Kod erişim güvenliği sayesinde uygulamanızın sahip olabileceği ve olamayacağı ayrıcalıklar kümesini tanımlayabilir. Uygulamaya farklı ortamlardan erişimlerde farklı izin ve ayrıcalıklar kümesine sahip olabilirsiniz.  .NET Kod Erişim Güvenliği temel olarak makinenizde çalışan kodun güvenliğini sağlar. Windows Form güvenliğinde ise bilgisayarınızda yazdığınız ve çalıştırdığınız kodla değilde, kendi bilgisayarınızda geliştirdiğiniz diğer bilgisayarlarda çalışacak kod ile ilgilenir. Kod Erişim Güvenliğinden ayrı bir şey ya da ona alternatif değildir. Windows Form Güvenliği, Kod Erişim Güvenliğinin altında bir yapıdır. Uygulamanıza diğer bilgisayarların güvenme derecesi kodun nerede olduğuna ve uygulamanın nasıl başlatıldığına bağlıdır. Uygulamanızın başlamasıyla, bu güvenin derecesi otomatik olarak hesaplanır ve runtime"dan isimlendirilmiş bir izin ve ayrıcalıklar kümesi alır. Varsayılan olarak bilgisayarın üzerinde çalışan uygulama Tam Güvenilir izin ve ayrıcalıkları kümesini, yerel ağ üzerinden çalışan bir uygulama Yerel Intranet izin ve ayrıcalıklarını kümesini, İnternet üzerinde çalışan bir uygulama ise İnternet izin ve ayrıcalıklar kümesini alır.( Sadece .NET Framework Service Pack 1 ve .NET Framework Service Pack 2 İnternet üzerinde çalışan tüm uygulamalar hiç bir izin ve ayrıcalığa sahip değildirler, Diğer tüm .NET Framework sürümlerinde İnternet İzin ve Ayrıcalık kümesi haklarına sahiptirler).Uygulamalar çalıştıkları bu izin ve ayrıcalıklar kümesine göre ya tam olarak çalışırlar ya da güvenlik hatası alırlar. Bu varsayılan izin kümelerindeki tüm izin ve ayrıcalıklar değiştirilebilir durumdadır. Yani uygulamanız bir bilgisayarda tüm haklara sahip olarak çalışırken diğer bilgisayardan farklı ayrıcalıklarla çalışabilirler. Varsayılan  Güvenlik politikaları ile ilgili detaylı bilgiye ilerleyen makalelerimizde yer vereceğiz. Güvenlik kod yazımının her aşamasında önemlidir. Öncelikle güvenli kodu nasıl geliştireceğimize ve güvenlik politikalarımıza karar vermeliyiz. Ardından hangi ortamda uygulamamızın hangi izin ve ayrıcalık kümelerine dahil olacağını belirlemeliyiz. Uzun bir yazı dizisinde detaylı olarak inceleyeceğimiz "Windows Form Güvenliği" "nde yer alacak makale başlıkları aşağıdaki gibi olacaktır: [1] Windows Form Güvenliğine Giriş[2] Varsayılan Güvenlik Politikaları [3] Güvenli Kodlama Makaleleri [4] Windows Formlarından Güvenli Dosya ve Veri Erişimi Makaleleri[5] Windows Formlarında Güvenli Yazıcı Kullanımı [6] Windows Formlarında Güvenli Clipboard Erişimi[7] Windows Formlarında Güvenli Pencere İşlemleri [8] Windows Formlarında Güvenli Win32 API Kullanımı[9] Güvenli Uygulama Geliştirme ve Sunuş MakaleleriHer ne kadar 9 Temel başlık altında Windows Form Güvenliğin işleyecek olsak da, makale sayısı örnek kodlar ve açıklamaları ile birlikte çok daha fazla olacaktır. Bir sonraki yazımızda inceleyeceğimiz "Varsayılan Güvenlik Politikaları" adlı 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