Erhan KURNAZ

Yazılım Güvenliği

Yazar : - 18.08.2014


Yazılım Güvenliği

Genellikle web programlamada kullanılan betik dilleri*, (scripting language) derleme* gerektirmeyen yazımı kolay dillerdir. Bu yazıda betik dillerin önemli bir güvenlik zaafından ve bu zaafı nasıl giderebileceğimizden söz edeceğim.
 
Konuya yabancı olanlar ve bilmeyenler için hızlıca betik diller ve çalışma mantığından bahsedeyim.
 
Bilgisayarlar sadece makine dilini çalıştırabilir.
 
Bilgisayar programları başlarda makine diliyle yazılsa da günümüz programcıları artık makine dili kullanarak program yazmıyor
diyebiliriz. Bunun yerine daha anlaşılır komutlara sahip programlama dilleri kullanarak “kaynak kod” yazıyor ve “derleyici” aracılığıyla makine diline çeviriyor veya “yorumlayıcı” kullanarak kaynak kodu doğrudan çalıştıran (PHP, Python gibi) betik dilleri kullanıyor.
 
Şekil 1 derlenmemiş kod ve makine diline çevrilmiş hali.
 
Betik dillerde kaynak kodlar açık halde sunucuya yüklenir.Kaynak kodu derlemeden çalıştırmak, derlenmiş kodlardan daha yavaş olsa da (her çalıştırıldığında tekrar makine diline çevrildiği için) sık sık düzenleme gerektiren web yazılımları için ideal bir çözümdür. Tabi yazdığımız kaynak kodları açık halde sunucuya yüklediğimizi düşünürsek, bu kodların istenmeyen kişiler tarafından görülmesi yazılımı ve verilerimizi tehlikeye atar. Normal şartlarda web sunucumuzda yüklü olan yorumlayıcı buna müsaade etmez. Bir kullanıcı kaynak kodun bulunduğu dosyaya erişmek istediğinde kaynak kodu çalıştırır ve ürettiği sonucu (HTML Kodları gibi) kullanıcının browserına gönderir.
 

Şekil 2 wp-config.php dosyasının içeriği / kaynak kodu.
 
Kaynak kodlar yorumlayıcıya emanet edilir.
 
Fakat yorumlayıcımız herhangi bir durumda (sunucu bakımı veya güncellemesi gibi) birkaç saniyeliğine bile olsa devredışı kalırsa kaynak kodlara dışarıdan erişilebilir. Özellikle kritik yazılımlar için önlem alınmadıysa sunucunun fişini çektirebilir. Çünkü yorumlayıcısı çalışmayan bir sunucu kaynak kodlarını tanımaz ve bunları istekte bulunan kişiye (kullanıcının browserına) gönderir. İstekte bulunmak için ekstra bir şey yapmak gerekmez, bir siteye girmeniz veya linklere tıklamanız yeterli. Yorumlayıcısı çalışmayan/devredışı kalan bir sunucuda çalışan sitelerde gezinen kullanıcıların karşısına kaynak kodlar çıkmaya başlar. (Bazı browserlar kaynak kodları göstermek yerine indirebilir)
 
Biraz programlama bilgisiyle kullanıcı kolayca şifreleri ele geçirebilir.
 
Kaynak koddan ayarların ve şifrelerin olduğu dosyanın ismine bakan ve onu da (adres satırına dosya adını girerek) görüntüleyen kişi sitenin veritabanına, hatta ftp bilgilerine sahip olabilir.Her gün yüzlerce insan bu durumla karşılaşıyor olsa da birçok
programcı ve kullanıcı bunu yeterince ciddiye almıyor. Bunun önemli bir sorun olabileceğini düşünenler için birkaç basit önerim var.
 
-Şifrelerin bulunduğu ayar dosyalarını “public” dizininin dışında saklamak.
-Sunucu ayarlarından yorumlayıcı modülü aktif değilse kaynak kodu barındıran dosya uzantılarına erişimi engelleyip, tüm istekleri bakım yapıldığını bildiren bir sayfaya yönlendirmek.
 
Apache kullanan bir sunucuda PHP modülü yüklü değilse yapılacak işlemleri public dizinimizde " .htaccess " isimli bir dosya oluşturup alttaki kodları yazarak yapabiliriz.
 
Geçtiğimiz haftasonu popüler bir bloğu okurken benim başıma geldiği için bu konuyu seçtim. Zarar görmesini istemediğiniz bir sitede bu durumla karşılaşırsanız, kötü niyetli biri ayarlara erişmeden siz erişmeyi deneyebilirsiniz, ftp şifrelerini bulursanız alttaki 
maddeler site sahibini sıkıntıdan kurtarabilir.
 
-Ayar dosyasının ismini değiştirin.
-Public dizinde index.html dosyası oluşturup, içine sunucuda bakım çalışması yapıldığını yazın.
-Dikkat çekecek bir isimle metin dosyası oluşturup sorunla ilgili mümkün olduğu kadar bilgi verin ve şifreleri değiştirmesi gerektiğini bildirin.
 
Makine ve programlama dilleri hakkında daha fazla bilgi edinmek isterseniz burayı tıklayabilirsiniz..

Terimler: Yorumlayıcı, Betik Dili, Derleyici, Makine Dili, Kaynak Kod, Ftp, Web Sunucusu

18.08.2014 - Yazılım Dünyası
 

KATEGORİLER

ETİKETLER

TAKİP EDİN


  • Bebekcaddesi , Bebek sektöründe müşteri memnuniyeti ana fikriyle e-ticaret hayatına başladı. AdWorld ailesi tüm internet mecrasındaki reklamlarımızı ve yazılım ...
    Bebekcaddesi Mustafa UTKU - Kurucu Ortak

  • Sitemizi kurmadan önce tasarımları ve verdiği bilgiler ile ayrıca kurulum esnasındaki yardımları ile AdWorld ailesine sonsuz teşekkürleri bir borç bilirim. ...
    Perde Dünyam Yunus Emre POLAT - Yönetici

  • Ginto Pırlanta, online pırlanta ve değerli maden satışı yapan bir markadır, buda çok dürüst güvenilir online mağazamızda bize yol gösterici bir iş ortağı gereks ...
    Ginto Pırlanta Özer DURAK - Yönetici