28 Mayıs 2012 Pazartesi

Siteler Arası Betik Yazma (XSS)

XSS açıkları uygulama kullanıcıdan veri alıp, bunları herhangi bir kodlama ya da doğrulama işlemine tabi tutmadan sayfaya göndermesi ile oluşur. XSS saldırganın kurbanın tarayıcısında kullanıcı oturumları bilgilerin çalınmasına, web sitesinin tahrif edilmesine veya solucan yüklenmesine sebep olan betik çalıştırmasına izin verir .

Siteler Arası  Betik Yazma (Cross Site Scripting), çoğunlukla XSS  olarak bilinen, HTML enjeksiyon yönteminin bir alt kümesidir. XSS, çok yaygın ve zararlı bir web uygulaması güvenlik sorunudur. XSS, bir uygulamadaki eksiklikten kaynaklı olarak, bir kullanıcıdan web tarayıcı aracılığı ile veri alındığında, kullanıcının içeriği onaylamasından ve kodlamasından bağımsız olarak gerçekleşir.

XSS, saldırgana kurbanın tarayıcısında betik çalıştırmaya izin verip, kullanıcının oturum bilgilerini çalabilir, web sitesine zarar verebilir, saldırgana ait içerik siteye girilebilir, site parola balıkçılığı (phishing) saldırılarını iletir duruma getirilebilir ve kötü niyetli yazılım çalıştırılabilir.

Kötü niyetli betiklerde çoğunlukla JavaScript kullanılır, fakat kullanıcının web tarayıcısının desteklediği herhangi bir betik dili de saldırgan için potansiyel hedef dildir.


Siteler Arası Betik Yazma'nın bilinen üç türü bulunmaktadır: Yansıyan, Depolanmış ve DOM enjeksiyonu. Yansıyan XSS, en basit yapıda gerçeklenmiş açıktır (exploit). Burada kullanıcı veri kaynakları bir web sayfasıyla doğrudan yansıtılacaktır:

echo $_REQUEST['userinput'];

Depolanmış XSS, saldırganın verilerini alarak, bir dosyanın içerisine, bir veritabanına veya herhangi bir diğer arka planda çalışan sisteme yazarak, bir sonraki aşamada bu bilgileri filtrelemeksizin kullanıcılara göstermesi sonucunda ortaya çıkar. Bu CMS'ler, bloglar ve forumlar için son derece tehlikelidir. Bu yöntemle çok sayıda kullanıcının bilgileri diğer kişiler tarafından görülebilir.

DOM tabanlı XSS saldırıları ise, sitelerin Javascript kod ve değişkenlerinin değiştirilmesi ile ortaya çıkar.Alternatif olarak, saldırgan, üç XSS tipini melez (harmanlanmış) olarak da kullanabilir. Tehlike,XSS'in tipinden değil, XSS'den kaynaklıdır. Ancak bazı durumlar daha tehlikeli olabilir. XSS, standart olmayan veya beklenilmedik web tarayıcı davranışlarının zekice yönlendirilmesi ile ortaya çıkar. XSS ayrıca web tarayıcının kullandığı bileşenlere de karşılıklı olarak ulaşma imkanı verir.

Saldırılarda çoğunlukla çok güçlü olan betik dili olan Javascript kullanılır. Javascript'in kullanılması, saldırgana sayfanın görünümü değiştirmesine, yeni bir öğe eklenmesine (Örneğin saldırganın sitesine kullanıcı bilgileri gönderecek bir oturum açma elemanı eklenmesine) olanak verir. Dahili DOM ağaç yapısı kullanılarak sayfanın doku ve görünümü değiştirilebilir veya silinebilir. Javascript XmlHttpRequest komutunun kullanımına izin verir ve tipik olarak bu komut AJAX teknolojilerinde kullanılmasına rağmen, günümüzde AJAX kullanmayan siteler de hedef durumundadır.

XmlHttpRequest kullanımıyla, bazen bir web tarayıcının izin verdiği kaynaklarının etrafından dolaşması sağlanarak; kurbanın verileri saldırganın sitesine yönlendirilebilir ve karmaşık worm ve zararlı zombi kodları oluşturularak web tarayıcısı çalıştığı sürece kullanılabilir. AJAX saldırıları, tehlikeli "cross site request forgery" (CSRF) (Siteler Ötesi İstek Sahteciliği) yapmak için görünür olmak zorunda değildir veya kullanıcı etkileşimi gerektirmemektedir.

Kaynakça : http://www.bilgiguvenligi.gov.tr

Hiç yorum yok:

Yorum Gönder