Broken Access Control

Ana Sayfa » Application Security » Broken Access Control

Broken Access Control web uygulamalarında kullanıcıların yetkileri ve izinleri doğrultusunda verilere erişmesini engellemek için OWASP TOP 10 listesinin en başında yer alan ve son yıllarda uygumalarda en çok görülen zafiyetlerden birisidir. Bir kullanıcının erişim kontrolü, rol tabanlı erişim kontrolü (RBAC) veya benzer mekanizmalarla sağlanır. Ancak bu kontroller yanlış yapılandırıldığında veya eksik olduğunda, kullanıcılar yetkili olmadıkları veriler veya işlevlerle etkileşime girebilir. Bu zafiyet modeli saldırganların yetkisiz kaynaklara erişmelerine ve kritik verileri çalmalarına, manipüle etmelerine veya silmelerine yol açabilir.

Broken Access Control

Broken Access Control Türleri ve Saldırı Yöntemleri

Vertical Access Control Bypass

Bir kullanıcı daha düşük yetkilere sahip bir hesapla giriş yaptıktan sonra, uygulamadaki yönetici veya yüksek seviyeli kullanıcı kaynaklarına erişmeye çalışır. Örneğin, bir kullanıcı sıradan bir müşteri hesabıyla bir e-ticaret sitesine giriş yaptıysa, admin paneline ya da diğer kullanıcılara ait verilere ulaşmaya çalışabilir.

Saldırı Yöntemi:

  • URL Manipülasyonu: Saldırgan, URL’yi değiştirerek yüksek seviyeli kullanıcıların erişebileceği sayfalara yönlendirilir. Örneğin, /admin dizinine gitmek.
  • HTTP Header Manipülasyonu: Giriş yapmış bir kullanıcı, HTTP başlıklarını değiştirebilir veya manipüle ederek daha yüksek erişim seviyeleri talep edebilir.

 

Horizontal Access Control Bypass

Kullanıcı yalnızca kendi verilerine erişebilecekken, başka bir kullanıcının verilerine izinsiz erişmeye çalışır. Örneğin, bir kullanıcı başka bir kullanıcının hesap bilgilerini veya geçmiş siparişlerini görüntülemek için URL’deki parametreyi değiştirir.

Saldırı Yöntemi:

  • ID Manipülasyonu: Saldırgan, başka bir kullanıcının ID’sini belirleyerek veri erişim kontrolünü aşmaya çalışabilir. Örneğin, /user/1234 URL’sini /user/5678 olarak değiştirmek.

 

Insecure Direct Object References (IDOR)

Uygulama bir nesneye (dosya, veritabanı kaydı, vb.) erişim sağlamak için kullanıcıdan gelen girdi parametrelerini doğrudan kullanır. Saldırganların yalnızca kendi verilerine değil, diğer kullanıcıların verilerine de erişmesini sağlayabilir.

Saldırı Yöntemi:

  • ID Manipülasyonu: Kullanıcı, URL veya POST parametrelerinde bulunan nesne ID’lerini değiştirerek yetkisiz verilere erişebilir. Örneğin, bir dosya yükleme işlemi sırasında dosya ID’sini değiştirerek başkasının dosyasına erişmek. Yada kullanıcı ID`sini değiştirerek farklı bir kullanıcının bilgilerine erişebilir.

 

Forced Browsing

Erişim kontrollerinin düzgün bir şekilde uygulanmadığı durumlarda, kullanıcının erişebileceği tüm kaynakları keşfetmek için yapılan bir tekniktir. Saldırgan yanlış yapılandırılmış URL’leri ve sistem dizinlerini tarayarak gizli sayfalara ulaşmaya çalışır.

Saldırı Yöntemi:

  • URL veya dosya adlarını tahmin etmek veya sistemdeki dizinleri bulmak için otomatik araçlar kullanılır. Bu saldırılar genellikle web uygulamalarındaki gizli sayfalara ve kaynaklara erişimi hedef alır.

Broken Access Control’a Karşı Korunma Yöntemleri

  • En Az Ayrıcalık (Least Privilege): Kullanıcıların yalnızca işlerini yapmak için gerekli olan en düşük erişim seviyesine sahip olmalarını sağlayın. Böylece, bir saldırgan bir hesap üzerinden uygulamaya sızsa bile, potansiyel zararı en aza indirirsiniz.
  • Role-Based Access Control (RBAC): Kullanıcıların, rollerine göre belirli verilere ve işlevlere erişimini kısıtlamak için RBAC gibi yapılandırılmış kontrol mekanizmaları uygulayın.
  • Çift Faktörlü Kimlik Doğrulama (2FA): Kullanıcıların yalnızca bir parola ile değil, ikinci bir doğrulama katmanı ile de kimlik doğrulaması yapmalarını sağlayarak daha güçlü bir erişim güvenliği sağlayın.
  • Oturum Süresi ve Oturum Sonlandırma: Kullanıcı oturumlarının süresi sınırlı olmalı ve gereksiz yere açık bırakılmamalıdır. Ayrıca, oturumlar kullanıcı çıkış yaptığında düzgün bir şekilde sonlandırılmalıdır.
  • Sunucu Tarafı Erişim Kontrolü: Erişim kontrolleri her zaman sunucu tarafında yapılmalıdır. Bir uygulama sadece istemci tarafında yapılan kontrolle güvenli olamaz çünkü istemci tarafı manipüle edilebilir.
  • Veri Doğrulama: Kullanıcılara sunulan her türlü veri girişi veya parametre, sunucu tarafından doğrulanmalıdır. Kullanıcıdan gelen her girdi güvenli şekilde filtrelenmeli ve doğrulanmalıdır
  • Erişim Kontrolü Testi: Uygulamanın her noktasında erişim kontrol testleri yapmak, potansiyel BAC açıklarını tespit etmek için önemlidir. Zafiyet tarayıcıları ve manuel penetrasyon testleri kullanılabilir.
  • Güvenlik Denetim Logları: Tüm erişim denemeleri ve başarılar, güvenlik denetimi amacıyla kaydedilmelidir. Potansiyel kötüye kullanım tespitine yardımcı olur.
  • Paket ve Kütüphane Güncellemeleri: Yazılımda kullanılan kütüphanelerin ve paketlerin güncel ve güvenli olmasına dikkat edilmelidir. Güvenlik açıkları genellikle eski sürümlerde bulunur.

 

Yazılım geliştirme ve yayınlama aşamasında gerekli kontrollerin eksiksiz yapılandırması, etkili erişim kontrol mekanizmaları, güvenli kimlik doğrulama yöntemleri ve sürekli güvenlik testleri ile bu zafiyetler minimize edilebilir. Web uygulama geliştiricileri ve güvenlik uzmanları, erişim kontrolü uygulamalarını doğru bir şekilde yapılandırarak bu tehditleri önemli ölçüde engelleyebilirler.

Broken Access Control - Yorumlar

YORUMLARINIZI PAYLAŞIN

 

Yapılan Yorumlar

BENZER İÇERİKLERİlginizi çekebilecek diğer içerikler

IAST ile Zafiyet İnceleme

IAST ile Zafiyet İnceleme 17 Aralık 2024

DevSecOps Nedir?

DevSecOps Nedir? 04 Aralık 2024

www.irfankocak.com

İrfan KOÇAK - Tüm Hakları Saklıdır