IIS 6.0 - Önerilen güvenlik ayarlarının önemi...

24 Aralık günü, https://secunia.com/advisories/37831/ adresinde kritik olmayan bir IIS güvenlik açığı rapor edildi. Bu rapora göre kötü niyetli bir kullanıcı, IIS 6.0 üzerinde ASP ile geliştirilen bir web sitesinde, eğer kullanıma açılan bir dosya yükleme arabirimi varsa, bu açığı kullanarak ASP dosyalarını yükleyip çalıştırabilir.

Bahsedilen bu problemin yaşanıyor olması için, uygulama sunucunuza dosya yüklenmesine izin vermeniz ve yükleme yapılan klasöre güvenlik uygulama kriterlerine uygun olmayacak şekilde "Execute Permissions" ayarı olarak "Scripts Only" ya da "Scripts And Executables" yetkisi tanımlamış olmanız gerekmektedir. IIS 6.0 kurulumu sonrasında varsayılan ayarlarda bir klasöre upload izinleri tanımlı değildir ve bu makalenin sonunda linklerini bulabileceğiniz "güvenlik en iyi uygulama kriterleri - security best practices" yönlendirmelerine göre dosya yükleme izni verilen bir klasöre "Execute Permissions" olarak "None" verilmesi önerilmektedir.

Önerilen güvenlik adımlarının takip edilmemesi sonucunda, dosya yüklemeye izin verilen klasörün IIS ayarlarında, execute permissions olarak “Scripts” ya da “Scripts And Executables” yetkisi veriliyor olabilir. Bu durumda bu makalenin başında belirtilen adresteki güvenlik problemi ile karşılaşılma ihtimali bulunabilir.

Bu nedenle, dosya yüklemeye izin verilen klasörlerin bu özelliklerinin kaldırılması ve ASP kodu çalıştırılamayacak şekilde “None” olarak tanımlanması gerekir. Normal şartlar altında kullanıcılara dosya yükleme izni verilen bir klasöre execute permission olarak “scripts” ya da “scripts and execute” hakkının verilmesi güvenlik açısından yanlış bir uygulamadır.

Şöyle bir senaryo düşünün:

ASP ile geliştirdiğiniz bir web siteniz var ve üye olan kullanıcılarınızın resimlerini sunucu üzerine yüklemelerine izin veriyorsunuz. Böyle bir uygulamada dosya yüklemeye izin verdiğiniz klasöre bir kullanıcının sadece resim dosyaları yüklemesine izin vermeniz gerekir. Dolayısıyla bu klasörlerde herhangi bir script (.ASP gibi) ya da executable (.EXE ya da .DLL gibi) yüklenmesinin, ya da server üzerinde çalıştırılmasının bir anlamı yoktur çünkü bu klasörlere kullanıcılarınızın sadece resim yüklemelerine izin veriyorsunuzdur.

Dolayısıyla böyle bir klasörün IIS özelliklerinde (ASP script’i çalıştırmayacağınız için), “Execute permissions” olarak “None” seçmeniz güvenlik açısından önerilen bir davranıştır:

Execute Permissions

Aşağıda bir listesini bulacağınız güvenlik en iyi uygulama kriterlerini takip eden kullanıcılar yukarıda anlatıldığı şekilde sorunu gidermiş olmalıdırlar.

Geçerli olduğu platformlar:

IIS 6.0

Referanslar:

Results of Investigation into Holiday IIS Claim
https://blogs.technet.com/msrc/archive/2009/12/29/results-of-investigation-into-holiday-iis-claim.aspx

New Reports of a Vulnerability in IIS
https://blogs.technet.com/msrc/archive/2009/12/27/new-reports-of-a-vulnerability-in-iis.aspx

Microsoft IIS ASP Multiple Extensions Security Bypass
https://secunia.com/advisories/37831/

IIS 6.0 Security Best Practices
https://technet.microsoft.com/en-us/library/cc782762(WS.10).aspx

--
AMB