Root > Documents > Web Güvenlik Açıkları > Mantıksal Saldırılar
Cyber-Warrior.Org \ Doküman \ Web Güvenlik Açıkları > Mantıksal Saldırılar
Madde
  Yazar : beks rf 5
  Date : 14.11.2006 19:37:46
 
# Mantıksal Saldırılar
 

Mantiksal Saldirilar

Mantiksal saldirilar bölümü bir web uygulamasinin mantik akisinin kötüye kullanimina veya sömürülmesine odaklanir. Uygulama mantigi belli bir eylemi gerçeklestirmek için kullanilan öngörülen prosedürel akistir. Parola kurtarma, hesap açma, açik arttirma teklifi ve eTicaret alimlari web uygulama mantiginin örnekleridir. Bir web sitesi, belli bir eylemin tamamlanmasi için kullanicinin kendine özgü birden fazla adimli bir islemi gerçeklestirmesini gerek kosabilir. Bir saldirgan bu özellikleri altedip veya amaçlari disinda kullanarak web sitesine veya kullanicilarina zarar verebilir.

Fonksiyonelligin Kötüye Kullanimi

Fonksiyonelligin kötüye kullanilma teknikleri genellikle, gibi diger web uygulama saldirilari kategorileri (mesela kodlama saldirisi kullanilarak uygulanan bir soru cümlecigi ile bir web sorgu

fonksiyonunun uzaktan kumanda edilen bir web vekiline dönüstürülmesi) ile iç içedir. Fonksiyonelligin kötüye kullanilma saldirilari ayni zamanda güç arttirmak amaci ile yaygin olarak kullanilir. Mesela, saldirgan bir web söylesi sitesine XSS parçasini enjekte ederek ve sitenin "herkese gönder" fonksiyonunu kullanarak kötü amaçli kod ile bütün siteye etki edebilir.

Genis bir bakis açisi ile, bilgisayar tabanli sistemlere yönelik bütün etkili saldirilar fonksiyonelligin kötüye kullanilmasini içerirler. Özellikle, bu tanim kullanisli bir web uygulamasinin orijinal fonksiyonu çok az veya hiç bir degisiklige ugratmadan kötü bir amaç ugruna kullanilmasini açiklar.

Örnek

Fonksiyonelligin kötüye kullanilma örnekleri: a) bir web sitesindeki sorgulama fonksiyonunun web dizini disindaki kisitlanmis dosyalara ulasilmasinda kullanilmasi, b) bir dosya yükleme altsisteminin dahili kritik konfigürasyon dosyalarinin degistirilmesinde kullanilmasi, ve c) Bir web-kullanci giris sayfasinin tanimli kullanici isimleri ve tanimsiz parolalar ile bombardiman edilerek tanimli kullanicilarin, belirli bir tekrar deneme limiti asildigi için, hesaplari kilitlenerek uygulamanin servis disi birakma saldirisina ugratilmasi gibi saldirilari içerir. Diger gerçek dünya örnekleri asagida açiklanmistir.

1. Matt Wright FormMail

PERL tabanli "FormMail" web uygulamasi, normal olarak kullanici tarafindan saglanan form verilerinin önceden programlanmis bir e-mail adresine gönderilmesi için kullaniliyordu. Betik, web sitelerine geri beslemeyi saglayacak, kullanilmasi kolay bir çözüm sagliyordu. Bu nedenle, FormMail betigi çevrimiçi olarak en çok kullanilan CGI programlarindan biriydi. Ne yazik ki, programin bu yüksek derecedeki kolayligi ve kullanilabilirligi saldirganlar tarafindan uzaktaki herhangi bir aliciya e-mail yollanmasi suretiyle kötüye kullanilmisti. Kisacasi, bu web uygulamasi tarayicidan tek bir web istegiyle bir spam-rölesi motoruna (spam-relay) dönüstürülmüstü.

Saldirganin istenilen e-mail parametrelerini içeren bir URL olusturup, CGI programina HTTP GET yollamasi yeterliydi. Mesela;

http://example/cgi-bin/F[email protected]&message=you&got&spam

Web sunucunun yollayici olarak davranmasi ve web uygulamasinin saldirgana tamamen vekalet etmesi ile bir e-mail üretilir. Betigin bu versiyonunda hiç bir güvenlik mekanizmasi bulunmadigindan, uygulanabilecek tek savunma önlemi, kullanilacak özel e-mail adresinin betigin içine gömülmesiydi. Bu çözümün engellenmesi durumunda ise, site operatörleri web uygulamasini ya tam olarak kaldirmak ya da tamamen degistirmek zorunda kaliyorlardi.

2. Macromedia’nin Cold Fusion’u

Bazen web uygulamalarinin içine istenmeyen amaçlar için kolaylikla kullanilabilen temel yönetimsel araçlar gömülürler. Örnek olarak, Macromedia’nin Cold Fusion’u kurulum ile birlikte gelen ve herkes tarafindan erisilebilen bir kaynak kod görüntüleme modülüne sahiptir. Bu modülün suistimali web uygulamasinda ciddi bir bilgi sizmasina yol açabilir. Çogunlukla bu tür modüller, örnek dosyalar veya kurulum disi fonksiyonlar degil, kritik sistem bilesenleridirler. Bu durum web uygulamalari sistemlerine derinden baglandiklari nedeniyle bu tür modüllerin kapatilmalarini problemli kilar.

3. Smartwin CyberOffice Alisveris Sepeti Fiyat Degisikligi

Fonksiyonelligin suistimali bir saldirganin web uygulamasinin davranisini degistirmek için verileri umulmadik bir sekilde bozmasiyla gerçeklesir. Mesela, CyberOffice alisveris sepeti, web formunun içindeki gizli fiyat alaninin degistirilmesi ile suistimal edilebilir. Web sayfasi normal olarak indirilir, degistirilir ve sonra fiyat alani istenilen herhangi bir fiyata esitlenerek geri yollanilir. 

Servis Disi Birakma

 Servis Disi Birakma (DoS) bir web sitesini normal kullanici aktivitesinden alikoymak amaci ile yapilan bir saldiri teknigidir. Genel olarak network tabakasina kolaylikla uygulanabilen DoS saldirilari uygulama tabakasinda da mümkündür. Bu kötü niyetli saldirilar bir sistemi kritik kaynaklarindan mahrum birakarak, bir açikligin gerçekleyerek veya bir fonksiyonu suistimal ederek basariya ulasabilirler.

Bir çok zaman DoS saldirilari bir web sitesinin varolan bütün sistem kaynaklarini bitirmeye çalisirlar, bu kaynaklara örnek olarak; CPU, hafiza, disk yeri, v.b. verilebilir. Bu kritik kaynaklardan herhangi biri tam güç kullanildiginda, web sitesi normal olarak erisilemez olacaktir.

Bugünün web uygulamalari bir web sunucusu, veritabani sunucusu ve bir yetkilendirme sunucusu içerdiginden, uygulama tabakasindaki bir DoS, bu birbirinden bagimsiz bilesenlerden herhangi birini hedef alabilir. Çok büyük miktarda baglanti tesebbüsü gerektiren network tabakasindaki DoS’dan farkli olarak, uygulama tabakasindaki DoS çok daha kolay uygulanabilir bir istir.

Örnek

Medikal geçmis raporu üreten bir Saglik Bakimi web sitesi düsünün. Web sitesi, her rapor isteginde, tek bir sosyal güvenlik numarasina karsilik gelen bütün kayitlari getirmesi için bir veritabanini sorgulamaktadir. Veritabaninda bütün kullanicilar için yüzbinlerce kayit tutuldugundan, kullanicilar kendi kayitlarini görebilmek için 3dk beklemek zorundadirlar. Bu 3dk boyunca, karsilik gelen kayitlari ararken, veritabani sunucusunun CPU’su %60 yogunlukla çalismaktadir.

Basit bir uygulama tabakasi DoS saldirisi, medikal geçmis raporu üretilmesi için 10 istegin ayni anda gönderilmesi olacaktir. Bu istekler, veritabani sunucusunun CPU’sunu %100 yogunluga ulastiracagindan web sitesini büyük bir ihtimalle hizmet disi durumuna sokacaktir. Bu noktada sistem normal kullanici aktivitesine servis veremez hale gelecektir.

1. Belli bir Kullaniciyi Hedef Alan DoS

Saldirgan belli bir kullanici adi ve bilinçli olarak üretilmis yanlis bir parola ile bir web sitesine girmek isteyecektir. Bu islem en sonunda kullanici adi kullanilan kisinin hesabini kitleyecektir.

2. Veritabanini Hedef Alan DoS

Saldirgan veritabanini degistirip sistemi kullanilmaz hale getirmek (Bütün veriyi, kullanici adlarini silerek, v.b.) için SQL Enjeksiyonu tekniklerini kullanacaktir.

3. Web Sunucusunu Hedef Alan DoS

Saldirgan, web sunucusu isini (proses) sonlandiran özel olarak hazirlanmis bir istek göndermek için arabellek tasmasi tekniklerini kullanacak ve sistemi normal kullanici aktivitelerine erisilmez hale getirecektir.  

Yetersiz Anti-otomasyon

Yetersiz anti-otomasyon, bir web sitesinin saldirgana normalde manual olarak (elle) yapmasi gereken bir isi otomatik olarak yapabilmesine izin verdigi durumdur. Bazi web sitesi fkonsiyonlari otomatiklestirilmis saldirilara karsi korunmalidir.

Göz önünde bulundurulmamis otomatik robotlar (programlar) veya saldirganlar, web sitesinin fonksiyonlarini sistemi sömürmek veya dolandirmak için tekrar tekrar kullanabilirler. Otomatik bir robot bir dakika içinde binlerce istek çalistirip potansiyel is ve servis kaybina neden olur.

Mesela, otomatik bir robot bir kaç dakika içinde onbinlerce yeni hesap açamamalidir. Benzer olarak, otomatik robotlar diger kullanicilari mesaj tahtalarina tekrar tekrar mesaj yollayarak taciz edememelidirler. Bu operasyonlar sadece insanlarin kullanabilecegi operasyonlar olarak kisitlanmalidirlar.

Yetersiz Is Tasdiki (Denetimi)

Yetersiz Is Denetimi bir web sitesinin saldirgana uygulamanin istenilen kontrol akisini baypas edebilmesine veya atlamasina izin verdigi durumdur. Eger kullanici durumu bir is süresince denetlenmiyor ve uygulanmiyorsa, web sitesi sömürülmeye veya dolandiriliciliga açik olabilir.

Bir kullanici belli bir web sitesi fonksiyonunu gerçeklediginde, uygulama, kullanicinin açik ve sirali bir diziyi izlemesini bekleyebilir. Eger kullanici bazi adimlari yanlis veya hatali bir sekilde gerçeklerse, bir veri bütünlügü hatasi olusur. Bir kaç adimli isler para transferi, parola kurtarilmasi, satin alma, hesap açma v.b. örneklerini kapsar. Bu isler büyük ihtimalle bazi adimlarin umuldugu gibi gerçeklestirilmesini zorunlu tutacaktir.

Bir çok adimli islerin dogru dürüst çalismasi için, web siteler kullanicilarin durumlarini kullanicilar is akisini gezerken tutmak zorundadirlar. Web siteleri kullanici durumlarini izlemek için normal olarak çerezler veya gizli HTML alanlarini kullanirlar. Ancak, izleme bilgisi istemci tarafinda tarayicida (browser) tutulursa verinin bütünlügü denetlenmelidir. Eger denetlenmezse, saldirgan güncel durumunu degistirerek umulan trafik akisini atlatabilir.

Örnek

Çevrimiçi bir alis veris sepeti sistemi, müsterilerine bir A ürünü satin alindiginda belli bir indirim saglayabilir. Kullanici, A ürününü yerine bir B ürününü almak isteyebilir. Kullanici, sepetini ürün A ve B ile doldurarak ve hesap kesim islemini gerçekleyerek indirimden faydalanabilir. Daha sonra kullanici hesap kesim isleminden geri çikip, A ürününü sepetten siler veya bir sonraki adimi yollamadan degerleri degistirir. Kullanici daha sonra tekrar hesap kesim isleminden geçer ve daha önce sepetindeki A ürününden dolayi indirimden faydalanmis bir sekilde dolandirilmis bir alim fiyati elde etmis olur.

   
   
Cyber-Warrior TIM All Legal and illegal Rights Reserved.\CWDoktoray 2001©