Paylaşımlı hostinglerdeki (shared hosting) güvenlik açıkları
Hepimiz bir sitemizi yayına koymak için bir yerlerden hosting satın alırız. Bizi belki de öncelikle cezbeden konu, hosting firmalarının verdikleri web alanlarının büyüklüğü ve verilen bandwidth’in geniÅŸ olmasıdır. Daha sonra, ne kadar fazla domaine hizmet verebildiÄŸimiz, e-mail hesapları konusundaki rahatlıklar, DNS ayarlarına eriÅŸebilmek, birden fazla web programlama dilini desteklemesi, database sunucularındaki çeÅŸitlilik imkanları (mysql + postgresql + vs vs ) gibi konular da bir hosting planını satın almamızda önem verdiÄŸimiz konular arasındadır. Daha sonra daha profesyonel yaklaÅŸanlar için firmanın destek konusundaki hızlılığı, tecrübesi, siteler için sundukları loglar, raporlar, sitelere eriÅŸimin hızı gibi unsurlar da incelenen konular arasına alınabilir.
Ancak bu özelliklerin, dışında bence hosting firmalarının vermiş oldukları hizmetlerin güvenliğini sağlamaları da çok çok önemlidir.
Normalde hosting firmaları, müşterilerini ‘iyi niyetli’ olarak görürler. Yani bir hosting hesabı satın alarak, sunucularına dahil olan herkes için aÅŸağı yukarı ‘neden kendi sitesinin bulunduÄŸu bir sistemi bozmaya çalışsın ki’ anlayışı içindelerdir. Bu durum kötü niyetli birinin elinde avantaj haline dönüşebilir.
Bir hosting firmasından hizmet satın aldığınızda, aslında firmanın sunucularından birinden onlarca belki yüzlerce kişi gibi bir hesap almış oluyorsunuz. Aynı makina ya da en azından işletim sistemi sizinle birlikte onlarca kişi ve belki yüzlerce site tarafından kullanılıyor oluyor. Dolayısıyla yayınlanan bütün sitelere birkaç klasor uzakta oluyorsunuz. Kötü niyetli birisi aynı hosting firmasından bir hesap aldığında, yanıbaşınızda tehlikeli bir komşu ile yaşamaya başlıyorsunuz.
Siteler genelde aynı dosya sistemi üzerinde tutulduğu için, herhangi bir şekilde dosya sistemine erişildiğinde sitelerinizdeki içerik ve tüm veriler başkaları tarafından elde edilebilir hale gelebiliyor. Örneğin, web siteniz htdocs isimli bir klasor altında ise muhtemelen htdocs dizinin yukarısına FTP yolu ile erişemezsiniz. Ancak web server üst klasörlere PHP ya da ASP gibi diller aracılığı ile erişebilir. Dolayısıyla bu açığı kullanmak isteyenlerin yaptığı tek şey, PHP ve ASP ile dosya sistemini kullanarak üst klasörleri dolaşmak ve sunucu üzerindeki tüm web sitelerinin klasorler halinde yer aldığı klasöre erişmektir. Bu klasöre eriştikten sonra saldırgan eğer izinler düzgün düzenlenmemişse, alt klasörlerde yer alan web sitelerinin dosyalarına erişebilir ve en basit manada database bağlantı şifrelerini alarak tüm verilerinize erişebilir.
Hangi hosting firması böyle bir açığı bırakabilir ki? diyebilirsiniz. Ancak hosting firmanızdan bu kadar emin olmayın, çünkü ‘bir hosting firması söyler misin?’ diye sorulduÄŸunda, aklınıza gelecek firmaların bir çoÄŸunda bu sorunun varolduÄŸunu söyleyebilirim. Åžu ana kadar birçok ‘kaliteli’ denilen hosting firmasında bu tip açıklar gördüm ve herkesin eriÅŸimine açmak istemediÄŸim sitelerimi o hosting firmalarda barındırmaktan kaçındım.
Bu sorunun varolup olmadığını kendiniz de yazacağınız küçük bir script ile test edebilir, hosting firmanızı bu konuda uyarabilirsiniz.
Linux hostinglerde bu soruna ek olarak baÅŸka bir sorun daha mevcuttur. Özellikle PHP hizmeti veren sistemlerde eÄŸer ’safe mode’ açık deÄŸilse ve izinler doÄŸru düzenlenmemiÅŸse çok rahatlıkla sunucu üzerindeki tüm web sitelerinin dosyaları, o sunucuda web sitesi varolan bir kullanıcı tarafından eriÅŸilebilmektedir. Bunun için yapılması gereken tek ÅŸey aÅŸağıdaki benzer bir kod yazıp, Linux komut satırındaki komutlar yardımıyla diÄŸer klasör ve dosyalara eriÅŸip okumaktır.
$output = shell_exec($_GET[’cmd’]);
echo $output;
?>
Bu kodu kendi web sitesine kaydettikten sonra dosyayı ‘hack.asp?cmd=ls ..’ yazarak kendi bulunduÄŸu üstünde yer alan klasörleri ve dosyaları listeleyerek ‘hack.asp?cmd=more dosya_yolu/dosya_adı’ ile de istediÄŸi klasördeki istediÄŸi dosyayı okuyabilir. Son dönemde çevremdeki arkadaÅŸların hostinglerinde bu tür problemlere sıkça rastladığım için kendi web sitelerinizin bulunduÄŸu hostingin böyle bir açığa sahip olup olmadığını test etmenizi öneririm.
Yukarıdaki açıkları ille de aynı hosting alanında bulunduÄŸunuz kötü niyetli bir kullanıcının kullanması da gerekmez. EÄŸer sitelerinizde yazılabilir klasörler (chmod 777) mevcut ise ya da kullanıcılarınızın, ziyaretçilerinizin birÅŸeyler upload etmesine izin verdiÄŸiniz web sayfalarınız yeterince iyi korunmuyorsa, bu açıklardan faydalanmak isteyenler bazı scriptleri sizin web sitenizin klasörüne yükleyerek kullanabilirler. Böylece sadece sizin deÄŸil, sunucu üzerindeki herkesin web sitesini ‘hackleme’ imkanı bulurlar. Ya da sessiz sedasız bu tip kodları sitenize yükleyerek tüm verilerinizi ve diÄŸer web sitelerinin verilerini sürekli çalabilirler.
Günümüzde bir web sitesi hazırlamak birçok araç-gereç, CMS yapıları ve hazır yapılar nedeniyle çok kolay hale geldi ancak bu yapılar çoğu kez güvenliği beraberinde getirmiyor. Aksine bu yapılar birçok şeyin temelini öğrenmeden site yapanları, hosting hizmeti vermeye çalışanları gaza getirdiği için bu tip güvenlik sorunları giderek daha da fazla hale geliyor. Bu nedenle öncelikle seçtiğiniz hosting firmasının güvenliğe dikkat eden bir yer olmasından başlayarak, güvenlik konusunda önlemlerinizi almanızı tavsiye ederim.
(Yukarıda bulunan yazı, hosting firmalarının ve bu firmalardan hizmet alan kişilerin kendi sitelerinin güvenliğini sağlamaları konusunda yardımcı olmak için yazılmıştır.)























