- Cookie'ler ve http kimlik denetim bilgileri gibi oturumla ilişkili bilgilerin ele alınması konusundaki web browser davranışı,
- Saldırganın tarafında geçerli uygulama URL'leri bilgisi,
- Sadece web browser tarafından bilinen bilgilere dayanan uygulama oturum yönetimi,
- Varlığı anında bir http(s) kaynağına erişime neden olacak HTML tag'lerinin varlığı, "img" gibi.
İlk 3 madde açıklığın varlığı için zorunlu iken, 4. madde açıklığı exploit etmeye olanak tanır; ama mutlaka gerekli değildir.
4. madde ile ilgili sorun, şu maddelerin varlığından kaynaklanmakta:
- Sayfa içinde varlığı otomatik http taleplerine neden olacak HTML tag'leri var; "img" onlardan biri.
- Browser'a, "img" tarafından referans gösterilen kaynağın gerçekten bir resim olmadığını ve gerçekte legal olmadığını söylemenin bir yolu yoktur.
- Lokasyonu ne olursa olsun -sözde- resim yüklenir; mesela formun kendisi ve resim aynı host'ta, hatta aynı domain'de bile olmak sorunda dağildir.
Cooki'ler bu açıklığa maruz kalan tek örnek değildir; oturum bilgisi tamamen browser'lar tarafından sağlanan web uygulamaları da açıklığa maruzdur. HTTP kimlik doğrulama mekanizmaları bu kategoridedir, her talepte otomatik olarak bilgiler gönderilir. Bir kere beliren oturumla ilişkili bir bilgi üreten form-based kimlik doğrulamalar HARİÇ.
Karşı Önlemler:
Kullanıcı tarafı:
- Bir web uygulamasından iş biter bitmez logoff olunmalı.
- Browser'ın user/pwd bilgisinin kaydetmesine izin vermemeli; uygulamanın "beni hatırla" fonksiyonu kullanılmamalı.
- Hassas işlemlerin yapıldığı uygulamalar ile internette surf amaçlı gezilen uygulamalar aynı browser'da açılmamalı, bu işler için farklı browser'lar kullanılmalı.
Uygulama geliştirici tarafı:
- URL'e oturumla ilgili bilgi eklenmeli.Atağı mümkün kılan gerçek, oturumun unique olarak cookie tarafından (ki bu cookie otomatik olarak browser tarafından gönderiliyor olacak) tanımlanması. URL seviyesinde üretilmiş oturuma özel bilgiye sahip olmak, saldırganın URL'in yapısını bilmesini zorlaştıracak.
Diğer maddeler sorunu çözmeyecek fakat durumu zorlaştıracak tedbirler:
- GET yerine POST kullanılmalı. POST istekleri javascript'ler aracılığıyla simüle edilebilir olsa da saldırıyı daha karmaşık hale getirecektir.
- Konfirmasyon sayfaları (Şu yapılacak, emin misin?). Saldrıgan tarafından aşılabilir, fakat işini zorlaştıracaktır.
- Otomatik logout mekanizması.
Hiç yorum yok:
Yorum Gönder