Hibrid XSS ile Oturum Korsanlığı

Oturum bilgilerinin çalınması (oturum korsanlığı) bir çok saldırı vektörü ile gerçekleştirilebilir. Bunlardan bir tanesi de siteler arası betik çalıştırma (xss) açıklık saldırı vektörüdür.

3 çeşit xss vardır ve bunlardan ikisi Şekil 1 ve Şekil 2 de gösterildiği gibi oturum korsanlığı saldırılarında kullanılabilir. (Şekillerde “sunucu”ların, xss açıklığından muzdarip bir web uygulama barındırdığı kabul edilir.)

Not: Doküman boyunca oturum yönetiminin cookie tabanlı olduğu kabul edilmiştir.

Yansıtılan XSS açıklığının kullanıldığı (Şekil 1) oturum korsanlığı saldırısında saldırgan açısından en büyük dezavantaj, (kurban) kullanıcıyı tanımlı olduğu sunucuya kötü amaçla oluşturulmuş link aracılığı ile sunucuya gitmesine ikna etmektir. Günümüzde her ne kadar bu sahtecilik şekli hala etkili olsa da, gün geçtikçe kullanıcıların güvenlik farkındalıkları artmaktadır ve mesela e-posta içerisinde bulunan bir linki kullanarak internet bankacılık servislerine girme ihtimalleri düşmektedir (ki bu iyi bir gelişmedir).

Bu dezavantaja rağmen yansıtılan XSS açıklığının bir avantajı, bu tip bir açıklığın karmaşık bir web uygulamasının dahili menülerinin birinde bulunma ihtimalinin yüksek olmasıdır.

Depolanmış XSS açıklığının kullanıldığı (Şekil 2) oturum korsanlığı saldırısında saldırgan açısından en büyük dezavantaj belki de, bu tür açıklıklarının hassas uygulamalarda yansıtılan XSS kadar fazla bulunmamasıdır. Çünkü bu açıklığın etkili olmasındaki ana etkenlerden birisi, saldırganın girdiği kötü amaçlı bilgilerin sunucu tarafından girdi denetimine tabi tutulmadan depolanması ve yine bu bilgilerin çıktı denetimine tabi tutulmadan diğer kullanıcılara gösterilmesidir (bu duruma en iyi örneklerden biri mesaj panosu uygulamalarıdır).

Ancak bu açıklığın bir avantajı, kullanıcıların sunuculara girmelerine ikna edilmelerinin Şekil 1’deki duruma göre daha kolay olmasıdır (yani saldırı kodunu içeren kötü amaçlı bir link hazırlamaya gerek yoktur).

Bu saldırıları vektörlerinin avantajlarını birleştirebilecek (ancak kendine göre dezavantajları olan) bir başka saldırı vektörü hazırlanabilir.

Hibrid XSS açıklığının kullanıldığı (Şekil 3) oturum korsanlığı saldırısındaki bileşenler şu şekilde listelenebilir;

Saldırı akışı şu şekilde açıklanabilir;

  1. Kullanıcı, kurban sunucusunda bulunan web uygulamasına giriş yapar (Şekil 3’teki 1. ve 2. adımlar)
  2. Kullanıcı, kurban sunucusundaki uygulamadan çıkmadan, zehirlenmiş sunucuda bulunan web sayfasını açar (Şekil 3’teki 3. ve 4. adımlar)
  3. Zehirlenmiş sunucudaki web sayfasında bulunan saldırı dizgisi, kullanıcı Internet tarayıcısında çalıştığında, kurban sunucusuna gizli bir istek (veya birden fazla) daha gider ve oturum bilgileri tarayıcıdan çalınarak saldırgana gönderilir. Bu durumun başarılabilmesi kullanılan Internet tarayıcısının ya tek süreç (single process) mantığında çalışmasını ya da sekme özelliğini olmasını gerektirir (IE 7 Beta 1 ve 2, Firefox, Opera ve Netscape gibi tarayıcılar sekme özelliklerini barındırırlar ve ayrı sekmeler oturum bilgilerini paylaşırlar). (Şekil 3’teki 5., 6. ve 7. adımlar)

Sadece Windows için saldırının gösterildiği bir videoya buradan erişilebilir. Öncelikle bu kod çözücüyü indirmeniz gerekir.

Bu saldırı vektörü hakkında bir çok şey söylenebilir. Mesela bu saldırının diğer vektörlere göre dezavantajı, etkili olma yüzdesinin daha düşük olmasıdır, çünkü kullanıcının bir uygulamayı (kurban sunucu) kapatmadan diğer uygulamayı veya sayfayı (zehirlenmiş sunucu) açması gerekmektedir. Ancak dikkat edilmesi gereken nokta kullanıcının bu uygulamaları hangi sıra ile açtığı saldırıyı etkisiz kılmayacaktır.

Bu saldırıya karşı uygulanabilecek savunma yollarından en önemlisi, kurban sunucuda bulunan web uygulamasındaki XSS açıklıklarının yok edilmesidir. Ayrıca oturum yönetimi, cookie’ler ile değilde html gizlenmiş alanları veya URL yazma tekniği kullanılarak yapılırsa bu saldırı vektörü anlamsız bir duruma düşer (çünkü ayrı tarayıcı sekmeleri sadece cookie bilgilerini paylaşırlar).

11/05/06, Bedirhan Urgun, urgunb at hotmail com