21 Ekim 2012 Pazar

URL Erişimini Kısıtlamada Bozukluk

Çoğu zaman uygulamalar, bağlantı ve URL satırlarını yetkili olmayan kullanıcılara sadece göstermeyerek hassas işlevselliği korumaktadırlar. Saldırganlar bu URL’lere doğrudan erişerek, yetkisi olmayan işlemleri gerçekleştirmek için bu zayıflığı kullanabilirler.

Sıklıkla, bir URL’in tek koruması yetkisiz girişlere izin verilmeyen bir sayfaya yönlendirmedir. Ancak, motive edilmiş, yetenekli yada gerçekten şanslı saldırganlar bu adreslere erişebilir, fonksiyonları çağırabilir veya verileri görüntüleyebilir. Belirsiz güvenlik hassas fonksiyonları ve uygulama içerisindeki verileri korumak için yeterli değildir. Hassas fonksiyonlara erişimden önce erişim kontrolü mutlaka yapılmalıdır ki kullanıcının o fonksiyona erişim yetkisi olduğu kontrolü yapılabilsin.

Bu zayıflık için ilk saldırı yöntemi “forced browsing” olarak adlandırılmaktadır. Korunmasız sayfaları bulmak için birer birer deneme (brute force) atakları ya da linkleri tahmin etme yöntemleri ile uygulama çevrelenebilir. Uygulamalar sıklıkla codebase tarafından kod kontrol erişimine, kodu yaymak ve açmak için izin verir. Karmaşık bir modeli sonuçlandırmak güvenlik uzmanları gibi geliştiriciler için de anlamayı zorlaştırır.
Bu kusuru içeren bazı yaygın örnekler:
“Gizlenmiş” veya “Özel” URL’ler, sadece sunum katmanındaki yetkilendirilmiş kullanıcı ve yöneticilerin işleyebilirdi. Ancak bunun varlığını bilen diğer kullanıcılar tarafından da /admin/adduser.php veya /aproveTranser.do gibi sayfalara erişilebilir.  Buna özellikle en çok menü kodlarında rastlanılır.

Uygulamalar genellikle “Gizli” dosyalara erişime izin verir, statik XML yada sistemin ürettiği raporlar, güvenilir güvenlik uygulamalarının gizledikleri gibi.

Erişim kontrol tedbirini güçlendiren koddur. Ancak eski veya yetersiz olabilir . Örnek olarak, /approveTransfer.do kodunun tüm kullanıcılar tarafından erişilebildiğini düşünün, yetkisi olmayan kullanıcılar bu kod ile yetkisiz işlemler yapabilir.

Sunucu üzerinde değil ama istemci üzerinde yetkilendirebilen kod, attack on MacWorld 2007’de olduğu gibi, sunucu aksine web tarayıcısı üzerinden javascript kodu ile 1700$ değerinde “Platinium” kullanıcı geçişi onaylanmıştır.

Uygulamanın fonksiyon ve rol haritasını matris oluşturarak zaman alan yetkilendirmesi,yasaklanmamış URL erişimlerine karşın başarılı korumada anahtar adımdır. Web uygulamalarının her URL üzerinde erişim kontrolü güçlendirilmek zorundadır. Business logic korunmasız bırakılıp ve sunum katmanı içine erişim kontrolü koymak yeterli değildir. Ayrıca işlem boyunca kullanıcının bir kere yetki kontrolünün yapılması da yeterli değildir. Aksi takdirde, saldırgan yetkilendirmenin kontrol edildiği bölgeyi geçip saldırıya diğer aşamalardan gerekli parametreleri göndererek devam diğer aşamalara devam edebilir.
URL erişim kontrolünü açmak dikkatli planlamayı gerektirir. En önemli görüşler arasında şunlar vardır:

● Erişim kontrol matrislerinin; işinizin, mimarinin ve uygulama dizaynının bir parçası olmasını sağlayın.

● Tüm URL ve iş fonksiyonlarının güvenliğini sağlamak efektif erişim kontrolü mekanizması tarafından korunduğundan emin olun. Bu ise herhangi bir işlem gerçekleşmeden önce, kullanıcı rolü ve yetkilendirmesini doğrulamak demektir. Bu işlemin her aşamada tekrarlandığından emin olun.

● Uygulama konuşlanmadan önce saldırı testi uygulayın. Böylece saldırıya motive edilmiş becerili saldırgan tarafından uygulamanın kötüye kullanılması engellenecektir.

● Özellikle çalıştırılabilir uzantılara sahipse .php gibi include/library dosyalarını çok yakından takip edin. Bunları daha güvenli olabilecekleri web ana dizininden uzakta tutun. Onlara direkt olarak erişilemeyeceğini kontrol edin. Direkt olarak erişilemeyeceğini kontrol edin ve sadece sistem kütüphanelerinin çağırabilmesini sağlayın.

● Kullanıcıların, özel veya gizli URL’lerin veya API’lerin farkında olmayacağını sanmayın.Daima yönetici ve yetkileri yüksek öncelikli işlerin korunduğundan emin olunmalıdır.

● İlerde kullanılmayacak bütün dosya türlerine ve uzantılarına erişimi bloklayın. İdeal olarak, kullanmaya niyetli olduğunuz .html, .php, .pdf gibi uzantılara sadece izin vererek bilinen iyilere izin ver “accept known good” politikasını izleyebilirsiniz. Bu uygulama sayesinde herhangi bir şekilde log dosyalarına, xml dosyalarına, vb  istemediğiniz direkt erişim girişimini bloklamış olursunuz.

● Virüs korumanızı güncel tutun ve güvenlik yamalarınızı zamanında yaparak, kullanıcı uygulama verilerini elinde tutan XML işlemci, kelime işlemci, resim işleyici programlarınızı güncel tutunuz.

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

Hiç yorum yok:

Yorum Gönder