Merhaba,
Broken Access Control (Bozuk Erişim Kontrolü) zafiyeti Kısaca tanımlamak gerekirse; bir kullanıcının Görmemesi gereken verilere erişebilmesi, Yapmaması gereken işlemleri yapabilmesi Broken Access Control zafiyetidir. OWASP Top 10’un en kritik güvenlik açıklarından biridir.

Bozuk erişim kontrolü, kimlik doğrulama, oturum yönetimi ve erişim kontrolü gibi temel kavramları içerir.
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.

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.

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ü çeşitli türleri içerir, bunlar arasında:
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ü, 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ü, 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 arasında:
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.

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.

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

Bozuk erişim kontrolü zafiyetlerine örnekler arasında:
Kötü niyetli bir kullanıcı, URL’deki parametreleri değiştirerek başka bir kullanıcının verilerine erişebilir.
Uygulama programlama arayüzüne (API) yapılan isteklerde erişim kontrolleri eksikse, yetkisiz erişim mümkün olabilir.
Kullanıcı tarafından düzenlenen JWT veya çerezler aracılığıyla yetki bilgilerini değiştirmek.
CORS hatalı yapılandırıldığında, saldırganlar tarayıcı üzerinden başka bir alan adındaki kaynaklara erişebilir.
Kimlik doğrulama yapılmamış bir kullanıcının yetkili bir kullanıcı gibi davranmasına olanak tanıyan zafiyetler.
Peki Web uygulamalarını bozuk erişim kontrolü zafiyetlerinden korunmak için ne önlemler alınmalıdır? burada Chatgpt den destek alarak şunları 10 madde de sıralayalım.
🔐 1. Varsayılan Olarak Reddet (Deny by Default)
- Yetki açıkça tanımlanmamışsa erişim kesinlikle engellenmelidir.
- Sadece izin verilen işlemler erişilebilir olmalıdır.
🧠 2. Yetkilendirmeyi Backend’de Yap
- Frontend’de yapılan kontroller asla yeterli değildir.
- Her API isteğinde kullanıcı yetkisi sunucu tarafında kontrol edilmelidir.
🧩 3. Merkezi Yetkilendirme Mekanizması Kullanın
- RBAC (Role-Based Access Control) veya
- ABAC (Attribute-Based Access Control) tercih edilmelidir.
- Yetki kontrolleri kodun her yerine dağılmamalıdır.
🔍 4. Nesne Sahipliği (Object Ownership) Kontrolü
- Kullanıcı, erişmeye çalıştığı kaynağın sahibi mi? kontrol edilmelidir.
- IDOR zafiyetlerini önler.
🚫 5. Kullanıcıdan Gelen Verilere Güvenmeyin
- Kullanıcıdan gelen ID, rol, yetki bayrakları dikkate alınmamalıdır.
- Yetkiler session / token üzerinden alınmalıdır.
🔑 6. Güçlü Oturum ve Token Yönetimi
- JWT içeriği değiştirilemez olmalı (imza doğrulaması)
- Token içindeki rol bilgileri sunucuda doğrulanmalı
📜 7. Loglama ve İzleme Yapın
- Yetkisiz erişim denemeleri loglanmalı
- Anormal davranışlar için alarm mekanizmaları kurulmalıdır
🧪 8. Düzenli Güvenlik Testleri
- Manuel sızma testleri
- Otomatik araçlar (OWASP ZAP, Burp Suite)
- Kod analizleri (SAST / DAST)
🧱 9. Hassas Endpoint’leri Gizlemek Yetmez
- /admin, /manage gibi yollar mutlaka yetki kontrolünden geçmelidir.
- “Görünmüyorsa güvenlidir” yaklaşımı yanlıştır.
🔄 10. Yetkileri En Az Ayrıcalık İlkesine Göre Tanımlayın
- Kullanıcıya sadece ihtiyacı olan yetki verilmelidir.
- Admin yetkileri sınırlı tutulmalıdır.
Kalın sağlıcakla.. https://eyupturan.com




