Makale Özeti

Bu yazıda Visual Studio.NET ile çalışırken güvenlik için dikkat etmeniz gereken hususlardan birkaçına değinmeye çalışacağız. Uygulamalarınızın güvenliği için bu noktalar erişim ve kurulum ile ilgili konularda ipuçları verebilir. Tabi ki güvenlik sürekli ve her açıdan gözden gecirilmesi gereken bir konu oldugu için bu yazıda anlatacaklarımızla kısıtlı kalmamalı.

Makale

Visual Studio ve Web Güvenliği

Bu yazıda Visual Studio.NET ile çalışırken güvenlik için dikkat etmeniz gereken hususlardan birkaçına değinmeye çalışacağız. Uygulamalarınızın güvenliği için bu noktalar erişim ve kurulum ile ilgili konularda ipuçları verebilir. Tabi ki güvenlik sürekli ve her açıdan gözden gecirilmesi gereken bir konu oldugu için bu yazıda anlatacaklarımızla kısıtlı kalmamalı.
Bahsedeceğimiz konular
Uygulama sunucunuza ulaşım
Veri sunucunuza ve tüm uygulama kaynaklarınıza ulaşım
Ne türlü web erişim metodu kullandığınız
Hata ayıklama
Uygulamanızın kurulumu

Uygulama kaynakları

Web uygulamaları için bir web sunucusuna ihtiyacınız vardır. Bunun IIS olduğunu varsayacağız. Önemli olan nokta web sunucunuzda ki bu sunucu uygulamanızın kurulu olduğu sunucudan ayrı olmalıdır, erişiminizin minimum seviyede tutulmasıdır. Bu erişim hakları arasında dosya okuma, listeleme, yazma tercihan olmamalıdır. Tabi ki uygulama sunucunuzla web sunucunuzu birbirniden ayırırken web sunucunuza VS.NET in sunucu bileşenlerinin de kurulu olması gerrektiğini unutmamak gerekir.
Tasarım sürecinde kaynaklar NT erşimi ile kısıtlıdır, yani sizin uygulama yazarken kullandığınız kullanıcının hakları ile uygulamanızı tasarlar ve denersiniz. Visual Studio kuruldugunda, VS developers adı altında bir kullanıcı grubu yaratır, bu kullanıcı grubu gerekli dosya ve web eirşim haklarına sahiptir. Bu haklarda tipik bir web uygulaması yazılabilir. VS developer grubuna verilen haklar şunlardır:

·Web sunucusunun wwwroot klasörüne erişim hakkı
·Web dizinlerinde dosya yaratma değiştirme silme ve çalıştırma hakkı
·Uzaktan hata ayıklama hakkı

Bu noktada kullanıcıların tümüne (gruba) veya bir kısmına ek haklar tanıyabilirsiniz ancak unutmamak gerekir ki her verdiğiniz hak ağ güvenliğiniz için ek bir risk taşımaktadır. Bu ek hakların tipik bir örneği SQL erişimidir. Hemen hemen tüm uygulamageliştiricilerin SQLe erişimi gerekir, ancak bazılarının Stored procedure yaratması gerekebilir, digerleri değiştirme hakkı ile kullanabilir.

Web Erişim metodları

Visual Studio ile web sunucunuza iki türlü erişebilirsiniz.

·Dosya –paylaşımı. Burada Visual Studio dosyaları sunucuya windows komutları ile kopyalar.
·FrontPage Server Extensions erişimi ile dosyalar http ile aktarılır.

Dosya paylaşımı için web server ı ile aynı domain içinde bulunmanız gerekir. Yani sadece lokal network ile kullanılabilir. Ancak Front Page erişimi ile firewalllardan da geçerek(HTTP erişimine izin verildiği sürece) uygulamanızı geliştirebilirsiniz. Böyece Internet üzerinden uzaktan uygulama geliştirmek te mümkün olur.

Kod Erişimi

Tasarım sürecinde kod sürekli olaran tam güvenilir şekilde çalışır. Bu şekilde çalışmanın iki sonucu oluşur.
·Sunucunuzun güvenilir olamayan kodla çalışması. Tasarım anında tam güvenilir özellikte çalışan kodun kendi alt sınıflarına özelliklerini taşıması sonucu(inheritance) güvenilir olmayan kodun projeye girmesi riski oluşabilir. Bu durum ancak kötü niyetli bir kullanıcının kodunuzu etkilemsi sonucu olabilir. Örneğin bir kullanıcı bileşeninin kullanılması durumunda güvenilir olmayan bir kod parçacığı projenin içine yerleşebilir.
·Kurulum sonrasında tam güvenilir mod ile çalışmayacağından hatalar oluşabilir.

Hata ayıklama

VS.NET ile hata ayıklama için bir işlemin diğer bir işleme bağlanması gerekir. Eğer web sunucusu başka bir makinada ise hata ayıklayan kullanıcının her iki makinada da erişim haklarının yüksek olması gerekir. İşlemlerin birbirine bağlanması için de kullanıcıların genelde administrator haklarına sahip olması gerekir. VS kurulduğunda Debugger users adı altında bir grup kurulur ve böylelikle sistem yöneticileri bu kullanıcıları seçebilirler. Gereksiz kullanıcılara debugger use hakları vermek büyük risklere yol açabilir.

Kurulum

Uygulamanız tamamlandığında onu kurmaktan başka çare kalmaz. Bu durumda ise sunucuya kurulan her türlü uygulamnın riskinden siz sorumlu olursunuz. Böyle bir durumda yapılacak en iyi yöntem en kısıtlı haklarla başlayıp her veridiğiniz hakkı kontrol edip risklerini bu kriterlere göre gözden geçirmek olmalıdır.
VS Deployment Tools ile kurulum uygulamaızın kurulumu, ve konfigurasyonuun tamamen yapılmasını sağlar ancak bunun için sunucuda yönetici haklarına sahip olmanız gerekir. Buna alternatif olarak HTTP üzerinden Copy project komutu ile de kurulum yapabilirsiniz. Böylelikle daha az kurulum seçeneği ile bir firewall üzerinden kurulum yapabilirsiniz.
Sonuç olarak güvenlik konusunda her zaman en son makaleleri gözden geçirerek hiç bir noktayı atlamadan uygulamalarınız geliştirmeli, test etmeli ve kurmalısınız.

Gökşin Bakır
MSDN Regional Director
Kaynakça
MSDN April 2003
Web Services and Security: Eric Schmidt 2002