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:
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
Kaynakça : http://www.bilgiguvenligi.gov.tr
Hiç yorum yok:
Yorum Gönderme