Kimlik & Erişim

Yetkilendirme (Authorization)

👤 Güvenlik Uzmanı1/35 dk
İnteraktif sahne yükleniyor…
🎯 Neden önemli?

Bir bankada gişe görevlisinin kim olduğunu doğrulamak (kimlik doğrulama) ile o kişinin kasaya girip giremeyeceğine karar vermek (yetkilendirme) tamamen farklı iki şeydir; sistemleri delen saldırıların çoğu işte bu ikinci adımdaki hatalardan kaynaklanır.

Anlatım

NEDİR? Yetkilendirme (Authorization), kimliği doğrulanmış bir kullanıcının veya sistemin hangi kaynaklara erişebileceğini ve hangi işlemleri yapabileceğini belirleyen güvenlik sürecidir. Kısaca "Sen kimsin?" sorusunu kimlik doğrulama (authentication) cevaplar; "Sen neye, ne kadar erişebilirsin?" sorusunu ise yetkilendirme cevaplar. Bu ikisi sıralı çalışır: önce kimlik doğrulanır, sonra yetki kontrol edilir. Doğrulama olmadan yetkilendirme anlamsızdır, çünkü kime izin verildiğini bilmeden izin tanımlanamaz. NASIL ÇALIŞIR? 1) Kullanıcı kimliğini kanıtlar (parola, MFA, biyometri vb.) ve sisteme giriş yapar. 2) Sistem, kullanıcıya bir kimlik bağlamı (oturum, token, claim'ler) atar; bu bağlam kullanıcının rollerini ve izinlerini taşır. 3) Kullanıcı bir kaynağa erişmek istediğinde (örneğin bir dosyayı silmek), sistem bir yetki kontrolü (access control check) yapar. 4) Sistem, erişim politikasına bakar: bu kullanıcının/rolün bu kaynak üzerinde bu eylemi yapma izni var mı? 5) İzin varsa işlem gerçekleşir (allow); yoksa reddedilir (deny - genellikle HTTP 403 Forbidden). Yetkilendirme modelleri farklı yaklaşımlar sunar: RBAC (rol tabanlı - izin role bağlanır), ABAC (öznitelik tabanlı - departman/saat/konum gibi özniteliklere göre), ve ACL (erişim kontrol listesi - kaynak başına kim ne yapabilir listesi). NEDEN ÖNEMLİ / İŞ YERİNDE Yetkilendirme, çok kiracılı (multi-tenant) sistemlerde veri izolasyonunun temelidir: bir müşterinin başka müşterinin verisine erişememesi yetki kontrolüyle sağlanır. "En az yetki" (least privilege) ilkesi gereği her kullanıcıya yalnız işini yapmaya yetecek izin verilir; aşırı yetki, bir hesap ele geçirildiğinde hasarı büyütür. OWASP'ın güvenlik açığı sıralamasında "Broken Access Control" (Bozuk Erişim Kontrolü) yıllardır en kritik açık olarak ilk sıralarda yer alır - çünkü doğrulama doğru yapılsa bile yetki kontrolü eksik/hatalıysa saldırgan başka kullanıcıların verisine veya yönetici işlevlerine ulaşabilir. DİKKAT / İYİ UYGULAMA • Yetki kontrolünü her zaman sunucu tarafında yap; istemcide (arayüzde butonu gizlemek) yapılan kontrol güvenlik değildir, yalnız kozmetiktir. • "Varsayılan reddet" (deny by default) ilkesini uygula: açıkça izin verilmeyen her şey yasaktır. • Yetki kontrolünü tek bir merkezi katmanda topla; her endpoint'te ayrı ayrı elle yazmak unutulan kontrollere (IDOR/yatay yetki aşımı) yol açar. • Yetki ile kimlik doğrulamayı karıştırma: geçerli bir token, her işleme izin verildiği anlamına gelmez.

📌 Senaryolar
📌 Örnek 1: Bir e-ticaret platformunda "editör" rolündeki çalışan ürün açıklamalarını düzenleyebilir ama ödeme ayarlarını değiştiremez; "yönetici" rolü ise her ikisini de yapabilir. Açıklama: Bu RBAC (rol tabanlı yetkilendirme) örneğidir. Her iki kullanıcı da başarıyla kimlik doğrulamasından geçmiştir (ikisi de gerçekten o kişidir), fakat erişebilecekleri işlemler rollerine bağlanan izinlerle sınırlanmıştır. Editör ödeme ekranına gittiğinde sistem 403 Forbidden döner.
📌 Örnek 2: Bir hastane sisteminde doktor yalnız kendi hastalarının kayıtlarına, üstelik yalnız mesai saatleri içinde ve hastane ağından erişebiliyor. Açıklama: Bu ABAC (öznitelik tabanlı yetkilendirme) örneğidir. Karar yalnız role değil; kullanıcının özniteliklerine (uzmanlık, atanan hasta), kaynağın özniteliklerine (hangi hastaya ait) ve bağlam özniteliklerine (saat, IP/konum) göre verilir. Aynı doktor evden gece bağlandığında erişim reddedilebilir.
📌 Örnek 3: Bir kullanıcı tarayıcısında URL'deki sipariş numarasını /siparis/1001 yerine /siparis/1002 yaparak başka bir müşterinin siparişini görmeye çalışır. Açıklama: Bu IDOR (Insecure Direct Object Reference / Güvensiz Doğrudan Nesne Referansı) saldırısıdır ve "Broken Access Control" sınıfının klasik örneğidir. Sistem kimliği doğrulamış ama her istekte "bu sipariş gerçekten bu kullanıcıya mı ait?" yetki kontrolünü yapmamışsa saldırı başarılı olur. Doğru çözüm: her erişimde kaynağın sahipliği sunucuda doğrulanmalıdır.
Özet

• Yetkilendirme (authorization), kimliği doğrulanmış bir kullanıcının NEYE erişebileceğini belirler; kimlik doğrulama (authentication) ise KİM olduğunu kanıtlar. • Sıra her zaman: önce kimlik doğrula, sonra yetki kontrol et. • Yaygın modeller: RBAC (rol tabanlı), ABAC (öznitelik tabanlı), ACL (erişim listesi). • "En az yetki" ve "varsayılan reddet" ilkeleri uygulanmalı; kontrol mutlaka sunucu tarafında yapılmalı. • Eksik/hatalı yetki kontrolü (Broken Access Control, IDOR) en kritik web güvenlik açıkları arasındadır.

✅ Mini-Test (5)
1.Yetkilendirme (authorization) aşağıdaki sorulardan hangisini cevaplar?
2.Bir sistemde kimlik doğrulama (authentication) yapılmadan önce yetkilendirme (authorization) yapılması doğru sıralamadır.
3.İznin doğrudan kullanıcının ROLÜNE bağlandığı yetkilendirme modeli aşağıdakilerden hangisidir?
4.Yetki kontrolünün yalnız tarayıcı arayüzünde (butonları gizleyerek) yapılması, güvenli bir yetkilendirme için yeterlidir.
5.Bir kullanıcının URL'deki kayıt numarasını değiştirerek başka kullanıcının verisine erişebilmesine yol açan, eksik yetki kontrolünden kaynaklanan açık nedir?
← Tüm sözlük terimleri · Farkındalık eğitimi