Broken Access Control

Bozuk Erişim Kontrolü (Broken Access Control), bir web uygulamasında kullanıcıların izinleri dışında kaynaklara erişmelerine izin veren güvenlik zayıflığıdır. Bu tür bir güvenlik açığı, yetkisiz kullanıcıların sistem içindeki kaynaklara erişim sağlamasına veya yetkilendirilmiş kullanıcıların normal yetki düzeylerinin ötesine geçmesine imkan tanır. Yetkilendirme ve oturum yönetimi mekanizmalarının yetersizliği genellikle bu tür zayıflıkların temel nedenlerindendir. Bu makalede, bozuk erişim kontrolü güvenlik açığı üzerine temel kavramlar, türleri, zafiyet örnekleri ve korunma yolları ele alınacaktır.

Temel Kavramlar

Bozuk erişim kontrolü, kimlik doğrulama, oturum yönetimi ve erişim kontrolü gibi temel kavramları içerir.

Kimlik Doğrulama (Authentication):

Kullanıcıların kimliklerini doğrulamak ve onlara erişim izinleri sağlama sürecidir. Örneğin, kullanıcının adını ve şifresini girmesiyle gerçekleşir.

Oturum Yönetimi (Session Management):

Kullanıcıların uygulama içinde oturum açtıktan sonra bu oturumu koruma ve yönetme sürecidir. Oturum yönetimi, kullanıcının uygulama içinde gezinirken oturumunun geçerli olmasını sağlar.

Erişim Kontrolü (Access Control):

Kimlik doğrulaması ve oturum yönetimi sonrasında kullanıcılara tanınan yetkileri kontrol etmek için kullanılır. Kullanıcının belirli eylemleri gerçekleştirip gerçekleştiremeyeceğini belirler.

Erişim Kontrolü Türleri

Erişim kontrolü çeşitli türleri içerir, bunlar arasında:

Dikey Erişim Kontrolü (Vertical Access Control)

Dikey erişim kontrolü, kullanıcıların belirli bir rol veya pozisyonlarına bağlı olarak belirli kaynaklara erişimini kontrol eder. Örneğin, bir yönetici belirli işlevlere, bir kullanıcı ise sınırlı işlevlere erişebilir.

Yatay Erişim Kontrolü (Horizontal Access Control)

Yatay erişim kontrolü, kullanıcıların kendi rolleri dışındaki kullanıcıların kaynaklarına erişimini kontrol eder. Bu durumda, bir kullanıcı başka bir kullanıcının kaynaklarına izinsiz erişemez.

Bağlamına Bağlı Erişim Kontrolü (Context-Dependent Access Control)

Bağlamına bağlı erişim kontrolü, kullanıcının erişim izinlerini çeşitli bağlamlara (zaman, konum, durum) bağlı olarak değiştirebilir. Örneğin, belirli bir saat aralığında veya belirli bir konumda erişime izin vermek.

Bozuk erişim kontrolü Zafiyet Türleri

Bozuk erişim kontrolü zafiyet türleri arasında:

Dikey Ayrıcalık Yükseltme

Bu zafiyet, bir kullanıcının kendi rolünü yükselterek daha fazla ayrıcalık elde etmesine izin verir. Örneğin, bir normal kullanıcının yönetici işlevselliğine erişmesi.

Yatay Ayrıcalık Yükseltme

Bu zafiyet, bir kullanıcının normalde aynı düzeyde veya benzer ayrıcalıklara sahip başka bir kullanıcının kaynaklarına erişmesine veya onun gibi davranmasına izin verir.

Çok Adımlı İşlemlerde Erişim Kontrolü Zafiyetleri

Bazı durumlarda, bir dizi adımdan oluşan işlemlerde erişim kontrolleri eksik olabilir ve kullanıcılar beklenmedik kaynaklara erişebilir.

Örnek Zafiyetler

Bozuk erişim kontrolü zafiyetlerine örnekler arasında:

1. Parametrelerin URL veya HTML Sayfasında Değiştirilmesi

Kötü niyetli bir kullanıcı, URL'deki parametreleri değiştirerek başka bir kullanıcının verilerine erişebilir.

2. API'ye Erişimde Kontrollerin Eksik Olması

Uygulama programlama arayüzüne (API) yapılan isteklerde erişim kontrolleri eksikse, yetkisiz erişim mümkün olabilir.

3. JSON Web Token veya Çerezlerin Manipülasyonu

Kullanıcı tarafından düzenlenen JWT veya çerezler aracılığıyla yetki bilgilerini değiştirmek.

4. Cross-Origin Resource Sharing (CORS) Yanlış Yapılandırmalarının Sömürülmesi

CORS hatalı yapılandırıldığında, saldırganlar tarayıcı üzerinden başka bir alan adındaki kaynaklara erişebilir.

5. Kimlik Doğrulamasız Kullanıcı Olarak Güçlü Gözatma

Kimlik doğrulama yapılmamış bir kullanıcının yetkili bir kullanıcı gibi davranmasına olanak tanıyan zafiyetler.

Broken Access Control'dan Korunma Yolları

Web uygulamalarını bozuk erişim kontrolü zafiyetlerinden korumak için şu önlemler alınmalıdır:

  • Güçlü kimlik doğrulama ve oturum yönetimi uygulamak.

  • En az ayrıcalık ilkesini benimsemek.

  • Erişim kontrollerini düzenli testleri ve güncellemeleri gerçekleştirmek.

  • Güvenli kodlama uygulamalarını kullanmek.

  • Güvenlik güncellemelerini takip etmek ve yüklemek.

Ek Kaynaklar

Last updated