Güvenlik

HTTP Proxy veya internet kısıtlamaları nasıl aşılabilir?

Diyelim ki, bir yerde çalışıyorsunuz ve çalıştığınız ofiste internete erişmek için size verilen http proxy ayarını girmek durumunda kalıyorsunuz. Ve bulunduğunuz yerin sistem yöneticileri pop3, smtp portlarına erişimi de kapattığı için Outlook kullanamıyorsunuz. Proxy girmediğiniz zaman hiçbir siteye erişemiyor, IP lerini pingleyemiyor ya da telnet ile 80 ve 443 portlarını kontrol ettiğinizde bağlanamadığınızı görüyorsunuz. Ve “sadece outlook ile e-postalarımı kontrol etmek, e-posta gönderebilmek istiyorum” şeklindeki çok masum bir isteğinizi dile getirdiğinizde sistem yöneticilerinden aldığınız cevap “e-postalarınızı web üzerinden kontrol edebilirsiniz” gibi eskilerin “malumu ilan etmek” dedikleri türden anlamsız yanıtlar alıyorsunuz. Bu durumda ne yapmalısınız ki Outlook’u tıpkı o eski güzel günlerde olduğu gibi :) kullanabilesiniz?

Yukarıdaki paragrafta anlatılanlar gerçek bir hikayeden alınmıştır. Soruyu soran kişi yukarıda bahsettiğim durumu yaşayan bir arkadaşım, bu yardım çağrısının muhatabı da bendim:) Kendisine öncelikle önereceğim çözümü kısaltmak için Outlook yerine Thunderbird kullanmasını önerdim. Çünkü Outlook bildiğim kadarı ile SOCKS proxy desteklemiyor. Fakat Outlook ile sadece e-postalarına değil de exchange server üzerinden güncellediği takvimine de ulaşmak ve exchange serverın diğer bazı özelliklerini de kullanmak istediği için çok ısrar edemedim.

Bu sorunu aşmak için en belirgin yöntemlerden biri putty ile size verilen proxy ayarları ile girerek 443 ya da 80 portundan çalışan bir SSH sunucusuna kullandığınızın makinanın bir portunu bağlamak ve bu sayede bir SOCKS proxy oluşturabilmektir. Yani kullandığımız proxy’nin engelleyemeyeceği bir port üzerinden (443 - https gibi) bizi herhangi bir şekilde kısıtlamadan internete açacak bir SSH sunucusuna bağlanacağız. Ve kullanacağımız uygulamaları proxy içinden güvenli bir şekilde geçecek bu “tünel”e (SOCKS proxy) bağlayarak proxy’nin kurallarını aşmış olacağız.

Devamı… »

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.)