>Sunucuda birçok .NET uygulaması ve site çalışıyor. Uygulamalardan biri hack’lendiğinde, diğerleri etkilenmemeli. Sunucu kaynakları (işlemci, bellek vs), uygulamalar arasında adil ve garantili bir şekilde paylaştırılmalıdır. Makale, .NET’in bu konudaki özelliklerinden kısaca bahsedecektir.
.NET uygulamaları (.NET Application) varsayılan olarak NETWORK_SERVICE kullanıcısı üzerinden çalışırlar. Bu kullanıcı, sistemde birçok önemli yetkiye sahiptir. Dolayısıyla, aşağıdaki riskleri beraberinde getirirler;
• Kötü niyetli bir geliştirici, yazdığı bir .NET koduyla, sistem kontrolünü ele geçirebilir.
• Birkaç basit form içeren bir .NET uygulaması hack’lendiğinde, saldırgan tüm sistemi ele geçirmiş olacaktır.
• Performans sorunları olan bir uygulama, sunucunun işlemci ve bellek kaynaklarının tamamını tüketecektir.
Olması gereken yapı ise şu şekildedir;
• Uygulama hack’lense bile, yalnızca o uygulama çökmelidir.
• Performans sorunları olan bir uygulamanın yalnızca kendisi yavaşlamalıdır. Diğer uygulamalar etkilenmemelidir. Herkes kendi kaynaklarını kesintisiz kullanabilmelidir.
Özetle; her koyun kendi bacağından asılmalıdır. Bunu sağlamak .NET’te Uygulama Havuzları (Application Pool) kullanılabilir. Her uygulama için bir Uygulama Havuzu oluşturulur. Hangi havuzun sistem kaynaklarının ne kadarını kullanabileceği ayarlanır.
Bir .NET uygulasının hareket kabiliyetini sınırlamak için aşağıdaki işlemler yapılabilir;
- Uygulama için yeni bir Windows kullanıcısı oluşturulur.
- Yeni kullanıcı, Users grubundan çıkartılır IIS_WPG grubuna eklenir.
- Uygulama için yeni bir Uygulama Havuzu oluşturulur.
- Uygulama Havuzunun Identity ayarı değiştirilir yeni kullanıcı üzerinden çalışması sağlanır.
- Uygulamanın yeni Uygulama Havuzunu kullanması sağlanır.
- Uygulamanın çalıştığı klasörlere kullanıcı için yeterli ve gerekli izinler verilir.
- Windows TEMP klasörüne (Örn: C:WINDOWSTemp), IIS_WPG grubu için veya yeni kullanıcı için yazma yetkisi verilir.
- Registry’de gerekli tüm dallara yazma yetkisi verin.
Makalede anlatılan türde sınırlamalar yapıldığında;
• Uygulamayı hack’leyen bir saldırgan, sistem genelini etkileyemez. Yalnızca uygulamanın kendi kaynaklarını tüketir. Yalnızca o uygulama çöker.
• Yazılan kötü ve performanssız kodlardan dolayı, sistem geneli etkilenmez.
• Özetle; Sistem Yöneticisinin içi rahat eder. İçi rahat etmesi gereken kişi Sistem Yöneticisi olduğundan, bu yazıda anlatılan türdeki tüm kuralları ve yapılandırma standartlarını Sistem Yöneticisi koyar ve uygulatır.