Web siteniz güvende mi? [Bölüm-1]

web-sitesi-guvenligiWeb sitesi tasarlamak, yayınlamak. Bir kod editöründen uçsuz bucaksız internet deryasına uzanan eğlenceli bir yolculuk. Hepimiz bunu yaparken farklı amaçlar taşıyoruz, kimimiz ticari düşünüyor kimimizse sadece eğlence/hobi amaçlı hareket ediyor. Özellikle binbir uğraşla hayata geçirdiğimiz sayfamız beklentilerimizi karşıladığında, yani beklentilerimiz çerçevesinde emeklerimizin meyvelerini toplamaya başladığımızda iş ki tadından yenmez bir hal alıyor. Fakat amacımız ne olursa olsun hepimiz sürekli ve rahatsız edici ortak bir kaygı taşıyoruz; güvenlik. Emeklerimizin ansızın heba olmaması ve geri dönülemez kayıplar yaşamamak için Acaba web sayfam güvende mi? sorusu, web sayfası hazırlarken ve hayata geçirirken “sorulması gerekenler” listesimizin en başında olmalıdır. Yani her alanda olduğu gibi sloganımız yine aynı: Önce güvenlik!

Web sayfamızın %100  güvende olduğundan nasıl emin oluruz?
Cevap çok basit; olamayız! Bundan bir kaç sene kadar önce, Türkiye’nin lider portallarından olarak gösterilen Mynet‘in anasayfasında da bir grup hacker tarafından altı çizildiği gibi: “En büyük sistemlerin bile ufacık açıkları sonlarına bedel olur!mynet-hackedBu Türkçe katili cümleden de anlaşılacağı üzere web sayfamızın % 100 güvende olduğundan hiç bir zaman emin olamayız, sistemimiz ne kadar büyük ve detaylı olursa güvenlik konusundaki endişelerimiz de o denli büyük olacaktır. Fakat bu durum bizi korkutlamamlıdır çünkü biz sadece bir kaç önemli noktaya dikkat ederek hack türü bir saldırıya maruz kalma riskini minimuma indirecek, velev ki böyle bir durumla karşılaşırsak  bile yani Türkçeyi bile doğru düzgün konuşamayan kimseler tarafından web sitemizin anasayfasına kara bir ekran üzerine beyaz/kırmızı puntolarla “hacked” yazılsa dahi Mynet’in de yaptığı gibi kolayca geri dönüp kaldığımız yerden devam edeceğiz.

Bu noktada sıkça yapılan bir hatanın altını çizmek istiyorum; ola ki bir hack saldırısına maruz kalıp sisteminizi kurtarır ve yolunuza devam etme şansını elde ederseniz site anasayfanıza “ne oldu? nasıl da koydum ha!! yiyosa şimdide hacklesenize!..” türünden içinizi soğutacak ibareler yerleştirmekten kaçınmanızı öneririm. Çünkü sisteminize zarar vermenin hack saldırılarından farklı yolları da vardır, örneğin kızdırdığınız hacker*1 tarafından aylık trafik limitinizi şişirilmesine veya ana web hosting sağlayıcınıza saldırılması sonucunda çökertilmesine ve hatta eğer çattığınız kimse biraz usta biriyse alan adınızın ele geçirilmesine sebep olabilirsiniz. Bundan sonra yapabileceğiniz tek şey savcılık, mahkeme, avukat gibi terimlerin sıkça duyulduğu ortamlarda hakkınızı aramak olacaktır ve sanıyorumki güzel ülkemde kimse bu terimlerin bir arada kullanıldığı mekanlarda bulunmaktan hoşlanmaz 🙂

Güvende kalmak bu kadar mı zor?
Elbetteki hayır, zaten bu tür şeyler normal hayatta kendi işine bakan bir blog yazarının veya bir resim sitesi sahibinin başına çok sık gelen durumlar değildir. Biz sadece oluşabilecek felaket senaryolarını en baştan değerlendirip sonradan ah vah etmemek üzere eşeğimizi sağlam kazığa bağlıyoruz 🙂

Nereden başlamalı?
En çok dikkat edilmesi gereken ilk konu site şifresidir. Site şifresi ana FTP hesabı ve varsa site yönetim paneline ulaşmak için kullanılan omurga şifredir. En sık yapılan hatalardan birisi de bu şifre için doğum günü, kimlik numarası, isim-rakam kombinasyonları gibi kolay soru-isaretitahmin edilebilir ve kısa ibareler seçmektir. Bu eksiklik hakkınızda kolayca toplanabilecek bilgilerle size özel bir wordlist saldırısı*2 yapılıp şifrenizin ele geçirilmesine sebep olabilir. Böyle bir durumun önüne geçmek için alınacak ilk önlem alfanumerik ve uzun şifreler seçmektir. Örneğin caner557 veya 3398mehmet yerine büyük-küçük harfler içeren c8Nu4xTc5 gibi bir şifre daha güvenli, bu örneğe nazaran ise b8[r&/R)9c^4a gibi hem büyük-küçük harf, hem rakam ve hem de ekstra semboller içeren bir şifre maksimum derecede güvenlidir. Fakat siz yinede ne kadar güvenli bir şifre kullanıyor olursanız olun, mutlaka belirli aralıklarla değiştirmeyi ihmal etmeyin. Buna ek olarak alan adınızın www.kedilersayfasi.com olduğunu varsayarsak ve eğer sunucunuz tarafından size kullanıcı adı seçme hakkı tanınıyorsa; kedilersayfasi.com, kedilersayfasi, kediler, kedi vb. gibi isimler yerine akla gelmeyecek, alakasız ve tahmin edilemez kullanıcı adları seçmeniz daha mantıklı olur. (Ör: 3tux9y veya kargagak vb.)

Herşeyi bir anda kaybetmek istemiyorsanız yedek alın!
Eğer sunucunuz size günlük, haftalık, aylık yedekleme seçenekleri sunuyorsa işiniz biraz daha kolay, eğer böyle bir şansınız yoksa site güncelleme aralıklarınıza bağlı olarak, kendi belirlediğiniz periyotlarda manuel olarak tüm sitenin yedeğini alın (full back-up). Sunucunuzda cPanel gibi bir yönetim paneli var ise şanslısınız, çünkü bu gibi sistemler fazlasıyla fonksiyonel olduklarından size tüm sitenizin yedeğini backup-7.14.2009_05-21-42_suleyman.tar.gz gibi tek bir dosya halinde web erişimine kapalı klasörlerinize almanıza, başka bir sunucuya on-line olarak aktarmanıza veya bilgisayarınıza indirmenize olanak tanırlar. Bunun gibi bir yönetim paneline sahip olmayanların işi biraz daha zor çünkü onlar tüm yedeklerini tek tek ve manuel olarak almak zorundadırlar. Burada unutulmaması gereken bir nokta var; tüm site yedeği (full back-up) almak demek sisteminizin sadece public_html veya www dizininde bulunan dosyaları kopyalayıp yedeklemek anlamına gelmez, tüm site yedeği içerisinde ayrıca e-mail hesapları, database kayıtları, alt-ek domain bilgileri, o zamana kadar kaydedilmiş site analiz/istatistik dosyaları ve genel sistem ayarları gibi bilgiler de bulunmalıdır.

Tüm site yedeğini elde bulundurmanın avantajları
Eğer sizde benim gibi o hosting senin bu hosting benim sık sık gezen ve sürekli en iyi hizmeti arayanlardansanız elinizde sitenizin veya sitelerinizin full back-up dosyalarının bulunması eşi bulunmaz bir nimet anlamına geliyor. Eğer yeni taşındığınız hosting size böyle bir destek veriyorsa tüm sitenizi baştan kurmak ve ayarlarınızı teker teker elle yapmak yerine yedek dosyanızı sunucuya atıp teknik destek biriminden yedek dosyasını kurmalarını isteyebiliyorsunuz. Bu işlemden sonra koca siteyi/siteleri taşımanın size getirdiği külfet sadece nameserver (ns1.webhosting.com gibi) bilgilerini güncellemek oluyor, bu sizin için her bakımdan büyük bir kolaylık.

Dosya yazma izinleri (Permissions)
dosya-izinleri-permissionsFTP üzerinden yaptığınız işlemlerde dikkat etmeniz gereken en önemli hususlardan bir tanesi de dosya yazma izinleridir. Bu konu web sayfası sahibi,  yani sizin haricinizde herhangi birinin dışarıdan dosya veya klasörlerinize müdehale edip edemeyeceğini belirler ve bu bağlamda büyük önem taşımaktadır. Dosya izinleri 755, 777, 666 gibi numerik ifadelerle tanımlanmakta “chmod [numerik değer] [dosya adı]” şeklinde ftp komutlarıyla kullanılmaktadır, örneğin: “chmod 755 resimlerim.zip”. 
755 değeri en sık kullanılan dosya iznidir. Bu ifadeye sahip bir dosya bize “
benim üzerimde yazma/okuma/silme işlemlerini sadece yönetici yapabilir, diğer kimseler sadece içeriğimi okuyabilir” der. En sık yapılan hatalardan, çoğu zaman gözden kaçan ayrıntılardan birisi de dosya veya klasörlere 777 değerini atamaktır. Bu ifadeye sahip bir klasör veya dosya dışarıdan gelebilecek her türlü değiştirme/yazma/silme işlemlerine açık olacağından site için oldukça büyük bir tehdit oluşturmaktadır, çünkü bu klasöre yetkisiz biri tarafından dışarıdan gönderilebilecek bir kod betiği tüm siteyi tehlike altına sokup olası hack saldırılarına meydan verebilir. Bu yüzden siteniz üzerinde kötü niyet besleyen kimselerin baktıkları ilk noktalardan biri de dosya ve klasörlerinizin dışarıdan yazma erişimine açık olup olmadığıdır.

Klasör listelemeyi engellemek
klasor-listelemeWeb sitenizde bulunan klasörlerinizin dışarıdan listelenmesi çoğu zaman büyük bir risk gibi görünmese de bazı durumlarda sizin için can sıkıcı sonuçlar doğurabilir. Özellikle istemediğiniz kişilerin site kurgulamanız hakkında fikir sahibi olmalarına sebep olabilir veya dışardan görünmeyen, sadece sistem dosyalarını yazmak için kullandığınız /temp_resim/ türünden izinleri 777 olan klasörlerin görüntülenmesine meydan vermiş olabilirsiniz. Öyle sanıyorum ki hiç kimse www.sitem.com/config/ klasörü içerisinde dolaşan ve config.php, functions.php, system.php, inc.php… dosyalarını inceleyip fikir sahibi olmak isteyen yabancı bir göz istemez. Bununla birlikte eğer sitenizde başkalarının erişmesini istemediğiniz, erişimlerini kısıtladığınız veya belirli şartlar sağlandıktan sonra indirilmesine izin verdiğiniz (güvenlik kodu girilmesi, üyelik aktivasyonu vb.) dosyalar barındırıyorsanız istenmeyen birinin elini kolunu sallaya sallaya bu dosyalara erişmesi sizde kronik mide bulantısı, görmede bulanıklık, canın turşu çekmesi gibi beklenmedik yan etkiler yaratabilir. Bu durum için bir çok sunucu otomatik olarak klasör listeleme seçeneğini devre dışı bırakmıştır. Eğer sunucunuz otomatik olarak klasör listelemeyi engellememişse ufak bir kaç sunucu ayarıyla bu durumun üstesinden gelebilir, hatta hiçbir ayar yapmaya gerek kalmadan listelenmesini istemediğiniz klasöre bir index.html (veya duruma göre index.php/default.asp) dosyası atarak sorunu kökten çözebilirsiniz. 

Açıklamalar
*1 Hacker kelimesi sizin de sıkça duyduğunuz üzere çok sık kullanılan bir tabirdir. Bu bir yanılgıdır çünkü yeryüzündeki toplam hacker sayısı aslında bir elin parmaklarını geçmez, dolayısıyla bu kadar az sayıdaki insanların ülkemizde toplanarak “zırt turkish hacker group” şeklinde bir grup oluşturması olası değildir. Orjinal hacker diye anılan kimseler tek başına bir bilgisayar ve salt makina kodu ile (yani ekstra herhangi bir programlara ihtiyaç duymadan) hedef aldığı kimsenin güvenlik açıklarını tesbit edebilir, zarar verebilirler ve bu da aslında onların dahilik sınırına yakın olduklarının bir göstergesi sayılabilir. Hacker davranışları incelendiğinde bu kişilerin genelde prensip sahibi oldukları ve hack eylemlerini bu prensipler uğruna gerçekleştirdikleri gözlemlenmektedir. Ayrıca bu kimselere büyük güvenlik firmaları tarafından fahiş ücretler teklif edilerek kendi güvenliklerinden sorumlu olmaları için peşlerinden koşulurken söz konusu hackerlerin blogcu ahmet’in sayfasına girerek “şöyle şöyle açıkların var bunları kapat! xGeyHaCkEr veya maDaFaka hAcKer gRoUp” şeklinde büyüklü küçüklü harfler içeren imzalarla sözde güvenlik uyarılarında bulunmalarını beklemek saçmalıktır. Bir çok ülkede olduğu gibi ülkemizde toplanan “hacker group”ları aslında lamer denilen kimselerden oluşmaktadır. Bu kişiler belkide gerçek hackerler tarafından yazılan bir takım saldırı yazılımlarını kullanarak amaçsızca insanlara zarar vermekten başka bir güdüye sahip değillerdir. Peki bunu neden yaparlar? Hackerlık olgusu kabul göreceği üzere normal üstü zeka fonksiyonları gerektirmektedir. Lamer dediğimiz kimseler de aslında güvenlik açısından zayıf sitelere bıraktıkları notlar ve verdikleri zararlarla isim yapmaya, dolayısıyla ne kadar “zeki” olduklarını isbatlamaya çalışırlar. Tabiiki bu onların zararlı olmadığı anlamına gelmiyor, eğer öyle olsaydı zaten bu tip makaleler hazırlamak zorunda kalmazdık. Sonuç olarak hacker ile lamer arasındaki en büyük fark; hackerların prensipler ve inanışları doğrultusunda hareket edip kendilerince bir şeyleri değiştirmeye/para kazanmaya çalışmalarından, lamerlerin ise sadece egolarını tatmin etme arzusuyla bilinçsizce hareket etmelerinden kaynaklanır. Zaten “piyasada açığı olan bir site varsa tarayıp bulayımda zarar vereyim” mantığına sahip bir programın yazılış amacı bize bu durumu gayet net anlatmaktadır. Velevki tarama sonucunda güvenlik açığı bulunan site bir manav sitesi de olabilir, kuaför de ekmek fabrikası da.

*2 Wordlist adından da anlaşılacağı üzere bir kelime listesidir. Mantıklı ve kör topal olmak üzere iki çeşit kullanım biçimi vardır. Mantıklı wordlist kullanımında e-mail hesaplarınızın veya web sitenizin şifrelerini çalmak isteyen kötü niyetli kimseler, hakkınızda elde edebileceği bilgileri (yaş gününüz, ilk öğretmeninizin adı, telefon numaranız, kimlik numaranız vs.) içeren bir liste oluşturur ve çeşitli programlar yardımıyla bu listedeki ifadeleri deneyerek şifrelerinizi bulmaya çalışırlar. Kör topal versiyonunda ise tamamen tahmini harf ve rakam kombinasyonlarıyla hareket edilir ve bu aslında saatlerce hatta belki günlerce süren bir gölge boksudur, şifre uzunluğuna bağlı olarak bu wordlisti deneme süresi de uzar. Bu yöntemleri deneyerek şifrenizi bulmaya çalışma süresi size kafayı takan kimsenin azmi ile doğru orantılıdır.  

– Bölüm-1 sonu – 


 Bölüm-2’den notlar
* Web sitemizi güvende tutmak için alınabilecek basit önlemler devamı.
* Kendi sitemizin güvenlik görevlisi olmamız mümkün mü?
* Site güvenliği için kullanabilecek yazılımlar.
Ben güvenlik uzmanı değilim, bu gibi makalelerimde açık arayıp bana b*k atmayın lütfen, hiç bir çıkar gözetmeksizin sadece faydalı olabilmesi düşüncesiyle tecrübelerimi paylaşıyorum, faydalanmak veya sayfayı kapatıp yaşam alanımı terketmek kişinin kendi özgür iradesine bağlıdır.

Dosya izinleri (permissions) ve chmod kullanımı için ayrıntılı İngilizce makaleler:
http://www.interspire.com/content/articles/12/1/FTP-and-Understanding-File-Permissions

http://www.stadtaus.com/en/tutorials/chmod-ftp-file-permissions.php

“Mynet Hacked” başlıklı haber ve dökümanlar:
http://www.haber10.com/haber/69251

http://www.bildirgec.org/yazi/mynet-com-hack-lendi

http://www.pcnet.com.tr/forum/internet-ag-ve-guvenlik/156423-mynet-hacklendi.html

http://www.youtube.com/watch?v=EEJR08AXjik
 
http://www.g-flow.net/mynet_hack.gif

Hack hareketleri ve gurur verici(!)  Türk attack haberleri:
http://www.zone-h.org

cPanel & WHM hakkında detaylı bilgi:
http://www.cpanel.net

Caner ÖNCEL 2009
http://www.egonomik.com

Facebook Yorumları

1 Yorum

Uyarı: Yorumlarda link kullanmayınız. Link içeren yorumlar otomatik olarak spam kabul edilmektedir.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir