27 Haziran 2012 Çarşamba

IIS Sıkılaştırma Klavuzu - Nam-ı diğer Security Hardening Guide

Hardening, sıkılaştırma-sertleştirme gibi cinsel çağrışımlar yapsa da BT dünyasında bir cihazı,bilgisayarı,uygulamayı,sunucuyu zaafiyetlerden arındırma, saldırı yüzeyi ya da vektörü de denen hedefin saldırı alabileceği noktaları azaltma anlamına geliyor kardeşlerim. Eskiden microsoft hemen her ürünüyle bu tip klavuzlar yayınlardı şimdi nedense pek yapmıyor, belki de yayınlanan bütün o klavuzlara rağmen ürünlerin hala kolayca istismar edilmesindendir bilemiyorum. Herneyse bu yazıda bizi ilgilendiren IIS web sunucuların daha güvenli hale getirilmesi. "SSL" terimi gibi "Hardening" terimi de bana hala bilgi ve bilişim güvenliğinden zerre kadar anlamayan ama her nasılsa çok ciddi kurumlardan birinde güvenlik ekibinin başında dikilen, ağzından bu kelimeyi eksik etmeyen, ismi de lazım olmayan birini hatırlatıyor."Hardening yaptıktan sonra productiona alıcaz,hardeningini kontrol edicez" gibi kusturucu cümlelere maruz kalmıştım bir dönem.

IIS,apache'den sonra en çok istismar edilen,zaafiyet veren web sunucu platformu. Aslına bakarsanız zaafiyetlerin çoğu da web sunucunun barındırdığı web uygulamalardan kaynaklanıyor, bunu engellemenin de tek yolu yazılım geliştiricilere "güvenli kod yazma,uygulama geliştirme teknikleri" ni kullanmayı benimsetmek.
Yazıda değineceğimiz önlemler platforma uygulanacak önlemler,yani uygulama tarafı bu yazının konusu değil.
IIS web platformu sıkılaştırma konusunda yapılması gerekenler;
  • IIS'i ve IIS'in üzerinde çalıştığı işletim sisteminin ve yüklü diğer uygulamaların güncelliğini koruyun
Sadece IIS yamalarını takip etmek ve uygulamak yetmez, çoğu zaman altyapıda kullanılan işletim sistemini zaafiyete uğratmak daha kolaydır.Bu yüzden işletim sistemi yamalarını da düzenli uygulayın. Çoğu microsoft işletim sisteminin olmazsa olmazlarından Adobe ürünlerini de güncel tutmayı unutmayın. Adobe geçtiğimiz yıllarda ürünlerinde en fazla zaafiyet barındıran en fazla yama yayınlanan üretici firmaydı.
  • Web sunucusuna mutlaka antivirüs uygulaması kurun
  • Konfigürasyon dosyalarınızda veritabanı bağlantıları, parolalar gibi önemli bilgiler varsa mutlaka şifreleyin.
Web sunucunuzun barındırdığı uygulamaların konfigürasyon dosyalarını periyodik olarak gözden geçirebilirsiniz.aspnet_regiis.exe aracıyla konfigürasyon dosyalarının ilgili bölümlerini sunucuya özel anahtarlarla şifreleyebilirsiniz.
  • Web sunucunuzdan kurum dışına doğru (outbound) her türlü trafiğin başlatılmasını engelleyin.
Web sunucunuzu barındıran bilgisayar sisteminde başka herhangi bir hizmet sunulmuyorsa dışarıya (outbound) sadece HTTP ve/veya HTTPS portlarının açılması yeterli olacaktır. İmkanınız varsa outbound trafikte TCP SYN Flag set edilmiş paketlerin iletimini engelleyin. Bunu yapmadaki amaç, herhangi bir nedenle  web sunucunuz istismar edilirse ele geçirilirse, salgırganın web sunucunuzu kuruma erişmek için bir giriş kapısı ya da kurum bilgilerini dışarı çıkarmak için bir geçit olarak kullanılmasını engellemek.
  • Konfigürasyon dosyalarınıza erişimi engelleyin
IIS varsayılan kurulumda bunu zaten yapıyor ama siz yine de mutlaka kontrol edin.
  • IIS'in detaylı hata mesajı verme özelliğini devre dışı bırakın
  • Dosya sistemi seviyesinde erişim kontrolü uygulayın
  • Kullanılmayacak eklentileri/bileşenleri kaldırın.
Kullanılmayan bir eklenti de ortaya çıkabilecek olası bir zaafiyet web sunucunuzun ele geçirilmesine neden olabilir.
  • Web uygulamalarınızın bulunduğu klasörleri sistem diski haricinde disk bölümlerinde tutun
Web uygulamalarınızı her zaman NTFS dosya sistemiyle biçimlendirilmiş disk bölümlerinde barındırın ve klasör izinlerini kısıtlayın.
  • Web sunucusunun yanıtlamasına izin verilen HTTP erişim metodlarını kısıtlayın
Çoğu zaman GET ve POST metodları web hizmeti vermek için yeterlidir.
  • Web uygulama havuzlarını birbirinden izole edin.
IIS 7 ile birlikte gelen özelliklerden biri Uygulama havuzu izolasyonu (Application Pool Isolation). Windows 2008 SP2 ile birlikte application pool identity kavramı ile tanıştık. IIS varsayılan olarak her havuz için sanal bir hesap oluşturuyor ve bu havuzları birbirinden izola ediyor ama yine de bunu kontrol etmekte fayda var. "Network service" hesabı her nekadar kısıtlı bir kullanıcı hesabı olsa da tüm havuzları ve uygulamaları bu hesapla çalıştırmak risk oluşturur. Bu nedenle mümkün olduğunca uygulama havuzlarınızı "ApplicationPoolIdentity" hesabıyla çalıştırın.
  • Her web sitesi için ayrı ASP.NET temp klasörleri kullanın.
  • IIS loglarına erişimi kısıtlayın, mümkün olduğunca detaylı log tutturun
IIS loglarının özellikle web sitesinin tutulduğu disk bölümünde bulunmamasına dikkat edin, istemci IP adresi, metod, durum kodu,tarih-saat gibi detaylı bilgilerin log dosyalarınızda kayıt altına alınmasını sağlayın. Bir saldırı ya da istismar olduğunda IIS logları size neler olup bittiğine dair bilgi verecektir.Saldırganların da işleri bittikten sonra yapacakları ilk şeylerden biri log dosyalarındaki kayıtları temizlemek olacak.

IIS 7 ve 7.5'i Slow Loris DOS Saldırısına Karşı Koruma - Nass oluyor da oluyor?
IIS 7,7.5'de Maximum Query String değeri ve önemi - Nass oluyor da oluyor?
IIS 7 - 7.5 Request Filtering - Nass oluyor da oluyor ? Rules & Headers
IIS 7 - 7.5 Request Filtering - Nass oluyor da oluyor ? File Name Extension & HTTP Verb filtreleme
Ağ ve Sunucu Güvenliğinde Yapılan Yanlışlar & Hurafeler

Hiç yorum yok:

Yorum Gönder