Forum'da ara:
Ara


Yazar Mesaj
Mesaj13.04.2012, 17:55 (UTC)    
Mesaj konusu: Web Uygulamalarına Yönelik Saldırı Analizleri

Web Güvenliğini tehdit eden unsurları sınıflandırarak herhangi bir web sitesinin güvenliğine karşı olabilecek tehditleri açıklamak ve düzenlemek amacıyla genel bir analiz yapacağız. Ne tür tehditle karşı karşıyayız ve bunlara önlem olarak ne tür kontroller sağlanmalıdır?

Web güvenliği açıklıkları bir web sitesinin riskini devamlı olarak artırmaktadırlar. Herhangi bir web güvenliği açıklığı tespit edildiğinde, saldırının gerçekleştirilmesi için mevcut bir çok uygulama saldırıları tekniklerinden en az birisinin kullanılması gerekmektedir. Bu teknikler güvenlik açıklığından yararlanma şekline bağlı olarak farklılık gösterir. Genel olarak saldırı türleri, buffer overflow(bellek taşması), SQL injeksiyon, XSS(siteler arası betik yazma - CSS açıkları) şeklinde sıralanabilir.

Web güvenliği tehdit sınıflandırmasının oluşturulması uygulama geliştiriciler, güvenlik uzmanları, yazılım üreticileri ve web güvenliği ile ilgilenen diğer herkes için çok önemlidir.

Örneğin, bir web sitesi XSS saldırısına karşı korunmasız ise güvenlik açısından bu eksiklik kullanıcıların çerezlerinin çalınmasına yol açabilir. Çerez çalındığı zaman, bu durum herhangi bir kişinin oturum ele geçirmesine ve kullanıcının çevrimiçi hesabının ele geçirilmesine neden olabilir. Açıklıktan yararlanmak için, saldırgan URL (Bir örnek Kaynak Konumlayıcı) parametresini değiştirerek girdi manipülasyonu gerçekleştirebilir.

Web güvenliğini artırmaya yönelik önemlerin alınması için gerekli kontrollerin yapılması, saldırı sınıflarının incelenerek analiz edilmesi gerekir.

Saldırıların Sınıflandırması

Kimlik Doğrulama

Kullanıcı, servis veya uygulama kimliğini onaylayan metodunu hedef alan saldırıları kapsar. Kimlik doğrulaması en az şu üç mekanizmadan biriyle gerçekleştirilir:

• Sahip olduğunuz bir nesne

• Bildiğiniz bir bilgi

• Sahip olduğunuz bir özellik

Web sitesinin kimlik doğrulama mekanizmasını atlatmak veya istismar etmek için kullanılan saldırıları ele almaktadır. Kaba Kuvvet Saldırıları, Yetersiz Kimlik doğrulama, Zayıf Parola Kurtarma Denetimi şeklinde kendi içerisinde sınıflandırılır.

a- Kaba Kuvvet Saldırıları

Kaba kuvvet saldırısı, bir kişinin kullanıcı ismininin, parolasının, kredi kart numaralarının veya kriptografik anahtarlarının birer birer tahmin edilmesi için kullanılan otomatik bir deneme yanılma işlemidir.

Genel bir mantık olarak kullanıcılar kolay hatırlanabilir parolalar seçmektedirler. Saldırgan sistem üzerinde binlerce, milyonlarca tahmin üreterek geçerli bir parola bulmaya çalışır. Tahmin edilen parola sisteme erişime izin verdiğinde, kaba kuvvet saldırısı başarılı olmuş ve saldırgan ilgili hesaba erişmeyi başarmış demektir.

Gerçekte iki çeşit kaba kuvvet saldırısı mevcuttur, normal kaba kuvvet ve ters kaba kuvvet. Normal kaba kuvvet saldırısı, bir tek kullanıcı ismini birçok parola için kullanır. Ters kaba kuvvet saldırısı ise birçok kullanıcı ismini bir parola için kullanır. Milyonlarca kullanıcı hesabına sahip sistemlerde, birden çok kullanıcının aynı parolaya sahip olması olasılığı çarpıcı bir şekilde artmaktadır.

Kaba kuvvet saldırı teknikleri çok popüler olup çoğunlukla başarılı olurlar fakat bu saldırılar saatler, haftalar veya yıllar gerektirebilir.

Örneğin, Ali Avcı adındaki bir kullanıcı için;

Kullanıcı İsmi = Ali

Parolalar = avcı, ali-avcı, [hayvan isimleri], [doğum tarihleri], [araba isimleri],

Kullanıcı isimleri = Ali, Esra, Deniz, Serkan, Bahadır.....

Parola = 12345678

bu şekilde kullanım tamamen yanlış ve tehlikelidir.

b - Yetersiz Kimlik Doğrulama

Yetersiz kimlik doğrulama, bir web sitesinin saldırgana uygun bir kimlik doğrulama gerçekleştirmeden hassas içeriğe ya da fonksiyonlara erişim izni vermesiyle gerçekleşir.

Web tabanlı yönetim araçları hassas fonksiyonlara erişim sağlayan web sitelerine iyi birer örnektir. Kaynağına göre web uygulamalarına kullanıcıların tam olarak kimlikleri onaylanmadan direk olarak erişilmemelidir.

Bir kaynak saldırgan tarafından bilinmiyorsa bile belirli bir URL adresi ile bu kaynağa erişilebilir. URL adresi, yaygın kullanılan dosya ve dizin konumlarında (örneğin /admin), hata mesajlarında, kayıtlarda veya yardım dosyalarında kaba kuvvet yöntemiyle araştırılarak bulunabilir. Sözü edilen bu kaynaklar eğer içerik veya fonksiyonel olarak gerekli ise uygun bir şekilde korunmalıdır.

Örneğin;

Birçok web uygulaması, ana dizin dışında (/admin) başka dizinlere kurulmuştur ve

bazı yönetici fonksiyonlarına göre tasarlanmıştır. Bu dizinden web sitenin herhangi bir yerine hiç bir zaman link kurulmamıştır fakat söz konusu dizine standart bir web tarayıcısı ile erişmek hala mümkündür. Uygulamayı geliştiren kişi, web sayfasına herhangi bir link oluşturulmadığı ve herhangi bir kullanıcının da bu web sitesini görmesini beklemediği için söz konusu sayfaya kimlik doğrulama fonksiyonu eklemeyi çoğu zaman gözden kaçırmaktadır. Eğer saldırgan basit bir şekilde bu web sayfasını ziyaret edecek olursa, web sitesine tüm yönetici yetkileri ile erişme yetkisi kazanacaktır.

c - Zayıf Parola Kurtarma Denetimi

Zayıf parola kurtarma denetimi, bir web sitesinin saldırganın illegal olarak bir başkasının parolasını ele geçirmesine, değiştirmesine veya kurtarmasına izin verdiği durumdur.

Geleneksel web sitesi kimlik doğrulama metotları kullanıcıların bir parola ya da anahtar parolası (güvenlik kodu) seçmelerini ve bu bilgileri hatırlamalarını gerektirir. Söz konusu parolayı sadece sahibi olan kullanıcı bilmelidir.

Zaman geçtikçe kullanıcının parolayı hatırlayabilmesi zorlaşır. Normal bir kullanıcı parola gerektiren 20 web sitesi ziyaret ediyorsa hatırlama sorunu daha da artar. Bu sebepten dolayı, parola kurtarma fonksiyonu sistemlerin önemli bir parçasıdır. Otomatik parola geri elde etme işlemleri, kullanıcının kayıt olma işleminde belirlediği gizli soruya cevap vermeyi gerektirmektedir. Bu soru verilen soru listesinden seçilir ya da kullanıcı tarafından belirlenir. Kullanılan başka bir mekanizma ise kullanıcının parolayı hatırlaması için kayıt olma işlemi sırasında belirlenen bir yardım bilgisini kullanıcıya sunmasıdır. Diğer

mekanizmalar, kullanıcının kimliğini doğrulamak için sosyal güvenlik numarası, ev adresi, zip kodu v.b gibi kişisel bilgilerin girilmesini gerektirmektedir.


Kullanıcının kim olduğunu kanıtlamasından sonra sistem yeni parolayı kullanıcıya gösterir ya da e-posta yolu ile gönderir. Saldırgan parola kurtarma mekanizmasını yanıltabiliyorsa, web sitesi zayıf bir parola kurtarma mekanizmasına sahip demektir. Parolayı kurtarma işlemi sırasında kullanıcının kimliğini onaylamak için gereken bilgi tahmin edilebiliyorsa veya bu bilgi isteme işlemi atlatılabiliyorsa bu durum oluşur. Parola geri kurtarma sistemleri kaba kuvvet saldırıları, sistem açıklıkları ve kolay tahmin edilebilir gizli sorular kullanılarak istismar edilir.

Örneğin;

(Zayıf parola geri elde etme metotları)

• Bilgi Onaylama

Birçok web sitesi, kullanıcılardan sadece e-posta adresi, ev adresi ve telefon numarası bilgilerini isterler. Bu bilgiler birçok çevrimiçi beyaz sayfalardan elde edilebilir. Sonuç olarak onaylama bilgisi çok gizli değildir. Ayrıca söz konusu bilgiler XSS ve balık tutma saldırıları gibi diğer metotlarla da elde edilebilir.

• Parola İmaları

Kullanıcıya parola hatırlatmak için parola ipuçları kullanan web siteleri ipuçlarının kaba kuvvet saldırılarını kolaylaştırabilmesi sebebiyle rahatlıkla saldırılara maruz kalabilir. Kullanıcı iyi bir parola olan "122277King" ve parola ipucu olan "bday+fav author" kullanabilir. Bu durumda saldırgan parola ipucundan kullanıcının parolasının kullanıcının doğum günü ve favori yazarının birleşimi olduğunu çıkarabilir. Elde edilen bu bilgi, sözlük kaba kuvvet saldırısının parolayı tahmin etmede başarılı olma ihtimalini çok büyük miktarda artırır.

• Gizli Soru ve Cevap

Kullanıcının parolası “Richmond” ve gizli soru da “Nerede doğdunuz” sorusu olabilir. Saldırgan kaba kuvvet saldırısını şehir isimlerine yoğunlaştırır. Bunun yanında saldırgan hedef kullanıcı hakkında az bir bilgi biliyorsa doğum yerini öğrenme kolay bir iş haline gelir.

Yetkilendirme

Bir web sitesinin kullanıcı, servis veya uygulamanın istenen bir işlemi gerçekleştirmesi için gereken izinleri belirlemekte ve kullandığı metotları hedef alan saldırıları kapsamaktadır. Örnek olarak, birçok web sitesi belirli kullanıcıların belirli içeriğe ve fonksiyonlara erişimine izni vermelidir. Diğer zamanlarda kullanıcının diğer kaynaklara erişimi kısıtlanmalıdır. Saldırgan, web sitesinin korunan alanlarındaki haklarını değişik saldırı teknikleri yardımıyla artırarak sisteme girmeye çalışacaktır. Yetkilendirme kendi içerisinde sınıflandırılırsa;

a - Oturum Bilgisi Tahmin Etme

Web sitesi kullanıcısının rolüne girme veya söz konusu kullanıcının oturumunun ele geçirilmesi metodudur. Belirli bir oturumun veya kullanıcının tanınmasını ve diğerlerinden ayırt edilmesini sağlayan bir bilginin elde edilmesi ya da tahmin edilmesi söz konusu saldırıyı başarılı kılar. Oturumun ele geçirilmesi olarak da bilinen metodun kullanılmasıyla saldırganlar istismar edilen kullanıcının hakları ile web sitesine istek gönderebilirler.

Birçok web sitesi, iletişimin kurulmasından sonra kullanıcının kimliğinin doğrulanmasını sağlamak ve takibini yapmak için tasarlanmıştır. Bunu gerçekleştirmek için kullanıcılar kendi kimliklerini kullanıcı ismi ve parola bilgilerini girerek onaylatırlar. Bu gizli yetki bilgilerinin her işlemde web sitesine gidip gelmesi yerine web siteleri tek bir oturum numarası üreterek kullanıcı oturumunun kimliğinin doğrulandığını takip eder. Web sitesi ile kullanıcı arasındaki sonraki iletişimlere, üretilen bu oturum numarası eklenerek oturumun kimliğinin doğrulandığına dair kanıt oluşturulur.

Örneğin;

Birçok web sitesi tescilli algoritmalar kullanarak oturum numarası üretirler. Bu geleneksel metodolojiler statik sayıları artırarak oturum numarası oluşturabilirler veya zaman ve diğer bilgisayara özel değişkenler kullanarak daha karmaşık prosedürler kullanılabilirler.

Oturum numarası bir çerez, gizli form alanı veya URL içerisinde depolanabilir. Eğer saldırgan oturum numarası üreten algoritmayı belirleyebilirse, aşağıdaki şekillerdeki gibi saldırılar oluşturulabilir:

• Saldırgan web uygulamasına bağlanarak hali hazırdaki oturum numarasını elde eder,

• Saldırgan bir sonraki oturum numarasını direk hesaplar ya da kaba kuvvet saldırısı ile tespit eder,

• Saldırgan hali hazırdaki değeri (çerezdeki, gizli form alanındaki veya URL"deki) değiştirerek bir sonraki kullanıcının kimliğini ele geçirir.

b - Yetersiz Yetkilendirme

Web sitesinin daha geniş erişim kontrol kısıtlamaları gereken hassas bilgi içeriğine ya da fonksiyonlarına erişime izin vermesidir. Kullanıcının bir web sitesine erişim hakkı kazanması, sitenin tüm içeriğine veya fonksiyonlarına erişmesine izin verildiği anlamına gelmez.

Bir kullanıcının, servisleri veya uygulamaları kullanmasına izin verilmesi işlemlerini belirleyen yetkilendirme prosedürleri kimlik doğrulama işleminden sonra belirlenir. İyi belirlenmiş kısıtlamalar mevcut politikaya göre web sitesinin aktivitelerini yönetmelidir. Web sitesinin yönetimle alakalı kritik bölgeleri ancak sistem yöneticileri tarafından erişime açık olmalıdır.

Örneğin,

Geçmişte, birçok web sitesi, yönetici işlemleri ile ilgili içeriği ve/veya yönetici fonksiyonlarını ‘/admin’ veya ‘/logs’ gibi gizli dizinler içinde depolamaktaydı. Eğer saldırgan bu dizinlere direk olarak erişim talebinde bulunursa, erişime izin veriliyordu. Böylece saldırgan web sunucusunu yeniden konfigüre etme, hassas bilgiye erişme ve web sitesini istismar etme imkanına sahip oluyordu.

c - Yetersiz Oturum Sonlandırma

Web sitesinin saldırgana yetkilendirme için kullanılan eski oturum kimlik bilgisini veya bilgilerini tekrar kullanma imkanı vermesidir. Yeterli oturum sonlandırma işleminin yapılmaması, belirli saldırılarının başarı şansını artırabilir. Örneğin, saldırgan bir oturum bilgisini muhtemel bir ağ dinleyicisi ya da XSS saldırısı ile elde edebilir.

Başka bir saldırı senaryosunda, paylaşımlı bir bilgisayardan (kütüphane, internet kafe veya herkese açık iş ortamlarında bulunan bilgisayarlar gibi) herhangi bir web sitesine giriş yapılarak yetersiz oturum sonlandırma, saldırganın web tarayıcıdan geri düğmesine basarak daha önce kurban tarafından girilmiş web sitelerine erişmesine neden olur.

Örneğin;

Paylaşılan bilgisayar ortamlarında, yetersiz oturum sonlandırma bir başkasının web aktivitelerini gözlemleme amacıyla istismar edilebilir. Kurbanın oturum bilgisi sonlandırılmadığında, saldırgan kurbanın oturumunu sisteme herhangi bir kimlik doğrulama bilgisi sunmadan gözlemleyebilir.

d - Oturum Belirleme

Kullanıcıyı belirgin bir değerdeki oturum bilgisi kullanmaya zorlayan saldırı tekniğidir. Hedef web sitesinin sağladığı fonksiyonlara göre değişen birçok saldırı tekniği oturum bilgisini belirli bir değere sabitlemek amacıyla kullanılabilir. Bu teknikler, XSS’den web sitesine önceden yapılan HTTP erişimlerinden elde edilen oturum bilgilerine kadar değişen tekniklerdir.

Bir kullanıcının oturum bilgisi belirlendikten sonra, saldırgan kullanıcının sisteme giriş yapmasını bekler. Kullanıcı girişi yaptıktan sonra, saldırgan kurbanın sistem tarafından oluşturulan kimliğini ele geçirmek için önceden belirlenmiş oturum bilgisini kullanır.

İki çeşit oturum yönetim sistemi mevcuttur. Birincisi, “her şeye açık” sistemler ki bu sistemler web tarayıcılarının herhangi bir oturum bilgisi değeri belirlemesine izin verirler. İkinci çeşit sistemler sadece sunucu tarafından oluşturulan değerlere izin veren daha katı kurallı sistemlerdir. “Her şeye açık” sistemlerde rastgele değerdeki bir oturum bilgisi web sitesiyle temas kurulmadan belirlenir.

Katı kurallı sistemler, saldırganın web sitesi ile periyodik olarak kontağa geçerek ve aktivitesiz geçen süre sonunda iletişimi sonlandıran mekanizmadan korunarak oturumu devamlı izlemesini gerektirir.

Örneğin;

Oturum belirleme saldırısı üç adımda gerçekleşir:

1. Oturum oluşturma

Saldırgan hedef web sitesine izlenen bir oturum açar ve bir oturum bilgisi elde eder veya saldırgan kullanmak için rastgele bir oturum bilgisi seçer. Bazı durumlarda, izlenen oturumun bilgisinin web sunucusu tarafında geçerliliğini koruması için web sitesiyle tekrarlanan bir bağlantının kurulması gerekir.

2. Oturum belirleme

Saldırgan tespit ettiği oturum bilgisini kullanıcının web tarayıcısına gönderir ve böylelikle kullanıcının oturum numarasını kendi bildiği bir değere sabitlemiş olur.

3. Oturum Girişi

Saldırgan kullanıcının hedef web sitesine girmesini bekler. Kullanıcı web sitesine girdiğinde sabitlenen oturum numarasını kullanır ve saldırgan oturumu kendi üzerine alır.

Oturum bilgisinin sabitlenmesi aşağıdaki tekniklerle gerçekleştirilebilir:

1. Yeni oturum bilgisinin kullanıcı bazlı betik kullanılarak dağıtılması. İlgili alandaki herhangi bir web sitesinde mevcut bulunan XSS açıklığı çerez değerini değiştirmede kullanılabilir.

Kod Parçacığı

http://example/<script>document.cookie="sessionid=1234;%20domain= .example.dom";</script>.idc

2. META etiketi kullanarak çerez dağıtma

Bu metot bir önceki metoda benzemektedir, fakat XSS için alınan önlemlerin Meta etiketlerinin değil de HTML betik etiketlerinin sisteme sokulmasını önlediği zamanlarda da etkilidir.

Kod Parçacığı

http://example/<meta%20http-equiv=Set-Cookie%20content="sessionid=1234;%20domain=.exampl e.dom">.idc

3. HTTP cevap başlığı ile çerez dağıtma

Saldırgan aynı alandaki hedef web sitesinin veya başka bir sitenin çerezini dağıtmasını zorlar. Bu birçok yolla gerçekleştirilebilir:

• Aynı alandaki bir web sunucunun kırılması (mesela iyi yönetilemeyen WAP sunucusu)

• Kullanıcının DNS sunucusunun zehirlenerek saldırganın web sitesinin alana dahil edilmesi

• Alanda kötü niyetli bir web sunucusu kurma (Örneğin windows 2000 etki alanındaki bir bilgisayara, bütün bilgisayarlar DNS alanındadır)

• HTTP cevap bölme saldırısının kullanılması

Not: Uzun zamanlı oturum belirleme saldırısı, oturumun bilgisayar tekrar açıldığında bile sabit kalmasını sağlayan kalıcı çerezler kullanılarak gerçekleştirilebilir.

Kod Parçacığı:

http://example/<script>document.cookie="sessionid=1234;%20Expires =Friday,%201-Jan2010%2000:00:00%20GMT";</script>.idc
Önceki mesajları göster:   


Powered by phpBB © 2001, 2005 phpBB Group
Türkçe Çeviri: phpBB Türkiye & Erdem Çorapçıoğlu