web uygulamanızı yüklediğiniz sunucuların kendi çaplarında bir takım
güvenlik uygulamaları vardır fakat bu uygulamalar sunucuda size ait olan
web alanın tamamen güvende olduğu anlamına gelmemelidir.veritabanınız
ile birlikte kullandığınız web programlama dilinin içeriğindeki kodların
güvenliğini sağlamak sunucunuzdan önce sizin sorumluluğunuzdadır.
özellikle istemci tarafında çalışan kodları abuse etmek daha mümkün
olduğudan,bu tür eylemlere tedbir almak ta kaçınılmaz olmaktadır.
şimdi, web uygulamarında en sık karşılaşılan güvenlik açıkları ve
açıklardan yapılan saldırılardan bahsedelim:
1 -
Web Uygulamalarında Sql Sorgularının
Değiştirilebilmesi:
web uygulamalarında bazı bilgilerin tutulabilmesi için sql veritabanları
kullanılmaktadır.uygulama geliştiricileri,bazı durumlarda
kullanıcılardan gelen verileri beklenen veri türü ile karşılaştırmayarak
sql soruları içinde kullanmaktadırlar.genel olrak problemler,uygulama
geliştiricinin sql sorgularında anlam ifade edebilecek
' ;UNION gibi kötü niyetli karakterlere karşı bir
önlem alınmadığı zaman orataya çıkmaktadır.bu durum kullanıcıya önceden
planlanmamış uygulama düzeyide erişim sağlayabilir.içinde sql sorgulama
barındıran bir çok ürün sql sorguları değiştirilebilmesine (sql
injection) karşı savunmasızdır.saldırganlar sql sorgularını değiştirme
tekniklerini web sitelerine ve uygulamalarına zarar vermek amaçlı
kullanmaktadırlar.sql enjeksiyon ile saldırgan bir tablo
yaratabilir,değişiklikler yapalabilir,veritabanı üzerinde erişim
sağlayabilir beya veritabanı kullanıcısının hakları doğrultusunda
sunucuda komut çalıştırabilir.
Çözüm Önerileri :
Uygulamanın tüm bileşenlerinde kullanılan değişkenler için kontroller
oluşturulmalı ve değişkene atanması beklenen veri türü ile kullanıcı
girdisi karşılaştırılmalıdır.beklenen girdi türünden farklı karakterler
saptanması durumunda, karakterler sql sorfgularında anlam ifade
etmeyecek biçimde değiştirilmeli ,silinmeli veya kullanıcıya uyarı
mesajı döndürülmelidir.tercihen uygulamanın tamamı için geçerli
olacak,değişken türü ve atanabilecek girdi türünü parametre olarak alan
ve kontrolleri yaptıktan sonra girdi kabul sonucu üreten sabit bir
fonksiyon tercih edilmelidir.
2 -
Web Uygulamalarında Çapraz Kod Çalıştırma (Cross
Site Scripting) : Başka siteden kod çalıştırma (cross site scripting) açıkları bir
saldırganın hedef web sitesi aracılığıyla site ziyaretçilerinin
sisteminde komut çalıştırabilmesine olanak tanımaktadır.saldırı sonucu
olarak site ziyaretçilerinin browserlarında bulunabilecek güvenlik
açıklarının kullanılması , JavaScript/ActiveX ve VbScript komutlarının
çalıştırılmasını mümkün kılmaktadır.Bu tür komutlar ile kullanıcıya ait
site çerezleri alınabilir, kaydedilmiş şifreler çalınabilir veya
browser'da bulunabilecek güvenlik açıkları ile kullanıcı sistemi ele
geçirebilir.ayrıca elektronik ticaret veya bankacılık uygulamaları için
sahte giriş ekranları oluşturularak ziyaretçilerin yanıltılması ve
sonucunda kullanıcıya ait önemli bilgilerin ele geçirilmesi mümkün
olabilir.
Çözüm Önerileri :
Uygulamanın tüm bileşenlerinde kullanılan değişkenler için kontroller
oluşturulmalı ve değişkene atanması beklenen veri türü ile kullanıcı
girdisi karşılaştırılmalıdır.Beklenen girdi türünden farklı karakterler
(örn.
<>/;()) saptanması durumunda,
karakterler anlam ifade etmeyecek şekilde değiştirmeli,silinmeli veya
kullanıcıya uyarı mesajı döndürülmelidir.Tercihen uygulamanın tamamı
için geçerli olacak ,değişken türü ve atanabilecek girdi türünü
parametre olarak alan ve kontrolleri yaptıktan sonra girdi kabul sonucu
üreten sabit bir fonksiyon tercih edilmelidir.
Kaynak:
[Linkleri görebilmek için üye olun veya giriş yapın.] Şimdilk paylaşacaklarım bu kadar.yeni kaynaklar buldukça içindekileri
derleyip buraya ekleyeceğim.Web programcılığı iel ilgilene tüm
arakdaşlarımın bu önemli husustaki katkılarını bekler,kendilerine
şimdiden teşekkürlerimi sunarım.
Yakında,yukarıda özetletmiş iki güvenlik açığı hakkında detaylı
örneklerle döneceğim.