1. Giriş
Chroot, sunucu servisler ve uygulamalar için yeni bir kök (/) dizini
tanımlar. Kısaca çalıştırılacak olan servis ya da uygulama için gerekli
kütüphane, yapılandırma ve sürücü dosyaları, (device file) bu servis
için belirlenen kök dizinde bulunan ilgili yollara (path) kopyalanır ve
sunucu yazılımları belirlenen kök dizini altında çalıştırılır.
Aşağıdaki şekilde (Şekil 1) Chroot kullanımı ile dosya sistemine erişim gösterilmiştir.
Şekil 1 Chroot Kullanımı İle Yeni Dosya Sistemi Hiyerarşisi
Şekil 1’de görüldüğü gibi sunucu servis yazılımının ve uygulamaların
işletim sistemi kaynaklarına erişimi kısıtlanmış sadece gerekli ve
belirtilen kaynaklara erişimine izin verilmektedir.
2. Motivasyon
Açık kaynak kod dünyasında Apache, PHP ve MySQL
yazılımları özellikle web tabanlı uygulamalarda sıklıkla kullanılmaktadır. Bu yazılımların geniş bir topluluk tarafından desteklenir olması, yeni bulunan açıklıkların geniş kullanım ortamlarını etkilemesine neden olmaktadır. Saldırganların bu açıklıkları kullanarak sunucularda web tabanlı kabuk elde etme motivasyonları büyüktür. Bu şekilde sunucu üzerindeki diğer kaynaklara erişim ve kabuk ortamı tarafından sağlanan komutları kullanarak saldırı uzayını geliştirmek mümkündür.
PHP tabanlı bir kabuk ortamının saldırılarda nasıl kullanılabileceğini ve Chroot yapısının bu saldırıların etkilerini nasıl azaltabileceğini gösteren bir örnek http://code.google.com/p/cammp/wiki/CAMMPShowsOff
adresinde yer almaktadır. Örnekte, önceklikle sitede bulunan bir açıklık kullanılarak farklı bir ortamda yer alan PHP kabuk dosyası dahil edilmekte ve bu kabuk üzerinde TCP/IP yapılandırma bilgilerini listeleyen ifconfig komutu çalıştırılmaktadır. İkinci aşamada ise Chroot yapısı devreye sokulmuş her ne kadar aynı açıklık sunucuda bulunsa da Chroot'un sistem komutlarına erişimi engellendiği görülmüştür.
3. Çözüm
Uygulamaların Chroot ortamı altında çalıştırılması için gerekli
adımların uygulanmasının uzun ve sorunlu olduğu düşünüldüğünde,
adımların teker teker açıklanarak anlatıldığı makalelerden öte hem Apache, MySQL, PHP ve ModSecurity’nin güvenli kurulum adımlarını
gerçekleştiren hem erişim izinlerini güvenli bir biçimde yapılandıran
ve hem de sunucu servisler için gerekli başlatma ve durdurma
betiklerini barından basit ama kullanışlı bir araca ihtiyaç
duyulmaktadır. Chroot, Apache, MySQL, ModSecurity ve PHP’nin baş
harfleriyle isimlendirilen CAMMP yazılımı, bütün bu işlemleri
gerçekleştirebilmektedir.
Şu an için RHEL Linux sistemlerde test edilen CAMMP, http://code.google.com/p/cammp/ adresinden temin edilebilmektedir.
Kurulum ayrıntıları için http://code.google.com/p/cammp/wiki/Installation adresine
başvurulabilir.
Favori olarak ekle (0) | Görüntüleme sayısı: 1640
Sadece kayıtlı kullanıcılar yorum yazabilir. Lütfen sisteme giriş yapın veya kayıt olun. |